canvas画doraemon

作者: 吸猫群众 | 来源:发表于2017-11-22 12:29 被阅读25次

    html部分:

    快去升级你的浏览器吧!

    js 部分:

    var ctx = document.getElementById('doraemon').getContext('2d');   //  getContext() 方法返回一个用于在画布上绘图的环境。

    //  头部

    ctx.beginPath(); // 起始一条路径,或重置当前路径

    ctx.lineWidth = 2;

    ctx.strokeStyle = '#000';

    ctx.beginPath(); ctx.moveTo(82, 300);

    ctx.bezierCurveTo(-31, 172, 36, 0, 200, 0);

    ctx.bezierCurveTo(364, 0, 432, 172, 318, 300);

    ctx.fillStyle = '#029AE3';

    ctx.fill();

    ctx.stroke();

    ctx.beginPath();

    ctx.moveTo(90, 300);

    ctx.bezierCurveTo(10, 177, 30, 50, 200, 60);

    ctx.bezierCurveTo(370, 50, 390, 177, 310, 300);

    ctx.fillStyle = '#FDFDFD';

    ctx.fill();

    ctx.stroke();

    // 眼睛

    ctx.beginPath();

    ctx.moveTo(127, 50);

    ctx.bezierCurveTo(127, -6, 200, -6, 200, 50);

    ctx.bezierCurveTo(198, 106, 127, 106, 127, 50);

    ctx.moveTo(164, 60); // 把路径移动到画布中的指定点,不创建路径。

    ctx.quadraticCurveTo(177, 30, 190, 60);

    ctx.fillStyle = '#FDFDFD';

    ctx.fill(); ctx.stroke(); ctx.beginPath();

    ctx.moveTo(200, 50);

    ctx.bezierCurveTo(200, -6, 273, -6, 273, 50);

    ctx.bezierCurveTo(271, 106, 200, 106, 200, 50);

    ctx.moveTo(214, 60); // 把路径移动到画布中的指定点,不创建路径。

    ctx.quadraticCurveTo(227, 30, 240, 60);

    ctx.fillStyle = '#FDFDFD';

    ctx.fill();

    ctx.stroke();

    // 鼻子

    ctx.beginPath();

    ctx.arc(200, 103, 25, 0, 2*Math.PI); // 坐标,半径,起始位置

    ctx.fillStyle = '#DC1025';

    ctx.fill();

    ctx.moveTo(200, 129);

    ctx.lineTo(200, 252);

    ctx.closePath(); // closePath() 方法创建从当前点到开始点的路径。

    ctx.stroke();

    ctx.beginPath();

    ctx.arc(195, 93, 9, 0, 2*Math.PI); // 坐标,半径,起始位置

    ctx.fillStyle = '#FDFDFD'; ctx.fill();

    // 胡须

    ctx.beginPath();

    ctx.moveTo(80, 100);

    ctx.lineTo(165, 130);

    ctx.closePath();

    ctx.moveTo(58, 152);

    ctx.lineTo(160, 156);

    ctx.closePath();

    ctx.moveTo(62, 196);

    ctx.lineTo(165, 182);

    ctx.closePath();

    ctx.moveTo(233, 130);

    ctx.lineTo(320, 100);

    ctx.closePath();

    ctx.moveTo(237, 156);

    ctx.lineTo(343, 152);

    ctx.closePath();

    ctx.moveTo(235, 182);

    ctx.lineTo(340, 196);

    ctx.closePath();

    ctx.stroke();

    // 嘴巴

    ctx.beginPath();

    ctx.moveTo(75, 170);

    ctx.quadraticCurveTo(200, 336, 335, 170);

    ctx.stroke();

    // 围巾

    ctx.beginPath();

    ctx.moveTo(80, 311);

    ctx.quadraticCurveTo(75, 302, 80, 296);

    ctx.quadraticCurveTo(200, 302, 322, 296);

    ctx.quadraticCurveTo(330, 302, 322, 311);

    ctx.quadraticCurveTo(200, 322, 80, 311);

    ctx.fillStyle = '#DC1025';

    ctx.fill();

    ctx.stroke();

    // 铃铛

    ctx.beginPath();

    ctx.arc(200, 336, 33, 0, 2*Math.PI);

    ctx.fillStyle = '#FEDE4A';

    ctx.fill();

    ctx.stroke();

    ctx.beginPath();

    ctx.arc(200, 345, 8, 0, 2*Math.PI);

    ctx.fillStyle = '#7A674D';

    ctx.fill();

    ctx.moveTo(200, 353);

    ctx.lineTo(200, 369);

    ctx.stroke();

    ctx.beginPath();

    ctx.moveTo(168, 330);

    ctx.bezierCurveTo(140, 320, 258, 320, 233, 330);

    ctx.quadraticCurveTo(200, 325, 168, 330);

    ctx.fillStyle = '#FEDE4A';

    ctx.fill();

    ctx.stroke();

    // 身体

    ctx.beginPath();

    ctx.moveTo(40, 375);

    ctx.quadraticCurveTo(50, 335, 80, 311);

    ctx.lineTo(322, 311);

    ctx.quadraticCurveTo(350, 335, 360, 375);

    ctx.fillStyle = '#029AE3';

    ctx.fillRect(40, 375, 310, 20);

    ctx.fill();

    ctx.stroke();

    ctx.beginPath();

    ctx.arc(44, 414, 41, 0, 2*Math.PI);

    ctx.fillStyle = '#FDFDFD'; ctx.fill();

    ctx.stroke(); ctx.beginPath();

    ctx.arc(356, 414, 41, 0, 2*Math.PI);

    ctx.fillStyle = '#FDFDFD';

    ctx.fill();

    ctx.stroke();

    ctx.beginPath();

    ctx.moveTo(80, 340);

    ctx.quadraticCurveTo(70, 400, 96, 510);

    ctx.quadraticCurveTo(145, 520, 200, 515);

    ctx.quadraticCurveTo(255, 520, 304, 510);

    ctx.quadraticCurveTo(330, 400, 320, 340);

    ctx.fillStyle = '#029AE3';

    ctx.fill();

    ctx.stroke();

    // 袋子

    ctx.beginPath();

    ctx.moveTo(100, 401);

    ctx.bezierCurveTo(78, 266, 320, 267, 300, 401);

    ctx.bezierCurveTo(290, 510, 110, 510, 100, 401);

    ctx.fillStyle = '#FDFDFD';

    ctx.fill(); ctx.moveTo(116, 391);

    ctx.bezierCurveTo(125, 485, 283, 485, 284, 391);

    ctx.quadraticCurveTo(200, 380, 116, 391);

    ctx.stroke();

    // 脚

    ctx.beginPath();

    ctx.moveTo(96, 510);

    ctx.bezierCurveTo(70, 510, 63, 519, 62, 539);

    ctx.bezierCurveTo(57, 561, 163, 564, 200, 551);

    ctx.bezierCurveTo(237, 564, 343, 561, 338, 539);

    ctx.bezierCurveTo(337, 519, 330, 510, 304, 510);

    ctx.fillStyle = '#FDFDFD';

    ctx.fill();

    ctx.stroke();

    ctx.beginPath();

    ctx.moveTo(200, 497);

    ctx.lineTo(200, 551);

    ctx.moveTo(190, 497);

    ctx.lineTo(210, 497);

    ctx.stroke();

    完成哈哈哈哈

    相关文章

      网友评论

        本文标题:canvas画doraemon

        本文链接:https://www.haomeiwen.com/subject/rllrbttx.html