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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.03.2012, 17:20
PlutDem вне форума Посмотреть профиль Отправить личное сообщение для PlutDem Найти все сообщения от PlutDem
  № 31  
Ответить с цитированием
PlutDem
 
Аватар для PlutDem

Регистрация: Feb 2012
Сообщений: 212
Wolsh
Люфт? Что он из себя представляет? Вертел объект на 1 градус в цикле 360 000 раз и никакого изменения координат не было. Правда я храню координаты в отдельном Point и уже после всех манипуляций присваиваю его координаты объекту.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Вертел объект на 1 градус в цикле 360 000 раз
В цикле? А при чем тут цикл? Покрути на 30° по ENTER_FRAME.
Надо было мне всетаки тест выложить, а не просто класс и SWF)) Скажем, если в этом тесте (SWF который я выложил) убрать из класса раунды, то через 2-5 секунд белая точка уползет из-под черной примерно на 5-10 пикселей.
Этот вопрос вообще такой неоднозначный оттого, что каждый тестит по-своему под свою задачу. Задачи действительно очень разные по смыслу. Кому-то надо один раз программно повернуть объект в момент отображения и так оставить. Кому-то надо постоянно крутить объект вокруг одной и той же точки, например стрелку часов. Кто-то представляет интерфейс как "rotation" а не "rotate", то есть считает удобным задать конечный угол "от нуля", а не "доворачивать" объект от его текущего состояния. Сажем, для инструмента в графическом редакторе, позволяющем поворачивать редактируемый объект относительно любой "центральной" точки (transformation point) необходим именно такой "доворот", поскольку он позволяет делать последовательное изменение положения и поворота относительно разных точек (см. SWF). Это наиболее общий по решаемой задаче код. Для конкретных ограниченных ситуаций он может быть сокращен и в три раза.
__________________
Reality.getBounds(this);

Старый 08.03.2012, 13:42
PlutDem вне форума Посмотреть профиль Отправить личное сообщение для PlutDem Найти все сообщения от PlutDem
  № 33  
Ответить с цитированием
PlutDem
 
Аватар для PlutDem

Регистрация: Feb 2012
Сообщений: 212
После долгих раздумий решил вертеть так:
Код AS3:
public function objRotate(angle:Number) : void{
 
    var matrix:Matrix = bsMatrix.clone();
 
    matrix.translate( -objLocRotatingPoint.x, -objLocRotatingPoint.y );// смещаем начальную матрицу на локальные коордиаты
    matrix.rotate( (this.rotation+angle) * GL.RAD );// новое вращение = старое + доворот * Math.PI/180
    matrix.translate( objGlobRotatingPoint.x, objGlobRotatingPoint.y );//смещаем начальную матрицу на глобальные коордиаты
 
    this.transform.matrix = matrix;
}
Пусть и пришлось хранить в свойствах вращаемого объекта помимо глобальных координат точки вращения еще и его начальную матрицу и локальные координаты точки вращения, зато можно быть уверенным, что через несколько сотен тысяч вращений ничего и никуда не убежит и не сместиться.

Старый 15.01.2014, 23:28
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 34  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Целый день сегодня я пытался объяснить человеку, что мною позаимствованный в этой теме, код, работает без слётов, как часы. Но решив ускорить вращательный момент, чтобы приблизится к тому времени, по истечению которого, у человека, которому я пытался помочь, слетала картинка... И раз, она и вправду слетела. И теперь у меня точно такой же вопрос - правда чтоль не реально сделать вращение без слётов??)
Код использовал Wolsh'a.
rotate3.swf   (38.5 Кб)
Вложения
Тип файла: swf rotate3.swf (38.5 Кб, 222 просмотров)

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

Теги
rotation
Опции темы
Опции просмотра

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

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


 


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


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