2012-03-21 26 views
1

我試圖在三維空間中繪製出一個橢球。離散單元中的3D橢球

我對2D橢圓沒有問題,但就3D而言,我遇到了一些麻煩。我使用Bresenham的圓算法繪製2D橢圓。我想要做的是在圖層中繪製2D橢圓,並在X半徑和Y半徑上增加(從底部向上,使用另一半的對稱)半徑。

這一切聽起來像它會工作,但是當我去實現它時,我無法弄清楚如何改變x半徑和y半徑來製作橢球體的曲線。

回答

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)是x和高空z切片的y寬度。