沿着笛卡尔平面上指定向量的两个圆之间的最小距离

问题描述 投票:0回答:2

我正在尝试解决以下问题(我正在使用Matlab,但欢迎使用伪代码/其他语言的解决方案):

我在一个由其质心(p1,p2)和其半径(r1,r2)定义的笛卡尔平面上有两个圆。圆1(c1 = [p1 r1])被认为是“动态”的:它正沿着矢量V = [0 -1]平移。圆2(c2 = [p2 r2])被认为是“静态”的:它位于c1的路径中,但其质心的x分量偏离c2的x分量(否则,解决方案将是微不足道的:圆心形减去半径的总和)。

我正在尝试确定沿V的距离(d),圆1将与圆2发生“碰撞”(请参见链接的图像)。我确信我可以迭代地解决这个问题(即将c1转换为c2的边界框然后收敛/测试交集)。但是,我想知道是否存在针对此问题的封闭式解决方案。

vector geometry 2d collision
2个回答
0
投票

移动坐标以简化表达式


0
投票

由于问题标题与依赖于固定向量{0,-1}或{0,1}而不是任意向量的问题和接受的答案不匹配,我添加了适用于任何单位向量的另一种解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.