Select 八面体几何中的六角面 THREE.js
Select Hexagonal Face in OctahedronGeometry THREE.js
我有一个测地线球体 - 它是使用 THREE.OctahedronGeometry
创建的 - 我想将三角形面分组为六边形面,以便可以选择它们。我不知道如何解决这个问题,或者它是否可行。任何见解将不胜感激。
举个例子:
createGeodesicSphere =->
geometry = new THREE.OctahedronGeometry(200, 3)
material = new THREE.MeshBasicMaterial({
color : 0xFFFFFF,
shading : THREE.FlatShading,
side : THREE.DoubleSide,
vertexColors : THREE.FaceColors,
overdraw : true
})
# Explode geometry so each face has unique vertices
explodeModifier = new THREE.ExplodeModifier()
explodeModifier.modify(geometry)
geodesicMesh = new THREE.Mesh(geometry , material)
geodesicFaces = geometry.faces
for i in [0..geodesicFaces.length-1]
geodesicFaces[i].color.setRGB(Math.random(), Math.random(), Math.random())
geodesicMesh.position.x = 0
geodesicMesh.position.y = 0
geodesicMesh.position.z = 0
scene.add(geodesicMesh)
很可能这是不可能的,但您可以尝试非常接近六边形的 voronoi 图:Spherical Voronoi Tessellation with Java 7: need fix for winding vertices around faces。
我有一个测地线球体 - 它是使用 THREE.OctahedronGeometry
创建的 - 我想将三角形面分组为六边形面,以便可以选择它们。我不知道如何解决这个问题,或者它是否可行。任何见解将不胜感激。
举个例子:
createGeodesicSphere =->
geometry = new THREE.OctahedronGeometry(200, 3)
material = new THREE.MeshBasicMaterial({
color : 0xFFFFFF,
shading : THREE.FlatShading,
side : THREE.DoubleSide,
vertexColors : THREE.FaceColors,
overdraw : true
})
# Explode geometry so each face has unique vertices
explodeModifier = new THREE.ExplodeModifier()
explodeModifier.modify(geometry)
geodesicMesh = new THREE.Mesh(geometry , material)
geodesicFaces = geometry.faces
for i in [0..geodesicFaces.length-1]
geodesicFaces[i].color.setRGB(Math.random(), Math.random(), Math.random())
geodesicMesh.position.x = 0
geodesicMesh.position.y = 0
geodesicMesh.position.z = 0
scene.add(geodesicMesh)
很可能这是不可能的,但您可以尝试非常接近六边形的 voronoi 图:Spherical Voronoi Tessellation with Java 7: need fix for winding vertices around faces。