我正在尝试从单个块中的3d空间中绘制一个椭圆体。
我对2D省略号没有任何问题,但就3D而言,我遇到了一些麻烦。我正在使用Bresenham的圆算法绘制2D椭圆。我要做的是在X半径和Y半径上绘制二维椭圆,在半径上增加(从底部开始向上,使用另一半的对称性)半径。
这一切听起来都有效,但是当我去实现它时,我无法弄清楚如何改变x半径和y半径来制作椭圆体的曲线。
答案 0 :(得分:3)
您的2D切片应该都具有相同的方向和宽高比。
如果您的椭球是轴对齐的,它们也应该具有相同的中心。
您的切片应按比例缩放:
scale = sqrt(1 - ((center-z)/half_vsize)^2)
where:
z = height of the current slice
center = height of the largest slice
half_vsize = half the vertical size of the ellipsoid
如果(x0, y0)
是最大切片的x和y宽度,(x, y) = (scale*x0, scale*y0)
是切片高度z
的x和y宽度。