[英]How to figure out the bounding box of a rotated trapezoid using the rotation
只是一個關於如何使用THREE.Box3()
的概念:
var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 1000); camera.position.set(5, 8, 13); var renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); var controls = new THREE.OrbitControls(camera, renderer.domElement); scene.add(new THREE.GridHelper(10, 10, 0x404040, 0x202020)); //trapezoid var tPoints = [ new THREE.Vector2(0, 1), new THREE.Vector2(1, 0), new THREE.Vector2(5, 0), new THREE.Vector2(5, 1) ]; var tGeom = new THREE.ExtrudeGeometry(new THREE.Shape(tPoints), { depth: 1, bevelEnabled: false }); tGeom.center(); var tMat = new THREE.MeshBasicMaterial({ color: "aqua", wireframe: true }); var trapezoid = new THREE.Mesh(tGeom, tMat); trapezoid.position.set(0, 2.5, 0); scene.add(trapezoid); var box3 = new THREE.Box3(); var box3Helper = new THREE.Box3Helper(box3); scene.add(box3Helper); renderer.setAnimationLoop(() => { trapezoid.rotation.z += 0.01; box3.setFromObject(trapezoid); renderer.render(scene, camera) });
body { overflow: hidden; margin: 0; }
<script src="https://threejs.org/build/three.min.js"></script> <script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.