XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Общение> Трактир
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
akkolt

offline
Опыт: 13,826
Активность:
Вычисление параметров дуги окружности
Здравствуйте, уже 2 часа бьюсь над задачей. Очень нужна ваша помощь.



Дана окружность с неизвестным ралиусом, два вектора (вектор a (ввиде касательной к окружности с точкой касания A) и вектор b (ввиде касательной к окружности с точкой касния B))

Известны координаты точки A и угол ф, образованный веторами a и b
известно, что расстояние от точки A до центра окружности O равно расстоянию от центра окружности до точки B, ибо радиусы.
Координаты центра окружности неизвестны =-(
Еще известен угол l

Необходимо узнать координаты точки B, длину дуги AB. По возможности: длину всей окружности, радиус.

Если это может как то помочь, известно значение вектора a

akkolt добавил:
Нужен алгоритм решения данной задачи

Отредактировано akkolt, 25.06.2010 в 14:12.
Старый 25.06.2010, 02:59
HGL
Phased out.
offline
Опыт: 25,976
Активность:
у меня таки есть подозрение что при изменении расстояния между точкой пересечения векторов и центром окружности можно добиться например одинакового угла при разном взаимном расположении точек
если я прав, то здесь недостаточно данных
впрочем, 04:23. есть вероятность что мне просто пора спать
Старый 25.06.2010, 04:24
akkolt

offline
Опыт: 13,826
Активность:
trld, да нет, угол тогда тоже изменится ) проверял

akkolt добавил:
хотя про взаимное расположение точек, если ты о A и B, то да, можно добиться, но эти точки смещать нельзя, т.к. это точки касания
в общем угол здесь зависит исключительно от значений векторов

akkolt добавил:
я в тупике =-(
изучил "радиус поворота самолета" x) толку 0

» Мои наброски

akkolt добавил:
В общем вот такая закономерность:
при ф -> 90 B.y и B.x неравномерно удаляются от A.y и A.x
при ф -> 180 B.x неравномерно приближается к A.x, B.y продолжает неравномерно удаляться
при ф -> 270 B.x неравномерно удаляется от A.x, если A(0; 0) то B.x примет отрицательное значение B.y неравномерно приближается к A.y
при ф -> 360 B.x и B.y неравномерно приближаются к точке A

akkolt добавил:
все, что осталось для вычисления координат B, определить формулу дуги

akkolt добавил:
B.y = Sin(B.x)
Это следует учесть

Не нравится мне это, хотелось бы поэлегантней =/

Отредактировано akkolt, 25.06.2010 в 05:32.
Старый 25.06.2010, 05:26
akkolt

offline
Опыт: 13,826
Активность:
Кажетсо понял...
Определяем угол n

Луч, проведенный из точки пересечения под углом n/2 обязательно пройдет через центр окружности (по правилу вписанной окружности =-) )

Теперь определим расстояние до центра окружности O от точки пересечения C

Здесь я точно не уверен, но по моим рассчетам на листочке, это abs(a)/2

akkolt добавил:
Вот то, что дальше мне не нравится, жутко неудобный алгоритм:
Отрезок, проведенный из точки касания в центр окружности - образует перпендикуляр вектора a (по какому то правилу касательных во вписанной окружности)

Теперь Пифагор нам говорит длину отрезка OA, при этом зная углы, можно определить смещение по оси x и у от точки A, т.е. определить координаты O
Отрезок OA - Радиус

akkolt добавил:
Ну вот, радиус теперь тоже знаем, как определить все остальное?

Отредактировано akkolt, 25.06.2010 в 14:42.
Старый 25.06.2010, 14:37
truth troll
Silenced by truth troll
offline
Опыт: 7,396
Активность:
Старый 25.06.2010, 14:53
akkolt

offline
Опыт: 13,826
Активность:
truth troll, и? я теперь и сам знаю, как найти длину. =-)
Как найти точку B?

akkolt добавил:
А нет, не знаю, AC же не известно =-(
Старый 25.06.2010, 14:58
truth troll
Silenced by truth troll
offline
Опыт: 7,396
Активность:
Это я должен искать? =))
truth troll добавил:
А нет, не знаю, AC же не известно =-(
Всё это через прямоугольный треугольник вычисляется...
truth troll добавил:
А вообще мне кажется, что там не зря вектор а известен...
Старый 25.06.2010, 15:07
akkolt

offline
Опыт: 13,826
Активность:
truth troll, я уже все это прочитал )
Цитата:
Всё это через прямоугольный треугольник вычисляется...

Нет, не находится, известен только один катет, гипотенуза не известна...

akkolt добавил:
Цитата:
А вообще мне кажется, что там не зря вектор а известен...

truth troll, ну конечно не зря, радиус окружности напрямую зависит от абсолютной величины a
Старый 25.06.2010, 15:10
truth troll
Silenced by truth troll
offline
Опыт: 7,396
Активность:
akkolt,
Нет, не находится, известен только один катет, гипотенуза не известна...
зато известны все углы... ну там, синус или косинус... понимаешь о чём я... =)
Старый 25.06.2010, 15:14
Артте
Open up your eyes
offline
Опыт: 23,423
Активность:
что есть вектор А, а что есть вектор Б? Граничные точки напиши.
Артте добавил:
"от руки", каким кажется этот рисунок, здесь явно не подходит
Артте добавил:
trld, к слову, всех данных хватает
Старый 25.06.2010, 15:24
akkolt

offline
Опыт: 13,826
Активность:
вектор a и b - векторы скорости
точка A - положение тела в начале; точка B - положение тела в конце
окружность - траэктория разворота

akkolt добавил:
Артте, т.е. у них произвольны граничные точки
Старый 25.06.2010, 15:38
akkolt

offline
Опыт: 13,826
Активность:
Вообще, условие вот какое:
Тело движется прямолинейно со скоростью a в точке A оно решило повернуть на ф градусов (разворот должен осуществляться по окружности, т.к. ни одно тело не может развернуться мгновенно.
Данная окружность - траектория разворота.
Если логично подумать, Величина радиуса окружности должна зависеть от величины приложенной скорости a

Нужно определять положение точки B (в данный момент разворота), длину пройденного расстояния по дуге и угол разворота в данный момент времени.
На протяжении всего разворота, объект может развернуться и на 720 градусов
Старый 25.06.2010, 15:41
truth troll
Silenced by truth troll
offline
Опыт: 7,396
Активность:
Так это всё меняет...
Миниатюры
Кликните на картинку для увеличения
Название:  Math.jpg
Просмотров: 44
Размер:  50.9 Кбайт  
Старый 25.06.2010, 16:02
akkolt

offline
Опыт: 13,826
Активность:
хмм, x0 и y0 - с пифагором можно поизвращаться )

akkolt добавил:
и тригонометрией
Старый 25.06.2010, 16:10
truth troll
Silenced by truth troll
offline
Опыт: 7,396
Активность:
akkolt, да, там ещё альфу надо правильно найти, если что...
Миниатюры
Кликните на картинку для увеличения
Название:  Alfa.jpg
Просмотров: 36
Размер:  30.1 Кбайт  
Старый 25.06.2010, 16:14
Артте
Open up your eyes
offline
Опыт: 23,423
Активность:
альфа есть фи
Артте добавил:
хотя не, вру наверно, надо подумать
Артте добавил:
хотя, по-моему так оно и есть
Старый 25.06.2010, 16:19
truth troll
Silenced by truth troll
offline
Опыт: 7,396
Активность:
да, Альфа это Фи...
Старый 25.06.2010, 16:24
akkolt

offline
Опыт: 13,826
Активность:
Спасибо, завтра примусь решать Пока готовлюсь к экзамену
Хотя, может кто то уже писал подобный алгоритм? для физики к примеру ^^ буду приятно удивлен, если выложите =-)
Старый 25.06.2010, 16:31
truth troll
Silenced by truth troll
offline
Опыт: 7,396
Активность:
akkolt, upload.wikimedia.org/math/b/7/a/b7a4098d1c89d0eba6dd86905be72f18...
=) надеюсь ты понял, что по этой формуле надо...
Старый 25.06.2010, 16:36
akkolt

offline
Опыт: 13,826
Активность:
Понял, жаль здесь комплексы и двойные уравнения не прокатят, компьютер не умеет их считать, на сколько мне известно

akkolt добавил:
Цитата:
Здесь я точно не уверен, но по моим рассчетам на листочке, это abs(a)/2

Не правильный рассчет, тут его длина изменяется относительно a в зависимости от радиуса и угла =-(
проблема в том, что я не могу точно представить себе вектор скорости, если точка A разделяет его на 2 равные части, тогда OC = abs(a)/2

akkolt добавил:
Небольшой вопрос:
На каком то промежутке времени происходит падение скорости на x, но оно компенсируется возрастанием скорости на y (исходя из формулы y=sin(x))
выходит абсолютная величина вектора a при его повороте не будет меняться, а значит abs(a) = abs(b)
значит эти векторы не могут образовать треугольник на разности углов больше 90, только касательные

вот еще кое что: при повороте вектора b на 180 градусов, вектор a будет параллелен вектору b, никакого треугольника здесь не будет

Что делать? =-(

akkolt добавил:
Реализация рассыпается на глазах

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

Отредактировано akkolt, 25.06.2010 в 19:25.
Старый 25.06.2010, 19:27
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 13:16.