当前位置:   article > 正文

canvas画布,绘制矩形、圆形、渐变色、图片、文字_canvas设置纯色圆形

canvas设置纯色圆形

画布

canvas元素是H5新增的一个重要元素,专门用来绘制图形。在页面中放置一个canvas元素,就相当于在页面上放置一块画布,可以利用canvas api在其中进行图形的描绘。canvas只是一个容器,不具备绘制能力,需要我们编写js代码实现

  • 矩形

    绘制矩形的步骤:

  • 1. 取得canvas对象
    2. 取得2d上下文(context)
    3. 设定绘图样式,使用图形上下文对象中的fillStyle填充样式  strokeStyle 边框样式
    4. 指定线宽,使用图形上下文对象中的lineWidth
    5. 绘制矩形,使用图形上下文对象的

  •  代码实现:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Document</title>
    8. </head>
    9. <body>
    10. <!-- 矩形:
    11. 1. 取得canvas对象
    12. 2. 取得2d上下文(context)
    13. 3. 设定绘图样式,使用图形上下文对象中的fillStyle填充样式 strokeStyle 边框样式
    14. 4. 指定线宽,使用图形上下文对象中的lineWidth
    15. 5. 绘制矩形,使用图形上下文对象的 -->
    16. // canvas 画布宽高用heigh和width属性设置
    17. <canvas height="500" width="500" style="border: 1px solid #333;"></canvas>
    18. <script>
    19. // 1.获取canvas对象
    20. var canvas = document.getElementsByTagName('canvas')[0]
    21. // 2.获取canvasd的2d上下文
    22. var context = canvas.getContext('2d');
    23. // 3.设置填充模式 填充/描边,当获取了2d上下文后,所有操作都要在context上进行
    24. context.fillStyle = 'red' //填充
    25. context.strokeStyle = 'blue' //描边
    26. // 4.设置线宽 描边时需要设置线宽
    27. context.lineWidth = '1'
    28. // 5.绘制矩形 (x坐标,y坐标,宽度,高度)
    29. // 填充矩形
    30. context.fillRect(20,20,100,100)
    31. // 描边矩形
    32. context.strokeRect(200,200,200,200)
    33. // 清除矩形
    34. // context.clearRect(20,20,30,30)
    35. </script>
    36. </body>
    37. </html>
  • 圆形

    绘制圆形的步骤:

    1. 取得canvas对象

    2. 取得2d上下文(context)

    3. 设定绘图样式,使用图形上下文对象中的fillStyle填充样式 strokeStyle 边框样式

    4. 指定线宽,使用图形上下文对象中的lineWidth

    5. 开始创建路径,context.beginPath()

    6. 设置路径context.arc(x, y, radius, startAngle, endAanle, direction),参数分别是:圆心x坐标,圆心y坐标,半径,开始角度,结束角度,绘制为逆时针,false为顺时针(默认) 派 =180度 派 = 3.1415弧度

      角度到弧度的运算方式:Math.PI / 180 * startAngle

      1. 关闭路径context.closePath()

      2. 设定绘制样式,进行图形绘制fill() stroke() 重复绘制圆形

 

 代码实现:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>画圆形</title>
  8. </head>
  9. <body>
  10. <canvas height="500" width="500" style="border: 1px solid #333;"></canvas>
  11. <script>
  12. // 1.获取canvas对象
  13. var canvas = document.getElementsByTagName('canvas')[0]
  14. // 2.获取canvasd的2d上下文
  15. var context = canvas.getContext('2d');
  16. // 3.设置填充模式 填充/描边
  17. context.fillStyle = 'red'
  18. context.strokeStyle = 'blue'
  19. // 4.设置线宽 描边时需要设置线宽
  20. context.lineWidth = '1'
  21. // 5.开始路径
  22. context.beginPath()
  23. // 6.设置路径
  24. //https://www.w3school.com.cn/tags/canvas_arc.asp
  25. context.arc(200,200,50, Math.PI /180 * 0,Math.PI/180*360,)
  26. // 7.关闭路径
  27. context.closePath()
  28. // 8.绘制圆形
  29. context.fill() //填充圆形
  30. context.stroke() //描边圆形
  31. </script>
  32. </body>
  33. </html>

 渐变色

绘制渐变的步骤:

  1. 取得canvas对象

  2. 获取2d上下文context

  3. 创建渐变对象,并添加渐变色

    var gradient = context.createLinearGradient(xstart,ystart,xend,yend)

    参数为:起始点x坐标,y坐标,结束点x坐标,y坐标。

    gradient.addColorStop(number,'color')

    gradient.addColorStop(number,'color')

    number为偏移量,0~1之间

    1. 设置填充模式 context.fillStyle = gradient

    2. 绘制矩形 context.fillRect(x,y,宽,高)

 

代码实现

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>渐变色</title>
  8. </head>
  9. <body>
  10. <canvas height="500" width="500" style="border: 1px solid #333;"></canvas>
  11. <script>
  12. // 1.获取canvas对象
  13. var canvas = document.getElementsByTagName('canvas')[0]
  14. // 2.获取canvasd的2d上下文
  15. var context = canvas.getContext('2d');
  16. // 3.创建渐变对象 并添加渐变色
  17. var gradient = context.createLinearGradient(100,100,300,300)
  18. gradient.addColorStop(0,'#fff')
  19. gradient.addColorStop(1,'#000')
  20. // 4.设置填充模式
  21. context.fillStyle = gradient
  22. // 5.绘制 矩形
  23. context.fillRect(100,100,200,200)
  24. </script>
  25. </body>
  26. </html>

 图片

绘制渐变的步骤:

  1. 取得canvas对象

  2. 获取2d上下文context

    var context = canvas.getContext('2d')

  3. 创建图像对象

    var image = new Image()

    Image.src = './photo.jpg'

  4. 在图片加载完毕后绘制图片,绘制图像

    image.onload = function(){

    context.drawImage(image,x,y) 参数:图像,绘制位置的x坐标,y坐标

    context.drawImage(image,x,y,w,h) 参数:图像,绘制位置的x坐标,y坐标 ,宽,高

    }

  5. 可以设置平铺模式

    var pattern = context.createPattern(image,'repeat')

    将平铺对象复制给填充模式

    context.fillStyle = pattern

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>图片</title>
  8. </head>
  9. <body>
  10. <canvas height="500" width="500" style="border: 1px solid #333;"></canvas>
  11. <script>
  12. // 1.获取canvas对象
  13. var canvas = document.getElementsByTagName('canvas')[0]
  14. // 2.获取canvasd的2d上下文
  15. var context = canvas.getContext('2d');
  16. // 3.创建图片对象 并导入图片
  17. var image = new Image()
  18. image.src = './photo.png'
  19. // 4.调用绘制图片的方法
  20. image.onload = function(){
  21. // 绘制图片
  22. // context.drawImage(image,0,0)
  23. // 创建平铺对象 并设置平铺模式
  24. var pattern = context.createPattern(image,'repeat')
  25. context.fillStyle = pattern
  26. context.fillRect(0,0,500,500)
  27. }
  28. </script>
  29. </body>
  30. </html>

文字

绘制矩形的步骤:

1. 取得canvas对象
2. 取得2d上下文(context)
3. 设定绘图样式     fillStyle填充样式       strokeStyle 边框样式
4. 指定线宽     lineWidth
5. 设置文字和对齐方式
6. 绘制文字

 

代码实现:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>文字</title>
  8. </head>
  9. <body>
  10. <canvas height="500" width="500" style="border: 1px solid #333;"></canvas>
  11. <script>
  12. // 1.获取canvas对象
  13. var canvas = document.getElementsByTagName('canvas')[0]
  14. // 2.获取canvasd的2d上下文
  15. var context = canvas.getContext('2d');
  16. // 3.设置填充模式 填充/描边
  17. context.fillStyle = 'red'
  18. context.strokeStyle = 'blue'
  19. // 4.设置线宽 描边时需要设置线宽
  20. context.lineWidth = '1'
  21. // 5.设置文字
  22. context.font = '40px sans-serif'
  23. context.textAlign = 'center'
  24. // 6.绘制文字
  25. context.fillText('hello canvas', 200,100) //填充文字
  26. context.strokeText('hello canvas', 200,200) //描边文字
  27. </script>
  28. </body>
  29. </html>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/254373
推荐阅读
  

闽ICP备14008679号