首先是delaunay生成tin的优点:
1.三角形尽量接近等角,减少瘦长三角形引起的潜在数值精度降低问题
2.表面中的任意点(point)可以尽量接近节点(node)
3.三角化过程与处理点的顺序是独立的
等高线是生成TIN的重要材料,算法将等高线转换为mass point进行三角化,但是过程中容易产生flat triangle。
当点之间的距离小于等高线之间的距离时容易产生flat triangle,delaunay三角化时候就会把同一等高线上的点构造三角形。
这些具有相同高程的三角形就为flat triangle,它们的slope坡度为0,而且没有坡向。这样在建模时容易出现问题。
示例:
等高线 | 三角化-可以发现flat triangle |
![]() | ![]() |
高程 | 坡度,绿色表示Slope = 0 (flat triangles) |
![]() | ![]() |
避免flat tiangle的方法:
1.增加致密点
2.概化等高线
3.增加断裂线(break line)
断裂线定义:
定义和控制表面平滑和连续性行为的线要素称为断裂线。
断裂线类型:
1. soft break line: 通过将断裂线强制作为tin的边,确保线要素和多边形边被包含在tin模型中,但是它们并没有定义表面平滑的阻断(interruption),断裂线没有z值。
2. hard break line:定义表面平滑的阻断,断裂线有z值。
断裂线示例: |
无break lines | Soft break lines | Hard break lines | |
数据 | ![]() | ![]() | ![]() |
三角化 | ![]() | ![]() | ![]() |
地表面 | ![]() | ![]() | ![]() |
3D视图 | ![]() | ![]() | ![]() |
TIN的存储:
1.连续的三角形
2.点与邻居
第一种可以更好的存储每个三角形的属性(slope,aspect),需要更多的存储空间。
第二种适合生成等高线,节省存储空间,但是SLOPE,ASPECT需要动态计算。
reference:
http://www.ian-ko.com/resources/triangulated_irregular_network.htm