1
我试图在三维空间中绘制出一个椭球。离散单元中的3D椭球
我对2D椭圆没有问题,但就3D而言,我遇到了一些麻烦。我使用Bresenham的圆算法绘制2D椭圆。我想要做的是在图层中绘制2D椭圆,并在X半径和Y半径上增加(从底部向上,使用另一半的对称)半径。
这一切听起来像它会工作,但是当我去实现它时,我无法弄清楚如何改变x半径和y半径来制作椭球体的曲线。
我试图在三维空间中绘制出一个椭球。离散单元中的3D椭球
我对2D椭圆没有问题,但就3D而言,我遇到了一些麻烦。我使用Bresenham的圆算法绘制2D椭圆。我想要做的是在图层中绘制2D椭圆,并在X半径和Y半径上增加(从底部向上,使用另一半的对称)半径。
这一切听起来像它会工作,但是当我去实现它时,我无法弄清楚如何改变x半径和y半径来制作椭球体的曲线。
您的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)
是x和高空z
切片的y宽度。