var stepper = 10;//每次沿连线前进10像素
var x3 = 100;
var y3 = 100;//(angle是45度角)
x3 += stepper * Math.cos(angle);
y3 += stepper * Math.sin(angle);
为什么上边语句执行后x3和y3值 一下子成了1007多呢,怎么会有这么大呢???????????应该是稍大于100啊

解决方案 »

  1.   

    var stepper = 10;
    var x3 = 100;
    var y3 = 100;var angle=45;
    x3 += stepper * Math.cos(angle);
    y3 += stepper * Math.sin(angle);
    alert(x3) 
    105.253219...
      

  2.   

    你调试一下我这个文件,很小的,主要是 draw()函数。我目的是做一个动画,使图片沿某一直线滑动<html>
    <head>
    <style type="text/css">
    #depict
    {
    position:absolute;
    }
    </style><script type="text/javascript">var x1 = 0;
    var y1 = 0;
    var x2 = 0;
    var y2 = 0;
    var x3 = 0;
    var y3 = 0;var stepper = 10;//每次沿连线前进10像素
    var length = 0;
    var angle = 0;
    var t;function draw()
    {
    if(length < stepper)
    {
    clearInterval(t);
    return;
    }

    var graph = document.getElementById("depict");
    graph.style.left = x3;
    graph.style.top = y3;

    alert(x3);
    alert(y3);/*
    //计算下一次起点坐标
    var aa = stepper * Math.cos(angle);
    var bb = stepper * Math.sin(angle);

    alert(aa);
    alert(bb); x3 += aa;
    y3 += bb;

    */
    x3 += 1;
    y3 += 1;
    alert(x3);
    alert(y3);

    length = length - stepper;}
    function onclicked()
    {
    x1=document.getElementById("x1").value;
    y1=document.getElementById("y1").value;
    x2=document.getElementById("x2").value;
    y2=document.getElementById("y2").value; angle = Math.atan((y2-y1)/(x2-x1));
    length = Math.sqrt(  Math.pow((y2-y1),2)+Math.pow((x2-x1),2)  );

    x3 = x1;
    y3 = y1; t = setInterval("draw()",300);
    }
    </script></head><body>第一个坐标
    <input type="text" id="x1" value="100">
    <input type="text" id="y1" value="100">
    <br>
    第二个坐标
    <input type="text" id="x2" value="120">
    <input type="text" id="y2" value="120">
    <br>
    <input type="button" value="start" onclick="onclicked();">
    <br><img id="depict" alt="abc" src="11.jpg"></body></html>
      

  3.   

    有啊,onclicked()函数里已经赋了啊。根据编辑框里的初始值,是45度。当然了,形式上是弧度。
    你可以在draw()函数输出Math.tan(angle)的值,结果是9。999999999。
      

  4.   

        graph.style.left = x3;
        graph.style.top = y3;
        alert(x3);
        alert(y3);
        x3=x3*1;y3=y3*1;
      

  5.   

    或者
    function onclicked()
    {
        x1=document.getElementById("x1").value*1;
        y1=document.getElementById("y1").value*1;
        x2=document.getElementById("x2").value*1;
        y2=document.getElementById("y2").value*1;
        angle = Math.atan((y2-y1)/(x2-x1));
        length = Math.sqrt(  Math.pow((y2-y1),2)+Math.pow((x2-x1),2)  );
        x3 = x1;
        y3 = y1;
        t = setInterval("draw()",300);
    }