createCanvas(id, width, height) 创建画布

功能分类: Canvas Applab JavaScript 少儿编程

创建一个指定 id 的画布控件,[可选] 设置其 width 宽度及 height 高度。

在页面里 canvas 画布控件是一个矩形区域,在这个区域里用户可以绘制图形图片。turtle 绘画操作实际就是在一个 canvas 画布中进行的。

在使用 canvas 类别里的相关代码模块或代码之前,需要先创建 canvas 画布控件。使用 createCanvas() 方法如果不指定尺寸(宽度、高度),画布会默认为 APP 屏幕尺寸(即满屏显示)。每次调用 createCanvas() ,都会创建一个新的画布,这个画布会有一个 1 像素宽度的边框,边框颜色为黑色("black"),填充颜色为透明颜色("transparent")。每次在屏幕上只有一个画布会为 active 激活状态,修改相关属性时只对当前使用的(也即当前激活状态的)画布有效。相关的方法如:line() 以及 rect(),只能在画布内绘制可见图形图像。如果绘制内容位置超出画布边界,所绘制内容将无法显示(不可见)。

当 APP 里第一次使用 createCanvas() 方法时,这个方法创建的画布会默认为当前激活画布。一些方法如:line() or setStrokeWidth() 只会在当前激活状态的画布内生效。在这之后创建其他画布时,默认不会对当前激活画布产生影响。如果要切换当前激活状态画布,需要使用 setActiveCanvas() 方法。

示例代码



// 创建一个 id 为 canvas1 的全屏画布
// 并在画布的最左上角 (0,0) 位置画一矩形
createCanvas("canvas1");
rect(0, 0, 100, 100);

示例代码:相对位置 在画布里绘制图形图像时,使用的坐标是相对坐标。即以画布左上角为 (0,0) 起始点的坐标,而不是相对整个屏幕的坐标。


// 在画布里绘制图形图像时,使用的坐标是相对坐标。即以画布左上角为 (0,0) 起始点的坐标,而不是相对整个屏幕的坐标。
createCanvas("canvas1");
setPosition("canvas1", 50, 50);
rect(0, 0, 100, 100);

示例代码:画布内外 在画布上绘制图形图像时,所绘制内容只有在画布内的部分是可见的,超出画布的内容将不可见。


// 在画布上绘制图形图像时,所绘制内容只有在画布内的部分是可见的,超出画布的内容将不可见。
createCanvas("canvas1", 50, 50);
rect(25, 25, 100, 100);

示例代码:多个画布 在有多个画布时,绘制图形图像的方法及相关操作只对当前激活状态画布有效,其他画布不受影响。


// 在有多个画布时,绘制图形图像的方法及相关操作只对当前激活状态画布有效,其他画布不受影响。
createCanvas("canvas1");
setPosition("canvas1", 50, 50);
setStrokeColor("red");
rect(0, 0, 100, 100);

createCanvas("canvas2", 200, 200);
setActiveCanvas("canvas2");
setPosition("canvas2", 60, 0);
circle(0, 100, 50);
circle(100, 100, 50);
circle(200, 100, 50);

语法规则


createCanvas(id, width, height);

参数说明

名称 类型 必需 参数描述
[id] string Yes canvas 画布 的 id 唯一标识。在事件响应处理时以及其他涉及修改控件属性的方法里,通过这个 id 可以唯一定位到控件。必须以字母开头,不能包含空格,可以包含字母、数字、减号 - 以及下划线 _ 。
[width] number No 指定画布宽度(单位:像素)。如果未指定,则默认等于屏幕宽度。
[height] number No 指定画布高度(单位:像素)。如果未指定,则默认等于屏幕高度。

返回值

没有返回值。只在显示结果页面体现代码执行前后变化。

提示说明

  • 当在画布里绘制内容时,记住画布最左上角位置为坐标起点 (0,0) 位置,无论画布在屏幕中处于什么位置。绘制内容时,起点往右的距离即为其 x 坐标,往下的距离即为其 y 坐标。
  • 绘制在画布尺寸之外的图形图形将无法显示(不可见)。在画布内可见坐标范围为:在横轴(x)方向,从 0 到 画布宽度值;在纵轴(y)方向,从 0 到 画布高度值。
  • 画布也是页面控件之一,每个画布都有一个 id 唯一标识。通过这个唯一标识就可以像对其他控件一样通过相关方法进行操作。
  • 可以使用 setPosition() 方法来修改画布控件的位置。
  • 可以使用 setPosition() 方法修改画布尺寸。但需要注意的是,当画布尺寸变更时,其相对于画布内图形图像的边界尺寸不发生变化(画布内图形图像坐标不发生变化)。为了适应新的画布尺寸,画布内所有内容会等比例一同拉伸或缩小。

查看更多少儿编程教程、JavaScript 介绍

返回文档首页