我是靠谱客的博主 愉快抽屉,最近开发中收集的这篇文章主要介绍几种几何图形是否相交的判断,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 两条直线是否相交

可以判断斜率,但是要注意分母为0的情况。

更通用的是叉积。分别在两条线上选两点,求其向量,不平行即相交。


2 两条线段是否相交

叉积。取其中一条线段的某一个端点,向另一个端点做向量记为p1,向另一线段的两个端点做向量记为p2和p3,那么p1必定夹在p2和p3中间,即p1叉积p2的结果,与p1叉积p3的结果,符号相异。同理,再取另一线段的某一个端点,重复上述步骤,结果的符号也相异,那么就相交。

注意叉积为零的情况。


3 点是否在三角形内

面积法,该点与三角形的三个顶点,可以构成三个三角形,如果这三个三角形面积之和等于原三角形面积,得证。

叉积法。


4 点是否在凸多边形内部

多边形化为三角形


5 两个矩形是否相交

其中一个矩形的一个或者多个顶点,必然在另一个矩形内部,包括边界。


6 一个圆形和一个矩形是否相交

坐标系变换,令矩形左下方顶点为原点,下边为x轴,左边为y轴,按矩形四条边切分坐标系,共分为9个区域。

圆心在区域5,是否相交,很好判断。

圆心在区域2,4,6,8, 将半径与最近垂线段长度作比较。

圆心在区域1,3,6,9, 将半径与最近顶点距离作比较。

注意矩形被圆形包含的情况判断。


 * 叉积的一个非常重要性质是可以通过它的符号判断两矢量相互之间的顺逆时针关系: 满足 右手螺旋法则。 若 P × Q > 0 , 则P在Q的顺时针方向。 若
 * P × Q < 0 , 则P在Q的逆时针方向。 若 P × Q = 0 , 则P与Q共线,但可能同向也可能反向。
 * 叉积的方向与进行叉积的两个向量都垂直,所以叉积向量即为这两个向量构成平面的法向量。 如果向量叉积为零向量,那么这两个向量是平行关系。
 * 
 * 求三角形面积,海伦公式。


最后

以上就是愉快抽屉为你收集整理的几种几何图形是否相交的判断的全部内容,希望文章能够帮你解决几种几何图形是否相交的判断所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部