Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Движение по эллипсу

337
26 ноября 2006 года
shine
719 / / 09.06.2006
Есть страничка с двигающимися по эллипсу линками. Движение сделано на JavaScript.
[HTML]<html>
<head>
<style type="text/css">

body div
{
position: absolute;
}

</style>
<script language="javascript" type="text/javascript">
var rad = 200;
var k=0.3;

var xoff = 300;
var yoff = 100;

var pi = Math.PI;
var inc = pi/300;

var t=0;
var t2=2*pi/3;
var t3=4*pi/3;

function updateTime()
{
var x1= (rad*Math.cos(t)) + xoff;
var y1= (rad*k*Math.sin(t)) + yoff;

var x2= (rad*Math.cos(t2)) + xoff;
var y2= (rad*k*Math.sin(t2)) + yoff;

var x3= (rad*Math.cos(t3)) + xoff;
var y3= (rad*k*Math.sin(t3)) + yoff;


t+= inc;
t2+= inc;
t3+= inc;

var divRunner1 = document.getElementById("runner1");
divRunner1.style.top = y1;
divRunner1.style.left = x1;

var divRunner2 = document.getElementById("runner2");
divRunner2.style.top = y2;
divRunner2.style.left = x2;

var divRunner3 = document.getElementById("runner3");
divRunner3.style.top = y3;
divRunner3.style.left = x3;

setTimeout('updateTime();', 25);
}

window.onload=updateTime
</script>
</head>
<body>
<div id="runner1">
<a href="#">first link text</a>
</div>
<div id="runner2">
<a href="#">second link text</a>
</div>
<div id="runner3">
<a href="#">third link text</a>
</div>
</body>
</html>[/HTML]

Вопрос: каким образом я должен поменять формулы изменения координат x и y чтобы эллипс располагался не горизонтально, а под углом к оси x? Посмотрите на приаттаченый файл, там я схематично это изобразил.

Вопрос запостил в общие вопросы, т.к. это скорее относиться к математике чем к программированию.
562
26 ноября 2006 года
tarekon
175 / / 19.08.2003
Вместо
 
Код:
var x1= (rad*Math.cos(t)) + xoff;
var y1= (rad*k*Math.sin(t)) + yoff;

сделать
 
Код:
var x1_t = (rad * Math.cos(t))
var y1_t = (rad * k * Math.sin(t))
var x1 = x1_t * Math.cos(alpha) - y1_t * Math.sin(alpha) + xoff
var y1 = x1_t * Math.sin(alpha) + y1_t * Math.cos(alpha) + yoff

Не проверял, если ошибся - напиши, исправлюсь.
337
26 ноября 2006 года
shine
719 / / 09.06.2006
Все работает. Спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог