Canvas 2 簡易圖形繪製

繪製網格(圖形座標系)

  • 網格中的一個單元,相當於 canvas元素中的一個像素,左上角爲(0,0)所有的元素位置都是相對於原點的定位,

原生圖形繪製

  • 在 canvas 中,HTML中只支持一種原生圖形繪製:矩形。其它圖形都需要你至少生成一條路徑。

  • canvas 中提供的3種繪製矩形的方法:

    • fillRect(x, y, width, height)
    • strokeRect(x, y, width, height)
    • clearRect(x, y, width, height)
  • stroke指的的線段填充。

  • fill指的是內容填充

  • clear值得是清楚一個矩形區域

路徑繪製方法

  1. 創建繪製起始點
  2. 使用畫圖命令畫出路徑
  3. 之後把路徑封閉
  4. 最後通過描邊和填充路徑區域來渲染圖形
  • beginPath()

    • 創建一條路徑,生成後,圖形繪製命令被指向到路徑上生成路徑
    • 调用 beginPath()之后,第一条路径构造的命令通常是moveTo(x,y)。將筆觸放置到某一個位置。
  • closePath()

    • 閉合路徑之後圖形繪製命令又重新指向上下文,不是必须的,當調用 fill()函數的時候,所有沒有閉合的形狀都會自動閉合,所以你不需要調用closePath(),但是調用stroke()時不會自動閉合
    • 這裏需要注意,關閉一個圖形的繪製使用的是closePath()不是 close()
  • stroke()

    • 繪製圖形輪廓
  • fill()

    • 通過填充路徑的內容區域生成實心的圖形
  • 繪製一個實心三角形

function draw() {
  var canvas = document.getElementById('canvas');
  if (canvas.getContext) {
    var ctx = canvas.getContext('2d');

    ctx.strokeRect(0, 0, 100, 100);
    ctx.beginPath();
    ctx.moveTo(75,50);
    ctx.lineTo(100,75);
    ctx.lineTo(100,25);
    ctx.fill();
  }
}

  • 繪製曲線
    • context.arc(x,y,radius,startAngle,endAngle,anticlockwise)
    • 參數依次是:
      • 圓心 x 座標
      • 圓心 y 座標
      • radius半徑
      • 圓弧的終點,單位是弧度
      • boolean,用於判斷繪製是順時針還是逆時針
function draw() {
  var canvas = document.getElementById('canvas');
  if (canvas.getContext) {
    var ctx = canvas.getContext('2d');
    ctx.strokeRect(0, 0, 100, 100);
    ctx.strokeRect(0, 0, 75, 50);
    
    ctx.beginPath();
    ctx.arc(75,50,5,0,Math.PI*2,true); 
    ctx.moveTo(105,75);
    ctx.arc(100,75,5,0,Math.PI*2,true);
    ctx.moveTo(105,25);
    ctx.arc(100,25,5,0,Math.PI*2,true); 
    ctx.stroke();
  
    ctx.moveTo(75,50);
    ctx.lineTo(100,75);
    ctx.lineTo(100,25);
    ctx.fill();
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值