- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有三个连续的多边形点,比如 p1、p2、p3。现在我想知道 p1 和 p3 之间的正交是在多边形内部还是在多边形外部。
我通过使用三个向量 v1、v2 和 v3 来做到这一点。多边形中点 p1 之前的点表示 p0。
v1 = (p0 - p1)<br/>
v2 = (p2 - p1)<br/>
v3 = (p3 - p1)
引用this问题,我正在使用该问题的已接受答案中显示的方法。它仅适用于逆时针。如果我的点是顺时针怎么办。
我也知道我的整个多边形是顺时针还是逆时针。因此我选择了向量 v1 和 v2。但我还是遇到了一些问题。我正在展示一个我遇到问题的案例。
这个多边形是逆时针的。并且它是从v1和v2的起源开始的。
最佳答案
因为你的点是连续的,你可以通过检查三角形 p1 p2 p3 的方向来解决这个问题。如果方向与多边形的方向相同,则对角线在内部,否则在外部。
要确定三角形的方向,最简单的方法是计算带符号的面积并检查符号。计算
p1.x * p2.y + p2.x * p3.y + p3.x * p1.y - p2.x * p1.y - p3.x * p2.y - p1.x * p3.y
如果此值的符号为正,则方向为逆时针方向。如果符号为负,则方向为顺时针。
准确地说,上面的方法只给出了对角线位于多边形的哪一侧的信息。显然,多边形仍然可以在后面的点与对角线相交。
关于algorithm - 多边形的对角线在里面还是外面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2816572/
我在我的 Maven Java 项目中使用带有 slf4j 的 logback。当前 logback 配置文件 (logback.xml) 位于 src -> main -> resources 文件
这可能是个愚蠢的问题。我正在尝试像所附图片一样设置左/右页边距。我通过在UIScrollView中添加UITextView成功实现了。但是,我几乎可以单独使用 UITextView 实现我想要的一切。
我有一个游戏,其中有一个绿色圆圈在场景中的随机位置随机生成,每次点击该圆圈时,它都会改变位置,有可能会变成红色。当圆圈为红色时,我希望用户点击不是红色圆圈的屏幕空间。如何检测不在圆圈上的水龙头?我的圈
HTML: delete delete CSS: .container { position: relative; border:
我制作了正文 max-width: 2000px 和 overflow-x: hidden...我的内容超过了这个尺寸(position: absolute 和 left: -101%),它们在需要时
我这里有这个菜单 我希望突出显示(悬停)延伸到外部框(服务菜单)的边缘。就像弹出菜单一样。菜单本身包含在另一个 div 中 - 我认为负边框不可能像负填充那样存在。 有人知道如何在悬停时使菜单的高亮部
我正在使用 Vue-awesome-slider 作为轮播库,并想将滑动箭头放置在轮播主体之外。但是由于 carousel 容器溢出隐藏,我无法将它放在 carousel 之外。 https://gi
我是一名优秀的程序员,十分优秀!