Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Равномерное движение по кривой (http://www.flasher.ru/forum/showthread.php?t=135567)

prizrak.pro 26.01.2010 15:34

Равномерное движение по кривой
 
Есть кривая, построенная кривыми Безье. Как заставить по ней двигаться точку.
Я сделал это формулами Безье.

Код AS3:

 
t1=t1+0.02;               
xm=Math.round(((1-t1)*(1-t1)*x0)+(2*t1*(1-t1)*x1)+(t1*t1*x2));
ym=Math.round((((1-t1)*(1-t1))*y0)+(2*t1*(1-t1)*y1)+((t1*t1)*y2));

А саму кривую я построил graphics.curveTo

Есть одна загвоздка точка движеться не равномерно, на прямолинейных участках она ускоряется.

Может кто то делал что то подобное. Нужно сделать что бы автомобиль двигался по серпантину(извилистой дороги).

Alex Lexcuk 26.01.2010 15:50

Вспомнил, я ж такое делал (да просто точки безье сунуть в массив, а потом из массива достать точки с одинаковыми расстояними между ними)
http://alex.lexcuk.pochta.ru/swf/train_doc.swf
http://alex.lexcuk.pochta.ru/swf/train.zip

prizrak.pro 26.01.2010 16:01

Великолепно! Пример в самую точку именно это и искал. Но вторая ссылка не работает. Если можно ещё раз.
А про массив я так и думал сделать, значит это правильно. Спасибо.

Alex Lexcuk 26.01.2010 16:10

Вложений: 1
Странно, загрузил по второй ссылке zip, ладно пусть во вложении будет.

prizrak.pro 26.01.2010 16:16

А это в FlashDevelop?

Alex Lexcuk 26.01.2010 16:24

Это не имеет принципиального значения. Ну вообще да.

http://www.murmadillo.tut.su/html/flash-soft.html

prizrak.pro 26.01.2010 16:35

Спасибо, посмотрю.

silin 26.01.2010 23:45

не обязательно в массиве держать, можно и считать - http://bezier.ru/
куда-то делись все ссылки на исходный Path Iv'а, но там решалась именно эта задача - равномерное движение по кривой (т.е. нахождение точки на кривой)
вот пример с его использованием
вот еше гугл дал http://www.gotoandplay.it/_articles/.../pathClass.php, очень похоже на то что Iv публиковал изначально

prizrak.pro 27.01.2010 00:15

Спасибо. Свой изыскания я и начал как раз с этих сайтов. В первом я не нашел исходников.
А вот по второму сайту, я и делал. Но не нашел, где непосредственно происходит передвижение по кривой, обсчет. Точнее там функция, а она уже из библиотеки берется. Я туда не дошел.
Просто я хочу сделать сам, не привлекая сторонние библиотеки. Понят как это делается.

Я как понимаю ваши примеры, уважаемый silin. Спасибо большое, хороший сайт.

Пока разберу примеры, как получиться, отпишусь.

alatar 29.01.2010 03:58

Исходники с bezier.ru можно скачать с помощью SVN
http://bezier.googlecode.com/svn/trunk/


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

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