gpt4 book ai didi

javascript - 了解 chop 二十面体的几何形状,用于渲染

转载 作者:行者123 更新时间:2023-11-29 22:06:20 24 4
gpt4 key购买 nike

enter image description here

我正在尝试使用 Three.js 渲染一个像上面那样带有可点击区域的 chop 二十面体.

我找到了正二十面体的代码

var t = ( 1 + Math.sqrt( 5 ) ) / 2;

var vertices = [
[ -1, t, 0 ], [ 1, t, 0 ], [ -1, -t, 0 ], [ 1, -t, 0 ],
[ 0, -1, t ], [ 0, 1, t ], [ 0, -1, -t ], [ 0, 1, -t ],
[ t, 0, -1 ], [ t, 0, 1 ], [ -t, 0, -1 ], [ -t, 0, 1 ]
];

var faces = [
[ 0, 11, 5 ], [ 0, 5, 1 ], [ 0, 1, 7 ], [ 0, 7, 10 ], [ 0, 10, 11 ],
[ 1, 5, 9 ], [ 5, 11, 4 ], [ 11, 10, 2 ], [ 10, 7, 6 ], [ 7, 1, 8 ],
[ 3, 9, 4 ], [ 3, 4, 2 ], [ 3, 2, 6 ], [ 3, 6, 8 ], [ 3, 8, 9 ],
[ 4, 9, 5 ], [ 2, 4, 11 ], [ 6, 2, 10 ], [ 8, 6, 7 ], [ 9, 8, 1 ]
];

THREE.PolyhedronGeometry.call( this, vertices, faces, radius, detail );

并得出结论,t 是 φ & vertices 由以下的所有排列组成:

(0, ±1, ±φ) (±1, ±φ, 0) (±φ, 0, ±1) > - 来自 Here

所以我修改了我的顶点:

(0, ±1, ±3φ) (±2, ±(1+2φ), ±φ) (±1, ±(2 +φ), ±2φ) - 来自 Here

导致:

var vertices = [
[-2, (1+2*t,t], [2,(1+2*t), t ], [-2,-(1+2*t),-t], [2,-(1+2*t),-t ],
[0,-1,3*t], [0,1,3*t], [0,-1,-3*t], [0,1,-3*t],
[1,-(2+t),-2*t ],[1,(2+t),2*t],[-1,-(2+t),-2*t],[-1,(2+t),2*t]
];

现在我知道我还必须修改 faces。二十面体似乎有 20 个三 Angular 形面,我可以在 Three.js 中仅使用三 Angular 形构造任何多边形。

然后我需要 5 个五边形和 12 个六边形的坐标,形式为:

5 * 12 + 6 * 20 = 180 三 Angular 形

如果是这样,我应该如何继续生成这些坐标?或者即使我对整件事的看法是错误的。

最佳答案

JSModeler 框架可以生成很多实体,包括 chop 的二十面体,所以也许源代码可以帮助您。

如果您找到 GenerateTruncatedIcosahedron,您可以在此处找到代码: https://github.com/kovacsv/JSModeler/blob/master/src/extras/solidgenerator.js

代码创建了具有五个和六个顶点的多边形,但很容易用三 Angular 形替换它们。

关于javascript - 了解 chop 二十面体的几何形状,用于渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20789627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com