如何return p5js中的相机位置?
How to return the camera position in p5js?
在P5js中我们可以通过命令设置相机位置
camera([x], [y], [z], [centerX], [centerY], [centerZ], [upX], [upY], [upZ])
但是在使用 orbitControl() 进行一些旋转后,我如何 return 当前相机位置?
是否有像 cameraX 这样的函数来 return 当前相机位置的 x 坐标,比如鼠标的 mouseX?
您应该能够制作 p5.Camera
instance via createCamera()
,坚持下去,并根据需要 read/reuse 属性,例如 x、y、z。
这是经过调整的文档示例:
// Creates a camera object and animates it around a box.
let camera;
function setup() {
createCanvas(100, 100, WEBGL);
background(0);
camera = createCamera();
// optionally, call camera() on the instance with the same arguments as the global function
//camera.camera([x], [y], [z], [centerX], [centerY], [centerZ], [upX], [upY], [upZ])
}
function draw() {
background(255);
if(!mouseIsPressed){
camera.lookAt(0, 0, 0);
camera.setPosition(sin(frameCount / 60) * 200, 0, 100);
}
box(20);
// read cam params
console.log(camera.eyeX + ',' + camera.eyeY + ',' + camera.eyeZ);
}
function mouseDragged(){
orbitControl();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.min.js"></script>
在P5js中我们可以通过命令设置相机位置
camera([x], [y], [z], [centerX], [centerY], [centerZ], [upX], [upY], [upZ])
但是在使用 orbitControl() 进行一些旋转后,我如何 return 当前相机位置? 是否有像 cameraX 这样的函数来 return 当前相机位置的 x 坐标,比如鼠标的 mouseX?
您应该能够制作 p5.Camera
instance via createCamera()
,坚持下去,并根据需要 read/reuse 属性,例如 x、y、z。
这是经过调整的文档示例:
// Creates a camera object and animates it around a box.
let camera;
function setup() {
createCanvas(100, 100, WEBGL);
background(0);
camera = createCamera();
// optionally, call camera() on the instance with the same arguments as the global function
//camera.camera([x], [y], [z], [centerX], [centerY], [centerZ], [upX], [upY], [upZ])
}
function draw() {
background(255);
if(!mouseIsPressed){
camera.lookAt(0, 0, 0);
camera.setPosition(sin(frameCount / 60) * 200, 0, 100);
}
box(20);
// read cam params
console.log(camera.eyeX + ',' + camera.eyeY + ',' + camera.eyeZ);
}
function mouseDragged(){
orbitControl();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.min.js"></script>