|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.09.2012, 20:04 | #1 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Траектория полета тела брошенного под углом к горизонту в трех измерениях.
Добрый вечер. Вопрос следующий. Есть формула для описания траектории полета тела брошенного под углом к горизонту Как будет выглядеть это уравнение в пространстве? При этом нужно учитывать, что мне нужно узнать: пересекает ли траектория куб и т.д. Так же чтобы можно было использовать для моделирования полета мяча. В 2D вариант уже есть. В нем я пользовался формулой приведенной выше.
Заранее благодарю. |
26.09.2012, 20:17 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Чем пространство отличается от плоскости? Правильно, как минимум - наличием третьей координаты Z!=0 (кстати, Ваше уравнение обычно записывается системой вместе с Z=0).
По-идее, y - это проекция траектории на плоскость XoY, x - проекция на плоскость XoZ - прямая линия. Проекция на YoZ будет описываться таким же уравнением, только вместо X пишите Z. При этом, если углы Альфа будут равны в обоих проекциях, то прямая X идет под 45 градусами к осям Y и Z (проекции на плоскости одинаковы). В общем, как-то так.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 26.09.2012 в 20:19. |
18.10.2012, 20:05 | #4 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Не получается никак реализовать. Предположим следующее. В моем распоряжении есть вектор(в пространстве), который указывает направление полета. Т.е. можно узнать угол и проекцию траектории на ось XoZ, это как раз и есть прямая. Каким образом мне делать правильную скорость этого тела по данной прямой? Пусть уравнение будет следующим z=x(45 градусов), тогда, если мы будет изменять координату x на x+1, то получается что скорость под любым углом(в плоскости XoZ) будет различаться. Как исправить?
Рассмотрим другой пример. Уравнение равно не z=x (45 градусов) а z=0 т.е. траектория совпадает с осью Z. А ведь мы изменяем координату X. В таком случае мы не сможем сдвинуть объект с места. Если изменять координату Z то понадобится реализовывать мудреную логику. Получится ли как-то сделать это математическим путем? Надеюсь, что объяснения понятны. |
18.10.2012, 21:01 | #5 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Объянения понятны, но это еще фигня! представьте, что проекция на XoZ не прямая, а такая же парабола (например, боковой ветер дул и сносил тело вбок). так что там может быть любая функция на самом деле... А насчет остальново - справедливое замечание, надо подумать...
UPD 1 При Z=0 (так же, как и при X=0 или Y=0) мы получаем частный случай для плоскости (пример которого Вы, кстати, вначале и привели). То есть по сути так. Стоит человек, его ось - это Y (Вертикальная). Ось Z - по направлению взгляда (прямо вперед и назад), ось X - строго направо и налево. Если он отбивает мяч строго прямо, то значение x=0 и уравнение превращается в зависимость Y и Z - то есть действие происходит в плоскости YoZ; если мяч улетает строго направо (налево), то это уже плоскость XoY.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 18.10.2012 в 21:10. |
18.10.2012, 21:15 | #6 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,318
|
Мне представляется это так:
Пусть имеем обычную систему координат с направлениями: X - под 45 гр влево, Y - вправо, Z - вверх. Плоскость X0Y - плоскость горизонта, а Z - высота. И пусть уравнение, приведенное вами описывает полет тела в некоторой плоскости, которая составляет углы с плоскостями X0Z и Y0Z и перпендикулярна плоскости X0Y. Т.е. вид уравнения будет таким: Z = f(t), где t - параметр связанный со временем и проекцией скорости тела на плоскость X0Y: t = Vx0y * T. Тут T - время. Тогда координата по Z получается из приведенного уравнения, а координаты по X и Y получаются как x=t*sin(a) и y=t*cos(a), где a - угол между осью 0X и проекцией вектора скорости на плоскость X0Y - азимут. Значение проекции скорости на горизонтальную плоскость постоянно. И ещё. Изображение в картинной плоскости будет изменяться в зависимости от выбранного типа проекции. Например, соотношение перемещений по осям X и Z может быть одинаковым, а по оси X в два раза меньше (например при расчете размера того же мяча) Как-то так ...
Как-то так, ...
|
06.01.2013, 11:57 | #7 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Спасибо. Предположим следующее. Ось X идет влево перпендикулярно вектору Вашего взгляда, ось Z параллельно с отрицательным направлением(т.е., чем дальше от Вас, тем меньше координата), а Y вверх. Короче, начальное положение системы в OpenGL. Итак, я слепил такой код, но он как-то не правильно функционирует. Иногда нормально, а иногда шар откланяется от вектора взгляда выше или ниже, т.е. получается угол различен. Можно сказать, что он два раза пересекает прямую, образованную вектором взгляда. Описал движение следующим образом:
z'=z*cos(alpha)*t(равномерное прямолинейное движение) x'=x*сos(alpha)*t(равномерное прямолинейное, но, учитывая две координаты, по плоскости) y'=y*sin(alpha)-0.5*g*t Реализация у меня в виде класса. Инициализацию можно убрать в конструктор, но пока важно найти ошибку. Надеюсь на то, что она очевидная, и я просто не могу заметить. Может что-то не так высчитываю. В общем вот описание класса: Код:
Код:
Код:
Последний раз редактировалось _PROGRAMM_; 06.01.2013 в 12:09. |
06.01.2013, 12:02 | #8 | |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Предыдущее сообщение я написал вчера, но забыл отправить. С трудом до меня ночью дошло. Зачем я умножаю на sin или cos в следующем фрагменте?
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Уравнение движения тела, брошенного под углом к горизонту | _PROGRAMM_ | Помощь студентам | 4 | 20.04.2012 18:13 |
Движение тела, брошенного под углом к горизонту с учетом сопротивления | Encore | Помощь студентам | 0 | 03.04.2011 20:34 |
Движение тела, брошенного под углом к горизонту | Medik07 | Общие вопросы C/C++ | 1 | 17.03.2011 22:28 |
Тело, брошенное под углом к горизонту | blackberryx | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 14.05.2009 01:43 |
Движение тела под углом | Lemo | Помощь студентам | 6 | 05.04.2009 14:49 |