2011-08-10 47 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