1.设置plane(xoz平面)
// 创建平面
const normal = new THREE.Vector3(0,1, 0);
const planeGround = new THREE.Plane(normal, 0);
2.获取射线与平面plane的交点
const intersects = ray.intersectPlane(
planeGround,
new THREE.Vector3(0, 0, 0)
);
// 返回交点
return intersects;
3.在plane平面上绘制闭合线框
if(event.button ===0){
//在平面上绘制闭合线框
pointsArr1.push([pointPosition])
allPoints.push([pointPosition])
if(pointsArr1.length >=4){//可调节其点数,即多边形线框
const currentArr = []
for(let i= 0;i<pointsArr1.length;i++){
currentArr.push(pointsArr1[i][0])
}
//构建线段
lineGeometry.setFromPoints(currentArr)
const line = new THREE.LineLoop(lineGeometry,lineMaterial)
scene.add(line)
}
4.设置拉伸途径(目前是自定义路径,y轴方向的线段,以后再想办法设置拉伸方向向量)
let curvePath = new THREE.CurvePath();
let curve = new THREE.LineCurve3(new THREE.Vector3(0,1,0),new THREE.Vector3(0,2000,0))
curvePath.add(curve)
5.拉伸闭合线框
6.几何体材质可设置为MeshStandardMaterial