1
如何創建如此的圓柱體?如何在OpenGL中設置(創建)切片圓柱體
http://www.eicac.co.uk/Images/SLICED-CYLINDER.png
我猜gluCylinder
是不是一種選擇?
如何創建如此的圓柱體?如何在OpenGL中設置(創建)切片圓柱體
http://www.eicac.co.uk/Images/SLICED-CYLINDER.png
我猜gluCylinder
是不是一種選擇?
與一個色帶和兩個風扇創建它
讓我們假設該點[0, 0, 0]
是在該形狀的底部和Z軸的中心向上。使用圖像中的常量。
一個簡單的光盤。
glBegin(GL_TRIANGLE_FAN)
glVertex3d(0.0, 0.0, 0.0) // center
for angle from 0 to π (whatever step)
double x = 0.5 * D * cos(angle);
double y = 0.5 * D * sin(angle);
glVertex3d(x, y, 0.0);
glEnd();
我們需要計算實際斜率功能。 這將是y = a * x + b
的形式,並有點(0.0, H)
和(0.5*D, H2)
。
因此,我們必須解決的a
和b
。我們有b = H
和a = (H2 - H)/0.5 * D
double a = (H2 - H)/0.5 * D;
double b = H;
glBegin(GL_TRIANGLE_STRIP)
for angle from 0 to π (whatever step)
double x = 0.5 * D * cos(angle);
double y = 0.5 * D * sin(angle);
double height = a * x + b;
glVertex3d(x, y, 0.0);
glVertex3d(x, y, height);
glEnd();
我們結合前面的步驟和密封頂部。
double a = (H2 - H)/0.5 * D;
double b = H;
glBegin(GL_TRIANGLE_FAN)
glVertex3d(0.0, 0.0, H) // center
for angle from 0 to π (whatever step)
double x = 0.5 * D * cos(angle);
double y = 0.5 * D * sin(angle);
double height = a * x + b;
glVertex3d(x, y, height);
glEnd();
'gluCylinder()'將無法創建那種圓柱體。您必須生成頂點來描述形狀。一些基本的幾何不難。我認爲你應該自己嘗試這樣做,並讓我們知道你是否遇到困難。 :) –
我非常肯定的是***不是***缸,兩端不是垂直於革命軸。如果您導出頂部圓柱形截面的平面方程,並使用該方程計算頂點的高度,您最終必須計算自己,那麼可以生成該平面。 –