加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

html5 Canvas绘图教程(1)—绘图的根基知识

发布时间:2020-09-23 03:59:06 所属栏目:编程 来源:网络整理
导读:Canvas,意为画布也。而Html5中的Canvas也真的跟实际糊口中的画布很是相似。以是,把他当作一块实其着实的画布可以加速领略;假如你想进修Canvas绘图,你必必要有
固然各人都称Canvas为html5的新标签,看起来仿佛Canvas属于html说话的新常识,但着实Canvas绘图是通过javascript来做的。以是,假如你想进修Canvas绘图,你必必要有Javascript基本。
其它,绘图嘛,总有一些图像方面的术语和常识点,以是假如你有过做图或美工履历,进修Canvas会更轻易。

Canvas,意为画布也。而Html5中的Canvas也真的跟实际糊口中的画布很是相似。以是,把他当作一块实其着实的画布可以加速领略。

画布
用canvas作画,起首,你必要有一块“画布”。假如你的书架内里没有画布,你可以买一卷返来放进去。虽然,在网页内里我们不必要费钱买,直接写一个canvas即可,相同:

复制代码

代码如下:


<canvas>你的赏识器不支持canvas</canvas>


个中标签内里的笔墨是给不支持canvas的赏识器看的,支持的永久看不到。
这个画布的特征有须要说一下,他有两个原生的属性,即width和height.同时,由于他也是一个html元素,以是他也可以行使css来界说width和height,可是,万万要留意:他自身的宽高和通过css界说的宽高是纷歧样的!
我们用JS来改变Canvas的宽高,是这样的:

复制代码

代码如下:


canvas.width= 400
canvas.height = 300


但用JS通过操纵CSS来改变Canvas的宽高,则是这样:

复制代码

代码如下:


canvas.style.width = '400px'
canvas.style.height = '300px'


看得出来,语法上区别是很明明的。现实上区别更明明。

他们的区别是什么?
好比一块宽1000的画布,你在画布左侧画了一条竖线,宽100像素。此时你把画布自身的width设为500,相等于把画布的右半边咔嚓掉了,但此时那竖线的宽度照旧100。
但假如你通过CSS来把画布的宽度酿成500,那就相等于把画布由1000挤压到500,以是竖线的宽度酿成了50.
(这只是理论环境,现实上配置canvas的宽度时,他会清空掉已画出来的内容。。)
Canvas自身的宽高就是画布自己的属性,而css给他的宽高则可以看作是缩放,假如你缩放的过分随意,那么画布上的图形也许变得你本身都认不出来。
以是有个提议:除非非凡环境,必然不要用css来界说Canvas的宽高。
画布有了,此刻我们把他拿出来:

复制代码

代码如下:


var cvs = document.getElementById('cvs');


看,跟获取其他元素的步伐千篇一律。

画笔
此刻画布已经有了,想往上面涂鸦,虽然还必要一只笔。canvas取得笔的要领如下:
var ctx = cvs.getContext('2d');个中getContext要领就是用来拿笔的,但这里尚有个参数:2d,这是什么意思呢?这个可以看作是画笔的种类。
既然有2D,那么就会有3d了?往后预计会有,但此刻没有。以是我们先用这只2d的笔吧。

那么我们可以多放几只笔来备用吗?谜底是不能。
我要问一个题目:你绘图的时辰是同时用几只笔呢?信托99.9%的人都是只能用一只,固然有些武林好手好比小龙女之类的可以两只手同时画,但这对一样平常人来说很不实际,是不是?
以是此刻你可以感想欣慰了,由于html5的canvas标签也只支持同时用一支笔!
有的写JS写的较量熟的同窗也许会想耍个小智慧:我用前面获取画笔的要领多整几只笔出来,不就行了?!
好比:

复制代码

代码如下:


var con = cvs.getContext('2d');
var ctx = cvs.getContext('2d');


哈哈哈哈,仿佛乐成了,在没测试之前我也是这么想的,但,其拭魅这只是一个幻觉!
由于我发明,我把个中一支笔蘸上红墨水,其它一支笔也自动蘸上了红墨水!由于两支笔是一体的!fuck。
假如你必要画出差异的颜色,步伐就是把这只独一的“笔”不断的蘸上新颜色。
这着实不是一个利益,是个缺陷,往后你会领会到的。

坐标
2d天下,就是平面,在一个平面上确定一个点,必要两个值,x坐标和y坐标。这是一个很重要的基本观念。
canvas的原点是左上角,跟flash一样。但蛋疼的是数学中的原点是左下角。这个…只能说风俗就好

一些绘图的根基知识
起首你必要知道,奈何的坐标变革会画出什么线?好比,x坐标变大而y坐标稳固,则能画出一条横线;y坐标变革而x坐标稳固,则是一条竖线。
虽然,尚有斜线,左斜线右斜线什么的,假如能比较图片,大部门人都能一看即懂;只是用代码画起来就较量忧郁了,只能靠逻辑思想想出来。
假如你此刻感受对线条一片混沌,也不消担忧,在进修的进程中天然会领略。

其他
canvas有一个和实际的画布纷歧样的特点就是,他默认是透明的,没有配景致。这在大部门时辰很是重要。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读