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

Вернуться   Форум Flasher.ru > Блоги

Аватар для ZackMercury

Движение по окружности: Now some fun stuff!

Запись от ZackMercury размещена 26.12.2018 в 23:12
Немножечко пошалим с разными функциями: движение по окружности с помощью тригонометрических функций описывается с помощью одной переменной t и параметрической функции двух параметров x=rcos(t), y=rsin(t).
Движение по окружности способом, который описал я описывается с помощью вектора скорости(из одной компоненты) - speed.
Почему я назвал speed вектором?
Вектором принято считать любую конструкцию, которая имеет величину и направление. Так как speed может описывать как движение
...
Старый
 
Размещено в Без категории
Комментарии 0 ZackMercury вне форума
Аватар для ZackMercury

Оптимизация движения по окружности

Запись от ZackMercury размещена 26.12.2018 в 21:06
Обновил(-а) ZackMercury 26.12.2018 в 21:18
Нормализация вектора включает извлечение квадратного корня для получения его длины и деление компонентов на его длину. Корни - чуть(почти в 2 раза) менее затратная операция, чем тригонометрия. Да, мы делаем её дважды, точно также, как дважды мы вызываем тригонометрическую функцию (sin - 1 и cos - 2).
Поэтому наш алгоритм должен работать в 2 раза более производительно, чем использование тригонометрической функции.

Однако, возможно улучшить производительность ещё в 2 раза, ...
Старый
 
Размещено в Без категории
Комментарии 0 ZackMercury вне форума
Аватар для ZackMercury

Движение по кругу без тригонометрии

Запись от ZackMercury размещена 21.12.2018 в 22:39
Название: Снимок.PNG
Просмотров: 3129

Размер: 17.6 Кб

Код AS3:
var greenBallCoords:Point = new Point(greenBall.x, greenBall.y);
var r:Point = new Point();
 
var v:Point = new Point();
var speed:Number = 5;
 
function update(e:Event = null)
{
	r.x = blueBall.x;
	r.y = blueBall.y;
	r = r.subtract(greenBallCoords);	
	v.x = r.y;
	v.y = -r.x;
	v.normalize(speed);
 
	blueBall.x += v.x;
	blueBall.y += v.y;
...
Старый
 
Размещено в Без категории
Комментарии 0 ZackMercury вне форума

 


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


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