查看: 2130|回复: 6

OSG中有一个三角网构成的面模型,有什么方法可以实现给定X,Y坐标,得到Z坐标

[复制链接]

该用户从未签到

发表于 2011-8-31 11:51:21 | 显示全部楼层 |阅读模式
我用三角网构建了一个曲面模型。我现在需要给定X,Y坐标快速的得到Z坐标,有什么办法吗?

该用户从未签到

发表于 2011-9-1 09:17:16 | 显示全部楼层
三角网的模型没有办法快速从XY得到Z,只能通过射线求交实现。格网形式的模型是可以的

该用户从未签到

 楼主| 发表于 2011-9-5 15:21:08 | 显示全部楼层
想再请问一下osgUtil:elaunayTriangulator构建的三角网对象也不能给定X,Y得到Z吗?另外格网模型是哪个类啊?

该用户从未签到

发表于 2011-9-5 20:53:06 | 显示全部楼层
本帖最后由 sky11811 于 2011-9-5 20:54 编辑
三角网的模型没有办法快速从XY得到Z,只能通过射线求交实现。格网形式的模型是可以的
array 发表于 2011-9-1 09:17

我倒是有个办法,而且也不是十分复杂,当然也不是很简单。
主要的思想是,将模型投影至某个平面,比如x-o-y面。
然后测试(x,y)在哪一个投影三角形中,得出结果后,计算模型中这个三角形的平面方程。
知道方程后,又知道x,y,怎会求不出z呢?
您说是不是array?
这种做法速度是十分快的。
判断点在不在三角形中有优化算法,使用几次叉乘即可。
如果模型十分复杂还可以用quadtree加速。

该用户从未签到

发表于 2011-9-6 08:45:19 | 显示全部楼层
对于大量的三角形来说,我不好评判这么做的效率,以及其中会造成的精度损失。您的设想跟我处理射线与点、线求交时的方法类似,即把它们都转换到眼坐标系甚至窗口坐标系中处理。
由于BVH层次和QuadTree的设计,OSG对地形的射线求交效率已经很高了,可以直接使用

该用户从未签到

发表于 2011-9-7 10:39:17 | 显示全部楼层
本帖最后由 liushui 于 2011-9-7 10:56 编辑

挺高深的,

该用户从未签到

发表于 2011-9-14 12:14:37 | 显示全部楼层
各位研究求交的朋友们,好消息,我用了http://blog.csdn.net/pizi0475/article/details/5387525
里面的教程,(osgUtil:ineSegmentIntersector)

牛就在山上了,不会飘了 ,现在在地上了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表