Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Подскажите формулу движения из точки А в точку Б (http://www.flasher.ru/forum/showthread.php?t=97632)

Dragon rideR 26.06.2007 10:19

Подскажите формулу движения из точки А в точку Б
 
Подскажите формулу движения из точки А в точку Б, только чтобы движение проходило с РАВНОЙ скоростью. Пользовался формулой из исходников
Код:

move_from_x=(move_from_x+move_to_x)/2
Но при ее использовании скорость движения идет с понижением от начала к концу :(

CorC 26.06.2007 10:28

Код:

mc._x=A+(B-A)*time/TotalTime;
0<time<TotalTime

†‡Paladin‡† 26.06.2007 13:10

Код:

var speed:Number = 5;
var dx:Number = target._x - object._x;
var dy:Number = target._y - object._y;
var angle:Number = Math.atan2(dy, dx);
var vx:Number = Math.cos(angle) * speed;
var vy:Number = Math.sin(angle) * speed;
arrow._x += vx;
arrow._y += vy;


Dragon rideR 26.06.2007 13:57

Цитата:

Сообщение от †‡Paladin‡†
Код:

var speed:Number = 5;
var dx:Number = target._x - object._x;
var dy:Number = target._y - object._y;
var angle:Number = Math.atan2(dy, dx);
var vx:Number = Math.cos(angle) * speed;
var vy:Number = Math.sin(angle) * speed;
arrow._x += vx;
arrow._y += vy;


Хороший вариант, только изза погрешности сложно определить конец цикла

†‡Paladin‡† 26.06.2007 16:11

Код:

var speed:Number = 5;
var dx:Number = target._x - object._x;
var dy:Number = target._y - object._y;
var angle:Number = Math.atan2(dy, dx);
var vx:Number = Math.cos(angle) * speed;
var vy:Number = Math.sin(angle) * speed;

if(Math.abs(Math.sqrt(dx * dx + dy * dy)) < speed)
{
  object._x = target._x;
  object._y = target._y;
}
else
{
  object._x += vx;
  object._y += vy;
}



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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.