2010-03-14 61 views
1

我需要能夠接受橢圓(計算)的畫筆參數,如間距,硬度,圓度,角度和直徑,然後根據這些屬性計算位圖圖像。創建橢圓刷的圖像的算法?

有沒有人知道算法(或我可以找到它)來做到這一點?我在圖形編程方面的經驗有限,到目前爲止我一直無法找到它。

+0

什麼語言? - – 2010-03-14 20:38:16

+0

我正在使用Java。 – juan2raid 2010-03-14 20:39:32

回答

1

這是你想使用庫的一種,很可能是Java 2D API。它包括填充,筆劃,變換和過濾器的功能。其模型與許多庫相似,因爲您可以使用運算符moveTolineTocurveTo描繪路徑,這些運算符被抽象爲形狀如Ellipse2D;然後使用繪製操作符填充或描畫所得到的路徑。我強烈推薦閱讀Java 2D教程,並理解不同部分如何組合在一起。

我將採取大致有以下步驟來創建該圖:

  • 計算旋轉橢圓的最終尺寸後的模糊。
  • 創建該尺寸的BuferredImage並調用其createGraphics方法來獲取繪圖上下文。
    • 旋轉圖形對象
    • 畫出橢圓
    • 與黑色
  • 填充它實現的高斯模糊過濾器。這不是API內置的,但它包含一個用於執行過濾器的框架,稱爲ConvolveOpyou can find一種用於計算Java中的高斯內核的算法。
  • 將過濾器應用於圖像,然後返回結果。

另一種選擇可能是Apache的Batik SVG庫,因爲你可以聲明表達你想要的繪圖(包括轉換和過濾器),並把它光柵化你。