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 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
HGL
Phased out.
offline
Опыт:
25,976Активность: |
у меня таки есть подозрение что при изменении расстояния между точкой пересечения векторов и центром окружности можно добиться например одинакового угла при разном взаимном расположении точек если я прав, то здесь недостаточно данных впрочем, 04:23. есть вероятность что мне просто пора спать |
25.06.2010, 04:24 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
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 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
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 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
truth troll
Silenced by truth troll
offline
Опыт:
7,396Активность: |
|
25.06.2010, 14:53 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
akkolt
offline
Опыт:
13,826Активность: |
truth troll, и? я теперь и сам знаю, как найти длину. =-)
Как найти точку B? akkolt добавил: А нет, не знаю, AC же не известно =-( |
25.06.2010, 14:58 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
truth troll
Silenced by truth troll
offline
Опыт:
7,396Активность: |
Это я должен искать? =))
truth troll добавил:
Всё это через прямоугольный треугольник вычисляется... truth troll добавил: А вообще мне кажется, что там не зря вектор а известен... |
25.06.2010, 15:07 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
akkolt
offline
Опыт:
13,826Активность: |
truth troll, я уже все это прочитал )
Цитата:
Нет, не находится, известен только один катет, гипотенуза не известна... akkolt добавил: Цитата:
truth troll, ну конечно не зря, радиус окружности напрямую зависит от абсолютной величины a |
||
25.06.2010, 15:10 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
truth troll
Silenced by truth troll
offline
Опыт:
7,396Активность: |
akkolt,
зато известны все углы... ну там, синус или косинус... понимаешь о чём я... =) |
25.06.2010, 15:14 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Артте
Open up your eyes
offline
Опыт:
23,373Активность: |
что есть вектор А, а что есть вектор Б? Граничные точки напиши.
Артте добавил:
"от руки", каким кажется этот рисунок, здесь явно не подходит Артте добавил: trld, к слову, всех данных хватает |
25.06.2010, 15:24 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
akkolt
offline
Опыт:
13,826Активность: |
вектор a и b - векторы скорости
точка A - положение тела в начале; точка B - положение тела в конце окружность - траэктория разворота akkolt добавил: Артте, т.е. у них произвольны граничные точки |
25.06.2010, 15:38 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
akkolt
offline
Опыт:
13,826Активность: |
Вообще, условие вот какое:
Тело движется прямолинейно со скоростью a в точке A оно решило повернуть на ф градусов (разворот должен осуществляться по окружности, т.к. ни одно тело не может развернуться мгновенно. Данная окружность - траектория разворота. Если логично подумать, Величина радиуса окружности должна зависеть от величины приложенной скорости a Нужно определять положение точки B (в данный момент разворота), длину пройденного расстояния по дуге и угол разворота в данный момент времени. На протяжении всего разворота, объект может развернуться и на 720 градусов |
25.06.2010, 15:41 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
truth troll
Silenced by truth troll
offline
Опыт:
7,396Активность: |
Так это всё меняет... |
25.06.2010, 16:02 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
akkolt
offline
Опыт:
13,826Активность: |
хмм, x0 и y0 - с пифагором можно поизвращаться )
akkolt добавил: и тригонометрией |
25.06.2010, 16:10 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
truth troll
Silenced by truth troll
offline
Опыт:
7,396Активность: |
akkolt, да, там ещё альфу надо правильно найти, если что... |
25.06.2010, 16:14 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Артте
Open up your eyes
offline
Опыт:
23,373Активность: |
альфа есть фи
Артте добавил:
хотя не, вру наверно, надо подумать Артте добавил: хотя, по-моему так оно и есть |
25.06.2010, 16:19 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
truth troll
Silenced by truth troll
offline
Опыт:
7,396Активность: |
да, Альфа это Фи... |
25.06.2010, 16:24 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
akkolt
offline
Опыт:
13,826Активность: |
Спасибо, завтра примусь решать Пока готовлюсь к экзамену
Хотя, может кто то уже писал подобный алгоритм? для физики к примеру ^^ буду приятно удивлен, если выложите =-) |
25.06.2010, 16:31 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
truth troll
Silenced by truth troll
offline
Опыт:
7,396Активность: |
akkolt, upload.wikimedia.org/math/b/7/a/b7a4098d1c89d0eba6dd86905be72f18... =) надеюсь ты понял, что по этой формуле надо... |
25.06.2010, 16:36 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
akkolt
offline
Опыт:
13,826Активность: |
Понял, жаль здесь комплексы и двойные уравнения не прокатят, компьютер не умеет их считать, на сколько мне известно
akkolt добавил: Цитата:
Не правильный рассчет, тут его длина изменяется относительно 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 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|