Fork me on GitHub
随笔 - 265  文章 - 0  评论 - 1075  阅读 - 230万

canvas学习笔记一

为了研究pixi库,就顺带从头到位学习下canvas吧

判断支持力度

var webgl = (function() {
    try {
        var canvas = document.createElement('canvas');
        return !!window.WebGLRenderingContext && (canvas.getContext('webgl') || canvas.getContext('experimental-webgl'));
    } catch (e) {
        return false;
    }
})();

getContext方法指定参数2d,表示该canvas对象用于生成2D图案(即平面图案)。如果参数是3d,就表示用于生成3D图像(即立体图案),这部分实际上单独叫做WebGL API

 

绘制路径

  • beginPath方法表示开始绘制路径
  • moveTo(x, y)方法设置线段的起点
  • lineTo(x, y)方法设置线段的终点
  • stroke方法用来给透明的线段着色
复制代码
    //////////
    //绘制路径 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()
复制代码

 

绘制矩形

  • fillRect(x, y, width, height)方法用来绘制矩形,它的四个参数分别为矩形左上角顶点的x坐标、y坐标,以及矩形的宽和高。fillStyle属性用来设置矩形的填充色
  • strokeRect方法与fillRect类似,用来绘制空心矩形
  • clearRect方法用来清除某个矩形区域的内容
复制代码
    //////////
    //绘制路径 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()
复制代码

 

绘制文本

  • fillText(string, x, y) 用来绘制文本,它的三个参数分别为文本内容、起点的x坐标、y坐标。使用之前,需用font设置字体、大小、样式(写法类似与CSS的font属性)。与此类似的还有strokeText方法,用来添加空心字
  • fillText方法不支持文本断行,即所有文本出现在一行内。所以,如果要生成多行文本,只有调用多次fillText方法。
复制代码
    //////////
    //绘制路径 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()
复制代码

 

绘制圆形和扇形

arc方法用来绘制扇形

ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise);

arc方法

  • x和y参数是圆心坐标
  • radius是半径
  • startAngle和endAngle则是扇形的起始角度和终止角度(以弧度表示)
  • anticlockwise表示做图时应该逆时针画(true)还是顺时针画(false)
复制代码
    //////////
    //绘制路径 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()
复制代码

 

设置渐变色

createLinearGradient方法用来设置渐变色。

createLinearGradient方法的参数是(x1, y1, x2, y2),其中x1和y1是起点坐标,x2和y2是终点坐标。通过不同的坐标值,可以生成从上至下、从左到右的渐变等等。

    /////////
    //渐变色 //
    /////////
    var myGradient = context.createLinearGradient(0, 0, 0, 60); 
    myGradient.addColorStop(0, "#BABABA");
    myGradient.addColorStop(1, "#636363");
    context.fillStyle = myGradient;
    context.fillRect(10,250,200,100);

 

设置阴影

复制代码
/////////
    //渐变色 //
    /////////
    var myGradient = context.createLinearGradient(0, 0, 0, 60); 
    myGradient.addColorStop(0, "#BABABA");
    myGradient.addColorStop(1, "#636363");
    context.fillStyle = myGradient;
    context.fillRect(10,250,200,100);
复制代码

 



posted on   【艾伦】  阅读(2780)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示