canvas

// 不建议在CSS中设置,CSS中设的是canvas的样式,不是其大小
<canvas id="canvas" width="600" height="400"></canvas>
// 获取画布元素
  let myCanvas = document.getElementById("canvas")
// 获取上下文绘制工具箱,暂时没有'3d'
  let ctx = myCanvas.getContext('2d')
// 获取画布宽度和高度
ctx.canvas.width
ctx.canvas.height
// 移动画笔
ctx.moveTo(100, 100)
// 绘制直线(轨迹,路径)API
ctx.lineTo(200, 100)
// 描边
ctx.stroke();

关于线条的问题,默认的宽度是多少?(1px)默认的颜色是什么(黑色)?
产生的原因?解决方案?电脑最小识别单位为1px,对齐的点是线的中心位置,上或下移动0.5px 即可;

// 设置线条颜色,设置的所有线条
ctx.strokeStyle = 'blue'
// 设置线条宽度,设置的所有线条
ctx.lineWidth = 10
// 开启新路径,可以解决样式覆盖问题
ctx.beginPath()

绘制三角形(用三条直线画三角形)

 // 填充(默认黑色)
ctx.fill()
ctx.fillstyle = 'red' // (填充其他颜色)
// 当线条宽度足够宽时,起始点和lineTo的结束点无法完全闭合,会缺角,使用canvas的自动闭合, 可以解决此问题
ctx.closePath()

绘制一个镂空的正方形(用四条直线画正方形)
画的时候方向相反,填充外层的,即非零环绕规则(从需要被填充的区域拉一条线,顺时为+1,逆时为-1,相加非零填充)
// 线的渐变色
可以利用线是由点构成来绘制,加上for 循环即可实现

 // 线条相关API(和线相关的属性和方法)
lineWidth  (线宽,默认1px) 
lineCap  (线末端类型:默认butt, round, square)
lineJoin  (相交线的拐点, 默认miter, round, bevel)
strokeStyle  (线的颜色)
 fillStyle  (填充颜色)
setLineDash([5, 10, 15])  (设置虚线)(参数:array(实,虚...))
getLineDash()  (获取虚线宽度集合,获取的是不重复的那一段排列方式)
lineDashOffset  (设置虚线偏移量(负值向右偏移))

矩形绘制

rect(x,y,w,h)  没有独立路径(起点坐标(x,y),宽度,高度)
strokeRect(x,y,w,h)  描边矩形,有独立路径,不影响别的绘制(有独立路径,相当于默认开启beginPath())
fillRect(x,y,w,h)  填充矩形,有独立路径,不影响别的绘制
clearRect(x,y,w,h)  擦除矩形区域
// 线性渐变,通过两个点的坐标可以控制渐变方向,创建 一个渐变方案
// x0,y0起始点,x1,y1结束点(确定的不仅有长度,还有方向)
let linearGradient = ctx.createLinearGradient(x0, y0, x1, y1);
linearGradient.addColorStop(0, 'pink')
linearGradient.addColorStop(0.5, 'red')
linearGradient.addColorStop(0, 'blue')
// 使用渐变方案
fillStyle = linearGradient

圆弧绘制

arc(x, y, r ,startAngle, endAngle)
x  圆心横坐标
y  圆心纵坐标
r  半径
startAngle  开始角度(单位弧度)
endAngle  结束角度(单位弧度)
direction  方向(默认顺时针,false)

文本绘制

// text要绘制的文本, // x,y文本绘制的坐标(文本左下角)// maxWidth(文本最大宽度,可选参数)
font = '尺寸,微软雅黑'(先设大小,再设字体)
strokeText('文本', x, y ,maxWidth)
fillText(text, x, y, maxWidth)
// textAlign文本水平对齐方式,相对绘制坐标来说
left
center
right
start(默认)
end
// direction属性css(rtl, ltr) start 和end 与此相关
如果是ltr, start 和left表现一致
如果是rtl, start 和right表现一致
// textBaseline设置基线(垂直对齐方式)
top  文本的基线处于文本的正上方,并且有一段距离
middle  文本的基线处于文本的正中间
bottom  文本的基线处于文本的正下方,并且有一段距离
hanging  文本的基线处于文本的正上方,并且和文本粘合
alphabetic  默认值,文本的基线处于文本的下方,并且穿过文本
ideographic  和 bottom 相似,但是不一样
measureText(text).width  获取文本宽度obj.width

图片绘制

// img 图片对象,canvas对象,video对象 // x,y图片绘制的左上角,
// w, h图片绘制尺寸设置(图片缩放,不是截取)// x1,y1,w1,h1画布中的一个矩形区域
// 九个参数时是以图片左上角为基准,截取图片,具体查看API,三个,五个,九个参数时表示意义不同
drawImage(img, x, y, w, h,x1, y1, w1, h1 )

坐标变换
// 平移,移动画布的原点
translate(x, y) // 参数表示移动目标点的坐标
scale(x, y) // 参数表示宽高的缩放比例
rotate(angle) // 参数表示旋转角度

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351