Как найти точку на окружности, когда на нее проецируется точка внутри нее? - PullRequest
0 голосов
/ 08 января 2020

Мне нужно найти координаты точки на окружности (точка b на рисунке), используя переменные, показанные на рисунке.

enter image description here

Я знаю, что это довольно математическая проблема, но я пишу программу, частью которой она станет в python. Я попробовал следующий код и не повезло, я проверил угол его прохождения, и это правильно. Я также попробовал угол в радианах и градусах, но не повезло.

    int_x = r * math.cos(angle)
    int_y = r * math.sin(angle)

Пожалуйста, задавайте любые вопросы о проблеме

Спасибо

Ответы [ 3 ]

2 голосов
/ 08 января 2020

Если центр круга известен как (c_x, c_y), а точка a находится в (a_x, a_y). Затем мы просто строим линию от центра через точку a длины r. Это просто похожий треугольник. Мы вычисляем гипотенузу треугольника как

h = sqrt((a_x - c_x)^2 + (a_y-c_y)^2)

, а затем мы знаем, что

(b_x, b_y) = (c_x + (a_x - c_x) * r/h, c_y + (a_y - c_y) * r/h).

Тогда вы не нужно беспокоиться об углах вообще! Надеюсь, это поможет.

1 голос
/ 08 января 2020

Учитывая положение angle на диаграмме, если бы вы нарисовали треугольник, охватывающий angle, вы обнаружили бы, что int_x равно opposite, angle и int_y смежны, это означает, что вы перевернули свои уравнения (т.е. int_x = r * sin.cos(angle))

0 голосов
/ 08 января 2020

Я не могу комментировать (недостаточно повторений), поэтому этот ответ только для того, чтобы указать, что в ответе Чанминга { ссылка } это должно быть r / h вместо h / r (дважды).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...