Я работаю над редактором треков и попал в ситуацию, когда мне нужно определить два трогательных круга. В идеале я хотел бы знать центральную точку и радиус этих кругов.
Информация, которую я имею, представляет собой точку на окружности каждого из окружностей и касательную к окружности в этой точке.
Я сам выяснил, что если я знаю касательные в этих точках, я знаю линии, на которых должны лежать центральные точки.
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 |) был сведен к минимуму.