我必须逐像素绘制任意大小和方向的椭圆。绘制一个长轴和短轴与 x 轴和 y 轴对齐的椭圆似乎很容易,但将椭圆旋转任意角度似乎更棘手。最初,我认为绘制未旋转的椭圆并对每个点应用旋转矩阵可能会起作用,但似乎这可能会导致舍入错误,而且我需要相当高的精度。
我对这种方法的怀疑是否正确?我怎样才能更准确地完成这个任务?
我正在用 C++ 编程(尽管这并不重要,因为这是一个更面向算法的问题)。
编辑:正如大卫指出的,我想我可能真的想知道如何进行像素插值。
Use:
x = X cos(a) - Y sin(a)
y = Y cos(a) + X sin(a)
Where a
是逆时针旋转的角度,(x, y)
是新坐标,并且(X, Y)
是旧的。
您应该使用浮点数来保持精度。只需检查每个点,应用转换,然后瞧。
编辑:经过一番搜索,这里有一些来自微软的代码:http://research.microsoft.com/en-us/um/people/awf/graphics/bres-ellipse.html http://research.microsoft.com/en-us/um/people/awf/graphics/bres-ellipse.html绘制栅格圆锥曲线。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)