>  기사  >  웹 프론트엔드  >  HTML5 캔버스를 사용하여 탱그램 그리기

HTML5 캔버스를 사용하여 탱그램 그리기

一个新手
一个新手원래의
2017-10-13 09:34:591722검색

탱그램은 어떻게 생겼나요?

캔버스를 사용하여 그리는 것은 실제로 이 7개 영역에서 그래픽의 각 점의 좌표를 찾은 다음 moveTo와 lineTo를 사용하여 선을 연결하고 다른 색상을 설정하는 것입니다.


<head>
    <meta charset=&#39;utf-8&#39; />
    <style>
        #canvas {
            border: 1px dashed #aaa;
        }
    </style>
    <script>
        window.onload = function () {
            var oCanvas = document.querySelector("#canvas"),
                oGc = oCanvas.getContext(&#39;2d&#39;),
                width = oCanvas.width, height = oCanvas.height,
                tangram = [
                { p: [{ x: 0, y: 0 }, { x: 800, y: 0 }, { x: 400, y: 400 }], color: "#caff67" }, //正上方绿色三角形区域
                { p: [{ x: 0, y: 0 }, { x: 400, y: 400 }, { x: 0, y: 800 }], color: "#67becf" }, //左方蓝色三角形区域
                { p: [{ x: 800, y: 0 }, { x: 800, y: 400 }, { x: 600, y: 600 }, { x: 600, y: 200 }], color: "#ef3d61" },
                { p: [{ x: 600, y: 200 }, { x: 600, y: 600 }, { x: 400, y: 400 }], color: "#f9f51a" },
                { p: [{ x: 400, y: 400 }, { x: 600, y: 600 }, { x: 400, y: 800 }, { x: 200, y: 600 }], color: "#a54c09" },
                { p: [{ x: 200, y: 600 }, { x: 400, y: 800 }, { x: 0, y: 800 }], color: "#fa8ccc" },
                { p: [{ x: 800, y: 400 }, { x: 800, y: 800 }, { x: 400, y: 800 }], color: "#f6ca29" }
            ];
            for (var i = 0; i < tangram.length; i++) {
                draw( oGc, tangram[i]);
            };
            function draw( cxt, piece ) {
                cxt.beginPath();
                cxt.moveTo(piece.p[0].x, piece.p[0].y);
                for (var i = 1; i < piece.p.length; i++) {
                    cxt.lineTo(piece.p[i].x, piece.p[i].y);
                }
                cxt.closePath();

                cxt.fillStyle = piece.color;
                cxt.fill();
            }
        }
    </script>
</head>
<body>
    <canvas id="canvas" width="800" height="800"></canvas>
</body>

tangram은 각 모양의 정점 좌표와 채우기 색상을 저장합니다. p는 각 영역의 정점으로 구성된 배열입니다. 배열의 각 점은 json 개체로 저장되며, tangram은 7개의 항목을 만든 다음 루프를 사용하여 각 영역의 꼭지점을 선으로 다른 점과 연결합니다. 각 영역의 포인트는 경로를 사용해야 합니다. 이유는 무엇입니까? 내 기사를 참조할 수 있습니다: [JS 마스터가 되는 길] HTML5 Canvas 튜토리얼 시리즈 - 시작 경로 BeginPath 및 닫기 경로 closePath

에 대한 자세한 설명

위 내용은 HTML5 캔버스를 사용하여 탱그램 그리기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.