This paper describes a 2-D graphics algorithm that uses shifts and adds to precisely plot a series of points on an ellipse of any shape and orientation. The algorithm can also plot an elliptic arc that starts and ends at arbitrary angles. The ellipse algorithm described here is largely based on earlier papers by Van Aken and Simar [1,2], which extend Marvin Minsky's well-known circle algorithm [3,4,5] to ellipses, and show how to cancel out the sources of error in Minsky's original algorithm. A new flatness test is presented for automatically controlling the spacing between points plotted on an ellipse or elliptic arc. Most of the calculations performed by the ellipse algorithm and flatness test use fixed-point addition and shift operations, and thus are well-suited to run on less-powerful processors. C++ source code listings are included. Keywords: parametric ellipse algorithm, rotated ellipse, Minsky circle algorithm, flatness, elliptic arc, conjugate diameters, affine invariance
翻译:本文描述一个2D图形算法,该算法使用变换,并在任何形状和方向的椭圆上精确地绘制一系列点数。 该算法还可以绘制一个以任意角度开始和结束的椭圆弧。 这里描述的椭圆算法主要基于Van Aken和Simar[1,2]的早期论文[1,2],该论文将Marvin Minskiy众所周知的圆圈算法[3,4,5]扩展至椭圆,并显示如何取消明斯克原始算法中的错误源。 为自动控制在椭圆或椭圆弧上绘制的点之间的间距,提出了一个新的平滑度测试。 由椭圆算法和平滑度测试进行的计算大多使用固定点添加和变换操作,因此完全适合在较弱的处理器上运行。 包含 C++源代码列表 。 关键词: 准椭圆算法、 旋转的椭圆、 明斯克圆算法、 平坦度、 椭弧、 直径、 直径、 直径 。