Показать сообщение отдельно
  #24 (permalink)  
Старый 21.12.2014, 19:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,135

Gozar,
точность расчётов

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
</head>

<body>
<canvas id="canvas" width="1000" height="1000" style="border: 1px solid #000"></canvas>

<script>

    function setPixel (x, y) {

        ctx.beginPath();
        ctx.moveTo(x,y);
        ctx.arc(x, y, 1, 0, Math.PI*2, true);
        ctx.fill();
        ctx.closePath();
    }
var canvas = document.getElementById('canvas'),
ctx = canvas.getContext('2d');
ctx.fillStyle = 'rgba(0,0,0,1)';

function ronyLine (x1, y1, x2, y2) {

    var time = Math.max( Math.abs(x1 - x2), Math.abs(y1 - y2)),  //оптимальная точность
        a, b, delta, i;
        time = 1000// точность для маньяков
    for (i=0; i<time; i++)  {
      delta = i/time;
      a =  delta*(x2 - x1) + x1;
      b =  delta*(y2 - y1) + y1;
      setPixel(a,b)
      //setPixel(Math.round(a),Math.round(b)) //по желанию
    }
}
    for(var i=0;i<1000;i+=10) {
        ronyLine(10, 10, i, 200);
    }

</script>
</body>

</html>
Ответить с цитированием