Three.js 如何使用 dat.GUI 在控制面板中将值转换为度数?
Three.js How to convert values to degrees in the control panel using dat.GUI?
我在控制面板中制作了一个简单的滑块来修改对象的位置和旋转。
我对这个位置没有问题,因为值是相对的,但我想以度数显示旋转值。这是我在旋转控件中的内容:
gui
.add(mesh.rotation, "x")
.min(Math.PI * -1)
.max(Math.PI)
.step(0.01)
.name("Rotar en X");
这是它在控制面板中的显示方式:
想法是显示-180 和 180
您将必须创建一个占位符对象来保存以度为单位的值,然后 use the .onChange()
event 知道值何时更改。那时您可以将度数转换为弧度以分配给网格旋转。
// Placeholder holds values in degrees
var degrees = {
x: 0,
y: 0,
z: 0
};
gui
.add(degrees, "x")
.min(-180)
.max(180)
.step(1)
// This function is called each time the value is changed
.onChange(() => {
console.log(degrees.x);
// Convert the degrees to radians, then assign to mesh rotation
mesh.rotation.x = THREE.MathUtils.degToRad(degrees.x);
});
我正在使用 THREE.MathUtils.degToRad()
to convert from degrees to radians.
我在控制面板中制作了一个简单的滑块来修改对象的位置和旋转。 我对这个位置没有问题,因为值是相对的,但我想以度数显示旋转值。这是我在旋转控件中的内容:
gui
.add(mesh.rotation, "x")
.min(Math.PI * -1)
.max(Math.PI)
.step(0.01)
.name("Rotar en X");
这是它在控制面板中的显示方式:
想法是显示-180 和 180
您将必须创建一个占位符对象来保存以度为单位的值,然后 use the .onChange()
event 知道值何时更改。那时您可以将度数转换为弧度以分配给网格旋转。
// Placeholder holds values in degrees
var degrees = {
x: 0,
y: 0,
z: 0
};
gui
.add(degrees, "x")
.min(-180)
.max(180)
.step(1)
// This function is called each time the value is changed
.onChange(() => {
console.log(degrees.x);
// Convert the degrees to radians, then assign to mesh rotation
mesh.rotation.x = THREE.MathUtils.degToRad(degrees.x);
});
我正在使用 THREE.MathUtils.degToRad()
to convert from degrees to radians.