直线生成 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>
原文地址:https://www.cnblogs.com/solq/p/2668161.html