波動のソース



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<script type="text/javascript">
    var TimeId,k;
    var a=new Array(1592);
    for (k=0;k<1592;k++) {
       a[k]=new Array(4);
       a[k][0]=k;
       a[k][1]=k/2;
       a[k][2]=0;
       a[k][3]=0;
    }
    function stop(){
       clearTimeout(TimeId);
    }
    function move(){
       TimeId=setTimeout("move()",50);
       var obj,i;
       for (i=1591;i>10;i--) {
          a[i][2]=a[i-10][2];
       }
       for (i=10;i>=0;i--) {
          a[i][2]=a[10-i][3];
       }
       for (i=0;i<1582;i++) {
          a[i][3]=a[i+10][3];
       }
       for (i=1582;i<1592;i++) {
          a[i][3]=a[3173-i][2];
       }
       for (i=0;i<1592;i++) {
          obj=document.getElementById("dot"+i);
          obj.style.top=50+400-3-25*(a[i][2]+a[i][3]);
       }
    }
    function tsuika(){
       var aa,ll,i,obj;
       aa=document.getElementById("shinpuku").value;
       ll=document.getElementById("hachou").value;
       for (i=0;i<ll*25*4/2;i++) {
          a[i][2]+=aa*Math.sin((2*i)/(ll*25*4/Math.PI));
          obj=document.getElementById("dot"+i);
          obj.style.left=20+2+a[i][1];
          obj.style.top=50+400-3-25*(a[i][2]+a[i][3]);
       }
    }
    function set(){
       var i,obj;
       stop();
       t=0;
       c=0;
       for (i=0;i<1592;i++) {
          a[i][2]=0;
          a[i][3]=0;
          obj=document.getElementById("dot"+i);
          obj.style.top=50+400-3-25*(a[i][2]+a[i][3]);
       }
    }
</script>
</head>
<body>
<form>
振幅:<input id="shinpuku" type="text" size="4">
波長:<input id="hachou" type="text" size="4">
<input type="button" value="追加" onClick="tsuika()">
<input type="button" value="Start" onClick="move()">
<input type="button" value="Stop" onClick="stop()">
<input type="button" value="Reset" onClick="set()">
</form>
<img src="image/axis4.png" style="position:absolute;left:20;top:50">
<script type="text/javascript">
    var j;
    for (j=0;j<1592;j++){
       document.write("<img id='dot"+j+"' src='image/dot.png' style='position:absolute;top:447;left:"+(20+2+a[j][1])+";'>");
    }
</script>
</body>
</html>