我用圆柱创建了一条隧道。当鼠标放在角落时,它将删除旧的圆柱体,并创建一个新的圆柱体,并具有不同数量的径向线段。
但是现在对象之间的更改没有任何过渡。有可能这样做吗?
也许删除对象是错误的方法?
var w = window.innerWidth;
var h = window.innerHeight;
var circle = new THREE.Mesh(
new THREE.CylinderGeometry( 50, 50, 1024, 32, 1, true ),
new THREE.MeshBasicMaterial({
transparent: true,
alphaMap: tunnelTexture,
side: THREE.BackSide,
})
);
创建其他对象的方法类似,只是使用3/4/6段
if (mouseX < w/4 && h-(h/4) < mouseY < h/4) {
scene.remove(circle);
scene.remove(triangle);
scene.remove(hexagon);
scene.add(rect);
}
if (mouseY > h-(h/4)) {
scene.remove(circle);
scene.remove(rect);
scene.remove(hexagon);
scene.add(triangle);
}
if (mouseX> w-(w/4) && h-(h/4) < mouseY < h/4) {
scene.remove(triangle);
scene.remove(rect);
scene.remove(hexagon);
scene.add(circle);
}
if (mouseY < h/4) {
scene.remove(triangle);
scene.remove(rect);
scene.remove(circle);
scene.add(hexagon);
}
感谢您的帮助! :)
答案 0 :(得分:0)
您可以对“拓扑相同”的几何图形进行变形,但是仅说将一个对象转换为另一个对象并不是那么简单。
解释“拓扑相同”的类似问题: morphing a cube into sphere
您可能会想出一种不同的方法。
1)您可以缩小一个几何图形并同时生成和增长另一个几何图形,以便至少看起来像是一个过渡。
2)您可以在一个屏幕上滑动,然后在另一个屏幕上滑动?