2011-08-10 74 views
2

我正在尋找繪製填充多邊形所需的一系列步驟。我將創建一個將其呈現爲位圖的函數。我使用類似於visual basic的語言編寫,但沒有大部分面向對象的東西,如類和繼承,繪圖功能是drawline()和drawrect(),就是這樣,但它可以縮放和旋轉已完成位圖對象,所以,當我填充多邊形時,它將在for循環或while循環中一次一個點,但是,如果有任何區別(可能會更快?),我可以將位圖轉換爲字節數組。所以如果你有一個方法將一個完整的多邊形行視爲一個字節數組並填充它,那麼可能會比100,000個plot(x,y)命令更快?我不知道,無論哪種方式都會很有趣。算法繪製填充對稱多邊形?

我不是想繪製不規則的多邊形,只是對稱(徑向對稱)與任意數量的邊,最小3,居中在位圖區域。

繪圖方法是笛卡兒與0,0位於左側的位圖。我猜的投入將是這個樣子:

drawpolygon(bitmapobj,width,height,sides,radius) 

也許半徑不必需的,因爲位圖的大小將是多邊形的限制嗎?

尋找英文步驟代替代碼,如果可能的話,但代碼可能是有用的,如果它沒有太多的語言特定方面(例如,c + +有一堆聲明,類型投射指針,東西我不沒有必要處理,我不是100%確定如何轉換爲我使用的語言)。

回答

1

有一個等式給出here(最後一個)。

通過循環遍歷所有的x和y座標,並檢查該方程的輸出是否小於零,您可以確定哪些點位於「內部」並適當地爲它們着色。

+0

我正在尋找一個「如何」不是一個方程式。我無法讀取方程式,例如我正在查看步驟:如何計算圖像中心每個點的x和y位置?一旦我畫出了這些點之間的圖像輪廓,那麼我需要一個算法來填充圖像。 – alphablender

+0

@alphablender - 方程只是計算某物所需的步驟。該等式告訴你哪個(x,y)座標位於形狀內部,哪些不是。這並不像看起來那麼困難。 – sje397

+0

也許我在那個頁面上看到了錯誤的那個,你可以複製/粘貼到你的答案中,這個頁面還在被新的東西更新,所以「那個頁面上的最後一個」有些模糊。 – alphablender