最快速的方法计算出下面这个圆形是否和正方形相交

用最简单, 最快速的方法计算出下面这个圆形是否和正方形相交。"  
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,则相交


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值