@antonwx

Как протестировать, имеет ли конус и окружность общие точки?

В продолжение этого вопроса. https://qna.habr.com/q/1048952
Всё так же есть конус, заданный центральной линией (с определёнными координатами точек А и В) и определённым углом от этой линии. Но теперь надо проверить, по большому счёту, имеют ли эти две фигуры общие точки.
Как это сделать?
614b2ee1cbfba162676963.png
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
Картинку тут нихрена не добавить, потому словами. Предполагается, что мы проверяем общие точки закрашеных фигур, а не контуров.

0) Узнать расстояние D между т.А (которая центр "конуса") и точкой О (центр круга).

1) Если D > R+r, то не пересекаются - слишком далеко. (R и r - радиусы "конуса" и круга).

2) Если D <= r, то центр конуса лежит в круге, и общие точки есть.

3) Если D^2 < R^2 + r^2, то к обоим углам Y из прошлой задачи добавляем угол Х равный arcsin(r/D), и расширив таким образом сектор, приходим к прошлой задаче (без проверки расстояний, только попадание в угол), если взять за точку центр круга.

4) Иначе смотрим точку М - пересечение большой и малой окружности. Определяем угол OAM, равный Х. Этот угол можно найти по теореме косинусов, т.к. стороны OAM известны (R, r, D, угол между сторонами R и D). Далее с этим Х делаем как в пункте 3.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы