AlexReal
@AlexReal
Супермен

Как найти координаты точек на дуге зная координаты точек хорды?

Добрый день друзья!
Помогите решить такую задачу. Есть координаты точек отрезка АВ, через который проходит окружность, то есть по сути это координаты хорды. Знаем также радиус окружности R. Как найти координаты промежуточных точек на дуге, которые делят дугу на 1/4, 1/2 и 3/4?
Заранее спасибо!
5ee5c9cf391dd645565503.jpeg
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
По теореме Пифагора находим расстояние от центра до хорды: d = sqrt(R² − [(x2−x1)² + (y2−y1)²]/4).
Находим середину отрезка AB (назовём её (x3, y3)). Находим направляющий вектор отрезка AB (x4,y4) = ((x2−x1)/|AB|, (y2−y1)/|AB|), и есть два варианта центра — (x0,y0) = (x3±d·y4, y3∓d·x4).
А дальше через atan2 получаем углы, упорядочиваем их и через углы получаем сколько угодно точек.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
NeiroNx
@NeiroNx
Программист
Надо найти угол сектора для этих точек(начальный-конечный):
x = r*cos(fi)
y = r*sin(fi)
поделить его как надо и найти координаты точек
подразумевается что центр окружности в нулевых координатах.
Ответ написан
  1. найти координаты центра (центр может быть как по одну, так и по другую сторону отрезка)
  2. найти угол от оси X к точке А
  3. найти угол от оси X к точке B
  4. найти угол от оси X к искомой точке на дуге.
    Длина дуги пропорциональна углу. Поэтому 1/2 длины находится на 1/2 угла: угол_к_В + (угол_к_А - угол_к_В) / 2
  5. найти координаты точки, исходя из центра, угла и радиуса


картинка
5ee5da3a004ae356565895.png
Ответ написан
Ваш ответ на вопрос

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

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