forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Математика (http://forum.boolean.name/forumdisplay.php?f=85)
-   -   Помогите составить формул (http://forum.boolean.name/showthread.php?t=14605)

psih1 18.04.2011 08:25

Помогите составить формул
 
Помогите составить формулу
я пробовал так
x=x+cos()
y=y+sin()
мне надо чтобы обьект двигался по вектору т.е даны начальные кординаты и кордининаты клика мыши

pax 18.04.2011 11:56

Ответ: Помогите составить формул
 
как-то так:
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

impersonalis 18.04.2011 13:16

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

Надо аккуратно проследить за типом переменной (по идее координата должна быть с плавающей точкой, хотя и визуализация происходит как правило на дискретном поле пикселей - иначе будут потери малых приростов и неподвижная точка).

psih1 18.04.2011 16:36

Ответ: Помогите составить формул
 
atan это перевод из радиан тангенса в градусы а вот для чего аргумент 2 atan2?

pax 18.04.2011 16:49

Ответ: Помогите составить формул
 
atan2 рассчитывает угол из отношения координат вектора

Цитата:

Сообщение от psih1 (Сообщение 186273)
atan это перевод из радиан тангенса в градусы

:4to:


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot