扫码关注官方订阅号
canvas 您的浏览器不支持 HTML5 canvas 标签。
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
从学习的角度讲:简单而言,你要学会封装,从而实现代码的复用 从实用的角度讲:你应该学会从网上找一些现成的底层库(就是实现一些下面说的封装逻辑)来实用
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canvas</title> <style> #myCanvas { margin: 0 auto; border: 1px solid #666; display: block; } </style> </head> <body> <canvas id="myCanvas" width="600" height="800">您的浏览器不支持 HTML5 canvas 标签。</canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); // 封装点的概念 var point = function(x, y) { var point = {}; point.x = x; point.y = y; return point; } // 封装画圆的逻辑 function draw_arc(point, radius, bound) { ctx.beginPath(); ctx.arc(point.x, point.y, radius, 0, 2 * Math.PI); if(bound) { ctx.fillStyle=bound; ctx.fill(); } ctx.stroke(); } // 脸 draw_arc(point(300, 200), 100); // 眼球 function draw_eye(point) { draw_arc(point, 10); point.y += 5; draw_arc(point, 5, 'black'); } draw_eye(point(250, 180)); draw_eye(point(350, 180)); //画曲线 function draw_bezier(point1, point2, point3) { ctx.beginPath(); ctx.moveTo(point1.x,point1.y); ctx.bezierCurveTo(point1.x,point1.y,point2.x,point2.y,point3.x,point3.y); ctx.stroke(); } draw_bezier( point(260,250), point(290,300), point(345,250) ); //划线 function draw_line(point_start, point_end) { ctx.beginPath(); ctx.moveTo(point_start.x, point_start.y); ctx.lineTo(point_end.x, point_end.y); ctx.stroke(); } draw_line(point(265,294), point(265,315)); draw_line(point(335,294), point(335,315)); draw_bezier( point(305,305), point(310,310), point(335,315) ); </script> </body> </html>
使用基于 canvas 的 js 库,来简化绘制。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
从学习的角度讲:简单而言,你要学会封装,从而实现代码的复用
从实用的角度讲:你应该学会从网上找一些现成的底层库(就是实现一些下面说的封装逻辑)来实用
使用基于 canvas 的 js 库,来简化绘制。