3. Уроки Canvas. Основы. Линия
Для создания линии используя HTML5 Canvas, мы будем использовать методы beginPath(), moveTo(), lineTo(), и stroke()
beginPath() - объявляем, что начинаем новый контур.
moveTo(x,y) - задаем текущие положение на холсте к координатам (x, y).
lineTo(x,y) - рисует линию от от текущего положения на холсте к заданному.
stroke() - делает нарисованные контуры видимыми.
Пример линии:
<!DOCTYPE HTML>
<html>
<head>
    <style>
        body {
            margin: 0px;
            padding: 0px;
        }
        #myCanvas {
            margin: 15px;
            border: 1px solid #9C9898;
        }
    </style>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script>
        $(function() {
            var canvas = document.getElementById("myCanvas");
            if (canvas.getContext){
                var context = canvas.getContext("2d");
                context.beginPath();
                context.moveTo(100, 150);
                context.lineTo(450, 50);
                context.stroke();
            }
            else {
                alert('Ваш браузер не поддерживает canvas')
            }
        });
    </script>
</head>
<body>
<canvas id="myCanvas" width="578" height="200"></canvas>
</body>
</html>
Для того чтоб задать толщину линии используется lineWidth [=value]
Пример линии с заданной шириной
<!DOCTYPE HTML>
<html>
<head>
    <style>
        body {
            margin: 0px;
            padding: 0px;
        }
        #myCanvas {
            margin: 15px;
            border: 1px solid #9C9898;
        }
    </style>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script>
        $(function() {
            var canvas = document.getElementById("myCanvas");
            if (canvas.getContext){
                var context = canvas.getContext("2d");
                context.beginPath();
                context.moveTo(100, 150);
                context.lineTo(450, 50);
                context.lineWidth = 15;
                context.stroke();
            }
            else {
                alert('Ваш браузер не поддерживает canvas')
            }
        });
    </script>
</head>
<body>
<canvas id="myCanvas" width="578" height="200"></canvas>
</body>
</html>
Цвет HTML5 Canvas линии задается с использованием strokeStyle
Пример линии с заданным цветом
<!DOCTYPE HTML>
<html>
<head>
    <style>
        body {
            margin: 0px;
            padding: 0px;
        }
        #myCanvas {
            margin: 15px;
            border: 1px solid #9C9898;
        }
    </style>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script>
        $(function() {
            var canvas = document.getElementById("myCanvas");
            if (canvas.getContext){
                var context = canvas.getContext("2d");
                context.beginPath();
                context.moveTo(100, 150);
                context.lineTo(450, 50);
                context.lineWidth = 15; // толщина линии
                context.strokeStyle = "#ff0000"; // цвет линии
                context.stroke();
            }
            else {
                alert('Ваш браузер не поддерживает canvas')
            }
        });
    </script>
</head>
<body>
<canvas id="myCanvas" width="578" height="200"></canvas>
</body>
</html>
Оформление концов линий происходит с помощью lineCap[=value].
Доступны три значения: butt (используется по умолчанию), round, square.

При использовании значений round или squre, фактическая длина линии увеличивается на значение lineWidth (с двух сторон лини добавляются отрезки длинной lineWidth/2). Т.е. если длина линии 200px а ширина 10px то к каждому концу прибавится по 5px, и конечная длина получится 210px.
Далее я не буду писать весь исходный код, а только основной код, который нужно будет вставить в шаблон т.е код который между if (canvas.getContext){ и } закрывающей этот if.
Пример линий с оформлением концов
var context = canvas.getContext("2d");         
                                               
context.beginPath();                           
context.moveTo(50, 50);                        
context.lineTo(500, 50);                       
context.lineWidth = 15; // толщина линии       
context.strokeStyle = "#ff0000"; // цвет линии 
context.lineCap = "butt";                      
context.stroke();                              
                                               
context.beginPath();                           
context.moveTo(50, 100);                       
context.lineTo(500, 100);                      
context.lineWidth = 15;                        
context.strokeStyle = "#00ff00";               
context.lineCap = "round";                     
context.stroke();                              
                                               
context.beginPath();                           
context.moveTo(50, 150);                       
context.lineTo(500, 150);                      
context.lineWidth = 15;                        
context.strokeStyle = "#0000ff";               
context.lineCap = "square";                    
context.stroke();                                      
                    
                
        
        
    
6 комментариев
Ошибка "от от" ?
sps for post
Вы можете оставить комментарий