绘制填充对称多边形的算法?

时间:2011-08-10 06:54:37

标签: language-agnostic graphics 2d

我正在寻找绘制填充多边形所需的一系列步骤。我将创建一个将其呈现为位图的函数。我用类似于visual basic的语言编写,但没有大多数面向对象的东西,比如类和继承,绘图功能是drawline()和drawrect()就是这样,但它可以缩放和旋转完成位图对象,所以,当我填充多边形时,它会在for循环或while循环中一次一个点,但是,如果这会产生任何差异(可能会更快?),我可以将位图转换为字节数组所以如果你有一个方法可以将一个完整的多边形线视为一个字节数组并以这种方式填充它,那么可能会比100,000个(x,y)命令更快?我不知道,无论哪种方式都很有意思。

我不是要绘制不规则多边形,只是对称(径向对称),其中任意数量的边,最小3,以位图区域为中心。

绘图方法是笛卡尔坐标,0,0位于位图的左侧。我猜输入看起来像是:

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

也许半径不是必需的,因为位图的大小将是多边形的极限?

如果可能的话,寻找英语而不是代码的步骤,但如果没有太多特定于语言的方面,代码可能会很有用(例如,c ++有一堆声明,类型转换指针,我不喜欢的东西)我必须处理,并不是100%确定如何转换为我正在使用的语言。

1 个答案:

答案 0 :(得分:1)

给出了here(最后一个)的等式。

通过循环遍历所有x和y坐标,并检查此等式的输出是否小于零,您可以确定哪些点在“内部”并且适当地为它们着色。