是否有任何代码可以在OpenGL中计算和绘制n面棱镜?它应该像
void DrawPrism(long sides) {
glNormal3f( ...);
glTexCoord2f(..);
glVertex3f(...);
[...]
}
DrawPrism(5)
Run Code Online (Sandbox Code Playgroud)
基本上我只需要x - y - 基座边缘的位置.其余的计算由GL完成.
新答案:
要计算五角大楼顶点的坐标,请查看我为您制作的视频:http: //www.youtube.com/watch?v = qqu6LknbQsg
要计算五边形的高度,公式为:
^取自Wolfram Alpha
由Kenobi填写:如上面的视频所述,A,B,C,D,E是五边形的边缘.F,G,H,I,J是第二个形成棱镜的五边形.Sin和cos以度为单位.然后我们有以下顶点:
Ax = 0 ; Ay = h/2, ; Az = -1;
Bx = s/2 + s * sin(18) ; By = -h/2 + s*cos(18) ; Bz = -1;
Cx = s/2 ; Cy = -h/2 ; Cz = -1;
Dx = -s/2 ; Dy = -h/2 ; Dz = -1;
Ex = -s/2 - s * sin(18); Ey = -h/2 + s*cos(18) ; Ez = -1;
Fx = 0 ; Fy = h/2, ; Fz = 1;
Gx = s/2 + s * sin(18) ; Gy = -h/2 + s*cos(18) ; Gz = 1;
Hx = s/2 ; Hy = -h/2 ; Hz = 1;
Ix = -s/2 ; Iy = -h/2 ; Iz = 1;
Jx = -s/2 - s * sin(18); Jy = -h/2 + s*cos(18) ; Jz = 1;
Run Code Online (Sandbox Code Playgroud)
然后你就是这样做的
glVertex3f(Ax,Ay,Az);
glVertex3f(Bx,By,Bz);
[...]
Run Code Online (Sandbox Code Playgroud)
编辑:上面的答案(*对于所有多边形,而不仅仅是五边形):
这是我为你制作的关于如何生成任何2D n-gon ...生成任何3D形状(n-hedron)的视频,您可以使用数学"网"(骨架结构)组合这些不同的n-gons. )3D对象并计算角度(所有这些公式都可以通过搜索n-hedron内角公式或n-hedron _____找到)或者你可以用我绘制这些n-gons的方式绘制它们(在视频)只是使用不同颜色的线条来模拟阴影(但是你必须在3D空间中将它们转换,我知道你可以用c ++来完成它所以你很好.
无论如何,这是我的视频:http://www.youtube.com/watch?v = CWbTmm3a5Fw
这就是几何网(就像之前所说的那样),你想知道:
这篇文章显示用于计算像n-hedron内角的东西和什么不是的数学,可能非常有用:http://www.kjmaclean.com/Geometry/IcosaDodeca.html
归档时间: |
|
查看次数: |
2474 次 |
最近记录: |