计算机图形学07一一 多边形理解 理解 奇偶规律 非零环绕数

来源:互联网 发布:淘宝卖家多长时间回款 编辑:程序博客网 时间:2024/06/07 01:42
先理解向量的叉乘的了解
叉乘的结果返回的是一个向量 这个向量还有点特别 它是垂直于 a 和 b 向量的 的向量
那知道他是垂直于2个的向量 那他的方向在怎么判断的 垂直 a 和 b 向量的向量有2个方向怎么判断他的方向


一个最简单的办法:
右手展开 和a 的方向是一直的 a 是 a X b  4指的方向 要第一个值得方向一致 然后4指要弯曲 指向b 
怎么弯曲找最近的路线  这时候你的大拇指也就是c的方向了




一个多边形在数学上定义为由三个或更多个顶点的坐标位置描述的平面图形,进一步来看,几何上要求多边形的边除了端点
之外就没有其他公共点。因此,一个多边形在其单一平面上必须有其所有的顶点且边之间无交叉 。 为了避免混淆 我们把 多边形
限定为那些有封闭折线边界且无交叉边的平面图形


计算机图形的应用中,用于指定多边形的一组顶点并不严格地在一个平面上。着可能由数值计算的舍入误差 对坐标位置的选择 或 更一般地由于使用一


组多边形面片逼近曲面而引起 解决的办法就是曲面网分割成三角形 这也就是为什么我们网格都用三角形的

多边形还分 凹多边形 和 凸多边形 凸多边形就是所有的内角都是小于等于 180 凹多边形 就是至少有一个内角大于180,因为凹多边形的天窗算法和其


他子程序的实现比较复杂 ,因此都是分割成凸多边形  

所有的先识别凹多边形 这就要用到上面的叉乘 吧每一边看成一个向量 方向是要顺序的 逆向指

如图01



然后进行叉乘 有一个为负说明内角 大于 180 
E1 x E2 ,E2 x E3, E3 x E4, E4 x E5, E5 x E6, E6 x E1


那要怎么切了?
将E2直线方程中的斜率为1而Y轴截距为-1 然后我们可以确定这条直线和其他边的交点来将多边形分割成两片


那么接下来就是要对凸多边形进行分割成三角形集
方法是通过将任意顺序的三个连续顶点定义为一个三角形来实现。然后将三角形的中间顶点从多边形原顶点队列中删除。接着使用相同的过程
修改后的顶点队列来分出另一个三角形 直到剩下三个顶点


内 - 外测
各种图形处理经常需要鉴别对象的内部区域。 当遇到复杂的对象的时候我们要怎么区分他是外部还是内部呢

 如图02


有2中方法
1.奇偶规律

在对象的中的任意一个点发射一条射线(射线不能经过顶点) 要射出该对象 当打中的变数有奇数说明是内区域 如果当是偶数的时候就是外区域

2.非零环绕数


注意他的顺序 ABCDEFG的顺序 当多边形的边的方向从右到左 时候加1 反之减一 。 最后加起来为0 是外区域 非0 是内取样
(尽量走边少的 要不又问题 而且不能走顶点)


布尔操作 可以得到2个区域的重叠部分 和 拿到自己独有的区域 都是用到了非零环绕数的扩展

如何拿到重叠 A B 逆时针转 

如图04




当环绕数大于1的就是重叠的区域

 如图05


如何拿到自己区域呢 ? 拿A独有区域 A逆时针转  B 顺时针 环绕数为正就是独有的 

如图 06




1 0
原创粉丝点击