经过 canvas 教程(一) 简介 我们知道了 canvas 的一些基本情况

而本次是给大家带来直线的绘制

canvas 中,基本图形有两种,一种是直线,还有一种是曲线但是无论是直线还是曲线,我们都应该先了解 canvas 的坐标系 s

canvas 的坐标系

要绘制之前肯定要了解一下 canvas 的坐标系,我们之前肯定接触过数学坐标系:y 轴正方向是向上的

其实在前端领域里几乎所有的坐标系都是使用的 w3c 的坐标你,canvas 也是一样,w3c 的坐标系和数学坐标系的区别就在于:w3c 坐标系的 y 轴正方向是向下的

绘制直线

canvas 中绘制直线可以使用 moveTo 和 lineTo 两个方法,我们看看绘制一条直线的语法是怎么样的context.moveTo(x1, y1); //将画笔移动至坐标(x1,y1)作为新的起点context.lineTo(x2, y2); //从起点画线到(x2,y2)并以此作为新的起点context.stroke(); //描边连线

stroke 是指描边,对应的还有 fill 填充,我们在下面的绘制中试一试便知道是什么意思了

moveTo 和 lineTo 是可以重复使用来同时绘制多条直线

所以我们可以进行绘制三角形,矩形等

描边三角形:context.moveTo(50, 50);context.lineTo(50, 100);context.lineTo(100, 100);context.lineTo(50, 50);context.stroke();

填充矩形:context.moveTo(50, 50);context.lineTo(50, 100);context.lineTo(150, 100);context.lineTo(150, 50);context.lineTo(50, 50);context.fill();

是吧,我们很容易就理解了其中的区别。

绘制矩形

那么在我们开发当中,矩形是非常常见的,但我们发现一条一条的直线绘制是一件很麻烦的事情,所以 canvas 也带有了绘制矩形的方法: rect(x, y, width, height)

其中 x,y 代表绘制起点 width 和 height 分别要绘制的矩形的宽和高

而在我们绘制的时候可以修改颜色即是描边颜色:strokeStyle 和填充颜色:fillStyle

这两个属性的取值分为三种 1.颜色值 2.渐变色 3.图案后面两种暂且不表,颜色则支持十六进制、颜色关键字(例如:red)、rgb、rgba

所以绘制矩形的步骤是context.strokeStyle = 'red'; //1. 设置描边颜色context.rect(50, 50, 100, 50); //2. 绘制矩形context.stroke(); //3. 描边

canvas 也提供了另外两种绘制矩形的方法:描边矩形和和填充矩形就是上面的 2,3 的结合填充和描边的分别是 fill 和 stroke 那么填充矩形和描边矩形的方法就是 fillRect 和 strokeRect 了语法均是一致的?? strokeStyle 和 fillStyle 必须在绘制之前设置,否则无效

清除画布

有绘制矩形的方法,也有清除矩形的方法,这里的清除矩形不是指清除之前画的所有矩形,而是指在画布清除指定矩形区域方法名字为 clearRect,属性和绘制矩形是一致的

所以我们以后也会经常用到这个方法来,用来清空整个 canvas,即 context.clearRect(0,0,canvas.width,canvas.height)

结束

本次讲了:绘制直线、绘制矩形、描边和填充、清除矩形,大家学会了多少呢?

其实已经可以利用这些做一些好玩的事情了,比如五角星,多边形,取色板等有趣的形状,工具

好了,本次的教程就到这里结束了,下次将为大家带来曲线相关的绘制

java canvas类画直线_canvas教程(二) 绘制直线相关推荐

  1. java canvas 画线_canvas教程(二) 绘制直线

    经过 而本次是给大家带来直线的绘制 canvas 中,基本图形有两种,一种是直线,还有一种是曲线 但是无论是直线还是曲线,我们都应该先了解 canvas 的坐标系 s canvas 的坐标系 要绘制之 ...

  2. Java 结构体之 JavaStruct 使用教程二 JavaStruct 用例分析

    使用环境 前一篇在介绍 JavaStruct 类时指定了使用库使用环境为 Java 5 及以上,也即开发我们使用的 JDK 版本为1.5及以上就可以了.以下讲解的用例可以直接将 code 直接粘贴到 ...

  3. java canvas类_java中的canvas类有什么作用?

    翻过高山走不出你 用户的输入事件.应用程序必须为 Canvas 类创建子类,以获得有用的功能(如创建自定义组件).必须重写paint 方法,以便在 canvas 上执行自定义图形.举例:Panel.a ...

  4. java bresenham画直线_OpenGL中点Bresenham绘制直线算法

    本文实例为大家分享了OpenGL中点Bresenham绘制直线算法,供大家参考,具体内容如下 环境 macos xcode编译器 代码 #include #include #include #incl ...

  5. OpenCV-Python教程:绘制直线、圆形、方形(line,circle,rectangle)

    原文链接:http://www.juzicode.com/archives/5323 返回Opencv-Python教程 因为绘图操作需要用到起点.终点坐标等参数,绘图前需要先了解在OpenCV中图像 ...

  6. java 反射类成员_java 反射(二)类成员

    在Java反射的包中定义一个接口java.lang.reflect.Member,它有三个实现类java.lang.reflect.Field, java.lang.reflect.Method, a ...

  7. python如何绘制直线_成对绘制直线

    我正在做一个网络项目,在这个项目中,我需要在成对的点(节点)之间绘制线(边).目前我正在使用matplotlib.pyplot但问题是pyplot.plot绘图(x,y)从(x[0],y[0])开始, ...

  8. Java 结构体之 JavaStruct 使用教程三 JavaStruct 数组进阶

    经过前面两篇博客的介绍,相信对于 JavaStruct 的认识以及编程使用,读者已经有一定的基础了.只要理解和实践结合起来,掌握还是很容易的.下面进行一些数组使用方面的实例说明及演示. 在结构体类中使 ...

  9. Java 结构体之 JavaStruct 使用教程一 初识 JavaStruct

    Javastruct 是什么 简而言之,Javastruct 是一个第三方库,用于像处理 C 或者 C++ 结构体那样处理 java 对象.也即利用 Javastruct 可以在 java 上实现类似 ...

最新文章

  1. 用DirectX Audio和DirectShow播放声音和音乐(1)
  2. 小程序简单封装 request 请求
  3. 学习JavaScript 的必备
  4. 实现程序间的数据传递
  5. (转) OpenLayers3基础教程——OL3 介绍control
  6. ext中fieldLabel文本太宽的问题,以及Panel居中显示
  7. hdu 4597 + uva 10891(一类区间dp)
  8. docker 删除image_如何用两个小时入门 Docker?
  9. Js将字符串转数字的方式
  10. informix mysql,Informix相当于mysql的SHOW CREATE TABLE
  11. 数据分析结果解读_物流数据分析的行业特点有哪些?
  12. 如何避免量化交易策略模型过度拟合
  13. 谷歌浏览器一直显示弹框登陆代理解决方法
  14. word文档里怎么撤回上一步的操作
  15. 阿里云域名解析ip地址变更后不起作用
  16. 基于@Valid注解自定义参数校验
  17. 理解不够,还是不够专业?程序员与架构师之间的联系
  18. c语言消消乐字母游戏代码,基于pygame的小游戏———数字消消乐
  19. 2023年【安徽省安全员C证】免费试题及安徽省安全员C证证考试
  20. linux关闭防火墙(临时/永久)

热门文章

  1. keras 多输入多输出网络
  2. NotFoundError:Tensor name incept5b_1/... not found in checkpoint files /home/cqh2/...
  3. RSR系列路由器密码恢复
  4. php7 扩展 在哪下载,php7.0 redis扩展下载地址
  5. JAVA 中的代码生成包 CGLIB (Code Generation Library)
  6. IWS国际儿童及青少年水彩画大赛开始了
  7. 【WB32库开发】第12章(上)TIM1高级定时器——PWM输入捕获
  8. Google - Colab实验室 - 柯基犬猫咪
  9. 升级打怪小游戏(面向对象)
  10. 2977:生理周期(枚举)