数据可视化: 绘制简单图形

  1. 画线
  <canvas id="canvas" width="300" height="300"></canvas>

  <script>
    let canvas = document.getElementById('canvas')
    let ctx = canvas.getContext('2d');
    ctx.moveTo(30, 30) // 定位开始点
    ctx.lineTo(90, 30) // 拖动并结束点
    ctx.stroke() // 绘制点
  </script>
  1. 绘制三角形
    // 给三个点的坐标
  <canvas id="canvas" width="300" height="300"></canvas>

  <script>
	let canvas = document.getElementById('canvas')
    let ctx = canvas.getContext('2d');
    ctx.strokeStyle = 'red' // 线条颜色
    ctx.lineWidth = 5; // 线条宽度
    ctx.moveTo(50, 50) // 定位开始点
    ctx.lineTo(150, 150)
    ctx.lineTo(80, 130)
    // ctx.lineTo(50, 50)
    ctx.closePath() // 形成闭合路径
    ctx.stroke() // 绘制点

  </script>
  1. 绘制不同颜色的三角形
    // beginPath重置了路径,画了三段线条
  <canvas id="canvas" width="300" height="300"></canvas>

  <script>
    let canvas = document.getElementById('canvas')
    let ctx = canvas.getContext('2d');

    ctx.strokeStyle = 'red' // 线条颜色
    ctx.lineWidth = 5; // 线条宽度
    ctx.moveTo(50, 50) // 定位开始点
    ctx.lineTo(150, 150)
    ctx.stroke() // 绘制线条
    ctx.beginPath()

    ctx.strokeStyle = 'blue'
    ctx.moveTo(150, 150)
    ctx.lineTo(80, 130)
    ctx.stroke()
    ctx.beginPath()

    ctx.strokeStyle = 'yellow'
    ctx.moveTo(80, 130)
    ctx.lineTo(50, 50)
    ctx.stroke()

  </script>
  1. 绘制文字
<canvas id="canvas" width="300" height="300"></canvas>

  <script>
    let canvas = document.getElementById('canvas')
    let ctx = canvas.getContext('2d');
    ctx.font = 'bold 32px 黑体' // 设置字体样式
    ctx.textAlign = 'left' // 水平对齐 left center right
    ctx.textBaseline = 'top' // 垂直对齐 top middle bottom

    ctx.fillText('50%', 50, 50) 
    // ctx.fillText('50%', 50, 50, 40) // 后面的参数限制文字宽度
    ctx.strokeText('50%', 100, 100) // 描边的文字
    

  </script>
  1. 将绘制的内容生成图片
  <canvas id="canvas" width="300" height="300"></canvas>

  <script>
    let canvas = document.getElementById('canvas')
    let ctx = canvas.getContext('2d');
    ctx.font = 'bold 32px 黑体' // 设置字体样式

    ctx.fillText('50%', 50, 50)
    let imgUrl = ctx.toDataURL('image/png', 1) // 得到base64的图片, 0-1为图片质量
    console.log(imgUrl)
    

  </script>
  1. 绘制矩形

  2. 绘制图片

只有三种参数

(图片, 开始裁剪的x坐标,开始裁剪的y坐标, 裁剪图像的宽度, 裁剪图像的高度, 放在画布上的x左边, 放在画布上的y坐标, 图像要显示的宽, 图像要显示的高 )// void ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
(图片,放在画布上的x坐标, 放在画布上的y坐标,图像要显示的宽, 图像要显示的)void ctx.drawImage(image, dx, dy, dWidth, dHeight);
(图片,放在画布上的x坐标, 放在画布上的y坐标,)void ctx.drawImage(image, dx, dy);
ctx.drawImage(img, -canvasWidth, -canvasWidth)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值