在实现物体测距,使用射线时自己导致的bug。。

问题

我是想相交的到点以后,直接塞入对应交到的物体里用一个SphereGeometry显示(不测量的时候,寻找其父元素移除)。

进行一番操作以后,发现显示的位置始终不对。

经过一段时间的思考,发现使用intersects[0].object.worldToLocal()反而正确了。

解决

射线交得的就是世界坐标为什么反而要从世界坐标转化成本地坐标了呢?

因为我塞入了其object容器内,自然也就应用上了他的转换矩阵。那么原本正确的世界坐标就会变转换,反而将其转换成原本的本地坐标才正确(自然的应用容器的转换矩阵)。

js 复制代码
if (this.isMeasuring) {
      //交物体
      const intersects = this.getIntersectionsForMeature(event);
      if (intersects.length > 0) {

        console.log("看看交了啥",intersects)
        const marker = new THREE.Mesh(
          new THREE.SphereGeometry(0.1, 10, 20),
          new THREE.MeshBasicMaterial({
            color: 0xff5555,
            transparent: true,
            opacity: 0.5,
          })
        );
        marker.position.copy(intersects[0].object.worldToLocal(intersects[0].point))

marker.name = `${this.measureLinePoints.length+1}`
intersects[0].object.add(marker);
this.measureLinePoints.push(marker);
console.log("看一下存的点",this.measureLinePoints)
        }
相关推荐
m0_7482398310 小时前
前端bug调试
前端·bug
沙尘暴炒饭2 天前
关于uni-forms组件的bug【提交的字段[‘*‘]在数据库中并不存在】
bug
Kisorge2 天前
【C语言】代码BUG排查方式
c语言·开发语言·bug
安卓机器3 天前
探索 Python编程 调试案例:配置日志记录器查看程序运行bug
bug
树懒_Zz5 天前
记录 io.springfox 3.0.0 整合 spring boot 2.6.x 由于 springfox bug 引发问题
windows·spring boot·bug
每天进步一大步5 天前
webSokect安卓和web适配的Bug 适用实时语音场景
android·前端·bug·web
JWASX5 天前
【BUG记录】Apifox 参数传入 + 号变成空格的 BUG
java·bug·urlencoder·urldecoder
初遇你时动了情5 天前
解决react 路由切换,页面闪屏的bug
javascript·react.js·bug
老赵的博客5 天前
QString转const char* bug
bug
andlbds6 天前
解决PCL库中pcl::VoxelGrid降采样Bug
c++·bug