Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.07.2007, 01:45
StreetPeople вне форума Посмотреть профиль Отправить личное сообщение для StreetPeople Посетить домашнюю страницу StreetPeople Найти все сообщения от StreetPeople
  № 1  
Ответить с цитированием
StreetPeople
 
Аватар для StreetPeople

Регистрация: Jun 2007
Адрес: Королёв, МО
Сообщений: 34
Отправить сообщение для StreetPeople с помощью ICQ
Question Вопрос физикам - отрицательное равномерное ускорение

Дано:
  1. Начальная скорость
  2. Путь
  3. Время прохождения при равномерном движении

Найти:
Коэффицент на который нужно делить|вычитать "скорость" (которая вычитается из <объекта._x>) чтобы объект двигался с отридцательным ускорением и в конце концов остановился в заданной точке X, по оси абсцисс.

Код:
name_mc._x = Stage.width;
//ПЕРВОНАЧАЛЬНАЯ ПОЗИЦИЯ ОБЪЕКТА
name_mc.NewPositionX = 0;
//ЭТО И ЕСТЬ ТА САМАЯ ТОЧКА X В КОТОРОЙ ДОЛЖЕН ОКАЗАТЬСЯ ОБЪЕКТ
var interval:Number = 1;
//интервал
var BeginSpeed:Number = 10;
//Начальная скорость
var Speed:Number = BeginSpeed;
//Меняющаяся скорость
if (name_mc._x > name_mc.NewPositionX) {
	long = name_mc._x - name_mc.NewPositionX;
	//Длина пути
} else if (name_mc._x < name_mc.NewPositionX) {
	long = name_mc.NewPositionX - name_mc._x;
	//Длина пути
}
t = long / BeginSpeed * interval;
//Время движения = путь / (Скорость*Время)
/***************************************************************************/
function setNewPosition (object) {
	if ((object._x <= object.NewPositionX + Speed) && (object._x >= object.NewPositionX - Speed)) {
		//ЭТА КОНСРУКЦИЯ IF ИСКЛЮЧАЕТ ДРОЖАНИЕ ОБЪЕКТА
		object._x = object.NewPositionX;
		clearInterval (object.interval);
	} else {
		if (object._x > object.NewPositionX) {
			object._x -= Speed;
		} else if (object._x < object.NewPositionX) {
			object._x += Speed;
		}
		/*СКОРОСТЬ МЕНЯЕТСЯ ЗДЕСЬ, ПОДСКАЖИТЕ ПЛИЗ ФОРМУЛУ*/ 
		//				Speed/=<НЕКИЙ КОЭФИЦЕНТ>;//ИЛИ
		//				Speed-=<НЕКИЙ КОЭФИЦЕНТ>;//ИЛИ
		trace (Speed);
	}
}
/***************************************************************************/
name_mc.interval = setInterval (setNewPosition, interval, name_mc);
name_mc - это объект, который двигается

Вроде эта задачка из курса физики, равномерное ускорение


Если перефразировать то: скорость должна уменьшаться от ПЕРВОНАЧАЛЬНОЙ скорости(в ПЕРВОНАЧАЛЬНОЙ ТОЧКЕ), до примерно НУЛЯ(в КОНЕЧНОЙ ТОЧКЕ)
__________________
Шаг вперёд, является результатом пинка сзади


Последний раз редактировалось iNils; 14.07.2007 в 05:26.
Старый 14.07.2007, 05:59
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
u - конечная скорость
u0 - начальная скорость
a - устроение
x - путь

a = (u * u - u0 * u0) / (2 * x)
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 14.07.2007, 07:19
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 3  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
v - начальная скорость
a - искомое устроение
s - перемещение

Скорость в конечной точке равна 0:
v + a*t = 0; откуда следует
v = -a*t;
a = - v/t;
уравнение движения:
s = v*t + a*t*t/2;
подставляем a:
s = v*t - v*t/2; то есть
2*s = v*t;
t = 2*s/v;
подставляем t:
v = -a*2*s/v;
v*v = -a*2*s;
a = -v*v/(2*s);
a = -.5*v*v/s;
Все правильно.

Старый 17.07.2007, 14:25
Ведьмак вне форума Посмотреть профиль Отправить личное сообщение для Ведьмак Посетить домашнюю страницу Ведьмак Найти все сообщения от Ведьмак
  № 4  
Ответить с цитированием
Ведьмак
 
Аватар для Ведьмак

Регистрация: May 2007
Адрес: Минск, Беларусь
Сообщений: 347
Отправить сообщение для Ведьмак с помощью ICQ Отправить сообщение для Ведьмак с помощью Yahoo
уух... а чем easyOut не угодил? если это только не что-то совсем спецефическое...

Старый 17.07.2007, 14:32
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 5  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от Ведьмак
уух... а чем easyOut не угодил? если это только не что-то совсем спецефическое...
Вы про Tween? А там можно настроить ускорение?

Старый 27.07.2007, 00:58
StreetPeople вне форума Посмотреть профиль Отправить личное сообщение для StreetPeople Посетить домашнюю страницу StreetPeople Найти все сообщения от StreetPeople
  № 6  
Ответить с цитированием
StreetPeople
 
Аватар для StreetPeople

Регистрация: Jun 2007
Адрес: Королёв, МО
Сообщений: 34
Отправить сообщение для StreetPeople с помощью ICQ
А что такое easyOut???
Что, есть встроенный метод реализации ускорения ???
__________________
Шаг вперёд, является результатом пинка сзади

Старый 27.07.2007, 12:30
Ведьмак вне форума Посмотреть профиль Отправить личное сообщение для Ведьмак Посетить домашнюю страницу Ведьмак Найти все сообщения от Ведьмак
  № 7  
Ответить с цитированием
Ведьмак
 
Аватар для Ведьмак

Регистрация: May 2007
Адрес: Минск, Беларусь
Сообщений: 347
Отправить сообщение для Ведьмак с помощью ICQ Отправить сообщение для Ведьмак с помощью Yahoo
2 Kikasso: нет, настроить ускорение нельзя, и вы об этом знаете..

но если не нужно делать точную физическую модель, то для получения подобного эффекта easyOut.Regular и easyOut.Strong вполне могут подойти...

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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