Im Anschluss an die letzte Studie von HTML5 haben wir einen Kreis gezeichnet, um eine dynamische Uhr zu erstellen, und die Umkehrung des Raums unterschiedlicher Dimensionen, um ein bewegliches Sonnensystem zu erstellen Strichzeichnung, Kreiszeichnung, Füllung und andere Wissenspunkte, kombiniert zu einem einfachen Online-Zeichenwerkzeug:
DEMO anzeigen: HTML5 einfaches Online-Zeichenwerkzeug
Zu den Funktionen gehören kostenloser Pinsel, Radiergummi, Textfüllung, Zeichnen von Dreiecken, Zeichnen von Kreisen usw. Für einen Anfänger wie mich fühlt es sich ziemlich schwierig an, aber ich habe es trotzdem langsam „buchstabiert“, indem ich mich auf die Informationen bezog.
Kostenlose Pinselideen:
/******* 自由画笔 *******/ function dBrush(n){ setStatus(actions,n,1); //鼠标按下的时候 var status = 0; canvas.onmousedown=function(e){ e=window.event||e; var sX=e.pageX-this.offsetLeft; var sY=e.pageY-this.offsetTop; can.beginPath(); can.moveTo(sX,sY); status=1; } //鼠标移动的时候 canvas.onmousemove=function(e){ e=window.event||e; var eX=e.pageX-this.offsetLeft; var eY=e.pageY-this.offsetTop; if(status==1){ can.lineTo(eX,eY); can.stroke(); }else {return false} } //鼠标抬起的时候 canvas.onmouseup=function(){ can.closePath(); status=0; } //鼠标移出canvas画布结束画图 canvas.onmouseout=function(){ can.closePath(); status=0; } }
Text füllen, hauptsächlich mit fillText(val,x,y):
/******* 文字 *******/ function dText(n){ setStatus(actions,n,1); canvas.onmousedown=function(e){ e=window.event||e; var x=e.pageX-this.offsetLeft; var y=e.pageY-this.offsetTop; var val = window.prompt('输入填充的文字',''); if(val==null) return false; //输入为空则返回 can.fillText(val,x,y); dBrush(0); //填入文字后返回自由画笔工具 } canvas.onmouseup=null; canvas.onmousemove=null; canvas.onmouseout=null; }
Gerades Linienwerkzeug, bestimmt hauptsächlich den Anfang Punkt und Endpunkt, dann reicht lineTo(x,y) aus:
/******* 直线 *******/ function dLine(n){ setStatus(actions,n,1); //画直线,鼠标按下时,当前鼠标位置为起点 canvas.onmousedown=function(e){ e=window.event||e; var sX=e.pageX-this.offsetLeft; var sY=e.pageY-this.offsetTop; can.beginPath(); can.moveTo(sX,sY); } //画直线,鼠标抬起时,当前鼠标位置为终点 canvas.onmouseup=function(e){ e=window.event||e; var eX=e.pageX-this.offsetLeft; var eY=e.pageY-this.offsetTop; can.lineTo(eX,eY); can.closePath(); can.stroke(); } canvas.onmousemove=null; canvas.onmouseout=null; }
Fügen Sie schließlich einen Hohlkreis ein, die Startpunktkoordinate ist der Mittelpunkt des Kreises und die Mausbewegungsentfernung ist der Radius :
/******* 空心圆圈 *******/ function dArc(n){ setStatus(actions,n,1); var sX=0; //内部的“全局标量” var sY=0; //画空心圆,鼠标按下时,当前鼠标位置为圆心 canvas.onmousedown=function(e){ e=window.event||e; sX=e.pageX-this.offsetLeft; sY=e.pageY-this.offsetTop; } //画空心圆,鼠标抬起时,当前鼠标位置为外圆结束点 canvas.onmouseup=function(e){ e=window.event||e; var eX=e.pageX-this.offsetLeft; var eY=e.pageY-this.offsetTop; var dX=eX-sX var dY=eY-sY; //计算出半径 var r = Math.sqrt(Math.pow(dX,2)+Math.pow(dY,2)); can.beginPath(); can.arc(sX,sY,r,0,360,false); can.closePath(); can.stroke(); } canvas.onmousemove=null; canvas.onmouseout=null; }
Okay, der Rest des Toolcodes wird nicht veröffentlicht, Sie können den Quellcode in der DEMO ansehen.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Implementierungsfall des einfachen Online-Zeichentools HTML5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!