基本绘图功能

打印

基本绘图功能


本节中描述的操作符用于在构造窗口中绘制点、线和线段。

图纸:绘制(<expr>)



描述:这个绘制(<expr>)function是一个多功能操作符。取决于<出口>,如果可能,将绘制相应的对象。目前,有三种可能的输入将导致绘图操作。对于前两个,我们假设x个,、和z(z)是数字。

代码结果
绘制([x,y])使用绘制点x个-坐标x个-坐标
绘制([x,y,z])使用给定的同质坐标绘制点[x,y,z]



关于齐次坐标的一个词:If[x,y,z]是一个点的齐次坐标,那么将要绘制的对应点具有xy公司-坐标[x/z,y/z].具有齐次坐标的点z=0对应于“无穷点”。你不会在通常的灰姑娘欧几里德观点中看到它们。然而,它们将在球面视图中绘制(或当设置了局部投影基时(请参见脚本坐标系).

绘制线段:可以通过提供两点列表来绘制线段。这些点可以用欧几里德坐标或齐次坐标给出,我们假设b条如下所示。

代码结果
绘制([a,b])从中绘制线段b条



例子:下面的代码生成以下图片。注意,给出了欧几里德坐标和齐次坐标。此外,线段显示在点的前面,因为它们的绘制运算符是在点的绘制运算符之后调用的。

A=[0,0];B=[0,2,2];C=[1,1,1];D=[1,0];E=[0.5,1.5];线宽(3);点大小(10);抽签(A);抽签(B);抽签(C);绘制(D);绘制(E);提取([A,B]);提取([B,C]);绘制([C,D]);绘制([D,A]);绘制([C,E]);绘制([B,E]);




画一条线:齐次坐标也可以用来表示直线。我们可以通过三个实数来思考行的这种编码[a,b,c]用隐式方程编码直线a*x+b*y+c=0.具有欧氏坐标的点[x,y]当且仅当方程满足时,位于此行。具有齐次坐标的点[x,y,z]当且仅当方程式a*x+b*y+c*z=0感到满意。

为了告诉CindyScript三个实数的列表[甲、乙、丙]是一个点或一条线,列表的内部标志由产生线作为输出的操作设置。例如,操作连接(A,B)通过两点计算直线A类B类并设置内部线条标志。对该操作的结果调用draw操作符将画出这条线。还可以通过应用运算符强制设置行标志行(<expr>).

示例:以下两个绘制操作都会绘制一条线:

绘制(线条([1,1,0.5]);绘制(连接([1,2],[2,-1]);


修改人:绘图操作符可以处理下表中总结的修改器:

修饰符参数效果
点大小<真实>设置点大小
管线尺寸<真实>设置线条大小
大小<真实>设置线条大小和点大小
点颜色[<real1>、<real2>、<real3>]将点颜色设置为RGB值
线条颜色[<real1>、<real2>和<real3>]将线条颜色设置为RGB值
颜色[<real1>、<real2>、<real3>]将点颜色和线颜色设置为RGB值
阿尔法<真实>将不透明度设置为值<真实>
无名小卒<布尔>无名小卒真的关闭点的边界
边境<布尔>边境真的与最后一个修饰符相反
虚线类型<整数>指定特定类型的虚线(允许值0..4)
冲锋陷阵<真实>破折号的大小
虚线图案<列表>指定单个虚线图案



修改器仅具有局部效果。这意味着使用修改器时,默认外观设置不受影响。

例子:下面的代码说明了破折号修饰符的效果。

线宽(3);绘制((0,0),(0,6),dashtype->0);绘制((1,0),(1,6),虚线类型->1);绘制((2,0),(2,6),虚线类型->2);绘制((3,0),(3,6),虚线类型->3);绘制((4,0),(4,6),dashtype->4);抽签((6,0),(6,6),破折号->4);抽签((7.0),(7.6),破折号->6);绘制((8,0),(8,6),破折号->8);抽签((9.0),(9.6),破折号->10);绘制((11.0),(11.6),虚线图案->[0,4,2,4]);绘制((12.0),(12.6),虚线图案->[0,2,2,2,4,2]);绘制((13,0),(13,6),dashpattern->[0,4,24]);绘制((14.0),(14.6),虚线图案->[4,2,1,2]);





另请参见: 脚本坐标系几何运算符




绘图段:绘制(<expr>,<expr>)



描述:使用两个参数调用draw操作符也可以用于绘制线段。这两个参数必须以欧几里德坐标或齐次坐标表示点。因此[绘制([0,0],[1,1])]从中绘制线段[0,0][1,1].

修改器:此运算符可以处理与绘制(<expr>)操作员。但是,特定于点的修改器没有效果。




对象图纸列表:drawall(<列表>)



描述:操作员drawall(<列表>)以列表作为参数。列表的每个元素都应该是这样的,以便可以用通常的绘制(<expr>)操作员。这个抽纱然后,操作符将对列表中的每个条目应用draw操作符。这个抽纱运算符对于绘制涉及结构化或高度相关的数学内容的更复杂的数学图形非常有用。

例子:下面的代码生成了下面的图片。第二行定义了一个函数,该函数将数字映射到单位圆上的一个点。这条线步骤=2*pi*(1..n)/n;初始化变量步骤包含17个角的列表,对应于单位圆上的17个点。这些点被分配给变量pts(点)按线路pts=应用(步骤,f(#)).变量segs(分段)包含所有这类点对。在最后两行中运算符用于绘制这些对象列表。


n=17;f(x):=[正弦(x),余弦(x)];步骤=2*pi*(1..n)/n;pts=应用(步骤,f(#));segs=对(pts);drawall(分段,α->0.9);drawall(pts,尺寸->4);




修改人:此运算符可以处理与绘制(<expr>)操作员。




连接点:连接(<列表>)



描述:该操作符将点列表作为输入,并通过线段将它们连接起来。

例子:下面的代码和构造点的集合生成了下面的图片。第一行指定给变量pts(点)一个结构的所有点。第二行指定给分拣x个-点的坐标。最后连接操作符按给定的顺序连接这些点。

pts=所有点();sortpts=排序(pts,#.x);连接(分拣);




修改人:此运算符可以处理与绘制(<expr>)操作员。




绘制多边形:drawpoly(<列表>)



描述:此操作符将点列表作为输入,并绘制此列表所描述的多边形的边界。

修改人:此运算符可以处理以下修饰符:

修饰符参数效果
颜色[<real1>、<real2>和<real3>]将点颜色和线颜色设置为RGB值
阿尔法<真实>将不透明度设置为值<真实>






填充多边形:填充多边形(<list>)



描述:该操作符将点列表作为输入,并从中创建多边形。

例子:下面的代码创建了下面的图片。在的每个迭代步骤中重复循环绘制方形,然后旋转和缩放坐标系。

sq=[[-1,-1],[-1,1],[1,1],[1,-1]];重复(300,i,fillpoly(平方,颜色->色调(i/10));旋转(4°);比例尺(0.95);)




修改器:此运算符可以处理以下修饰符:

修饰符参数效果
颜色[<real1>、<real2>和<real3>]将点颜色和线颜色设置为RGB值
阿尔法<真实>将不透明度设置为值<真实>






画圆:牵引圆(<点>,<半径>)



描述:在以下位置绘制圆<点>半径由数字给定<半径>点可以用欧几里得坐标或齐次坐标给出。

修改人:此运算符可以处理与绘制(<expr>)操作员。





填充圆:圆角(<点>,<半径>)



描述:在以下位置绘制圆的内部<点>半径由数字给定<半径>点可以用欧几里得坐标或齐次坐标给出。

修改人:此运算符可以处理以下修饰符:

修饰符参数效果
颜色[<real1>、<real2>和<real3>]将填充颜色设置为RGB值
阿尔法<真实>将不透明度设置为值<真实>



例子:下面的代码显示了牵引圈圆角操作员。

重复(100,i,圆角((0,0),1,颜色->色调(i/70));绘图圆((0,0),1,颜色->(0,0,0”);翻译(1.5,0);旋转(26°);刻度(.95););




此页面的参与者:科尔滕坎普,里希特,科勒管理员.
页面上次修改时间:2011年9月3日星期六[10:46:13 UTC]科尔滕坎普.

本页面上的内容根据许可证.


菜单