为了账号安全,请及时绑定邮箱和手机立即绑定

three.js中不同方向的绘制和旋转

three.js中不同方向的绘制和旋转

精慕HU 2023-03-24 16:20:06
假设我在 Three.js 中有一个盒子,我想在不同的方向上递增。我基本上想用矩形画线,指向随机位置。目前我只是增加 x 导致从左到右绘制一条线。是否可以旋转我的矩形,使其朝不同的方向移动,而无需更改更新函数中 x 的增量。如果有某种“旋转画布”的方式,那确实会很方便。这是我在 codepen 上的代码 https://codepen.io/haangglide/pen/vYGbQRm代码:var scene, camera, renderer, material, plane;init();function init() {    scene = new THREE.Scene();    camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);    camera.position.z = 100;    renderer = new THREE.WebGLRenderer({ alpha: true, preserveDrawingBuffer: true });    renderer.autoClearColor = false;    renderer.setSize(window.innerWidth, window.innerHeight);    document.body.appendChild(renderer.domElement);    scene = new THREE.Scene();    window.addEventListener('resize', onResize, false);    drawLines();    update();}function drawLines() {    var col = new THREE.Color(Math.random(), Math.random(), Math.random());    material = new THREE.LineBasicMaterial({ color: col, linewidth: 5 })    var geometry = new THREE.PlaneBufferGeometry(5, 20, 32);    plane = new THREE.Mesh(geometry, material);    scene.add(plane);}function update() {    setTimeout(function () {        requestAnimationFrame(update);    }, 1000 / 60);    plane.position.x += 1;    if (plane.position.x > 50) drawLines()    renderer.render(scene, camera);}function onResize() {    camera.aspect = window.innerWidth / window.innerHeight;    camera.updateProjectionMatrix();    renderer.setSize(window.innerWidth, window.innerHeight);}
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

旋转你的平面对象并使用 translateX() 向前移动而不是使用 position.x


plane.rotation.z = 180

plane.translateX(1)


查看完整回答
反对 回复 2023-03-24
  • 1 回答
  • 0 关注
  • 289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号