Вопрос

Предположим, вам дан круг с линии AB, содержащий свой центр O, так что A и B находятся на круге (OA = OB = RADIUS). Тенгенс T рисуется на точке A, и я должен рассчитать отображение определенных точек (A, B, C, D ...) круга к точкам на касательной (AT, BT, CT, DT, DT. ..) Так что расстояние AA (расстояние по кругу) такое же, как и расстояние AAT (расстояние вдоль касательной) (и то же самое для расстояния Ab, AC, AD). Но здесь следует рассмотреть определенные ограничения: те точки круга (среди (a, b, c, d)), которые находятся с одной стороны окружности от A до B, должны быть размещены на одной стороне касательной ( Ближем), а те, с другой стороны образуют кругу A до B, должны быть размещены на другой стороне. По сути, круг должен быть разделен на B, а затем сопоставлен с касательной. Я надеюсь, что это объяснение достаточно достаточно.

Следует отметить, что у меня есть информация о координатах a, b, o, a, b, c, d. Я должен был рассчитать (AT, BT, CT, DT). Для решения этой проблемы у меня есть два подхода, но я не уверен, как я могу убедиться, что они всегда работают правильно.

1) Я рассчитываю уравнение касательного в точке А. Затем для каждой точки (A, B, C, D) я рассчитываю расстояние от (вдоль круга) и используйте эти расстояния для расчета (AT, BT, CT , дт ...) вдоль касательной. То, что я не знаю вот, как рассчитать расстояния от A до (A, B, C, D). Проблема заключается в определении «надлежащего бокового», то есть, как я должен определить, следует ли сопоставить точку на одной стороне касательной или другой. Что было бы способом определить это.

2) Я рассчитываю уравнение касательной в точке А. Тогда для каждой точки (A, B, C, D) я рассчитываю расстояние от (вдоль круга) и используйте эти расстояния для расчета (AT, BT, CT , дт ...) вдоль касательной. Чтобы определить «правильную сторону» данной точки, я мог бы использовать проекцию этой точки к касательной. Но даже с этим, как я знаю, «какая сторона которой»? Возможно, есть гораздо более простые способы сделать это.

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

Это было полезно?

Решение

Чтобы определить, какую «сторону» круга вы находитесь, вы в основном нужно определить, какую сторону линии AB Вы на. За ответ на это, см, например, Определить, на какую сторону линии лежит точка.

Другие советы

Лучшее предложение будет заключаться в том, чтобы рассчитать преобразование координат, которое будет отображать кружок в единичный круг с центром в начале происхождения, так что у A будет координаты (1, 0) (и B соответственно (-1, 0)). Преобразование должно быть расширение с вращением. Теперь расстояние на AA - это просто угол AOA, измеренный в радианах. Таким образом, вы можете легко рассчитать, оно (1, atan2 (y, x)) где (x, y) являются координатами a.

Теперь единственное, что вам нужно, это вернуться в исходную систему координат, применяя обратную трансформацию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top