概述
用最简单, 最快速的方法计算出下面这个圆形是否和正方形相交。"
3D坐标系 原点(0.0,0.0,0.0)
圆形:
半径r = 3.0
圆心o = (*.*, 0.0, *.*)
正方形:
4个角坐标;
1:(*.*, 0.0, *.*)
2:(*.*, 0.0, *.*)
3:(*.*, 0.0, *.*)
4:(*.*, 0.0, *.*)
计算正方形四个顶点和圆的关系,分3钟情况:
1.圆内圆外都有顶点,相交
2.4个都在圆内,不相交
3.4个都在圆外,计算正方形每条边的 线段 与圆心到每条边的垂线交点(交点必须在边的线段上),如果有一个交点在圆内,相交。 否则,不相交。
假设圆心为O,正方形四个顶点是ABCD,分别计算OA,OB,OC,OD
令min_d = min(OA,OB,OC,OD)
max_d = max(OA,OB,OC,OD)
如果 min_d <= r <= max_d ,则相交
如果 max_d < r ,则在圆内,不相交
如果 max_d > r && min_d > r, 则计算O到四条边的距离并取最小的即为minEdgeDistance,如果minEdgeDistance<=r,则相交
3D坐标系 原点(0.0,0.0,0.0)
圆形:
半径r = 3.0
圆心o = (*.*, 0.0, *.*)
正方形:
4个角坐标;
1:(*.*, 0.0, *.*)
2:(*.*, 0.0, *.*)
3:(*.*, 0.0, *.*)
4:(*.*, 0.0, *.*)
计算正方形四个顶点和圆的关系,分3钟情况:
1.圆内圆外都有顶点,相交
2.4个都在圆内,不相交
3.4个都在圆外,计算正方形每条边的 线段 与圆心到每条边的垂线交点(交点必须在边的线段上),如果有一个交点在圆内,相交。 否则,不相交。
假设圆心为O,正方形四个顶点是ABCD,分别计算OA,OB,OC,OD
令min_d = min(OA,OB,OC,OD)
max_d = max(OA,OB,OC,OD)
如果 min_d <= r <= max_d ,则相交
如果 max_d < r ,则在圆内,不相交
如果 max_d > r && min_d > r, 则计算O到四条边的距离并取最小的即为minEdgeDistance,如果minEdgeDistance<=r,则相交
最后
以上就是体贴小猫咪为你收集整理的最快速的方法计算出下面这个圆形是否和正方形相交的全部内容,希望文章能够帮你解决最快速的方法计算出下面这个圆形是否和正方形相交所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复