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()'将无法创建那种圆柱体。您必须生成顶点来描述形状。一些基本的几何不难。我认为你应该自己尝试这样做,并让我们知道你是否遇到困难。 :) –
我非常肯定的是***不是***缸,两端不是垂直于革命轴。如果您导出顶部圆柱形截面的平面方程,并使用该方程计算顶点的高度,您最终必须计算自己,那么可以生成该平面。 –