Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование в широком смысле слова > Математика

Математика Методы математического моделлирования, программирование математических концепций, роль математики в создании игр

Ответ
 
Опции темы
Старый 07.01.2013, 17:10   #1
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Хлопушка(геометрия)

http://forum.boolean.name/showthread.php?t=17727
Продублирую данную тему в этом разделе, так как, видимо, в разделе Blitz3D я уже ничего не добьюсь. Повторюсь: у меня есть хлопушка, наклонённая под некоторым углом по осям X и Z, необходимо, чтобы она стреляла туда, куда направлена. Кто разбирается, подскажите, правильно ли я расчитывал, чтобы уже точно определить местонахождение проблемы: в моих расчётах или в Blitz-е.
Исходник приклеивать, думаю, нет смысла, так как спрашиваю исключительно геометрию.



OD - вектор скорости и, соответственно, направление хлопушки
AC = OB - проекции вектора OD на ось Z
OA = BC - проекции вектора OD на ось X
DC - проекция вектора OD на ось Y
∠DBC соответствует повороту хлопушки вокруг оси Z
∠DAC соответствует повороту хлопушки вокруг оси X

Как я решал(подскажите, что не так, потому что я, вероятно, где-то ошибся):

AC ⊥ OA, AC - проекция AD ⇒ AD ⊥ OA(по теореме о 3-х перпендикулярах)
BC ⊥ OB, BC - проекция BD ⇒ BD ⊥ OB(по теореме о 3-х перпендикулярах)

AD² = AC² + CD²
OD² = AD² + OA²

1) OD² = AC² + CD² + OA²

Получилось что-то вроде всем известного уравнения длины вектора в пространстве, заданной проекциями:

v² = x² + y² + z²

Далее:

AD² = AC² + CD²
AC = AD * Cos∠DAC

2) AC² = (AC² + CD²) * Cos²∠DAC

Аналогично:

BD² = BC² + CD²
BC = BD * Cos∠DBC

3) BC² = (BC² + CD²) * Cos²∠DBC

Вот мы получили систему уравнений, выделенных красным цветом. Далее следует очень нудная подстановка, в которой явно никто не захочет разбираться. Вопрос, повторяюсь, состоит в том, правильно ли я выводил формулы, и эти ли формулы необходимы для описания выстрела хлопушки? Просто пока ничего нормально не работает... Если нужно, я всё-таки могу написать, как вычислять отсюда проекции...
__________________
(Offline)
 
Ответить с цитированием
Старый 07.01.2013, 20:04   #2
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Хлопушка(геометрия)

point = CreatePivot()
ball = CreateSphere(32,point)
RotateEntity(point,0,34,21)

U#=50
g#=10
a = 30
t#=0
repiat
t=t+.01

Y# = U*sin(a) - g*t*t/2;
Z# = U*cos(a);
PositionEntity(ball,0,Y#,Z#)
;****
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 08.01.2013, 05:00   #3
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Хлопушка(геометрия)

Здесь, как я понял, шар будет двигаться по локальным координатам пивота. Я пытаюсь сделать движение исключительно в глобальных.
Поэтому я и решил написать именно в этот раздел, чтобы не было привязки к конкретному языку программирования.
__________________

Последний раз редактировалось Devilox, 08.01.2013 в 06:27.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 21:18.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com