【发布时间】:2021-05-08 21:21:23
【问题描述】:
这个问题有点具体。为简单起见,假设我有一个单位圆,即以原点 (0,0) 为中心,半径为 1 的圆。在这个圆上,我有三个点:A、B 和 C。假设 B 和 C 是固定的,并且A 可以沿圆的圆周移动。
问题:我可以有效检查哪些条件以确保 A 不会移出 B 和 C 之间最初包含它的弧?
澄清一点:我不仅希望检测该点是否在此弧上(即,得到一个布尔值),而且希望有一个可量化的度量(例如,距离),这样我就可以防止它不会被移到外面。你可以想象我的设置是这样的,将 A 点限制为红色弧线:
以下是我迄今为止思考过的一些想法,但没有一个成功:
- 将 A = [cos(alpha),sin(alpha)] 的角度 alpha 限制在 B=[cos(beta),sin(beta)] 和 C=[cos( gamma),sin(gamma)],其中 alpha、beta 和 gamma 是以弧度为单位的角度。不幸的是,这种幼稚的案例仅适用于上述情况(a)。如果 A 被限制的弧与 +pi/-pi 的(在我的情况下是西方的)不连续点相交,那么简单的上限和下限将无法实现。
- 计算 A 到 B 和 A 到 C 之间的弧的长度,然后确保随着 A 的移动,这个总和不会改变。不幸的是,我只找到this solution 来计算两点之间的弧线,而且它总是计算较短的弧线。然而,在场景 (c) 中,正确的弧 A 到 B 是较大的弧。
【问题讨论】:
-
错误的论坛,这应该属于 math.stackexchange :) 我也不明白你的问题,试着真正指出你所追求的。你有两点 B 和 C,它们是固定的。那你想对A做什么?它是给定的,还是你试图计算一个有效的 A,我不明白。