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

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

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>Но как узнать то же самое у эллипса

длину элипса аналитически нельзя выразить, можно подобрать или воспользоваться каким-либо численным приближением (легко нагуглишь)

>>и без правильных расчетов он будет 80% движений висеть в воздухе

это можно, весь расчет заключается в определении текущего радиуса
Код AS3:
var g2r:Number=Math.PI/180;
var speed:Number=2;
var rW:Number=ball.width/2;
var rH:Number=ball.height/2;
var y0:Number=ball.y-rW;
 
addEventListener(Event.ENTER_FRAME, moving);
 
function moving(e:Event):void {
	ball.rotation+=speed;
	var a:Number=g2r*ball.rotation;
	var rX=rW*Math.cos(a);
	var rY=rH*Math.sin(a);
	var r=Math.sqrt(rX*rX+rY*rY);
	ball.y=y0+r;
	ball.x+=g2r*speed*r;//грубо длина дуги для текущего радиуса
}


Последний раз редактировалось silin; 30.09.2009 в 12:41.
Старый 30.09.2009, 13:27
gnus вне форума Посмотреть профиль Отправить личное сообщение для gnus Найти все сообщения от gnus
  № 12  
Ответить с цитированием
gnus

Регистрация: Feb 2008
Сообщений: 100
Цитата:
длину элипса аналитически нельзя выразить
на http://ru.wikipedia.org/wiki/%D0%AD%...B8%D0%BF%D1%81 есть точная и приближённая формулы для периметра эллипса.
__________________
http://komimap.ru

Старый 30.09.2009, 13:29
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 13  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А... в смысле нужно было рассчитать смещение точки вокруг которой элипс вращается, если дано, что он должен двигаться строго горизонтально вправо?
Ну тогда да, мой пример не в кассу Но пользуясь тем же примером вы можете рассчитать и это т.как для примера silin'a вам нужно чтобы точка регистрации еллипса была в его центре. А для моего примера вам нужно будет смещать точку трансформации на sin угла помноженый на разность большого и маленького радиусов по абсциссе, а по ординате орибавлять cos того же угла помноженый на ту же разность.
__________________
Hell is the possibility of sanity

Старый 30.09.2009, 14:29
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 14  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от gnus Посмотреть сообщение
на http://ru.wikipedia.org/wiki/%D0%AD%...B8%D0%BF%D1%81 есть точная и приближённая формулы для периметра эллипса.
нет там точной формулы
если ты под формулой эллиптический интеграл имеешь ввиду, так он не берется, только численными методами его посчитать можно

Старый 30.09.2009, 16:19
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 15  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Можно строить касательную проходящую через точку, находить ее угол и поворачивать эллипс на этот угол относительно этой точки, после поворота опустить эллипс по Y на разность между Y_ткущей и Y_предыдущей точек, и так для каждой точки эллипса (или с интервалом в несколько точек).
__________________
trace("Остановите Землю, я сойду!!!");

Старый 30.09.2009, 22:22
Neirol вне форума Посмотреть профиль Отправить личное сообщение для Neirol Посетить домашнюю страницу Neirol Найти все сообщения от Neirol
  № 16  
Ответить с цитированием
Neirol
 
Аватар для Neirol

Регистрация: Sep 2009
Адрес: X = 10, Y = 420, Z = -35
Сообщений: 52
Отправить сообщение для Neirol с помощью ICQ Отправить сообщение для Neirol с помощью Skype™
Цитата:
Сообщение от dimarik Посмотреть сообщение
Вот это мне понравилось больше всего.
А дальше читать лень? В следующий раз не флуди и умничай только если прочитал сообщение до конца.

silin огромное тебе спасибо за ответ.
Как раз таки найденный радиус можно использовать для того, чтобы рассчитать текущее расстояние за 1 повернутый градус.

Т.е.:
Код AS3:
var g2r:Number = Math.PI / 180;
var speed:Number = 1;
var rW:Number = ball.width / 2;
var rH:Number = ball.height / 2;
var y0:Number = ball.y - rW;
 
addEventListener(Event.ENTER_FRAME, moving);
 
function moving(e:Event):void {
	var a:Number = g2r * ball.rotation;
	var rX = rW * Math.cos(a);
	var rY = rH * Math.sin(a);
	var r = Math.sqrt(rX*rX + rY*rY);
	ball.y = y0 + r;
	ball.x += 2 * Math.PI * r / 360 * speed;
	ball.rotation += speed;
}
Но в результате по Y он все такие немножко при подъеме не совпадает.
Вложения
Тип файла: rar oval2.rar (1.4 Кб, 63 просмотров)
__________________
Рожденный ползать, везде пролезет...

Старый 30.09.2009, 23:10
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 17  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
не совпадает потому, что у тебя там не эллипс, а овал
разница есть, и если она тебе не ведома, то сходи по ссылкам, что дал dimarik (вместо того чтобы огрызаться не по делу)

Старый 30.09.2009, 23:30
Neirol вне форума Посмотреть профиль Отправить личное сообщение для Neirol Посетить домашнюю страницу Neirol Найти все сообщения от Neirol
  № 18  
Ответить с цитированием
Neirol
 
Аватар для Neirol

Регистрация: Sep 2009
Адрес: X = 10, Y = 420, Z = -35
Сообщений: 52
Отправить сообщение для Neirol с помощью ICQ Отправить сообщение для Neirol с помощью Skype™
Ну так я все правильно значит имел ввиду (судя по ссылкам с википедии).
А wvxvw просто попутал разные фигуры и своим статусом супер модератор заставил изменить мое мнение моментально
И в коде у меня тоже получается эллипс
(сужу по картинке из вики по эллипсу)
__________________
Рожденный ползать, везде пролезет...

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

Теги
вращение , как , реалистичное
Опции темы
Опции просмотра

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

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


 


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


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