【发布时间】:2021-06-05 10:44:53
【问题描述】:
当您在 ThreeJS 中将任何对象添加到场景中时,默认情况下它位于中心。所以它的位置是(0,0,0),尽管它是在中心绘制的。当坐标为(0,0,0)时,我需要在左上角设置默认位置。 这是一个非常简单的示例,显示默认坐标为中心中心: https://jsfiddle.net/qy3572dt/
var scene = new THREE.Scene();
let camera = new THREE.PerspectiveCamera( 80, window.innerWidth / window.innerHeight, 1, 1000 );
camera.position.set( 0, 0, 50 );
var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
const sprite = new THREE.Sprite( new THREE.SpriteMaterial( { color: 'red' } ) );
sprite.position.set(0,0,1);
scene.add( sprite );
camera.position.z = 5;
var animate = function () {
requestAnimationFrame( animate );
renderer.render( scene, camera );
};
animate();
【问题讨论】:
-
好吧,如果你只需要设置左上角的位置,
sprite.position.set接受它的位置向量到本地。例如。 This fiddle。除非您想设置边界并将其放在现有 FOV 的最左上角,否则需要进一步调整。 -
你看你在这个语句中使用了-25:sprite.position.set(-25, 10, 0);这意味着坐标原点不是左上角而是中心。我正在寻找的是 (0,0,0) 在最左上角而不是在中心。谢谢
标签: three.js