Есть простой код:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<canvas id="imgCanvas" width="660" height="660" style="border: 2px solid black"></canvas>
<script type="text/javascript">
let _ctx = document.getElementById('imgCanvas').getContext('2d');
_ctx.beginPath();
_ctx.lineTo(30, 300);
_ctx.lineTo(90, 300);
_ctx.lineTo(120, 120);
_ctx.closePath();
_ctx.stroke();
_ctx.fill();
_ctx.beginPath();
_ctx.lineTo(300, 390);
_ctx.lineTo(600, 300);
_ctx.lineTo(180, 120);
_ctx.closePath();
_ctx.stroke();
_ctx.fill();
</script>
</body>
</html>
Обычный канвас, на котором нужно нарисовать два треугольника. Я читал что использование метода moveTo()
обязательное, но и без него все нормально отрисовывается. Я не понимаю вродебы после первой фигуры условное "перо" осталось в позиции (120, 120)
и при использовании метода lineTo(300, 390)
должна отрисоваться линия из (120,120)
в (3000,390)
, но этого не происходит, почему и обязательное ли тогда использование moveTo()
или оно носит рекомендательный характер?
Смысл самого moveTo() мне понятен. Мне непонятно почему эти две фигуры не слиплись ведь самогото moveTo() небыло.
В вашем коде можно и без него. beginPath()
позволяет инициализировать новый объект (типо старый - это другая ячейка памяти). Первый lineTo попросту передвигает к конечной координате, т к начального пути нет
но смысл его в этом:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<canvas id="imgCanvas" width="660" height="660" style="border: 2px solid black"></canvas>
<script type="text/javascript">
let _ctx = document.getElementById('imgCanvas').getContext('2d');
// наччинаем путь
_ctx.beginPath();
// даигаем к координате
_ctx.moveTo(30, 300);
// рисуем к координате
_ctx.lineTo(90, 300);
// рисуем к координате
_ctx.lineTo(120, 120);
// закрываем путь (автоматически дорисовываятся линия от точки move к конечной)
_ctx.closePath();
_ctx.moveTo(300, 390);
// рисуем к координате
_ctx.lineTo(600, 300);
// рисуем к координате
_ctx.lineTo(180, 120);
// закрываем путь (автоматически дорисовываятся линия от точки move к конечной)
_ctx.closePath();
_ctx.stroke();
//_ctx.fill();
</script>
</body>
</html>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Перевел строку в массивПодскажите, почему не получается отсортировать?
Всем доброго времени суток! Подскажите, не понимаю в чем дело, пытаюсь подключить JQuery в WebStorm, вставляю ссылку на CDN, WebStorm подчеркивает, как...