HTML5- Canvas入门(一)画线

canvas是一个H5的标签:

<canvas> </canvas>

canvas本身没有任何的绘图能力,所有的绘图工作都是通过js来实现的。通常我们在js通过getElementById来获取要操作的canvas(这意味着咱得给canvas设个id):

<canvas id="myCanvas"></canvas>

<script>
var c = document.getElementById("myCanvas"); //获取要操作的canvas
//操作canvas的代码...
</script>

注意最好在一开始的时候就给canvas设置好其宽高(若不设定宽高,浏览器会默认设置canvas大小为宽300、高100像素),而且不能使用css来设置(会被拉伸),建议直接写于canvas标签内部:

<canvas id="myCanvas" width="200" height="200"></canvas>

也可以在js脚本中设置:

<canvas id="myCanvas"></canvas>

<script>
var c = document.getElementById("myCanvas");
c.width=200;
c.height=200;
</script>

关于canvas大小需要知道的一点是,后续咱们对canvas所做的全部绘图操作,超出此大小范围的部分是不可见的。

接着在聊如何在canvas上绘图前,咱得先说说.getContext(“2d”)这东西。
.getContext() 是canvas的绘图对象/方法,要让canvas执行绘图工作必须先获取canvas的.getContext()对象来执行。

.getContext()只接受一个参数,该参数用于获取canvas的绘图环境,例如.getContext(“2d”)表示该canvas的绘图环境为2D平面(可以绘制文本、直线、弧线、矩形、圆形等)。当前H5只支持2D环境,在不久的将来会开放3D绘图功能。(故咱可将“getContext”翻译为“获取绘图环境”)

先来个小例子,从最简单的绘制直线开始:

<canvas id="myCanvas" width="200" height="200" style="border:solid 1px #CCC;">
您的浏览器不支持canvas,建议使用最新版的Chrome
</canvas>

<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d"); //获取该canvas的2D绘图环境对象
ctx.moveTo(10,10);   //定义绘画开始的位置
ctx.lineTo(150,50);  //画一条直线,结束点坐标是x=150,y=50
ctx.stroke();  //描边
</script>

效果如下:
HTML5- Canvas入门(一)画线

在这里我们使用了3个getContext(“2d”)对象的绘图方法:

.moveTo(x坐标 , y坐标)      可以理解为定位画笔在画布上的位置(注意所有绘图方法所定义的坐标是相对canvas而言的而不是浏览器窗口,对canvas来说,最左上角的点的坐标是(0,0))

.lineTo(x坐标 , y坐标)      顾名思义,就是画一条直线到某个点,很好理解。需要知道的是此方法仅仅做路径运动,而不存在任何视觉上的绘图效果(上色、描边)

.stroke()     描边方法,有玩过AfterEffect的朋友会很清楚,不给运动路径加stroke特效的画是不存在描边效果的,canvas也一样,想要运动路径轨迹能有视觉效果,需要使用相应的上色/描边方法。

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/10637.html

(0)
江山如画的头像江山如画管理团队
上一篇 2022年6月23日 上午8:43
下一篇 2022年7月10日 上午8:57

99%的人还看了以下文章

  • Pillow-优秀的Python图像处理库安装及入门教程

    Pillow库是Python 图像处理库(Python image library)的一个派生分支,提供了广泛的文件格式(BMP,PNG,JPEG等)支持,提供基本的图像处理能力,如: 图像存储、图像显示、改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。 比起OpenCV库的图像处理,功能有限,但函数使用非常方便,大…

    2020年12月8日
    2.1K0
  • 单元测试工具JUnit介绍及使用,单元测试快速入门教程五

    JUnit是一个开放源代码的测试框架,用在编写和运行可重复的测试脚本之上,是用于Java语言编写的面向对象程序的单元测试工具。JUnit框架功能强大,目前已经成为Java单元测试的事实标准,基本上能满足日常的测试要求。 1.Junit主要特性 (1)可以将测试代码和产品代码分别开发,便于管理。 (2)针对某一个类的测试代码,以较少的改动便可以应用    另一…

    2018年4月18日 编程开发
    5.0K0
  • jsp日期控件lhgcalendar下载

    资源类别:编程开发软件大小:377KB推荐等级:★★★★★资源语言:简体中文授权方式:免费版软件属性:国产软件应用平台:Win9X,Win2000,WinXP,Win2003,Vista,Unix,Linux lhgcalendar简介 非常好用的JSP日历控件,功能强大。可以实现: 1. 在控件下面或右面弹出日历组件(默认是在下面弹出) 2. 通过按钮或图…

    2019年10月8日
    2.4K0
  • Python+ 人工智能软件工程师要学习哪些课程?

    1. Python 软件开发基础 2. Python 高级编程 3. Python 全栈式 WEB 工程师 4. Python 爬虫工程师、大数据分析工程师、人工智能工程师

    2018年12月27日
    3.6K0
  • pycharm 中pip不是内部或外部命令,也不是可运行的程序或批处理文件(直接解决问题)

    在pycharm中输入pip则显示:pip不是内部或外部命令,也不是可运行的程序或批处理文件。 和在命令行输入python提示python不是内部或外部命令,也不是可运行的程序或批处理文件一样,都是环境变量的问题。不用怀疑,www.125jz.com站长亲测!!! pip不是内部或外部命令,也不是可运行的程序或批处理文件的解决方法 1.首先找到pip的安装位…

    2023年1月13日 编程开发
    7.4K0
  • MVC(JSP+JavaBean+Servlet)+MYSQL入门实例:实现用户登陆

    MVC(JSP+JavaBean+Servlet)+MYSQL实现用户登陆模块,具体功能: 客户在登陆页面Login.html输入用户名和密码,提交表单,由Servlet(LoginValidate.java)调用JavaBean(LoginDBO.java)验证用户名和密码,最后调用视图returnMessage.jsp显示,如果成功显示成功信息,不成功显…

    2018年11月27日 编程开发
    8.3K0

发表回复

登录后才能评论