功能分类: Turtle Applab JavaScript 少儿编程
设置 turtle 画笔为指定 RGBA 格式颜色,这个颜色会在 turtle 移动画线或画圆点时使用,作为线或圆点的颜色。
像素颜色是如何工作的: 在屏幕上我们看到的每个像素的颜色由四个值组成。这四个值分别为 Red 红色值、Green 绿色值、Blue 蓝色值以及 alpha 透明度值,这四个值共同决定了屏幕上显示的色彩及明暗度。这四个值中的前三个代表三个不同颜色的值,每个范围都是从最小的 0 到最大的 255 总共 256 个值。alpha 透明度值则比较特殊,通过它来确定像素与屏幕上同一点上的其他像素相比的不透明程度。通常 alpha 值最小为 0.0 - 表示像素完全透明,最大为 1.0 - 表示像素完全不透明。这四个值通常按 Red 红色、Green 绿色、Blue 蓝色的顺序排列,前三个简称 RGB;加上最后一个 Alpha 透明度,合起来简称为 RGBA。完全红色(只有红色)的像素颜色为 (255, 0, 0, 1),完全绿色(只有绿色)的像素颜色为 (0, 255, 0, 1),完全蓝色(只有蓝色)的像素颜色为 (0, 0, 255, 1)。完全黑色则是 (0, 0, 0, 1),完全白色则是 (255, 255, 255, 1)。前三个值越低越接近黑色,越高越接近白色。
可以只传递 r 红色、g 绿色、b 蓝色三个参数。a 透明度参数默认值为 1 - 完全不透明。
turtle 画笔的默认颜色为黑色。
// 设置 RGB 颜色
penRGB(255,165,0);
moveForward();
示例代码:法国国旗 使用三种颜色画出法国国旗。
// 使用三种颜色画出法国国旗
penWidth(150);
penRGB(0,85,164);
penUp();
moveTo(0,75);
turnTo(90);
penDown();
moveForward(350);
penRGB(255,255,255);
penUp();
moveTo(0,225);
turnTo(90);
penDown();
moveForward(350);
penRGB(239,65,53);
penUp();
moveTo(0,375);
turnTo(90);
penDown();
moveForward(350);
示例代码:随机的艺术 使用随机颜色画随机线条。
// 使用随机颜色画随机线条
button("ChangeIt", "Click Me");
onEvent("ChangeIt", "click", function() {
penRGB(randomNumber(0,255),randomNumber(0,255),randomNumber(0,255), randomNumber(0,100)/100);
penWidth(randomNumber(10,50));
moveTo(randomNumber(0,400),randomNumber(0,560));
});
示例代码:用户输入 使用用户输入值设置画笔颜色,在随机位置画随机大小的圆点。
// 使用用户输入值设置画笔颜色,在随机位置画随机大小的圆点
// 如果用户输入数值非法,控制台输出警告日志。
// 如输入为负值,则自动转换为 0;如大于 255 的值则自动转换为 255
textLabel("RedLabel", "Red (0-255)");
textInput("RedID", "0");
textLabel("GreenLabel", "Green (0-255)");
textInput("GreenID", "0");
textLabel("BlueLabel", "Blue (0-255)");
textInput("BlueID", "0");
onEvent("RedID", "change", function() {
penRGB(getText("RedID"), getText("BlueID"), getText("GreenID"));
penUp();
moveTo(randomNumber(0,400),randomNumber(0,560));
dot(randomNumber(10,50));
});
onEvent("GreenID", "change", function() {
penRGB(getText("RedID"), getText("BlueID"), getText("GreenID"));
penUp();
moveTo(randomNumber(0,400),randomNumber(0,560));
dot(randomNumber(10,50));
});
onEvent("BlueID", "change", function() {
penRGB(getText("RedID"), getText("BlueID"), getText("GreenID"));
penUp();
moveTo(randomNumber(0,400),randomNumber(0,560));
dot(randomNumber(10,50));
});
penRGB(r, g, b, a);
名称 | 类型 | 必需 | 参数描述 |
---|---|---|---|
r | Number | Yes | 指定 red 红色 数值,数值范围为 0 - 255 |
g | Number | Yes | 指定 green 绿色 数值,数值范围为 0 - 255 |
b | Number | Yes | 指定 blue 蓝色 数值,数值范围为 0 - 255 |
a | Number | No | 指定 opacity 透明度 数值,数值范围为 0.0(完全透明)到 1.0(完全不透明)。默认值为 1.0(完全不透明)。 |
没有返回值。只在显示结果页面体现代码执行前后变化。