geometry - 圆弧与矩形的交点
问题描述
假设有一个圆弧和一个矩形。
圆弧具有位置、半径、最小和最大角度以及圆弧本身的宽度。矩形具有位置、宽度和高度以及旋转。
如何确定圆弧和矩形是否相交?
提供了可以增加清晰度的视觉辅助。绿色矩形是被认为相交的矩形,而红色矩形不相交。
我已经确定单独检查矩形的每个线段上的交点是很常见的,但我还不确定如何解释矩形在弧的内部但距离不够近而无法相交。
解决方案
对于完全在弧内的矩形,您可以检查 - 是否有任何角点(x, y)
属于粗弧。对于圆心(cx, cy)
、内半径和外半径r
和R
角度a0,a1
:
dist = length(x - cx, y - cy)
if dist lies in range r..R:
angle = atan2(y-cy, x-cx)
if angle in range a0..a1:
rectangle is inside
另一种非标准情况:查找弧是否完全位于大矩形内 - 只需检查弧的任何点是否位于该矩形内。
推荐阅读
- node.js - 你可以同时拥有 2 个版本的 node-sass/sass-loader 吗?
- javascript - 模块导出将参数传递给箭头函数
- nlp - 从大文本中识别主题的 NPL 技术
- sql - 来自 joinee 的 Sum 和 Count 以及来自 joiner 表组的单列计数
- python - 无法删除表中的列
- testing - 运行 `cargo test --workspace` 并排除一项测试
- javascript - Dhtmlx 日历时间表
- javascript - TypeError: require(...).listen 不是函数 ERROR
- javascript - 如何将我的应用程序中的变量加载到 package.json 中?
- java - 不兼容的类型:int[] 不能转换为 int。我该怎么办?