HTML学习-canvas绘制表情

开发工具:IntelliJ IDEA

实现效果:如下

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <script type="text/javascript">
 7         function draw(id)
 8         {
 9             var canvas=document.getElementById(id);
10             var ctx=canvas.getContext("2d");
11             ctx.fillStyle="rgb(255,255,0)";
12             ctx.beginPath();
13             ctx.arc(300,300,250,0,2*Math.PI,true);
14             ctx.closePath();
15             ctx.fill();
16             //嘴巴
17             ctx.lineWidth=2;
18             ctx.beginPath();
19             ctx.arc(300,400,80,0,Math.PI,false);
20             ctx.stroke();
21
22             //绘制文本
23             ctx.font="35px Verdana";
24             var grd2=ctx.createLinearGradient(400,80,520,120);
25             grd2.addColorStop(0,"rgb(255,255,0)");
26             grd2.addColorStop(0.5,"rgb(255,0,255)");
27             grd2.addColorStop(1,"rgb(0,255,255)");
28             ctx.strokeStyle=grd2;
29             ctx.strokeText("Hello Jack!",400,80);
30            //绘制左眼的园
31             drawCircle(ctx,200-50*Math.sin(45*Math.PI/180)/2,220-50*Math.sin(45*Math.PI/180)/2,25,0.75,1.75,false,255,0,0)
32             drawCircle(ctx,200+50*Math.sin(45*Math.PI/180)/2,220-50*Math.sin(45*Math.PI/180)/2,25,0.25,1.25,true,255,0,0)
33             //绘制右眼的园
34             drawCircle(ctx,400-50*Math.sin(45*Math.PI/180)/2,220-50*Math.sin(45*Math.PI/180)/2,25,0.75,1.75,false,255,0,0)
35             drawCircle(ctx,400+50*Math.sin(45*Math.PI/180)/2,220-50*Math.sin(45*Math.PI/180)/2,25,0.25,1.25,true,255,0,0)
36
37
38             //method 1
39 //            ctx.translate(200,220)
40 //            ctx.rotate(45*Math.PI/180);
41 //            ctx.fillRect(-25,-25,50,50);
42 //            ctx.rotate(-45*Math.PI/180);
43 //            ctx.translate(200,0);
44 //            ctx.rotate(45*Math.PI/180);
45 //            ctx.fillRect(-25,-25,50,50);
46
47             //method 2
48             ctx.save();
49             ctx.translate(200,220)
50             ctx.rotate(45*Math.PI/180);
51             ctx.fillRect(-25,-25,50,50);
52             ctx.restore()
53             ctx.translate(400,220)
54             ctx.rotate(45*Math.PI/180);
55             ctx.fillRect(-25,-25,50,50);
56
57         }
58         function drawCircle(ctx,x,y,r,start,end,anti,re,gr,bl)
59         {
60             ctx.fillStyle="rgb("+re+","+gr+","+bl+")";
61             ctx.beginPath();
62             ctx.arc(x,y,r,Math.PI*start,Math.PI*end,anti);
63             ctx.closePath();
64             ctx.fill();
65         }
66     </script>
67 </head>
68 <body onload="draw(‘canvas‘)">
69 <canvas id="canvas" width="600px" height="600px"></canvas>
70 </body>
71 </html>

开发工具:IntelliJ IDEA

实现效果:如下

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <script type="text/javascript">
 7         function draw(id)
 8         {
 9             var canvas=document.getElementById(id);
10             var ctx=canvas.getContext("2d");
11             ctx.fillStyle="rgb(255,255,0)";
12             ctx.beginPath();
13             ctx.arc(300,300,250,0,2*Math.PI,true);
14             ctx.closePath();
15             ctx.fill();
16
17
18
19             //左眼
20             drawCircle(ctx,200,220,70,2,false,0,0,0);
21             drawCircle(ctx,200,220,67,2,false,255,255,255);
22             drawCircle(ctx,200,250,40,2,false,0,0,0);
23             //右眼
24             drawCircle(ctx,400,220,70,2,false,0,0,0);
25             drawCircle(ctx,400,220,67,2,false,255,255,255);
26             drawCircle(ctx,400,250,40,2,false,0,0,0);
27             //嘴巴
28             ctx.lineWidth=2;
29             ctx.beginPath();
30             ctx.arc(300,400,80,0,Math.PI,false);
31             ctx.stroke();
32
33             //绘制文本
34             ctx.font="35px Verdana";
35             var grd2=ctx.createLinearGradient(400,80,520,120);
36             grd2.addColorStop(0,"rgb(255,255,0)");
37             grd2.addColorStop(0.5,"rgb(255,0,255)");
38             grd2.addColorStop(1,"rgb(0,255,255)");
39             ctx.strokeStyle=grd2;
40             ctx.strokeText("Hello Jack!",400,80);
41
42
43
44
45         }
46     function drawCircle(ctx,x,y,r,i,anti,re,gr,bl)
47     {
48         ctx.fillStyle="rgb("+re+","+gr+","+bl+")";
49         ctx.beginPath();
50         ctx.arc(x,y,r,0,Math.PI*i,anti);
51         ctx.closePath();
52         ctx.fill();
53     }
54     </script>
55 </head>
56 <body onload="draw(‘canvas‘)">
57 <canvas id="canvas" width="600px" height="600px"></canvas>
58 </body>
59 </html>

时间: 2024-10-02 18:02:36

HTML学习-canvas绘制表情的相关文章

使用Canvas绘制简单的时钟控件

Canvas是HTML5新增的组件,它就像一块幕布,可以用JavaScript在上面绘制各种图表.动画等. 没有Canvas的年代,绘图只能借助Flash插件实现,页面不得不用JavaScript和Flash进行交互.有了Canvas,我们就再也不需要Flash了,直接使用JavaScript完成绘制. 基本使用 在html源码中只要像普通标签那样使用即可,比如下面的示例,但是在一些老旧的浏览器在中是不支持canvas的,因此我们常在canvas标签中提示用户,具体代码如下所示. <canvas

学习笔记:HTML5 Canvas绘制简单图形

HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" width="1024" style="border:1px solid #aaa;text-align:center;"> 你的浏览器不支持Canvas,请更新浏览器再试!!! </canvas> 在canvas标签之间应该做浏览器是否支持的检测,

UGUI初学习--------Canvas

今天仔细研究了一下UGUI觉得有必要写一篇文章来分享一下.废话不多说直接开码字..... 作者之前也学过NGUI.这里来说明一下,UGUI和NGUI的渲染结构略有不同,UGUI中将NGUI中的深度处理项取消了.UGUI的渲染是按照Hierarchy的UI游戏对象的排列顺序从上到下依次渲染的,重叠部分后渲染的会把先渲染的挡住.总结一句话:下在上前,子在父前.为了修改各个UI控件的绘制顺序,开发者可以采用以下两种方法:拖动Hierarchy视图里的各UI控件对象,改变它们在Canvas下的排列顺序:

使用Canvas绘制图形的基本教程

原文地址:http://www.cnblogs.com/picaso/archive/2012/11/26/2789077.html HTML5火的正热,最近有个想法也是要用到HTML的相关功能,所以也要好好学习一把. 好好看了一下Canvas的功能,感觉HTML5在客户端交互的功能性越来越强了,今天看了一下Canvas绘图,下边是几个实例,记下以备后用. 1.使用Canvas绘制直线: <!doctype html> <html> <head> <meta ch

html5 canvas绘制圆形印章,以及与页面交互

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>HTML5 Canvas画印章</title> 6 <script type="text/javascript" src="../JQmain/jquery-2.2.0.min.js"></script> 7 &l

HTML5之Canvas绘图——使用Canvas绘制图形的基本教程

原文转自:http://www.cnblogs.com/picaso/archive/2012/11/26/2789077.html HTML5火的正热,最近有个想法也是要用到HTML的相关功能,所以也要好好学习一把. 好好看了一下Canvas的功能,感觉HTML5在客户端交互的功能性越来越强了,今天看了一下Canvas绘图,下边是几个实例,记下以备后用. 1.使用Canvas绘制直线: 1 <!doctype html> 2 <html> 3 <head> 4 <

Html5 canvas 绘制彩票走势图

因需要 要实现一个类似彩票走势图的功能,初次学Html5 ,很多地方不明白,前段时间也发帖请教过这个问题,也是没给个明确说话,在网上搜了很多,也没有实现的例子,今天仔细研究了下,发现其实也不是很难,现将代码贴出来,共同学习! 先来一张效果图: 实现的代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <me

用canvas绘制折线图

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>用canvas绘制折线图</title> 6 </head> 7 <body> 8 <canvas id="cv"></canvas> 9 </body> 1

封装 用canvas绘制直线的函数--面向对象

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>用面向对象的思想 封装 在canvas绘制直线的函数</title> 6 </head> 7 <body> 8 <canvas id="cv"></canvas> 9 &