我正在使用mid-point circle算法(bresenham circle)来高效地绘制整个圆。是否有类似的算法可以绘制圆弧?我想指定起始角度和结束角度,并且只绘制该圆的一部分。
提前感谢!
编辑:我也想绘制填充的圆弧,即饼状图片。 :)
提前感谢!
编辑:我也想绘制填充的圆弧,即饼状图片。 :)
计算弧线的起点和终点,当到达该点时终止。例如,请参见http://en.wikipedia.org/wiki/Midpoint_circle_algorithm
你们的平台没有已经处理这些形状绘制的库吗?
绘制一个填充的饼图:
首先,将饼垂直和水平地切成四份。如果你的饼片恰好是其中之一,或者完全适合其中之一,则只需使用以下过程一次。否则,你的饼片被切成了几块——即使对于一些非常细的饼片也可能发生这种情况——为每个部分重复以下步骤。
我将描述一个适合于右上角的饼片——其他角落类似。找到弧的起始像素和结束像素(这可能需要一些三角函数)。我假设在右上角的这个弧的“开始”像素是高于并在左侧的“结束”像素——如果不是,请交换它们以使其如此。
使用Bresenham圆算法查找该圆的那个象限边缘上的所有像素,从顶部开始。忽略值,直到达到“开始”像素——“活动”像素是从开始像素到结束像素的圆边缘上的点。
使用Bresenham线算法来查找“左侧”线上的像素(该线从弧的“起始”像素开始,直线到圆心)。