直线生成 DDA

<style>

body{

    position:relative;

}

</style>

<script>

function point(x,y){

    var oDiv=document.createElement('div');

    oDiv.style.position='absolute';

    oDiv.style.height='5px';

    oDiv.style.width='5px';

    oDiv.style.backgroundColor='red';

    oDiv.style.left=x+'px';

    oDiv.style.top=y+'px';



    document.body.appendChild(oDiv);

    return oDiv;

}



function dda(x1,y1,x2,y2)

{

    var dx=x1-x2,

        dy=y1-y2;

    

    var deltalx,deltaly,steps;

    if(Math.abs(dx)>Math.abs(dy))

        steps=Math.abs(dx);

    else

        steps=Math.abs(dy);

        

    deltalx=dx/steps;

    deltaly=dy/steps;

    

    var x=x1,y=y1;

    for(var i=0;i<steps;i++)

    {

        x+=deltalx;y+=deltaly;

        point(x,y);

    }

}



window.onload=function(){

    dda(409,100,200,50);

}

</script>

你可能感兴趣的:(生成)