首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用Canvas进行网上绘图

2 了解canvas 2.1 基本绘制步骤 (1)创建画布 通过使用H5中的标签来新建一块画布,里面的需要指定一个id属性,width和height指定画布的宽度和大小。...图 2.1.1 描边和填充 在canvas中还有一个相当于橡皮擦的方法,使用它可以清除矩形内绘制的内容。 ?...图 2.1.2 清除矩形 2.2 绘制圆形 canvas中使用arc()方法来绘制弧形和圆形。...图 2.2.1 绘制弧形和圆形 2.3 绘制图片 canvas中的绘制图片其实就是把一幅图放在画布上。 ?...图 2.4.1 绘制渐变 3 总结 Canvas通过代码的方式进行绘图,虽然看似简单,但是想要画出更好,更精美的图像,还需要我们仔细斟酌,计划好每一步,才能发挥出其强大的功能。

2K10
您找到你想要的搜索结果了吗?
是的
没有找到

【Android UI】Canvas 画布 ⑨ ( Canvas 绘图坐标系平移实例 )

画布中 , 有 2 套坐标系 , 分别是 : Canvas 自身坐标系 Canvas 绘图坐标系 一、Canvas 绘图坐标系平移实例 ---- 在 Canvas#onDraw 中进行绘制 , Canvas...的绘图坐标系 变为新的位置 ; // Canvas 绘图坐标分别在 X, Y 轴正向平移 canvas.translate(111, 111); Canvas 自身坐标系...范围就是 黄色范围 , Canvas 绘图坐标系 初始与黄色范围重合 , 因此初始位置绘图的蓝色矩形 , 其左上角与 Canvas 自身坐标系 原点重合 ; Canvas 平移后 , 画布向右下角移动...绘图坐标系 原点 重合 ; Canvas 平移后 , 绘制的红色矩形 , 其 绘图坐标系的原点 就是 红色矩形的 左上角位置 ; 如果要终止在该 Canvas 自身坐标系中绘图 , 则调用 Canvas...#restore 方法 , 将 Canvas 绘图坐标系恢复到初始位置 , 也就是恢复到下图的样式 ; 蓝色是 Canvas 绘图坐标系 , 黄色是 Canvas 自身坐标系 ; //

74220

【Android UI】Canvas 画布 ⑤ ( Canvas 坐标系 | Canvas 绘图坐标系变换示例 )

文章目录 一、Canvas 绘图坐标系变换示例 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ; 其中 图层栈 又称为 Layer 栈 ; Canvas 画布中 ,...有 2 套坐标系 , 分别是 : Canvas 自身坐标系 Canvas 绘图坐标系 一、Canvas 绘图坐标系变换示例 ---- Canvas 绘图坐标系 原始位置如下 , 下面的矩形就是组件本身...; 调用 Canvas#translate() 方法 , 平移后的画布如下 , 蓝色轮廓是平移后的 Canvas 画布 ; 下面的 黑色区域 ( 原本的 Canvas 范围 ) 蓝色区域 ( 平移后的...Canvas 范围 ) 都在 第一图层 中 ; 在上面的基础上 , 调用 Canvas#save 方法 , 保存当前的 Matrix 矩阵信息到状态栈中 ; Layer 栈中只有 第一图层...元素 ; 状态栈 中有量两个元素 , 就是 Canvas 原始的坐标系信息 和 当前平移一次后的坐标信息 ; 再次调用 Canvas#translate 方法 , 再次将 Canvas 画布进行平移 ,

1.1K10

【Android UI】Canvas 画布 ④ ( Canvas 坐标系 | Canvas 自身坐标系 | Canvas 绘图坐标系 )

文章目录 一、Canvas 自身坐标系 二、Canvas 绘图坐标系 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ; 其中 图层栈 又称为 Layer 栈 ; Canvas...画布中 , 有 2 套坐标系 , 分别是 : Canvas 自身坐标系 Canvas 绘图坐标系 一、Canvas 自身坐标系 ---- Canvas 自身坐标系 , 指的是 自定义组件 View 或...绘图坐标系 ---- Canvas 绘图坐标系 的 坐标原点 位置 , 可以认为是 Paint 画笔开始绘画的位置 ; Canvas 绘图坐标系 不是一成不变的 , 该 坐标系 与 Matrix 矩阵...相关 , 当矩阵发生变化时 , 绘图坐标系也会进行相应的改变 ; Matrix 矩阵可以通过如下函数修改 : Canvas#translate() : 平移画布 Canvas#rotate() : 旋转画布...的 图层栈 , 通过调用 Canvas#saveLayer() 函数 , 创建新的透明图层 , 后续的绘图操作都在该新图层中执行 , 调用 Canvas#restore() 或 Canvas#restoreToCount

1.2K20

canvas绘图不清晰的解决方案

现象描述   同样大小的图片(60x60px)用canvas和DOM绘制,结果发现canvas的画面质量要差很多。结果如下图所示。   ...上图中,左侧红框中的金币采用DOM绘制,右侧和下方的金币和文字等使用canvas绘制,结果canvas绘制的图片模糊不清。...解决方案   放大画布的尺寸,但是canvas显示尺寸不变;   图片像素——》canvas像素(画布尺寸)——》css像素(显示尺寸)——》屏幕实际像素   60x60               60x60...的设计的时候正好有对象的属性来分别管理画布尺寸和显示尺寸;canvas的width、height属性用于管理画布尺寸;canvas的style属性中的width、height正好是显示尺寸; 具体可以参考文章...也就是说解决方案就是设置舞台的尺寸和图片像素的尺寸一致,显示尺寸为正常显示尺寸;假设canvas的显示尺寸为窗口宽度,创建canvas的时候指定canvas的width属性为2 * body.clientHeight

1.5K100

【Android UI】Canvas 画布 ⑧ ( Canvas 绘图坐标系 2x2 矩阵 | Canvas 绘图坐标系 3x3 操作矩阵 )

文章目录 一、Canvas 绘图坐标系 2x2 矩阵 二、Canvas 绘图坐标系 3x3 操作矩阵 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ; 其中 图层栈...又称为 Layer 栈 ; Canvas 画布中 , 有 2 套坐标系 , 分别是 : Canvas 自身坐标系 Canvas 绘图坐标系 一、Canvas 绘图坐标系 2x2 矩阵 ---- 在 Canvas...会被转为一个 2\times2 的 Matrix 矩阵 ; 该 2\times2 的 Matrix 矩阵 用于存储 Canvas 绘图坐标系 ; Canvas 绘图坐标系 可以通过调用 Canvas...#translate 平移 , Canvas#rotate 旋转 , Canvas#scale 缩放 , Canvas#skew 扭曲斜拉 等方法 进行改变 ; 二、Canvas 绘图坐标系 3x3 操作矩阵...会与 代表 Canvas 绘图坐标系的 2 \times 2 的 Matrix 矩阵 进行运算 , 最终得到一个 新的 Canvas 绘图坐标系 ;

1.2K20

【Java AWT 图形界面编程】Canvas 组件中使用 Graphics 绘图 ② ( AWT 绘图步骤 | Graphics 绘图常用 API )

文章目录 一、AWT 绘图步骤 二、Graphics 绘图常用 API 一、AWT 绘图步骤 ---- 在 AWT 绘图中 , Canvas绘图所在的画布 , Graphics 是绘图使用的画笔...; AWT 绘图步骤如下 : 首先 , 自定义 Canvas 组件类 , 重写其中的 Component#paint(Graphics g) 函数 , Component 组件 与 Graphics 是由...paint(Graphics g) 函数 进行关联的 ; 然后 , 在自定义的 Canvas 组件 重写的 Component#paint(Graphics g) 函数中 , 先调用 Graphics...实例对象的 setColor , setFont 等函数 , 设置画笔的相关属性 ; 最后 , 调用 Graphics 实例对象的 drawXxx 函数开始绘图 ; 二、Graphics 绘图常用 API...---- Graphics 绘图常用 API : void setColor(Color c) : 设置画笔颜色 ; /** * 将此图形上下文的当前颜色设置为指定的颜色。

96410

探究 canvas 绘图中撤销(undo)功能的实现方式

我们先看一下这两个 API 的描述: CanvasRenderingContext2D.restore() 是 Canvas 2D API 通过在绘图状态栈中弹出顶端的状态,将 canvas 恢复到最近的保存状态的方法...我们看一下官方示例代码: var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); ctx.save...之前说过,我们通过对整个画布保存快照的方式来记录每个操作,换个角度思考,如果我们把每次绘制的动作保存到一个数组中,在每次执行撤销操作时,首先清空画布,然后重绘这个绘图动作数组,也可以实现撤销操作的功能。...this.clearCanvas(); // 删除当前操作 this.executionArray.pop(); // 逐个执行绘图动作进行重绘...参考文献 小tips:使用canvas在前端实现图片水印合成 Canvas 最佳实践(性能篇) Canvas - Web API 接口 | MDN

1.9K50

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券