首页 > 其他分享 >Canvas 画布学习(补全中...)

Canvas 画布学习(补全中...)

时间:2023-08-06 20:46:22浏览次数:31  
标签:... Canvas 补全 200 ctx canvas height width 绘制

1. 标签 <canvas></canvas>

2.大小

  可以在标签中直接写

<canvas id="canvas" width="500" height="300"></canvas>

  也可以在Css中为id类添加样式

  

#canvas {
    background-color: red;
    width:520px;
    height:200px;
}

也可以在JS中赋值

var canvas = document.querySelector('#canvas')
canvas.width = window.innerWidth
canvas.height = 300

默认大小 300 150  不推荐多种方式一起使用

3.线

  var ctx = canvas.getContext('2d');

  // 开始画线

  ctx.beginPath()

  // 移动到起点

  ctx.moveTo(x,y)  x,y 为坐标点

  // 画线连接两个点

  ctx.lineTo(x,y)fi

  ¥¥  // 这里也可以用 ctx.closePath()  闭合线段 或 ctx. fill() 填充闭合线段

  // 绘制出定义的线

  ctx.stroke()

4.矩形

  //画一个矩形 起点坐标 x,y 宽 高

  ctx.rect(0,0, 400,200) 

  // 接着可以 闭合填充矩形 也可以只是绘制出闭合的矩形  ctx.fill()  ctx.stroke()

  // 也可以将上面绘制和闭合 一起使用

  ctx.fillRect(0,0,400,200)   or  ctx.strokeRect(0,0,400,200)

  // 清除指定区域内的任何画笔痕迹

  ctx.clearRect(0,0,200,200)

5.圆形

  // 画一个矩形 x,y 圆心 r 半径 startAngle 开始角度 endAngle 结束角度 anticlockwise true 逆时针 false 顺时针 默认false

  ctx.arc(x,y,r,startAngle,endAngle,anticlockwise)

6.文字

  // 绘制文字  text 文字内容 x,y 坐标

  ctx.fillText(text,x,y)

  // 绘制文字 text 文字内容  x,y 坐标  和上面的区别 我用起来的感觉就是这个是加粗 具体的后面在看吧

  ctx.strokeText(text,x,y)

  // 字体 和CSS一样

  ctx.font()

  // 文本居中方式  left | right | center | start | end 

  ctx.textAlign()

  // 基线对齐方式 top | hanging | middle | alphabetic | ideographic

  ctx.textBaseline()

  // 文字方向 ltr | rtl | inherit

  ctx.direction 

7.图片

  var img = new Image()

  //  图片地址

  img.src = ''

  // 绘制图片  img 图片对象 x,y 坐标 width 宽 height 高

  ctx.drawImage(img,x,y,width,height)

  $$ 这里我遇到了这样写图片不显示的问题 应该是显示时机的问题 改为如下写法即可显示

  var myImage= new Image()

  myImage.onLoad = ()=>{

    ctx.drawIamge(myImage,x,y,width,height)

  }

  //  写图片地址 

  myImage.src = ''

8.样式

  //填充颜色  我怎么没用处效果呢...

   ctx.fillStyle('blue')

  //填充颜色  我怎么没用处效果呢...

  ctx.strokeStyle('blue')

9.状态

  // 存储当前的值 颜色等

  ctx.save()

  // 恢复到存储的值

  ctx.restore()

10.

标签:...,Canvas,补全,200,ctx,canvas,height,width,绘制
From: https://www.cnblogs.com/shirunfeng/p/17609024.html

相关文章

  • 记一次因为C#官方扩展导致自动补全出错的情况 (C# & Godot)
    现象最近使用Vscode结合Godot使用时突然发现自动补全出问题了,发现一部分自动补全能弹出补全项目,但是确认后不起作用,还会吞掉弹出自动补全后输入的字符。大概是下图这样的感觉(截图时已修好,图为演示摆拍)线索找了很多办法,有一瞬间我突然发现C#官方扩展的评论区在短期内......
  • 无涯教程-Perl - do...while 语句函数
    与for和while循环不同,它在循环的顶部测试循环条件,而do...while循环在以下位置检查其条件:循环的底部。do...while循环与while循环相似,除了保证do...while循环至少执行一次。do...while-语法do{statement(s);}while(condition);应当注意,条件表达式出......
  • c语言作业之计算1-1/2+1/3-1/4+......1/99+1/100的值
    intmain()//计算1-1/2+1/3-1/4+......1/99+1/100的值{ inti=0; doublesum=0.0; intj=1; for(i=1;i<=100;i++) { sum+=j*1.0/i; j=-j; } printf("%f",sum); return0;}输出的结果为:......
  • 无涯教程-Perl - unless...elsif..else 语句函数
    除非unless语句后可以跟可选的elsif...else语句,这对于使用单个unless...elsif语句测试各种条件非常有用。unless...elsif..else-语法Perl编程语言中的unless...elsif...else语句的语法是-unless(boolean_expression1){#Executeswhenthebooleanexpression......
  • 腾讯云TCB云函数趣应用:巧用 puppeteer 五分钟实现一个云加社区个人成就爬虫...
    技术选型应用思路核心代码参数介绍HTTP访问注意事项参考资料最后奉上几个社区大佬的成就#技术选型之前一直想用云函数来做爬虫,无奈小程序云开发的云函数还未完全支持puppeteer,调用会报错。但是最近发现TCB的云函数支持puppeteer依赖,就决定用它了。另外一个原因就是它也......
  • 面了小 100 人,90% 都背了面试题......
    有个朋友去阿里面试,面试总共花费了20天左右,包含了4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,70%的人都会载在第一轮面试,要不是他面试之前做足了准备,估计都坚持不到接下来的面试。 其实,第一轮的电话面试除了一些常规的自我介绍外,问的都是一些基......
  • 无涯教程-Perl - if...elsif...else语句函数
    if语句后可以跟可选的elsif...else语句,这对于使用单个if...elsif语句测试各种条件非常有用。if...elsif...else-语法Perl编程语言中的if...elsif...else语句的语法是-if(boolean_expression1){#Executeswhenthebooleanexpression1istrue}elsif(......
  • 断言-Assert.isTrue(...);
    Assert.isTrue(...)是SpringFramework中的一个断言方法,用于对条件进行断言检查。如果条件为真,则继续执行程序;如果条件为假,则抛出异常并输出错误消息。下面是一个简单的例子,演示如何使用Assert.isTrue(...)方法:importorg.springframework.util.Assert;publicclassExam......
  • PostgreSQL-错误处理集(持续更新... ...)
    1无法删除用户ERROR:角色不能被删除,因为有对象依赖于它LINE1:模式public的权限/用户下有表存在解决方法:收回赋予此用户的模式public的权限,并删除用户下的表,即可正常删除。postgres=#\duListofrolesRolename|......
  • 俩人同样写代码,我拿七千他咋五万八...(送送送)
    ......