JaveFX TriangleMesh金字塔 - 它有效,但为什么?

时间:2017-12-11 15:05:03

标签: java javafx

在一些文本中“轻轻地”解释制作一个4面金字塔,如下所示:

pyramid.getPoints().addAll(0,0,0); //0 = top
pyramid.getPoints().addAll(0, height, -hypotenuse/2); //1 = closest
pyramid.getPoints().addAll(-hypotenuse/2, height, 0); //2 = leftest
pyramid.getPoints().addAll(hypotenuse/2, height, 0); //3 = furthest
pyramid.getPoints().addAll(0, height, hypotenuse/2); //4 = rightest

pyramid.getTexCoords().addAll(0, 0);

pyramid.getFaces().addAll(0,0,2,0,1,0); //Left front side
pyramid.getFaces().addAll(0,0,1,0,3,0); //???
pyramid.getFaces().addAll(0,0,3,0,4,0); //Right back side
pyramid.getFaces().addAll(0,0,4,0,2,0); //???
pyramid.getFaces().addAll(4,0,1,0,2,0); //Bottom triangle at front???
pyramid.getFaces().addAll(4,0,3,0,1,0); //Bottom triangle right???

它有效,但我不明白。

enter image description here

添加的第二个面具有顶点0,1,3,所以(参考图)......它将金字塔切成两半。据我所知,这不是一个外在的面孔。 与第4面相同,仅切片与第2面正交。然后是最后两个面,它们应该是构成金字塔方底的三角形。第一个从顶点4到顶点1到顶点2,所以......这是金字塔底座的前三角形(我认为)。所以我希望顶点2,3,4形成金字塔底座的后三角形,但在最后一行代码中我们看到顶点4,3,1,它们(根据我的逻辑)构成了金字塔的直角三角形基础,即不与金字塔底座的前三角形互补。有人可以解释一下这个简单的几何拼图吗?我可以研究一下适当的深度资源吗?

很有责任 - 迈克尔

1 个答案:

答案 0 :(得分:1)

正确的顶点编号是(粗略绘制图像的道歉):

enter image description here

通过在x-z平面中绘制顶点1-4,可以非常清楚地看到

1: (0, -h/2)
2: (-h/2, 0)
3: (h/2,  0)
4: (0,  h/2)

enter image description here

因此面孔

(0,2,1)
(0,1,3)
(0,3,4)
(0,4,2)
(4,1,2)
(4,3,1)

准确描述您想要的三角形。