Да да, конструкция работает) еще раз спасибо)
Еще вопрос можно?
Параметры элипса задаются через html форму, а возможно сделать так что бы к ним не было доступа со стороны пользователя, и задавались они вручную в теле самого скрипта?
Я полагаю это позволило бы сократить вот это html строчку:
<body onload="ellipse('luna','planeta',x0,y0,document.getElementById('alpha0').value,document.getElementById('a1').value,document.getElementById('b1').value ,document.getElementById('omega1').value)">
И проще было бы разобрать с тем как к событию onload (которое насколько мне известно может применяться только один раз), подключить несколько функций.
Вот вариант который имею на данный момент:
<!DOCTYPE html>
<html>
<head>
<title>Движение по эллипсу</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script>
var x0=100,y0=100; // центр эллипса
function ellipse(xid,x0,y0,alpha,a,b,omega) // эллиптическая орбита
{
var as=Math.sin(alpha*Math.PI/180);
var ac=Math.cos(alpha*Math.PI/180);
dt=5; // приращение времени
t=0;
//omega - угловая скорость, знак задает направление вращения
var x=a*Math.cos(omega*t); // начальное положение на эллипсе
var y=b*Math.sin(omega*t);
obj=document.getElementById(xid);
obj.style.top=(-x*as+y*ac+y0)+"px";
obj.style.left=(x*ac+y*as+x0)+"px";
setInterval("move(x0,y0,document.getElementById('alpha0').value,document.getElementById('a1').value, document.getElementById('b1').value,document.getElementById('omega1').value)",20)
}
function move(x0,y0,alpha,a,b,omega)// пересчет координат, вызывается из ellipse()
{
t=t+dt;
// x,y - координаты в собственной системе координат
var x=a*Math.cos(omega*t);
var y=b*Math.sin(omega*t);
var as=Math.sin(alpha*Math.PI/180);
var ac=Math.cos(alpha*Math.PI/180);
obj.style.top=(-x*as+y*ac+y0)+"px"; // переход в экранную систему координат
obj.style.left=(x*ac+y*as+x0)+"px";
obj.style.zIndex = y < 0 ? -1 : 1;
}
</script>
<style>
#planeta {
border-radius: 100%;
background: blue;
height: 200px;
position:absolute;
width: 200px;
}
#luna {
border-radius: 100%;
background: gray;
height: 30px;
position:absolute;
width: 30px;
}
.none {
display: none;
}
</style>
</head>
<body onload="ellipse('luna','planeta',x0,y0,document.getElementById('alpha0').value,document.getElementById('a1').value,document.getElementById('b1').value ,document.getElementById('omega1').value)">
<div id="planeta"></div>
<div id="luna"></div>
<!-- Угол наклона эллипса, град.(альфа) -->
<input class="none" id="alpha0" type="text" value=0 size=4/>
<!-- Большая полуось (a) -->
<input class="none" id ="a1" type ="text" value=140 size=4/>
<!-- Малая полуось (b) -->
<input class="none" id ="b1" type ="text" value=40 size=4/>
<!-- Угловая скорость (омега) -->
<input class="none" id ="omega1" type ="text" value=0.01 size=4/>
</body>
</html>