penRGB(r,g,b,a) 设置画笔 RGBA 颜色

功能分类: 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(完全不透明)。

返回值

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

提示说明

  • 如果使用 penUp() 方法收起画笔,调用这个方法不会画出预期的图形。
  • 不管 turtle 光标隐藏还是显示,turtle 相关的操作不受 show()hide() 方法的影响。它们只是隐藏或显示光标。
  • 也可以使用 penColor() 指定画笔颜色名称或 16 进制编码的方法来设置画笔颜色。

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

返回文档首页