Logo
    打开 Gandi IDE
    Canvas
    Canvas

    Canvas

    📚 返回主页面
    ‣
    更多链接

    其他扩展文档

    如何使用 Gandi 多莉实现检测到底碰到了哪个克隆体
    Simple MMO
    媒体助手 Media Utils 文档
    Archive Code
    Arkos Code Snippets
    Regex VI
    4D Pocket
    Data Utils
    Pure Math
    A* 奥德赛
    社区连接 Kontakt
    Featured
    Sugar
    Canvas
    Physics Engine
    Fermi
    Terminal
    🎮
    移动端配置按键
    G-Kamera
    AI Hub
    Animate Text 艺术字 2.0
    Quake 雷神

    为什么使用 Canvas?

    Canvas ,就是高级画笔扩展。

    image

    既然它叫做高级画笔,它是可以画点什么吗?它和普通画笔又有什么区别呢?

    Canvas 是从 Html 中的 <canvas> 标签而来的,在 JavaScript 的加持下,Canvas 就像一块神奇的画布,可以画你喜欢的东西。

    Canvas 内部集成了丰富的 API,可以支持你更加简单、快捷地画出你喜欢的东西。

    例如像下面这样的火焰特效、转动的 pizza、瀑布特效。

    最佳实践

    comming soon……

    功能与解释

    Canvas 的坐标系

    在开始用 Canvas 进行绘画之前,我们需要了解 Canvas 的坐标系,它与我们 Scratch 的坐标系略有不同。

    Scratch 坐标系如下图所示:

    image

    Canvas 的坐标系原点在左上角,也就是(0,0)。Canvas 长 480 像素,宽 360 像素。如下图所示:

    image

    如果对 Canvas 坐标感到陌生,可以使用坐标转换语句来完成 Canvas 坐标与 Scratch 坐标的相互转换。

    移到最前面

    把当前画布移动到最前面/最后面

    image

    前移画布

    把当前画布向前/向后移动几层

    image

    擦除当前画布

    可以擦除当前画布的所有内容

    image
    💡
    注意 Canvas 中的内容都是绘制在画布上的,使用该语句擦除了画布上的内容,并不等于修改了设置——画笔颜色、线头、线条宽度这些的设置是会保留的。想要实现清空画布、重置画笔、线条设置,需要使用重置语句——这个语句在 Canvas 模块的最底部。

    转换 scratch x 到 canvas

    可以将 Scratch 的 x 坐标转换为 Canvas 的 x 坐标

    image

    转换 scratch y 到 canvas

    可以将 Scratch 的 y 坐标转换为 Canvas 的 y 坐标

    image

    转换 canvas x 到 scratch

    可以将 Canvas 的 x 坐标转换为 Scratch 的 x 坐标

    image

    转换 canvas y 到 scratch

    可以将 Canvas 的 y 坐标转换为 Scratch 的 y 坐标

    image

    矩形擦除

    可以按照矩形的形状擦除掉绘制在画布上的内容

    image

    圆形擦除

    可以按照圆形的形状擦除掉绘制在画布上的内容

    image

    设置透明度

    可以设置透明度

    image

    设置画笔颜色

    可以设置画笔的颜色

    image
    image

    设置画笔的填充颜色

    可以设置画笔的填充颜色

    image
    image

    填充模式开启

    可以控制是否对绘制的闭合图形进行填充

    image

    设置线条宽度

    可以设置画笔粗细

    image

    设置线头

    可以设置线头的形状

    image

    画点

    可以在指定位置绘制一个点

    image

    画线

    可以指定起点和终点位置,绘制一条线

    image

    画矩形

    可以绘制一个矩形

    image

    使用如下这段代码,就可以得到这样的图形。

    image
    image

    画三角形

    可以指定三个顶角的位置,绘制一个三角形

    image

    画圆形

    可以指定圆心的位置和半径长度,绘制一个圆

    image

    绘制贝塞尔曲线

    可以绘制出一段贝塞尔曲线

    image

    下图为贝塞尔曲线原理图示意,蓝色为起点和终点,红色为控制点。

    image

    使用如下这段代码,就可以得到一个粉色的爱心。

    image
    image

    绘制文字

    可以从指定位置开始绘制文字

    image

    绘制文字并填充

    可以从指定位置开始绘制文字并设置填充方式

    image

    设置文字大小

    可以设置字体大小

    image

    设置文字字体

    可以设置字体

    image

    加载图片

    可以完成图片的加载

    image

    获取图片原始宽度

    可以获取图片原始宽度

    image

    获取图片原始高度

    可以获取图片原始高度

    image

    绘制图片

    可以完成图片的绘制

    image

    【小技巧】如果宽高使用(0,0),就将自动绘制图片的原始宽高,不过如果你的图片过大,可以使用图片压缩工具进行压缩。

    上传图片

    可以上传图片

    image

    点击它,然后选择本地文件进行上传。完成上传后,从弹窗中复制图片的文件名,粘贴到代码块中就可以使用图片了。

    image

    使用如下这段代码,就可以得到这样一张图片。

    image
    image

    同步绘制

    可以开启同步绘制功能

    image

    绘制到舞台区

    可以将内容绘制到舞台区

    image

    开始描绘路径

    可以标记画笔开始绘制路径的起点

    image

    闭合描绘路径

    可以让画笔绘制的路径闭合起来

    image

    移动到点

    可以让画笔移动到指定位置

    image

    画线到点

    可以让画笔画线到指定位置

    image

    逆时针画弧

    可以指定圆心的位置、半径长度、弧线起止、绘制方向,绘制一段弧线

    image

    剪切

    可以剪切绘制内容

    image

    描边

    可以描绘边框

    image

    填充

    可以完成封闭形状的填充

    image

    获取文字渲染宽度

    可以获取文字渲染宽度

    image

    缩放宽度和高度

    可以对画布的宽度和高度进行缩放

    image

    旋转角度

    可以让画布旋转指定角度

    image

    画布偏移

    可以让画布偏移到指定位置

    image

    画布变换矩阵

    可以让画布按照指定方式变换

    image

    清除画布变换矩阵

    可以清除画布变换矩阵效果(缩放、偏移、旋转)

    image

    保存画布当前状态

    可以保存画布当前状态

    image

    恢复到上一次保存的状态

    可以恢复到上一次保存的画布状态

    image

    绘制角色的画布数据到点

    可以绘制舞台或者某角色的画布数据到指定的位置

    image

    设置合成模式

    可以设置不同的合成模式

    image

    重置

    可以重置画布、画笔的所有设置

    image

    相关文章

    社区中其他人写的 Canvas 文章

    自制小闹钟 / 篇一 闹钟的制作方法 [BCHW] - 共创世界(ccw.site) - Scratch、游戏、动画、漫画、小说、编程创作社区

    共创世界(CCW)是下一代 ACGN(游戏、动画、漫画、小说)内容创作社区。这里有强大易用的 Scratch 编程创作工具、十万开发者、百万独立游戏。想创作、学习、试玩独立游戏都可以来这里。

    www.ccw.site

    成为 Cvs/HpP 作者 - 三角函数(一) - 共创世界(ccw.site) - Scratch、游戏、动画、漫画、小说、编程创作社区

    共创世界(CCW)是下一代 ACGN(游戏、动画、漫画、小说)内容创作社区。这里有强大易用的 Scratch 编程创作工具、十万开发者、百万独立游戏。想创作、学习、试玩独立游戏都可以来这里。

    www.ccw.site

    成为 Cvs/HpP 作者 - 三角函数(二) - 共创世界(ccw.site) - Scratch、游戏、动画、漫画、小说、编程创作社区

    共创世界(CCW)是下一代 ACGN(游戏、动画、漫画、小说)内容创作社区。这里有强大易用的 Scratch 编程创作工具、十万开发者、百万独立游戏。想创作、学习、试玩独立游戏都可以来这里。

    www.ccw.site

    成为 Cvs/HpP 作者 - 线性与非线性移动(一) - 共创世界(ccw.site) - Scratch、游戏、动画、漫画、小说、编程创作社区

    共创世界(CCW)是下一代 ACGN(游戏、动画、漫画、小说)内容创作社区。这里有强大易用的 Scratch 编程创作工具、十万开发者、百万独立游戏。想创作、学习、试玩独立游戏都可以来这里。

    www.ccw.site

    成为 Cvs/HpP 作者 - 线性与非线性移动(二) - 共创世界(ccw.site) - Scratch、游戏、动画、漫画、小说、编程创作社区

    共创世界(CCW)是下一代 ACGN(游戏、动画、漫画、小说)内容创作社区。这里有强大易用的 Scratch 编程创作工具、十万开发者、百万独立游戏。想创作、学习、试玩独立游戏都可以来这里。

    www.ccw.site

    canvas&3D 系列一:做出立方体 - 共创世界(ccw.site) - Scratch、游戏、动画、漫画、小说、编程创作社区

    共创世界(CCW)是下一代 ACGN(游戏、动画、漫画、小说)内容创作社区。这里有强大易用的 Scratch 编程创作工具、十万开发者、百万独立游戏。想创作、学习、试玩独立游戏都可以来这里。

    www.ccw.site

    canvas&3D 系列二:旋转正方体 - 共创世界(ccw.site) - Scratch、游戏、动画、漫画、小说、编程创作社区

    共创世界(CCW)是下一代 ACGN(游戏、动画、漫画、小说)内容创作社区。这里有强大易用的 Scratch 编程创作工具、十万开发者、百万独立游戏。想创作、学习、试玩独立游戏都可以来这里。

    www.ccw.site

    没用的小知识之:血条 - 共创世界(ccw.site) - Scratch、游戏、动画、漫画、小说、编程创作社区

    共创世界(CCW)是下一代 ACGN(游戏、动画、漫画、小说)内容创作社区。这里有强大易用的 Scratch 编程创作工具、十万开发者、百万独立游戏。想创作、学习、试玩独立游戏都可以来这里。

    www.ccw.site

    更新日志

    版本
    说明
    2.0
    增加了亿点点功能: 1. 更多绘制语句
    1.0
    初始版本 1.基础绘制语句

    本页索引

    • 为什么使用 Canvas?
    • 最佳实践
    • 功能与解释
    • Canvas 的坐标系
    • 移到最前面
    • 前移画布
    • 擦除当前画布
    • 转换 scratch x 到 canvas
    • 转换 scratch y 到 canvas
    • 转换 canvas x 到 scratch
    • 转换 canvas y 到 scratch
    • 矩形擦除
    • 圆形擦除
    • 设置透明度
    • 设置画笔颜色
    • 设置画笔的填充颜色
    • 填充模式开启
    • 设置线条宽度
    • 设置线头
    • 画点
    • 画线
    • 画矩形
    • 画三角形
    • 画圆形
    • 绘制贝塞尔曲线
    • 绘制文字
    • 绘制文字并填充
    • 设置文字大小
    • 设置文字字体
    • 加载图片
    • 获取图片原始宽度
    • 获取图片原始高度
    • 绘制图片
    • 上传图片
    • 同步绘制
    • 绘制到舞台区
    • 开始描绘路径
    • 闭合描绘路径
    • 移动到点
    • 画线到点
    • 逆时针画弧
    • 剪切
    • 描边
    • 填充
    • 获取文字渲染宽度
    • 缩放宽度和高度
    • 旋转角度
    • 画布偏移
    • 画布变换矩阵
    • 清除画布变换矩阵
    • 保存画布当前状态
    • 恢复到上一次保存的状态
    • 绘制角色的画布数据到点
    • 设置合成模式
    • 重置
    • 相关文章
    • 更新日志
    Gandi IDE 🧑‍💻 开发者中心 @ 共创世界

    Designed by 2ndR with love @ Chengdu

    Tencent QQGitHub