HTML5實現塗鴉板

最近閒的,看了看html5,強大的繪圖功能讓我驚奇,因而,寫了個小玩意---塗鴉板,能實現功能有:畫畫,改色,調整畫筆大小html

html5的繪圖能夠分爲點,線,面,圓,圖片等,點和線,這但是全部平面效果的基點,有了這兩個東西,沒有畫不出來的東西,只有想不到的算法。html5

先上代碼了:算法

htmlcanvas

1 <body style="cursor:pointer">
2  <canvas id="mycavas" width="1024" height="400" style="border:solid 4px #000000"></canvas><!--畫布-->
3         <input type="color" id="color1" name="color1"/><!--設色器-->
4         <output name="a" for="color1" onforminput="innerHTML=color1.value"></output>
5          <input type="range" name="points" id="size" min="5" max="20" /><!--拖動條-->
6 </body> 

效果:this

好了,一個簡陋的畫圖界面就搞好啦,spa

下面開始寫一些畫線的代碼3d

 1 $.Draw = {};
 2 $.extend($.Draw, {
 3     D2: "",
 4     CX:"",
 5     Box: "mycavas",//畫布id
 6     BoxObj:function(){//畫布對象
 7         this.CX=document.getElementById(this.Box);
 8     },
 9     D2:function(){//2d繪圖對象
10        this.D2 = this.CX.getContext("2d");
11     },
12     Cricle: function (x, y, r, color) {//畫圓
13         if (this.D2) {
14             this.D2.beginPath();
15             this.D2.arc(x, y, r, 0, Math.PI * 2, true);
16             this.D2.closePath();
17             if (color) {
18                 this.D2.fillStyle = color;
19             }
20             this.D2.fill();
21         }
22     },
23     init: function () {//初始化
24         this.BoxObj();
25         this.D2();
26     }
27 
28 })

相信這裏的簡單代碼你們都看得懂,主要就是建立了一個對象,包含建立畫布,建立2d對象,畫圓方法,和對象初始化方法。code

接下里前臺html頁面來調用這個對象orm

看代碼:htm

 1         var color = "#000000";//初始化顏色
 2         var size = 5;//初始化尺寸
 3         document.getElementById('color1').onchange = function () {
 4             color = this.value;
 5         };
 6         document.getElementById('size').onchange = function () {
 7             size = this.value;
 8         };
 9         $.Draw.init();//初始化
10         var tag = false;//控制鼠標當前狀態並起到開啓油墨開關的做用
11         var current = {};//存儲鼠標按下時候的點
12         document.onmousedown = function (option) {//鼠標按下事件
13             current.x = option.x;
14             current.y = option.y;
15             $.Draw.Cricle(option.x, option.y, size, color);
16             tag = true;
17         }
18         document.onmouseup = function () {//鼠標擡起事件
19             tag = false;
20         }
21         document.onmousemove = function (option) {//鼠標移動事件
22             if (tag) {
23                 if (size >= 0) {
24                     $.Draw.Cricle(option.x, option.y, size, color);
25                 } 
26             }
27         }

 

這段代碼主要有以下幾個意思

1.捕獲顏色空間和拖動條控件的change事件,從而獲取對應的顏色和尺寸的數值,存儲下來供下面畫線用

2.初始化畫圖對象

3.捕獲鼠標的按下,擡起和移動事件,關鍵在一個開關能夠控制油墨

好了,一個簡單的塗鴉板就行了,上個人書法:

是否是有點閒的蛋疼呢,呵呵!書法不如當年

相關文章
相關標籤/搜索