对象的外观
灰姑娘的绘图引擎为每种可以绘制的元素(点、线、文本)存储默认外观。只要在不带任何修改器的情况下调用绘图语句,就会使用默认外观来渲染对象。这对于图形上看起来相同的图形对象非常有用。受外观影响的主要属性是颜色,大小、和不透明度对象的。
将元素推到外观堆栈上:gsave()
从外观堆栈中弹出元素:grestore()
清除外观堆栈:格雷塞()
描述:通常需要临时切换到不同的默认外观。为此,操作员gsave()
和grestore()
提供了。这个gsave(通用存储设备)
操作符将图形状态的所有信息(大小、颜色、不透明度)存储在堆栈中。这个格雷斯托
操作符通过从堆栈中弹出信息来反转这种效果。最后格雷塞特
运算符将堆栈设置回其初始状态。除了外观信息外,还存储了有关局部坐标系的信息。
另请参见: 脚本坐标系
大小
设定点大小:点大小(<number>)
设置线条大小:线条大小(<number>)
设置文本大小:文本大小(<number>)
默认大小可以由三个操作符设置:点大小(<数字>)
,线条大小(<number>)
、和文本大小(<number>)
。大小由实数表示。对于直线和点,假定大小为介于1
和20
。大小编码绝对像素值。以下代码生成以下图片:
尺寸=1..15;所有(尺寸,点大小(#);文本大小(#+4);绘制((#,0));绘图文本((#,1),#);)
颜色
颜色由代表颜色的红/绿/蓝成分的三个实数列表表示。假设每个数字都在0和1之间,其中0表示黑色,1表示全色值。使用此RGB颜色方案,八种基本颜色由以下向量表示:
颜色: | 矢量:
|
黑色 | (0,0,0) |
红色 | (1,0,0) |
绿色 | (0,1,0) |
蓝色 | (0,0,1) |
青色 | (0,1,1) |
品红色 | (1,0,1) |
黄色的 | (1,1,0) |
白色 | (1,1,1) |
设置点颜色:点颜色(<colorvec>)
设置线条颜色:线条颜色(<colorvec>)
设置文本颜色:文本颜色(<colorvec>)
设置颜色:颜色(<colorvec>)
默认颜色可以由三个操作符设置:点颜色(<colorvec>)
,线条颜色(<colorvec>)
、和文本颜色(<colorvec>)
此外,操作员颜色(<colorvec>)
同时设置所有类型对象的颜色。
如果实际值被解释为颜色分量,则值如下0
将被替换为0
和上述值1
将被替换为1
.
例子:以下代码生成以下图片:
n=13;ind=1..n;点大小(9);对于所有(ind,对于所有(ind、j、,点颜色((i/n,j/n,0));绘制(i,j),noborder->true);点颜色((0,i/n,j/n));绘制(i+15,j),noborder->true);点颜色((j/n,0,i/n));绘制(i+30,j),noborder->true);))
不透明度
设置不透明度:α(<数字>)
描述:不透明度由介于0
和1
.在这里0
代表完全透明和1
用于完全不透明。超出此范围的值设置为0
或至1
.
颜色函数
为了使颜色计算稍微简单一些,声明了一些返回颜色值的默认函数。
红色:红色(<数字>)
描述:此操作符创建绿色和蓝色值设置为的RGB向量0
。红色值设置为<数字>
.
绿色:绿色(<数字>)
描述:此操作符创建一个RGB向量,其红色和蓝色值设置为0
。绿色值设置为<数字>
.
蓝色:蓝色(<数字>)
描述:此操作符创建一个RGB矢量,其红色和绿色值设置为0
。蓝色值设置为<数字>
.
灰色:灰色(<数字>)
描述:此操作符创建一个RGB向量,其红色、绿色和蓝色值均设置为<数字>
.
彩虹颜色:色调(<数字>)
描述:该操作符创建一个RGB向量,用于创建一种完全饱和的彩虹颜色。的价值<数字>
位于0和1之间。该值范围表示完整的彩虹颜色循环。对于较大的数字,循环周期性地重复。
例子:以下代码生成以下图片:
n=360;ind=(1..n)/n;线宽(2);对于所有(ind,颜色(色调(#));绘制((0,0),(sin(#*2*pi),cos(#*2%pi)))