平行轮廓线预处理的一些算法

来源:互联网 发布:wine怎么安装软件 编辑:程序博客网 时间:2024/04/23 18:55

说明:图比较难处理,就没有粘过来

4.3.1 轮廓线的预处理

对于平行轮廓线,在建模之前需要判断轮廓线上顶点的凸凹性和顶点的走向。这些判断和计算是计算机图形学、模式识别、CAD等领域经常碰到的问题(周培德,1995Feito F R1995;马小虎,1999;陆国栋,2000)。本论文研究的难点在于,矿体平行轮廓线虽然是简单多边形,但是轮廓线上的点是三维坐标的,三维轮廓线不仅具有方向性,还具有法向量和平面方程等参数,在计算法向量、判断方向性、凸凹性要比二维情况复杂。可以将轮廓线预处理的算法分为如下两个基本问题:

1)已知轮廓线一组按顺序排列数据,计算其法向量;

2)已知轮廓线法向量,判断各个顶点是凸点还是凹点。

这两个基本问题的研究不仅具有重要的理论价值,也具有很高的实践价值。

4.3.1.1 基本概念

在实体建模中的轮廓线属于简单多边形,即必须满足下列四个条件:

1 ,即所有的顶点均不相等;

2)任何一个顶点都属于一条边;

3)任何两条非相邻边都不相交;

4)任何一条边都是有方向的,并且方向都是一致的。

下面介绍四个的基本概念:

【定义4.1】任意形状的轮廓线,其顶点都是按照顺序排列的,要么顺时针排列,要么逆时针排列。我们将这种轮廓线的特征称为方向性,以 标识。在计算机图形学中应用的多边形一般为简单多边形,并且规定多边形沿逆时针方向时方向为正,沿顺时针方向时方向为负。

【定4.2】轮廓线任意顶点的内角如果小于180度,则称该顶点为凸点;如果内角等于180度,则称该顶点为平坦点;如果内角大于180度,则称为凹点;如果内角等于180度,则称为中性点。如图4-6所示。

【定义4.3】平面法向量是用来区分平面的“内侧”和“外侧”。法向量指向的方向为“外侧”,与法向量相反的面为“内侧”。根据右手系,在已知多边形方向性时,可以判断多边形的法向量。法向量也可以通过轮廓线三个凸顶点的向量叉积得到。

拓扑同构凸多边形法”计算法向量

给定三维轮廓线 ,轮廓线上的点为 ,已知多边形的走向 ,计算多边形的法向量

本文提出“拓扑同构凸多边形法”计算轮廓线法向量。该算法的思想是:找到轮廓线上与最大外包矩形相交的四个点坐标 LeftRightTopBottom是轮廓线 的点序号。从而形成了与轮廓线拓扑同构的、严格凸多边形。对多边形的各种退化情况,需要进行特殊处理,按照判断规进行计算。最终判断凸多边形的法向量就是轮廓线法向量。

4.3.1.3 判断任意形状轮廓线凸凹性

轮廓线凸凹判别最基本的算法是角度法。该方法的原理是逐个计算多边形各个顶点的内角,并通过比较其是否大于180度来确定凸凹点。凸点的内角小于180度。凹点的内角大于180度。该方法效率较低,对于每一个顶点,必须进行角度计算,由于三角函数计算量大而使得算法计算速度较慢,且容易出现奇异值。

有研究者提出利用分治思想,将多边形顶点凸凹问题转化为凸壳问题来求解。分层求凸包的方法交替地筛选出凸点和凹点。该算法的基本步骤是首先找出任意多边形各个顶点组成的凸包,这些点必然是凸点。这些凸点将多边形分解成许多小多边形,再对这些小多边形运用求凸包办法找到凸点,算法反复执行分割顶点工作和求凸包工作,直到将所有点判断完。该算法存在在程序实现复杂,几何意义不明确,而凸包算法比较复杂的问题。(周德培,1995

本文在研究简单多边形顶点凸凹性与法向量的关系基础上,提出一种新算法——叉积法判断凸凹性。在已知多边形的法向量的前提下,计算多边形相邻三点 三角形的法向量与轮廓线的法向量的关系,来确定点 的凸凹性。

【定理4.1】对于三维空间的平面多边形顶点,计算前后两个相邻矢量的叉积,如果叉积与平面多边形的法向量方向一致,则该顶点为凸点;如果叉积与平面法向量的方向相反,则该顶点为凹点;如果叉积为零,则该顶点为中性点。

 

原创粉丝点击