|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.09.2009, 13:01 | #1 |
Форумчанин
Регистрация: 10.09.2009
Сообщений: 352
|
Не могу вычислить формулу для расчёта координат камеры
Есть объект (танк), он всегда в центре камеры. Пока клавиши свободно управляют камерой, но надо, чтобы она двигалась по полусфере и объект был всегда в центре. Кто знает формулу, или кто знает, где её достать?
|
16.09.2009, 14:34 | #2 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Ты можешь хотябы схему нарисовать как должна вести себя камера, а то я что-то не понял.
|
16.09.2009, 15:10 | #3 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
В смысле, кто знает формулу?
Есть три координаты (x,y,z). Поскольку детального описания где да что должно быть расположено нет, то предположу, что танк есть точка в пространстве. Эту точку и будем считать началом координат для камеры, коли уж камера привязана к нему. Т.е. камера считает, что танк имеет координаты (0,0,0). Далее в зависимости от того, насколько камера должна быть удалена от танка и рассчитываем координаты камеры. Пусть расстояние от камеры до танка есть R. Тогда поскольку R = sqrt(x*x,y*y,z*z) пересчитываем координаты камеры соответсвенно: при нажатиях клавиш Влево-вправо должны изменяться координаты x и z. при нажатиях клавиш Вверх-вниз должны изменяться координаты y и z. При этом очевидно, что x0*x0 + z0*z0 = x1*x1 + z1*z1, где x0,z0 - значения до применения формулы. x1,z1 - после. А далее вспоминаем, что не учили тригонометрию в школе, поэтому не знаем, зачем нужны функции синуса и косинуса. То бишь, функции синус и косинус ведут себя таким же образом, как и x0,z0,x1,z1. Поэтому со спокойной совестью принимаем, что x0 = L*sin(X0), z0 = L*sin(Z0), x1 = L*sin(X1), z1 = L*sin(Z1). А далее уже либо вы сами дорабатываете, либо говорите мне хотите ли вы изменять положение камеры при нажатии клавиши на какое-то конкретное расстояние в пространстве, либо вам пойдет и так (будете изменять углы на какое-то конкретное значение). |
16.09.2009, 15:55 | #4 |
Форумчанин
Регистрация: 10.09.2009
Сообщений: 352
|
Полное описание
Первый файл - картинка, показвающая полусферу, по поверхности которой должна двигаться камера (не забываем, что смотрит она всегда на танк, но здесь дело уже в расчёте углов, с ним я сам справлюсь). Камера - красная стрелка. Танк - чёрная точка.
На плоскости всё это дело можно расчитать по теореме Пифагора (второй файл). Но я не знаю, как это сделать в пространстве. РАСЧИТАТЬ НАДО КООРДИНАТЫ x,y,z! Тригонометрию я действительно в школе не учил, ибо учусь в девятом классе. |
16.09.2009, 16:13 | #5 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Простите за дезинформацию, я указал формулы неправильно, вот так вот надо:
x0 = L*sin(X0), z0 = L*cos(Z0), x1 = L*sin(X1), z1 = L*cos(Z1) - и это только для первого случая. А вообще я вам вот какой совет лучше дам: В пространстве такой же расчет как и на плоскости, которую в показали. Нюансик только один есть: При нажатии на вверх-вниз, влево-вправо считается по тем формулам, что у вас на втором рисунке, а одна из координат остается неизменной. При этом длина R в пространстве как рассчитывается я привел. Достаточно лишь вести расчеты с L, а не R и при этом держать в уме, что они не равны. //Да, и еще, я себе немного не так плоскости представлял, поэтому вам и здесь придется переделать под себя |
16.09.2009, 16:27 | #6 | |
Форумчанин
Регистрация: 10.09.2009
Сообщений: 352
|
Спасибо
Цитата:
То-есть не пользоваться единой формулой, а лишь изменять две координаты относительно их текущего значения? Я пошёл прогать... |
|
16.09.2009, 16:44 | #7 | ||
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Цитата:
Цитата:
Я написал, то что хотел написать. Я имел ввиду, что Оси координат не так себе рисовал в уме, поэтому плоскости Oxy, Oxz, Oyz не в таком положении представлял, и мои формулы посему вам могут не подойти. Но вы, как я вижу, и сами умеете думать. Поэтому это не проблема. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программу для расчёта площади окружности | Rostbook | Помощь студентам | 14 | 28.06.2009 00:54 |
Нужна программа для расчёта кофигурации обогрева | Shtiever | Фриланс | 3 | 07.06.2009 20:34 |
Как в паскале регистрировать время? формулы расчёта новых координат | Ustim | Помощь студентам | 13 | 05.03.2008 17:44 |
как вычислить формулу? | Sergeus | Microsoft Office Excel | 2 | 26.02.2008 23:56 |