【问题标题】:find tangent line of two adjacent circle求相邻两圆的切线
【发布时间】:2023-01-19 12:22:37
【问题描述】:

这些是我需要解决的 2 个示例案例,它只是找到D的坐标,给定A的位置,红绿线的方向向量

  • 红/绿线矢量(或方向)已知
  • A点是红线与红圈切点的交点
  • B点是半径为R的红色圆心(已知)
  • C点是绿线与绿圈切点的交点
  • D点未知,这个需要计算
  • D 点将始终位于绿色圆圈内(从 B 点开始的 2R 半径)
  • 红线和绿线具有相同的R半径
  • V 是红线相对于北向上的角度
  • W 是绿线相对于北上的角度
  • B 点和 D 点之间的距离始终为 2R,因为圆相邻(彼此接触)

很多帮助和提示表示赞赏,在某些代码而不是数学方程式中更受欢迎

【问题讨论】:

  • 如果你不懂数学,你会发现代码很难维护。
  • 请记住,SO 不是代码编写服务,所以:得到了吗?您已经编写的用于帮助您(部分)解决问题的代码在哪里?如前所述,您正在实施数学问题,因此您可以更好地理解数学,这意味着您几乎肯定想先寻求数学帮助(SO 不是正确的地方,但 math.stackexchange.com 是),然后一旦您理解,您应该能够执行您现在理解的必要步骤。

标签: math geometry trigonometry curve


【解决方案1】:

有了坐标 A、B、C,我们可以使用标量(点)积编写两个向量方程:

AC.dot.DC = 0
DB.dot.DB = 4*R^2

第一个是指圆的切线与切点的半径之间的垂直度,第二个是指圆心之间距离的平方。

在坐标中:

(cx-ax)*(cx-dx) + (cy-ay)*(cy-dy) = 0
(bx-dx)*(bx-dx) + (by-dy)*(by-dy) = 4*R^2

解决这个系统的未知dx, dy - 一般情况下的两个解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    相关资源
    最近更新 更多