Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   движение картинок по кругу (https://javascript.ru/forum/dom-window/18747-dvizhenie-kartinok-po-krugu.html)

zikworld 13.07.2011 19:32

движение картинок по кругу
 
добрый день, уважаемые!
я начал учить js и наткнулся на проблемму
как создать скрипт в котором бы РАЗНЫЕ картинки перемещались бы по кругу причем количество картинок можно менять...я так понимаю это както с подсчетом угла меджу ними или вроде того
заранее спасибо!

NoResponse 13.07.2011 19:38

круг = 360 градусов
360 / количество картинок

zikworld 13.07.2011 20:07

и как их двигать?

NoResponse 13.07.2011 20:19

прибавлять/отнимать по эн градусов

zikworld 13.07.2011 21:02

я новичек, я даже приблизительно не знаю как из двигать...

NoResponse 13.07.2011 21:19

покажи что не получается - поможем
а то похоже что просишь готовое решение

zikworld 13.07.2011 22:16

<html>
<head>
<style>
.spanstyle
{
 position:absolute;
 visibility:visible;
}
</style>
<script language="JavaScript">
<!--
var xpos=new Array()//Массив x-координаты слоев
var ypos=new Array()//Массив y-координаты слоев
var f=0//Угол поворота
var a=0//переменная остановки
var rx=100//x-координата центра
var ry=100//y-координата центра
var r2=100//Радиус второй окружности движения звёздочек
for (i=0; i<9; i++)
{
 xpos[i]=rx
 ypos[i]=ry
}
//функция прорисовки



function make()
{
//Меняем флаг по условию:
//----
//Располагаем звёздочки по окружности
 c=1.35
//----
//Располагаем второй ряд звёздочек по окружности
//и поворачиваем их относительно центра

if (a==0){
 f=f+0.01
 f1=Math.cos(f)
 f2=Math.sin(f)
 xpos[1]=(rx-r2)*f1-ry*f2-rx*f1+ry*f2+rx
 ypos[1]=(rx-r2)*f2+ry*f1-rx*f2-ry*f1+ry
 xpos[2]=(rx-r2/c)*f1-(ry-r2/c)*f2-rx*f1+ry*f2+rx
 ypos[2]=(rx-r2/c)*f2+(ry-r2/c)*f1-rx*f2-ry*f1+ry
 xpos[3]=rx*f1-(ry-r2)*f2-rx*f1+ry*f2+rx
 ypos[3]=rx*f2+(ry-r2)*f1-rx*f2-ry*f1+ry
 xpos[4]=(rx+r2/c)*f1-(ry-r2/c)*f2-rx*f1+ry*f2+rx
 ypos[4]=(rx+r2/c)*f2+(ry-r2/c)*f1-rx*f2-ry*f1+ry
 xpos[5]=(rx+r2)*f1-ry*f2-rx*f1+ry*f2+rx
 ypos[5]=(rx+r2)*f2+ry*f1-rx*f2-ry*f1+ry
 xpos[6]=(rx+r2/c)*f1-(ry+r2/c)*f2-rx*f1+ry*f2+rx
 ypos[6]=(rx+r2/c)*f2+(ry+r2/c)*f1-rx*f2-ry*f1+ry
 xpos[7]=rx*f1-(ry+r2)*f2-rx*f1+ry*f2+rx
 ypos[7]=rx*f2+(ry+r2)*f1-rx*f2-ry*f1+ry
 xpos[8]=(rx-r2/c)*f1-(ry+r2/c)*f2-rx*f1+ry*f2+rx
 ypos[8]=(rx-r2/c)*f2+(ry+r2/c)*f1-rx*f2-ry*f1+ry
//----
//Изменяем положение каждого слоя
 for (i=0; i<9; i++)
 {
  var thisspan = eval("span"+(i)+".style")
  thisspan.posLeft=xpos[i]
  thisspan.posTop=ypos[i]
 }
//----
//Устанавливаем таймер вызова данной функции
 setTimeout("make()",10)
}
}



//----
//Рисуем слои с идентификаторами от span0 до span9
for (i=0;i<9;i++)
{
 document.write("<span id='span"+i+"' class='spanstyle'>")
 document.write('<img src="images/1.gif">')
 document.write("</span>")
} 



//-->
</script>
</head>
<body bgColor="#ffffff" onLoad="make()" >
</body>
</html>




вот скомуниздил код чужой немогу сделать чтоб картинки разные были, ХХЕЕЕЛП!

NoResponse 13.07.2011 23:32

чтобы картинки разные были надо изменить 79 сточку на
document.write('<img src="images/'+i+'.gif">')
картинки будут images/1.gif, images/2.gif ... images/9.gif

Sweet 13.07.2011 23:32

Цитата:

Сообщение от zikworld
я начал учить

Офигенно ты учишься! Кстати, "скомуниздил" ты полную туфту. Удачи в "учебе"!;)

zikworld 14.07.2011 01:21

Цитата:

Сообщение от NoResponse (Сообщение 113197)
чтобы картинки разные были надо изменить 79 сточку на
document.write('<img src="images/'+i+'.gif">')
картинки будут images/1.gif, images/2.gif ... images/9.gif


спасибо, реально помог, я эту ошибку искал неделю))
подскажи пожалуйста еще такую вещь
если я буду через админку добавлять рисунки мне придется дописывать формулы...каким образом лучше избежать этого? или по какой формуле определить положение картинки по кругу через угол, например картинок 10 угол = 36 градусов?


Часовой пояс GMT +3, время: 16:52.