index.html 灰太狼 index.js var cxt = document.querySelector('canvas').getContext('2d');cxt.beginPath();cxt.lineWidth = 2;cxt.strokeStyle = 'green';// 脸盘和耳朵cxt.moveTo(33, 43);cxt.quadraticCurveTo(55, 40, 124, 73);cxt.moveTo(33,
index.js灰太狼
var cxt = document.querySelector('canvas').getContext('2d'); cxt.beginPath(); cxt.lineWidth = 2; cxt.strokeStyle = 'green'; // 脸盘和耳朵 cxt.moveTo(33, 43); cxt.quadraticCurveTo(55, 40, 124, 73); cxt.moveTo(33, 43); cxt.lineTo(68, 140); cxt.moveTo(33, 43); cxt.quadraticCurveTo(73, 92, 89, 130); cxt.quadraticCurveTo(75, 127, 81, 136); cxt.lineTo(73, 136); cxt.lineTo(74, 139); cxt.quadraticCurveTo(36, 164, 24, 213); cxt.bezierCurveTo(52, 215, 49, 223, 41, 233); cxt.quadraticCurveTo(61, 235, 76, 243); cxt.bezierCurveTo(88, 350, 290, 350, 309, 252); cxt.quadraticCurveTo(320, 239, 353, 234); cxt.bezierCurveTo(338, 223, 354, 215, 371, 214); cxt.quadraticCurveTo(360, 169, 325, 144); cxt.lineTo(333, 121); cxt.quadraticCurveTo(317, 100, 341, 97); cxt.lineTo(361, 43); cxt.quadraticCurveTo(307, 48, 266, 75); cxt.moveTo(361, 43); cxt.quadraticCurveTo(332, 72, 304, 133); cxt.quadraticCurveTo(318, 127, 313, 134); cxt.quadraticCurveTo(323, 132, 318, 140); cxt.quadraticCurveTo(324, 136, 325, 144) cxt.moveTo(266, 75); cxt.quadraticCurveTo(265, 90, 243, 94); // 帽子 cxt.lineTo(133, 112); cxt.quadraticCurveTo(90, 116, 107, 91); cxt.quadraticCurveTo(147, 29, 223, 27); cxt.quadraticCurveTo(272, 38, 266, 75); cxt.moveTo(107, 91); cxt.quadraticCurveTo(111, 110, 144, 100); cxt.lineTo(244, 80); cxt.quadraticCurveTo(264, 76, 267, 61); cxt.moveTo(196, 30); cxt.lineTo(176, 51); cxt.quadraticCurveTo(224, 43, 240, 66); cxt.quadraticCurveTo(252, 55, 264, 53); // 针脚线 cxt.moveTo(186, 38); cxt.lineTo(198, 37); cxt.moveTo(176, 43); cxt.lineTo(190, 43); cxt.moveTo(186, 53); cxt.lineTo(194, 45); cxt.moveTo(200, 45); cxt.lineTo(196, 54); cxt.moveTo(210, 47); cxt.lineTo(205, 54); cxt.moveTo(219, 49); cxt.lineTo(213, 54); cxt.moveTo(229, 50); cxt.lineTo(222, 59); cxt.moveTo(237, 52); cxt.lineTo(232, 65); cxt.moveTo(244, 56); cxt.lineTo(250, 66); cxt.moveTo(252, 52); cxt.lineTo(261, 62); cxt.stroke(); // 眉毛 cxt.beginPath(); cxt.lineWidth = 10; cxt.moveTo(99, 123); cxt.lineTo(169, 164); cxt.moveTo(220, 172); cxt.lineTo(291, 130); cxt.stroke(); cxt.beginPath(); cxt.lineWidth = 2; // 眼睛和嘴巴 cxt.moveTo(88, 168); cxt.lineTo(174, 188); cxt.moveTo(212, 180); cxt.lineTo(297, 199); cxt.moveTo(106, 171); cxt.bezierCurveTo(109, 200, 142, 204, 159, 185); cxt.moveTo(230, 184); cxt.bezierCurveTo(233, 210, 267, 218, 284, 197); cxt.moveTo(123, 253); // 刀疤 cxt.moveTo(87, 173); cxt.lineTo(126, 286); cxt.moveTo(80, 204); cxt.lineTo(108, 191); cxt.moveTo(91, 220); cxt.lineTo(111, 211); cxt.moveTo(96, 236); cxt.lineTo(114, 226); cxt.moveTo(106, 248); cxt.lineTo(119, 243); cxt.moveTo(106, 267); cxt.lineTo(124, 259); cxt.moveTo(117, 276); cxt.lineTo(126, 272); cxt.moveTo(123, 253); // 嘴巴 cxt.quadraticCurveTo(193, 275, 272, 253); cxt.bezierCurveTo(260, 300, 120, 290, 123, 253); cxt.stroke(); // 牙齿 cxt.beginPath(); cxt.lineWidth = 1; cxt.moveTo(125, 260); cxt.lineTo(134, 263); cxt.lineTo(136, 259); cxt.lineTo(139, 265); cxt.lineTo(155, 270); cxt.moveTo(237, 270); cxt.lineTo(252, 266); cxt.lineTo(254, 258); cxt.lineTo(258, 264); cxt.lineTo(268, 261); cxt.stroke(); // 左眼珠 cxt.beginPath(); cxt.lineWidth = 2; cxt.fillStyle = 'green'; cxt.save(); cxt.translate(133, 179); cxt.rotate(Math.PI * 2 / 20); cxt.arc(0, 0, 5, 3, Math.PI * 2, true); cxt.fill(); cxt.restore(); // 右眼珠 cxt.beginPath(); cxt.save(); cxt.translate(254, 190); cxt.rotate(Math.PI * 2 / 20); cxt.arc(0, 0, 5, 3, Math.PI * 2, true); cxt.fill(); cxt.restore(); // 鼻子 cxt.beginPath(); cxt.moveTo(190, 212); cxt.bezierCurveTo(150, 214, 150, 246, 190, 246); cxt.bezierCurveTo(230, 246, 230, 214, 190, 212); cxt.fill(); cxt.beginPath(); // 鼻子光点 cxt.fillStyle = '#fff'; cxt.moveTo(162, 224); cxt.quadraticCurveTo(171, 212, 180, 224); cxt.quadraticCurveTo(171, 234, 162, 224); cxt.fill(); // 手和围巾 cxt.beginPath(); cxt.moveTo(119, 306); cxt.quadraticCurveTo(132, 334, 205, 363); cxt.quadraticCurveTo(256, 334, 264, 310); cxt.moveTo(110, 300); cxt.quadraticCurveTo(86, 334, 81, 370); cxt.quadraticCurveTo(67, 371, 66, 394); cxt.bezierCurveTo(60, 418, 71, 427, 76, 421); cxt.moveTo(76, 399); cxt.bezierCurveTo(70, 419, 85, 434, 89, 421); cxt.quadraticCurveTo(79, 414, 85, 399); cxt.moveTo(89, 421); cxt.bezierCurveTo(98, 430, 102, 430, 99, 400); cxt.moveTo(101, 410); cxt.quadraticCurveTo(119, 419, 112, 400); cxt.bezierCurveTo(105, 388, 114, 378, 101, 371); cxt.moveTo(100, 376); cxt.quadraticCurveTo(109, 324, 126, 315); cxt.moveTo(280, 299); cxt.quadraticCurveTo(310, 340, 312, 371); cxt.quadraticCurveTo(326, 376, 326, 398); cxt.bezierCurveTo(330, 415, 326, 426, 318, 420); cxt.moveTo(317, 399); cxt.bezierCurveTo(323, 419, 313, 433, 305, 422); cxt.moveTo(309, 400); cxt.bezierCurveTo(310, 425, 291, 442, 292, 403); cxt.moveTo(292, 410); cxt.bezierCurveTo(284, 416, 274, 413, 282, 397); cxt.quadraticCurveTo(280, 375, 293, 371); cxt.moveTo(294, 376); cxt.quadraticCurveTo(289, 338, 267, 314); cxt.stroke(); // 肚子和肚脐 cxt.beginPath(); cxt.lineWidth = 3; cxt.moveTo(127, 319); cxt.bezierCurveTo(90, 470, 310, 460, 262, 317); cxt.moveTo(188, 389); cxt.lineTo(197, 399); cxt.moveTo(190, 402); cxt.lineTo(195, 391); cxt.stroke(); // 肚脐圆 cxt.beginPath(); cxt.save(); cxt.translate(194, 396); cxt.arc(0, 0, 10, 1, Math.PI * 2, false); cxt.restore(); cxt.stroke(); // 腿和尾巴 cxt.beginPath(); cxt.lineWidth = 2; cxt.moveTo(144, 406); cxt.lineTo(127, 434); cxt.lineTo(136, 449); cxt.moveTo(152, 417); cxt.lineTo(142, 434); cxt.moveTo(139, 431); cxt.lineTo(151, 450); cxt.bezierCurveTo(110, 441, 90, 464, 105, 476); cxt.lineTo(156, 476); cxt.bezierCurveTo(175, 473, 170, 459, 151, 450); cxt.moveTo(126, 455); cxt.quadraticCurveTo(106, 456, 108, 474); cxt.moveTo(139, 457); cxt.quadraticCurveTo(121, 459, 125, 474); cxt.moveTo(244, 416); cxt.lineTo(252, 433); cxt.moveTo(255, 430); cxt.lineTo(245, 450); cxt.moveTo(254, 406); cxt.lineTo(269, 433); cxt.lineTo(261, 448); cxt.bezierCurveTo(218, 456, 220, 472, 234, 475); cxt.lineTo(289, 475); cxt.bezierCurveTo(304, 467, 302, 452, 261, 448); cxt.moveTo(255, 457); cxt.quadraticCurveTo(275, 461, 268, 474); cxt.moveTo(270, 455); cxt.quadraticCurveTo(291, 462, 285, 474); cxt.moveTo(198, 428); cxt.quadraticCurveTo(203, 453, 228, 458); cxt.moveTo(236, 453); cxt.bezierCurveTo(213, 440, 214, 437, 248, 448); cxt.bezierCurveTo(230, 430, 230, 428, 251, 433); cxt.moveTo(275, 450); cxt.quadraticCurveTo(287, 432, 287, 416); cxt.quadraticCurveTo(270, 420, 255, 412); cxt.stroke();README.md
#canvas 通过使用HTML5canvasAPI总结
浏览器支持 Internet Explorer 9、Firefox、Opera、Chrome 以及 Safari 支持