threejs沿y轴拉伸xoz面上的闭合线框

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
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值