Показать сообщение отдельно
Старый 30.09.2009, 11:23
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 12  
Ответить с цитированием
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.