我需要采用矢量和圆并查看它们是否相交的方法
I need Method that takes a vector and a circle and looks if they intersect
我有一个二维向量 space 从 A 开始到 B 结束。
我还有一个 2d space 的圆,位置为 C,半径为 r
我需要知道向量 AB 是否与圆(圆心:C,半径:r)相交
执行此计算最有效的方法是什么?
给定 A 和 B 是直线的端点。它可以表示为方向从 A 到 B 的向量,大小为 AB[=63= 的距离].
当圆心C与直线AB垂直于直线方向大于圆的半径r.
请参考下图进行可视化。
正在计算直线与圆心的距离:
第一步:从下面的公式得到AB的直线方程
这里 x1 = A.x, x2 = B.x, y1 = A.y, y2 = B.y.
求解,得到形式为ax + by + c = 0的线方程。
第 2 步:根据下面的公式计算距离 d。
这里 x0 = C.x 和 y0 = C.y.
最后检查直线到圆心的距离d是否大于圆的半径r或不。如果是,则直线位于圆圈外。
我有一个二维向量 space 从 A 开始到 B 结束。 我还有一个 2d space 的圆,位置为 C,半径为 r
我需要知道向量 AB 是否与圆(圆心:C,半径:r)相交
执行此计算最有效的方法是什么?
给定 A 和 B 是直线的端点。它可以表示为方向从 A 到 B 的向量,大小为 AB[=63= 的距离].
当圆心C与直线AB垂直于直线方向大于圆的半径r.
请参考下图进行可视化。
正在计算直线与圆心的距离:
第一步:从下面的公式得到AB的直线方程
这里 x1 = A.x, x2 = B.x, y1 = A.y, y2 = B.y.
求解,得到形式为ax + by + c = 0的线方程。
第 2 步:根据下面的公式计算距离 d。
这里 x0 = C.x 和 y0 = C.y.
最后检查直线到圆心的距离d是否大于圆的半径r或不。如果是,则直线位于圆圈外。