首页 > 解决方案 > THREE.js Turn THREE.planeGeometry to THREE.plane

问题描述

I am trying to configure the position of a THREE.plane for localClipping, and Im finding it a little unintuitive. I had a thought, is it possible to create some planeGeometry, manipulate it, and convert its position and orientation to the create a THREE.plane in its place?

This would be useful for configuring the position of a clipping planes.

标签: javascriptthree.jslinear-algebraplane

解决方案


You want to set a THREE.Plane from a Mesh having a PlaneGeometry, and you want to take into consideration the mesh's position and quaternion (or rotation). In other words, you want the THREE.Plane to align with the planar Mesh.

The easiest way to do that is to use plane.setFromNormalAndCoplanarPoint().

The normal is the normal to the plane mesh after rotation. The coplanar point is any point in the plane mesh; the position will do.

var plane = new THREE.Plane();
var normal = new THREE.Vector3();
var point = new THREE.Vector3();

normal.set( 0, 0, 1 ).applyQuaternion( planeMesh.quaternion );

point.copy( planeMesh.position );

plane.setFromNormalAndCoplanarPoint( normal, point );

three.js r.96


推荐阅读