当前位置:  开发笔记 > 编程语言 > 正文

如何确定对角线是否在凹多边形内?

如何解决《如何确定对角线是否在凹多边形内?》经验,为你挑选了1个好方法。

凹面(非凸面)多边形的对角线(对角线是连接不相邻顶点的线段)可以完全在多边形之内或之外(或者可以与多边形的边缘相交).如何确定它是否完全在多边形中?(没有多边形点测试的方法).



1> Kamran Bigde..:

如果对角线与边缘至少有一个交点,则它部分地位于多边形中并且部分地位于多边形之外,但是,如果对角线没有与它们相交,则只有两种状态:它完全在多边形中或完全在多边形之外.

要确定它是在多边形内还是外面:

假设多边形的顶点逆时针排序.考虑位于名为P [i]的顶点上的对角线的一个端点(另一个端点是p [j]).然后,制作三个向量,其第一个点是p [i]:

V1:p [i + 1] - p [i]

V2:p [i-1] - p [i]

V3:p [j] - p [i]

当且当且我们逆时针从V1移动到V2时,当且仅当V3在V1和V2之间时,对角线完全在多边形中.

alt text http://www.freeimagehosting.net/uploads/1b97107f4a.jpg

逆时针从V1到V2时,如何判断V3是否介于V1和V2之间?去这里.

我用这种方法写了一个程序,它有效地工作.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有