javascript - 如何使用铯投射光线并检测与点云的交点
问题描述
我目前正在研究一个应该投射光线并找到它与点云(Cesium3DTileSet)相交的点的铯项目。
到目前为止,我还没有找到一种方法来做到这一点。我确实设法实现了 scene.pickFromRay 和 DrillPickFromRay:
//CameraPosition and CameraDirection: [x, y, z]
const { cameraPosition, cameraDirection } = cameraToWorldPoint(rotationQuaternion, translation, geoTransformationMatrix)
const ray = new Cesium.Ray(new Cesium.Cartesian3(cameraPosition[0], cameraPosition[1], cameraPosition[2]), new Cesium.Cartesian3(cameraDirection[0], cameraDirection[1], cameraDirection[2]));
const intersections = viewer.scene.drillPickFromRay(ray, undefined, undefined, 5);
//Always returns an array of one object (Cesium3dTileSet)
return { x: intersections[0].position.x, y: intersections[0].position.y, z: intersections[0].position.z }
但是 pickFromRay 和 DrillPickFromRay 的交叉点似乎发生在整个 CesiumTileSet 对象上,而不是点云中的实际点,这意味着它不会返回我实际需要的位置。
有人会知道实现这一目标的不同方法或方式吗?
解决方案
推荐阅读
- java - 从 HashMap 中获取最大 Set 大小
- python - 我得到一个 TypeError: '<' 在 'str' 和 'int' 的实例之间不支持
- node.js - 具有标准和流量扩展的 Eslint 不起作用
- apache-spark - PySpark:加入后的计数()结果不一致
- excel - 管理员禁止加载解压的扩展。VBA EXCEL 出错
- javascript - undefined 不是对象(评估“this.store.dispatch”)
- delphi - 在对象检查器集合编辑器中检测所选项目
- google-analytics - 为什么按月的 %new session 与按该月每天的平均 %new session 不同
- django - 使用 docker-compose 中的命令导出后,bash 中没有环境变量
- django - 如何在 Django 管理表单中添加自定义操作按钮并发布信息