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

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

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

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

Ответ
 
Опции темы
Старый 18.04.2011, 08:25   #1
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений
(для 32 пользователей)
Помогите составить формул

Помогите составить формулу
я пробовал так
x=x+cos()
y=y+sin()
мне надо чтобы обьект двигался по вектору т.е даны начальные кординаты и кордининаты клика мыши
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
(Offline)
 
Ответить с цитированием
Старый 18.04.2011, 11:56   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Помогите составить формул

как-то так:
movementVector = mousePos - objectPos;
movementDirection = movementVector.Normalized;
objectPos += movementDirection * movementSpeed;

UPD:
movementVectorX = mousePosX - objectPosX
movementVectorY = mousePosY - objectPosY
moveLength = sqrt(movementVectorX^2 + movementVectorY^2 )
movementDirectionX = movementDirectionX / moveLength
movementDirectionY = movementDirectionY / moveLength

движение:
objectPosX = objectPosX + movementDirectionX * movementSpeed
objectPosY = objectPosY + movementDirectionY * movementSpeed

Последний раз редактировалось pax, 18.04.2011 в 13:29.
(Offline)
 
Ответить с цитированием
Старый 18.04.2011, 13:16   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Помогите составить формул

x=x+cos(q)*w
y=y+sin(q)*w
где q=atan2(Vy,Vx), w - скорость движения.
где Vy и Vx - компоненты вектора V.
Их можно получить как разность между соответствующими координатами клика и начала.
внимание - порядок следования (ордината,абсцисса) аргументов в atan2 может отличаться в разных ЯП

Надо аккуратно проследить за типом переменной (по идее координата должна быть с плавающей точкой, хотя и визуализация происходит как правило на дискретном поле пикселей - иначе будут потери малых приростов и неподвижная точка).
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
psih1 (18.04.2011), Reizel (18.04.2011)
Старый 18.04.2011, 16:36   #4
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений
(для 32 пользователей)
Ответ: Помогите составить формул

atan это перевод из радиан тангенса в градусы а вот для чего аргумент 2 atan2?
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
(Offline)
 
Ответить с цитированием
Старый 18.04.2011, 16:49   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Помогите составить формул

atan2 рассчитывает угол из отношения координат вектора

Сообщение от psih1 Посмотреть сообщение
atan это перевод из радиан тангенса в градусы

Последний раз редактировалось pax, 18.04.2011 в 17:57.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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