Дурацкий вопрос из программы по геометрии

zeus

Старейшина
Братцы, помогите бестолочи.
Вопрос тем, кто еще помнит школьную программу геометрии - как это посчитать быстрее всего, с минимумом математических операций?

question.png

Исходные данные.
У нас есть окружность с радиусом R, для простоты равным единице. На окружности расположена произвольная точка C. Мы знаем её азимут (α) и знаем угол β.
Также у нас есть отрезок AB. Изначально длину отрезка мы не знаем. Отрезок никогда не будет пересекать центр и всегда перпендикулярен биссектрисе угла β (т.е., является равнобедренным).

Теперь задача. Надо найти координаты точки C1, являющейся проекцией точки С на отрезок (AC1 или BC1).

Альтернативно, можно немного изменить условия - отрезок не вписан в окружность, а является касательным.
question2.png

И в первом, и во втором случае через радиус и угол β можно вычислить длину отрезка AB. Но как быть дальше? Решение через расчет прилегающих треугольников (считаем треугольник ADC, затем ACC1) кажется очень громоздким.
 

Vabos

Старейшина
Имхо: X = R*Cos(alfa) Y = R*Cos(Beta/2)
UP: Кстати, второй случай сложнее, с ходу не придумал решение! :)

UP2: Второй случай:
Y = R; очевидно.
L = DC1;
L*Cos(90-alfa) = R, тогда L = R/Cos(90-alfa).
Откуда X = R/Cos(90-alfa)*Cos(alfa) = R/Sin(alfa)*Cos(alfa) = R*ctg(alfa)
 
Последнее редактирование:

zeus

Старейшина
Не сходится(
Видимо, я некорректно объяснил задачу или не до конца понял решение.
Координата X должна представлять собой значение, пропорциональное длине отрезка AB.
Например, для бета=90 градусов и R=1, отрезок AB будет иметь длину 2R*cos(180-бета)/2) = 2cos(45) = 1.4142
Соответственно, координата должна представлять собой значение от 0 до 1.4142 (либо -0,707....+0,707, в зависимости от начала координат)
Ну и для простоты можно считать альфу от плеча DB
 

Лёка

Старейшина
zeus, а где же начало координат? Логично в центре окружности его расположить. Нет?

Или, то, что вы ищете, правильней назвать не координатой, а отношением АС1 к АВ
 

Beelzebub

Старейшина
zeus, верно я понимаю, что отрезок АВ горизонтальный*, по условию задачи? А искомым является длина отрезка АС1?

Тогда примет за начало координат центр окружности.
Х-координата точки С1 такая же как и у точки С и равно Х(с) = cos(alfa)
Х-координата точки А равна X(A) = -sin(beta/2)
Искомое - длина отрезка AC1 есть разница между ними = cos(alfa) + sin(beta/2)

Для второго случая.
Х-координата точки А равна Х(А) = -tg(beta/2)
Х-координата точки С1 равна Х(С1) = tg(90-alfa) = ctg(alfa)
Тогда искомое - длина отрезка AC1 есть разница между ними = ctg(alfa) + tg(beta/2)


* - "горизонтальный" - это значит прямые AB и D0 - параллельны.
 
Последнее редактирование:

Vabos

Старейшина
Не сходится(
Видимо, я некорректно объяснил задачу или не до конца понял решение.
Координата X должна представлять собой значение, пропорциональное длине отрезка AB.
Например, для бета=90 градусов и R=1, отрезок AB будет иметь длину 2R*cos(180-бета)/2) = 2cos(45) = 1.4142
Соответственно, координата должна представлять собой значение от 0 до 1.4142 (либо -0,707....+0,707, в зависимости от начала координат)
Ну и для простоты можно считать альфу от плеча DB
Чой-то? :D Координата Х точки С1 зависит только от положения точки С на окружности и не может выходить за диапазон [-R, R]. Поэтому будет определяться только (Как Вы сказали) "азимутом". Длина АВ вообще роли не играет, ее будет определять только радиус окружности и угол beta. Что точно найти-то надо? Вы же четко поставили задачу, найтить координаты С1. Мы с Beelzebub, солидарны! :)
Лёка, а зачем отношение АС1/АВ? Нипанятна... Либо туплю уже:lol:
 

Лёка

Старейшина
зачем отношение АС1/АВ? Нипанятна... Либо туплю уже:lol:
Влад некорректно поставил вопрос. Ему нужно найтиположение точки С1 на отрезке АВ. Что логичнее выразить отношением длины отрезка АС1 к длине отрезка АВ.
 

zeus

Старейшина
В двух словах о практической реализации. Для кого-то этом может показаться очевидным, но у меня случился ступор.

Представьте, что мы стоим в центре большой карусели с лошадками и снимаем происходящее на камеру. Камера закреплена на штативе.
Карусель движется равномерно, с постоянной угловой скоростью. Мимо нас проезжают лошадки. Мы знаем радиус карусели и угол камеры (field of view)

Далее мы смотрим получившееся видео. Измеряем движение лошадок на экране и видим, что оно неравномерно - по сравнению с наложенным на видео двухмерным линейно движущимся объектом, лошадка то обгоняет его, то тормозит.
Здесь белые прямоугольничики - крутящиеся лошадки, а зеленый прямоугольник - линейно движущийся по оси объект.

И вот возникла задача синхронизировать движение трехмерной условной лошадки с двухмерным изображением, наложенным поверх.

Ещё раз всем спасибо за помощь, в ночи попробую :beer:
 

Beelzebub

Старейшина
zeus, насколько я понял задачу:
- ты стоишь в центре, и смотришь на север;
- по кругу против часовой едет лошадка (на моем рис. она красная);
- с востока на запад едет некий предмет (на моем рис. он зеленый).


Нужно чтобы движение лошадки по кругу было синхронизировано с движением предмета.

Если лошадка едет по кругу с постоянной угловой скоростью, и ее линейная скорость V=const, то тогда предмет должен подстраиваться под лошадку и двигаться со скоростью U = V*cos(alfa), где alfa - текущий азимут зверушки.
Если предмет движется с постоянной скоростью U=const, то лошадка должна подстраиваться под предмет, и ее линейная скорость по кругу (и угловая скорость) должна быть V=U/cos(alfa).
Вроде так.
1.jpg
 

Лёка

Старейшина
Beelzebub, все правильно написали про угловую скорость . Я только не понимаю, почему, если камера стоит в центре круга, то белая и зеленая лошадки должны лежать на прямой, перпендикулярной АВ. В таком случае, для камеры они друг друга не закрывают. Зеленая закроет белую, если они будут лежать на прямой, проходящей через центр окружности, и через центр камеры.
 

Beelzebub

Старейшина
Я только не понимаю, почему, если камера стоит в центре круга, то белая и зеленая лошадки должны лежать на прямой, перпендикулярной АВ. В таком случае, для камеры они друг друга не закрывают. Зеленая закроет белую, если они будут лежать на прямой, проходящей через центр окружности, и через центр камеры.
Я понимаю так, что карусель подразумевается "большой" а камера "идеальной" и не дающей перспективных искажений. Потому просто рассматриваем проекции наших объектов на ось Х и все.
 

Лёка

Старейшина
Я понимаю так, что карусель подразумевается "большой" а камера "идеальной" и не дающей перспективных искажений. Потому просто рассматриваем проекции наших объектов на ось Х и все.
Интересно, а задачу можно решить, исходя из условия, что С1 и С, все-таки, лежат на прямой, проходящей через центр окружности?
 

Лёка

Старейшина
Смотрю видео еще раз, там как раз видно, что проблема в неучете "перспективных искажений". То есть, буквально, зеленая и белая лошадки лежат на прямой, перпендикулярной фронтальной плоскости. Что есть неправильно.
 

Владислав

Старейшина
Господь, обьясни мне неразумному, как люди умудудряются помнить все эти формулы, которые положено забывать на второй день после экзамена даже тем, кто учился на пятёрки ? У меня есть только одно обьяснение, Господь, - они применяют их каждый день в своей работе. Блин, но где же взять такую работу, на которой каждый день нужны эти формулы !
Хотя нет ! Есть ещё один вариант - эти люди на данный момент учатся в 6 или 7 классе и вместе со своими детьми сейчас проходят эти темы ))))))
Извините за офф, не смог сдержать своего восхищения. :D
 

Лёка

Старейшина
Кстати, если внимательно рассмотреть схемы, которые привел Влад, то можно увидеть, что в первом случае он строит перпендикуляр к АВ из точки С, а во втором случае С и С1 как раз лежат на прямой, проходящей через центр окружности. Хотя, исходя из логики первого рисунка, должен был бы из точки С провести перпендикуляр.
 

Beelzebub

Старейшина
Интересно, а задачу можно решить, исходя из условия, что С1 и С, все-таки, лежат на прямой, проходящей через центр окружности?
Тогда в первой задаче beta=180 град, только и всего.

что проблема в неучете "перспективных искажений".
Тогда предлагаю дружно посочувствовать Зевсу в увлекательном занятии по учету этих искажений :D

что в первом случае он строит перпендикуляр к АВ из точки С, а во втором случае С и С1 как раз лежат на прямой, проходящей через центр окружности. Хотя, исходя из логики первого рисунка, должен был бы из точки С провести перпендикуляр.
Точно!

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