@antonwx

Как проверить, принадлежит ли точка на плоскости указанной части окружности?

Исходные данные такие: есть точки А и В, их координаты - известны. Линия длиной = Х, исходящая из точки А, и проходящая через точку В, является радиусом окружности. Угол между этой линией и линией, отсекающей часть такой окружности, равен Y. (вторая линия имеет точно такой же угол Y). Каким образом можно протестировать произвольную точку на принадлежность этой части окружности, которая отсечена двумя такими линиями?
6144834baba1b573706807.png
  • Вопрос задан
  • 539 просмотров
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Во-первых, проверьте, что точка лежит внутри окружности (просто сравните расстояние до A).

Во-вторых, надо проверить, что точка лежит в секторе. Тут есть 2 варианта. Можно получить углы границ и направления на точку через арктангенс и сравнить, но там много частных случаев, особенно при переходе через 0. Альтернативный вариант - использовать вектора. Пусть искомая точка - P. Тогда вам надо проверить, что вектор AP дает с вектором AB угол меньше y. Можно найти косинус угла через скалярное произведение и потом сравнить его с косинусом y.

Вам надо, чтобы (AB,AP)/(|AB|*|AP|) >= cos y
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы