gpt4 book ai didi

javascript - 如何在 Three.js 中对平面上的特定点进行动画处理或移动?

转载 作者:行者123 更新时间:2023-12-03 09:37:45 25 4
gpt4 key购买 nike

我有一个映射到平面的纹理。假设我只想移动平面上的特定点。我该如何去做呢?

例如,我想以特定的速度移动右下角,以特定的速度移动右上角。

var camera;
var scene;
var renderer;
var mesh;

init();
animate();

function init() {

scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000);

var light = new THREE.DirectionalLight( 0xffffff );
light.position.set( 0, 1, 1 ).normalize();
scene.add(light);


var geometry = new THREE.PlaneGeometry( 50, 50);

var texture = THREE.ImageUtils.loadTexture('images/03032122.png', {}, function() {
renderer.render(scene, camera);
})
var material = new THREE.MeshBasicMaterial({map: texture, transparent: true })


mesh = new THREE.Mesh(geometry, material );
mesh.position.z = -50;
scene.add( mesh );

renderer = new THREE.WebGLRenderer({ alpha: true });
renderer.setSize( window.innerWidth, window.innerHeight );

renderer.setClearColor( 0xffffff, 1);
document.body.appendChild( renderer.domElement );

window.addEventListener( 'resize', onWindowResize, false );

render();
}

function animate() {
//mesh.scale.x+= 0.0003;


render();
requestAnimationFrame( animate );

}

function render() {
renderer.render( scene, camera );
}


function onWindowResize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize( window.innerWidth, window.innerHeight );
render();
}

最佳答案

您可以在网格创建后通过访问其顶点数组来修改几何图形。如果您希望等级1的顶点在+x方向上线性移动,您可以在您的render函数中添加:

mesh.geometry.vertices[1].x+=.01;
mesh.geometry.verticesNeedUpdate=true;

注意使用PlaneBufferGeometry而不是PlaneGeometry

关于javascript - 如何在 Three.js 中对平面上的特定点进行动画处理或移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31279050/

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