JavaScript 之 canvas(二)-- 绘制基本图形

本文首发地址: https://www.jeremyjone.com/465/ ,转载请注明
代码地址:https://github.com/jeremyjone/CanvasPaint ,需要请自行查看。

JavaScript 之 canvas(一)中理解了canvas的绘图原理,这次就开始绘制基本图形。

一般来说,canvas的图形分成实心(fill)和空心(stroke),我们的绘图板基本使用的是空心图形,但是也要了解一下实心图形,其原理是一毛一样的。

直线

一般来说,直线需要知道两端坐标,所以代码如下:

// 直线
context.moveTo(150, 150);  // 移动到某一位置
context.lineTo(300, 150);  // 画直线从当前点到给定的位置
context.stroke();

file

这样就绘制出一条起点在 (150, 150),终点在 (300, 150) 的水平直线。

好像很简单的样子,接着来看下一个。

箭头

箭头的思路和直线差不多,先画直线,然后在终点位置画一个填充的三角形即可。
注意三角形需要按照直线的方向,所以用到的数学属性如下:

// 箭头
// 箭头的思路和直线差不多,先画直线,然后在终点位置画一个填充的三角形即可
// 注意三角形需要按照直线的方向,所以用到的数学属性如下
context.moveTo(230, 230);  // 移动到指定坐标
context.lineTo(500, 230);  // 画直线
context.stroke();  // 填充直线
let endRadians = Math.atan((230 - 230) / (500 - 230));  // 计算出当前直线的角度
endRadians += ((500 >= 230) ? 90 : -90) * Math.PI / 180;  // 角度的正负取值
context.translate(500, 230)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值