В поисках двух трогательных кругов с ограниченной информацией - PullRequest
0 голосов
/ 04 апреля 2011

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

Информация, которую я имею, представляет собой точку на окружности каждого из окружностей и касательную к окружности в этой точке.

Я сам выяснил, что если я знаю касательные в этих точках, я знаю линии, на которых должны лежать центральные точки.

C1 - центр первого круга, который я ищу
P1 - точка на окружности круга, в которой я знаю касательную
A является нормалью к касательной, которую я знаю в P1

C2 - центр второго круга, который я ищу
P2 - точка на окружности круга, в которой я знаю касательную
B является нормалью к касательной, которую я знаю в P2

C1 = P1 - t1 * A  
C2 = P2 - t2 * B

Я также знаю, что расстояние между двумя центрами будет равно сумме расстояний центров от точек на окружности.

|C1 - P1| + |C2 - P2| = |C1 - C2|

Я также хочу, чтобы abs (| t1 * A | - | t2 * B |) был сведен к минимуму.

1 Ответ

0 голосов
/ 04 апреля 2011

Если у вас есть только касательные векторы и точка, информации недостаточно.Вам нужно как минимум еще 2 очка, по одному на каждый круг, иначе t1 и t2 могут быть любыми реальными. (Кстати, A = -B) Не обращая внимания, я предположил, что круги не перекрываются.В любом случае, мы не можем знать, насколько они велики (и, следовательно, где находятся центральные точки), не зная больше информации.

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