所以我试图用PolyhedronGeometry创建自己的形状
粗略草图:我遇到了问题。特别是我试图将这个形状附加到一个球体上,所以使用一些公式我想出了以下顶点:
[ -0.6495190528383289, -0.09943689110435831, 0.36157613954394185,
0, -0.09943689110435831, 0.7433789778353299,
0.6495190528383289, -0.09943689110435831, 0.36157613954394185,
0.3897114317029973, -0.39774756441743325, 0.7231522790878837,
0, -0.5966213466261499, 0.5947031822682639,
-0.3897114317029973, -0.39774756441743325, 0.7231522790878837 ]
然后我有面部指数:
[ 5,4,1, 5,1,0, 2,1,3, 4,3,1, 0,1,2, 0,4,5, 2,3,4 ]
当我添加球体作为调试点时,它们出现在正确的位置,但无论我如何调整顶点/面,一些位置都是不正确的:
答案 0 :(得分:1)
问题是原始矢量的长度彼此不相等,因此它们在图上的投影结构的范围不同。也许,你指定球体的半径是错误的。
例如,集合中第一个向量的长度:
(new THREE.Vector3(
-0.6495190528383289,
-0.09943689110435831,
0.36157613954394185 )
).length() === 0.75
集合中最后一个向量的长度:
(new THREE.Vector3(
-0.3897114317029973,
-0.39774756441743325,
0.7231522790878837 )
).length() === 0.9127033163903814
如果将半径设置为等于第一个矢量长度的PolyhedronGeometry,则后一个矢量位于此半径的球体之外。如果将半径设置为等于PolyhedronGeometry的最后一个向量的长度,则第一个向量位于球体内。