一、用画布画一条弧线
用画布画圆弧有两种方法:
1.圆弧(x,y,r,startangle,endangle,逆时针):以(x,y)为圆心,r为半径,从startAngle的弧度开始,到endAngle的弧度结束。Anticlosewise为布尔值,true表示逆时针,false表示顺时针(默认为顺时针)。
StartAngle,endAngle为弧度,使用角度时,显示如下(Math.PI/180)*角度,角度可以换成角度。
arc(x0, y0, r1, (Math.PI / 180) * 35, (Math.PI / 180) * 145, false);
该角度在X轴的正方向为0,在X轴的负方向为180。刚刚用画布画了一幅画,现在正在用。至于哪边是顺时针还是逆时针,就看你的逆时针参数了。
function draw(){var canvas = document.getElementById('canvas'); // 获取canvas标签 if (!canvas.getContext) return;var ctx = canvas.getContext('2d'); // 画的x轴 ctx.moveTo(60,150); ctx.lineTo(240,150); ctx.stroke(); // 画的y轴 ctx.moveTo(150,60); ctx.lineTo(150,240); ctx.stroke(); // 画的圆 ctx.beginPath(); ctx.arc(150, 150, 60, (Math.PI / 180) * 0, (Math.PI / 180) * 360, false); ctx.closePath(); ctx.stroke(); // 画的画的x轴箭头 ctx.beginPath(); ctx.moveTo(240,145); ctx.lineTo(240,155); ctx.lineTo(250,150); ctx.closePath(); ctx.stroke(); ctx.fill() // 画的画的y轴箭头 ctx.beginPath(); ctx.moveTo(145,60); ctx.lineTo(155,60); ctx.lineTo(150,50); ctx.closePath(); ctx.stroke(); ctx.fill() // 标上"0","180" ctx.fillText("0", 240, 170); ctx.fillText("180", 60, 170);}draw()
注意:CTX . begin path();CTX . close path();有时候感觉可有可无。用起来更好,因为如果你没有完成路径,有时候你再画的线会和上一条线连在一起。
2.圆弧到(x1,y1,x2,y2,半径):根据给定的控制点和半径画一段圆弧,最后用直线连接两个控制点。
function draw(){ var canvas = document.getElementById('canvas'); if (!canvas.getContext) return; var ctx = canvas.getContext("2d"); ctx.beginPath(); ctx.moveTo(50, 50); //参数1、2:控制点1坐标 参数3、4:控制点2坐标 参数4:圆弧半径 ctx.arcTo(200, 50, 200, 200, 100); ctx.lineTo(200, 200) ctx.stroke(); ctx.beginPath(); ctx.rect(50, 50, 10, 10); ctx.rect(200, 50, 10, 10) ctx.rect(200, 200, 10, 10) ctx.fill()}draw();
arcTo方法的解释:
这个方法可以这样理解。绘制的弧由两条切线确定。
第1条切线:由起点和控制点1确定的直线。
第二条切线:由控制点1和控制点2确定的直线。
实际上画的弧就是这两条直线的切线的弧
二。用画布画一个矩形
Canvast提供了三种绘制矩形的方法:
1、
fillRect(x, y, width, height)
:绘制一个填充的矩形。2、
strokeRect(x, y, width, height)
:绘制一个矩形的边框。3、
clearRect(x, y, width, height)
:清除指定的矩形区域,然后这块区域会变的完全透明。function draw(){ var canvas = document.getElementById('canvas'); if (!canvas.getContext) return; var ctx = canvas.getContext("2d"); ctx.fillRect(10, 10, 100, 50); // 绘制矩形,填充的默认颜色为黑色 ctx.strokeRect(10, 70, 100, 50); // 绘制矩形边框 ctx.clearRect(20, 20, 40, 30) // 清除一个矩形区域}draw();
画一个渐变矩形。
function draw(){ var canvas = document.getElementById('canvas'); if (!canvas.getContext) return; var ctx = canvas.getContext("2d"); // 创建渐变的样式1 var grd=ctx.createLinearGra***nt(0,0,200,0); grd.addColorStop(0,"green"); grd.addColorStop(1,"white"); // 创建渐变的样式2 var rrd=ctx.createLinearGra***nt(0,200,0,0); rrd.addColorStop(0,"red"); rrd.addColorStop(1,"white"); // 创建渐变的样式3 var crd=ctx.createRadialGra***nt(155,130,10,155,130,100); crd.addColorStop(0,"blue"); crd.addColorStop(1,"white"); ctx.fillStyle=grd; // 用第一种样式画矩形 ctx.fillRect(10,10,150,80); ctx.fillStyle=rrd;// 用第二种样式画矩形 ctx.fillRect(10,100,80,150); ctx.fillStyle=crd;// 用第三种样式画矩形 ctx.fillRect(80,100,150,60);}draw();
渐变可以填充矩形、圆形、线条、文本等。各种形状可以自己定义不同的颜色。
设定画布渐变有两种不同的方法:
createLinearGra***nt(x,y,x1,y1) – 创建线条渐变createRadialGra***nt(x,y,r,x1,y1,r1) – 创建一个径向/圆渐变
当我们使用渐变对象时,我们必须使用两种或两种以上的停止色。
addColorStop()方法指定颜色停止,参数用坐标描述,可以是0到1。
使用gra***nt,将fillStyle或strokeStyle的值设置为gra***nt,然后绘制一个形状,如矩形、文本或线条。
Canvas绘制文本
使用canvas绘制文本,重要的属性和方法如下:
font – 定义字体fillText(text,x,y) – 在 canvas 上绘制实心的文本strokeText(text,x,y) – 在 canvas 上绘制空心的文本function draw(){ var canvas = document.getElementById('canvas'); if (!canvas.getContext) return; var ctx = canvas.getContext("2d"); ctx.font="20px Arial"; ctx.fillText("美好的一天!",10,50); ctx.font="30px Arial"; ctx.strokeText("美好的一天!",10,100);}draw();
本文来自倾心之夏投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/645128.html