gpt4 book ai didi

javascript - 如何使用 dat gui 为 three.js 设置自动旋转切换

转载 作者:行者123 更新时间:2023-12-04 17:22:49 34 4
gpt4 key购买 nike

我正在制作一个程序,其中有 3 个行星彼此并排,我可以使用 slider 在每个轴上单独移动它们,我设置了一个自动旋转,但我无法将其作为有效的切换开关放在控件上。

到目前为止,这是我的 gui 控件:

  const autoRotate = {
rotate: false
};

function updateCamera() {
camera.updateProjectionMatrix();
}

const gui = new dat.GUI();
gui.add(camera, 'fov', 1, 180).name('zoom').onChange(updateCamera);

//rotate moon
const moonFolder = gui.addFolder('Rotate Moon');
moonFolder.add(moon.rotation, "x", 0, Math.PI * 2, 0.01);
moonFolder.add(moon.rotation, "y", 0, Math.PI * 2, 0.01);
moonFolder.add(moon.rotation, "z", 0, Math.PI * 2, 0.01);

// rotate earth
const earthFolder = gui.addFolder('Rotate Earth');
earthFolder.add(earth.rotation, "x", 0, Math.PI * 2, 0.01);
earthFolder.add(earth.rotation, "y", 0, Math.PI * 2, 0.01);
earthFolder.add(earth.rotation, "z", 0, Math.PI * 2, 0.01);

// rotate mars
const marsFolder = gui.addFolder('Rotate Mars');
marsFolder.add(mars.rotation, "x", 0, Math.PI * 2, 0.01);
marsFolder.add(mars.rotation, "y", 0, Math.PI * 2, 0.01);
marsFolder.add(mars.rotation, "z", 0, Math.PI * 2, 0.01);

gui.add(autoRotate, "rotate").name("autoRotate").onChange(updateCamera);

这是我为 autoRotate 所做的,它在控件之外工作,但我希望它在命令下工作。

  const rotate = [
moon.rotateX(0.002),
moon.rotateY(0.01),
moon.rotateZ(0.001),

earth.rotateX(-0.002),
earth.rotateY(0.01),
earth.rotateZ(0.002),

mars.rotateX(0.004),
mars.rotateY(-0.01),
mars.rotateZ(0.001),
];

有没有我缺少的更简单的方法?

最佳答案

我想出来了,我只需要在我的渲染函数中将旋转添加到 if 语句中,然后添加

options{
rotate: true;
};

在 gui 控件之前

关于javascript - 如何使用 dat gui 为 three.js 设置自动旋转切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65173517/

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