查看: 2577|回复: 19

Delaunay三角网绘制的一个问题

[复制链接]

该用户从未签到

发表于 2009-2-23 15:24:29 | 显示全部楼层 |阅读模式
我做了个简单的测试 从img格式的DEM数据中 读了100*100个高程点,用osgUtilll:elaunayTriangulator的方法构出的地形特别的乱,不像个地形。。。。谁能告诉我啥原因???

该用户从未签到

发表于 2009-2-23 16:11:22 | 显示全部楼层
这个取决于您读入的数据,有可能不是读了一个100x100的网格,以致三角化的时候构建出很狭长的三角面来。DelaunayTriangulator采用的是比较成熟的算法,与GTS相类似,应该没有问题

该用户从未签到

 楼主| 发表于 2009-2-23 16:27:16 | 显示全部楼层
哦,谢谢~~ 又弄了下 像地形了 就是构出来的 边上多连了不少的线段。。

该用户从未签到

 楼主| 发表于 2009-2-23 18:01:41 | 显示全部楼层
经纬度转世界坐标了,点多了构出的地形 有黑颜色 有白的,报了不少警告。。。这个对顶点数组有啥特殊要求?

该用户从未签到

发表于 2009-2-23 18:18:53 | 显示全部楼层
应该是限制条件的问题吧,,,它本身的算法我也没怎么看~~~~~其实,你不做简化,大可不必用D三角,协调好三角带也是很好的选择~~~~~~

该用户从未签到

发表于 2009-2-24 00:35:28 | 显示全部楼层
什么意思???不太明白你的意思,,,我记得好像有一个转换的函数,,你找找源码看看~~

该用户从未签到

发表于 2009-2-24 09:54:33 | 显示全部楼层
那就是你的坐标公式的问题了~~~~~估计是你的坐标系理解有误~~~~~~

该用户从未签到

发表于 2009-2-24 12:19:39 | 显示全部楼层
我用的 这个
doubl eccentricitysquared;
double radiusEquator;

doulbe rpm = radiusEquator / sqrt(1-eccentricitysquared * sin(lat) * sin(lat));
x = (rpm + 高程) * cos(lat) * sin(lon);
y = (rpm * (1-eccentricitysquared) + 高程) * sin(lat);
z = (rpm + 高程) * cos(lat)* cos(lon);
.......用的 是GIS的坐标系;

还有个问题读HeightFieldFile 用那种格式的数据?tiff不支持?

该用户从未签到

发表于 2009-2-24 23:43:19 | 显示全部楼层
呵呵,,,,你用实际坐标来做,,不搞出个椭球面就成怪事了~~你投影一下就出现一个常见的平面了~~~~~~~

该用户从未签到

发表于 2009-2-26 08:53:09 | 显示全部楼层
和楼上的同问,投影转换问题,希望大家能指导帮忙一下,谢谢!

该用户从未签到

发表于 2009-2-27 16:03:46 | 显示全部楼层
老大们,小弟在线等了两天了,莫非没有解答?谢谢!

该用户从未签到

发表于 2009-2-28 02:29:23 | 显示全部楼层
当然是地理投影了~~这个其实你参考坐标公式做一下坐标地理投影变换就可以了~~~~~

该用户从未签到

发表于 2009-2-28 02:31:38 | 显示全部楼层
前两天没注意这个帖子了~~后来压下去也没怎么注意了,,抱歉~~~~~~~

该用户从未签到

发表于 2009-2-28 09:30:09 | 显示全部楼层
呵呵,自己试着两个投影,已经解决。谢谢sky
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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