功能绘图

打印

函数绘图


灰姑娘提供了几个操作符,允许用户绘制有关数学函数的信息。除了简单的函数绘图外,还可以显示有关极值、零点和拐点的信息。

功能


以下函数允许绘制将实数映射为实数的函数的图形。



绘制函数:绘图(<expr>)



描述:这个情节运算符可用于绘制函数。函数必须作为表达式给定<出口>。此表达式必须包含运行变量#并计算实际输入的实际值#或二维向量。在第一种情况下情节操作符将简单地绘制函数。在后一种情况下,它将绘制函数的参数图。坐标系与几何视图的坐标系相关联。而不是#此外,还会自动检测其他运行变量。如果只有一个自由变量,则将该变量作为运行变量。如果有几个自由变量绘图(…)函数按顺序搜索典型名称x个,,t吨,z(z).



示例:最简单的形式是情节运算符可以直接用于绘制函数。这条线绘图(sin(#))立即绘制函数sin(x个).
相同的绘图由绘图(sin(x)).




类似地,可以首先定义一个函数,该函数的图形随后由情节操作员。以下代码行生成了下图:

f(x):=1/(x^2+1)*sin(4*x);图(f(x));




如果使用表达式调用<出口>生成二维向量作为输出情节操作员将自动生成曲线的参数化绘图。此处输入变量的值范围默认为0到100。然而,这些默认值可以通过修改器轻松更改。这条线图([sin(t),cos(t)]*t)生成以下输出:



修改人:这个情节运算符支持许多不同的修饰符。其中一些需要详细解释。它们可以用于修改曲线的外观、修改绘图范围、修改屏幕上的位置,甚至显示函数的最大值、最小值、零和拐点。下表概述了可用的修饰符。注意,有些修饰符甚至可以用不同类型的参数调用,从而产生稍微不同的效果。

修饰符参数效果
外观
颜色[<real1>、<real2>、<real3>]将颜色设置为特定值
大小<真实>将线条大小设置为特定值
阿尔法<真实>设置不透明度
连接<真>函数中的连接跳转
迭代控制
开始<真实>设置函数绘图的起始值
停止<真实>设置函数绘图的结束值
步骤<真实>设定绘图点的数量(仅适用于参数函数)
像素<真实>曲线绘制的像素分辨率(仅适用于实际函数)
重要点
极值<布尔>标记所有极值
极值[<real1>、<real2>、<real3>]用指定的颜色标记所有极值
最小值<布尔>标记所有最小值
最小值[<real1>、<real2>、<real3>]用指定的颜色标记所有最小值
最大值<布尔>标记所有最大值
最大值[<real1>、<real2>、<real3>]用指定的颜色标记所有最大值
0<布尔>标记所有零
0[<real1>、<real2>、<real3>]用指定的颜色标记所有零
屈折<布尔>标记所有拐点
屈折[<real1>、<real2>、<real3>]用指定的颜色标记所有拐点
线条样式
冲锋陷阵<真实>虚线图案的宽度(默认为5)
虚线类型<整数>特定破折号类型(允许值为0…4)
虚线图案<列表>指定单个划线图案




示例:以下是几个示例,演示了修饰符的使用:


通过设置开始和停止值,可以轻松改变绘图范围。
例如,绘图(f(#),开始->A.x,停止->B.x)有助于控制x个-两个自由施工点的坐标。



打印外观
绘图的分辨率是自动自适应控制的。这个绘图(…)函数会自动增加接近奇点的分辨率。
下图显示了调用的输出绘图(sin(1/#)*#).
观察靠近原点的绘图质量。



通常会检测到函数中的跳转,并且默认情况下它们没有连接。可以通过设置连接->真.

图(x层(x))绘图(x层(x),连接->真)


特别注意事项
通过使用曲线有效点的修改器,可以显示零、最小值、最大值和拐点。以下三张图片演示了这些运算符的使用。


零->真
极值->真
屈折->真



华丽的
绘图语句的“虚线”选项与直线和圆的选项相同。它们可以由修改器控制冲锋陷阵,虚线类型虚线图案.

  • 虚线类型可以是0到4之间的整数,并选择四个预定义虚线图案之一。值0创建实线。
  • 冲锋陷阵是一个实数,指定虚线的单位大小。只需设置破折号->5已经创建了标准破折号。
  • 虚线图案可以设置为指定连续虚线和空格长度的列表。

以下图片是用创建的绘图(sin(x),虚线模式->[0,3,7,3],大小->2,虚线->5)




动态颜色和Alpha

这个颜色阿尔法也可以是依赖于运行变量的函数。通过函数图的不透明度和颜色,可以随函数而变化。下面的图是用语句生成的

绘图(sin(x),颜色->色调(x/(2*pi)),大小->3)


这里是色调使用了循环生成彩虹颜色的函数。






绘制函数:绘图(<expr>,<var>)


描述:与相同绘图(<expr>)但使用指定的运行变量。




绘制类积分效果:填充图(<expr>)


描述:通常需要突出显示函数图和坐标系x轴之间的区域(例如,如果生成用于解释积分的小程序)。这可以使用函数完成填充图。类似于情节,此运算符将函数作为参数(运行变量由与中相同的进程确定绘图(…)). 在最简单的形式中,该操作符只突出显示函数所遍历的区域。函数本身未绘制。这可以通过显式调用绘图(…)操作员。以下代码

f(x):=1/(x^2+1)*sin(4*x);填充图(f(x));图(f(x));


生成以下图片:



警告:奇异性处理填充图(…)声明远不如绘图(…)声明。因此,尽管修饰符允许绘制函数填充图应该使用情节用于功能绘图。

修改人:

修饰符参数效果
外观
颜色[<real1>、<real2>、<real3>]将颜色设置为特定值
Plus颜色[<real1>、<real2>、<real3>]设置正函数值的颜色
微彩色[<real1>、<real2>、<real3>]设置负函数值的颜色
阿尔法<真实>设置不透明度
迭代控制
开始<真实>设置函数绘图的起始值
停止<真实>设置函数绘图的结束值
功能图
图表<布尔>还绘制功能图
图表[<real1>、<real2>、<real3>]用指定的颜色绘制函数图
大小<真实>设置函数图的行大小



这个颜色阿尔法修改器再次支持使用控制颜色和不透明度的函数(类似于情节). 以下取样器说明了填充图声明:


填充图(sin(x))
fillplot(sin(x),graph->true)
填充图(sin(x),图->真,加号->(.5,1,.5),减号->(1,.5,.5))
fillplot(sin(x),graph->true,color->(sin





绘制类似积分的效果:填充图(<expr1>、<expr2>)


描述:此函数与填充图(…)声明。然而,它不是突出显示函数和x轴之间的are,而是突出显示两个函数之间的区域。
下图



是使用语句创建的
fillplot(sin(x)、cos(x),graph->true,pluscolor->(.5,1,.5),minuscolor->(1,.5,.5))


修改人:此语句支持与完全相同的修饰符填充图(…).



彩色图


颜色图用于创建有关在整个平面中定义的函数的视觉信息。它们可以将颜色值与矩形中的每个点相关联。


创建颜色图:彩色图(<expr>、<vec>、<vec>)


描述:这个彩色图该算子使平面函数的可视化成为可能。一个函数可以为矩形的每个点指定一个颜色值。在函数中<出口>运行变量可以选择为#(有关运行变量的更多信息,请参阅下文)。然而,值得注意的是,这个变量现在描述了平面上的一个点(这是一个变量二维坐标)。的返回值<出口>应该是实数(在这种情况下,指定一个灰度值)或三个实数的向量(在这种情形下,指定RGB颜色值)。在任何情况下,实数的值都应该介于0和1之间。第二个和第三个参数确定绘图区域的左下角和右上角。

例子:下面的代码和两个点A和B生成了下面的图片。在第一行中,定义了一个实值函数,该函数将两点之间距离的正弦赋值给两点(移位和缩放以适应区间[0,1])。的第一个参数彩色图操作符现在是一个由三个数字组成的向量,具体取决于run变量#(红色部分是围绕a的环形波,绿色部分是零,蓝色部分是围绕B的环形波)。最后,C和D标记矩形的角。

f(A,B):=((1+sin(2*dist(A,B)))/2);彩色图((f(A,#),0,f(B,#)),C、 D类)




运行变量:通常情况下#是中运行变量的最佳选择彩色图功能。然而,也可能有其他选择。按以下顺序检查运行变量的可能性:

  • 如果中只有一个自由变量<出口>然后将此变量作为运行变量并解释为二维向量。
  • 如果<出口>包含#这个#作为运行变量(再次作为二维向量)
  • 如果<出口>包含两者x个作为自由变量,这两个变量可以用作运行变量,一起表示向量(x,y).
  • 如果恰好有一个自由变量尚未赋值,则取该变量(作为向量)
  • 如果上述情况都没有发生第页(代表点)和z(z)(对于复数)被检查为运行变量。

例如,下面一行

色度图((sin(2*x),sin(2*y),0),A,B)


生成以下图片:



修改人:这个彩色图运算符支持三个修饰符。修饰符像素可以设置为一个整数,以确定彩色图的基本四边形的像素大小。上面的照片是用像素->2这是默认值。设置像素修改为1或2会产生令人惊叹的图片。然而,应该注意的是,对于彩色图必须对函数求值一次。计算工作量呈二次方增长像素线性减少。因此,有时减少pxlres修饰符也是一种很好的做法,以获得更多的预设。下面的图片已通过设置渲染像素->8.



还可以动态更改分辨率。对于此,还有另一个修改器启动这可以用来逐步改进情节,从而将两个世界中最好的结合起来。例如,使用两者启动次数->16像素->1在交互移动过程中,你会得到一个粗略的绘图,只要有足够的时间,就会自动以更精细的分辨率重新计算。


此外彩色图运算符支持修饰符阿尔法用于控制不透明度的。此修饰符甚至可以设置为参数化依赖于运行变量的值。

下面的图片是由以下代码生成的,这只是对前面一个示例的代码的轻微修改:

f(A,B):=((1+sin(2*dist(A,B)))/2);彩色图((f(A,#),0,f(B,#)),C、 D、,pxlres->2,α->-abs(#)+5)







矢量字段



向量场可用于可视化流和力。它们在微分方程组可视化中有许多应用。


绘制向量场:绘图区(<expr>)


描述:这个牵引场运算符可用于绘制向量场。函数必须作为表达式给定<出口>。此表达式必须包含运行变量(通常#),这一次应该表示二维向量(如彩色图中所示)。结果也应该是二维向量。应用运算符牵引场到这个表达式将导致绘制相应的向量场。该字段将设置动画。这意味着它将随每张图片而略有变化。因此,将牵引场操作员进入“计时器刻度”评估槽。这将在几何视图中创建动画控件。运行动画将自动为向量场设置动画。正在运行的变量策略与彩色图(…)声明。特别是可以使用自由变量x个表示二维位置(x,y)


示例:我们考虑由函数定义的向量场f(x,y)=(y,sin(x))。与函数定义和牵引场操作员如下:


f(v):=[v.y,sin(v.x)];牵引场(f(#));




或者,可以通过以下方式生成相同的图片

拉伸场(y,sin(x));


为了生成图片,将一组针状对象扔到绘图表面上。这些针将根据矢量场定向。在动画期间,针会根据矢量场移动。也可以用小的蛇形物体代替针,这样可以更准确地显示矢量场,但计算时间更长。这可以使用合适的修改器来完成。

f(v):=[v.y,sin(v.x)];绘图字段(f(#),流->真,颜色->(0,0,0));




修改人:这个牵引场操作符支持许多控制向量场生成过程的修饰符。为了帮助理解它们,我们首先更详细地描述了图片是如何生成的。

这些图片是通过显示一些测试对象在磁场影响下的运动而生成的。默认情况下,测试对象是针状的。它们最初被放置在一个规则的网格上。由于这通常会产生许多视觉伪影,因此它们在网格点周围的特定半径内随机扭曲。在动画中,针沿力场方向移动。针的长度代表着田地的强度。


修饰符参数效果
测试对象
分辨率整数原始网格单元大小(像素)
抖动整数试件变形
针线尺寸<真实>针头的最大尺寸
因素<真实>场强比例因子
流动<布尔>使用针头或小溪
移动<真实>移动物体的速度
外观
颜色[<real1>、<real2>、<real3>]设置流线颜色或第一针颜色
颜色2[<real1>、<real2>、<real3>]设置第二针颜色



下图演示了原始网格移动->0抖动->0。它显示了水平或垂直方向非自然对齐导致的明显伪影。




以下图片已使用渲染分辨率->5流->真.






绘制复杂向量场:drawfield复合体(<expr>)


描述:此运算符与牵引场操作员。然而,它需要一个一维复杂函数作为输入。实部和虚部被视为x个向量场的组件。否则,该操作符与前一个操作符完全类似。

例子:以下示例演示了运算符与复多项式的使用,复多项式的零点由图形中的四个点确定:

f(x):=(x络合物(A))*(x络合物(B))*;drawfieldcomplex(f(#),流->真,分辨率->5,颜色->(0,0,0))




修改器类似于牵引场操作员。




绘制力场:牵引力()



描述:此运算符与牵引场操作员。然而,这一次它与中的物理模拟有关辛迪实验室。无需参数,它显示了放置在屏幕上不同位置的潜在测试电荷上的作用力。试验装药的质量=1,装药=1,半径=1。然而,没有其他粒子会与它相互作用。有时需要使用因素用于放大力场的修改器。以下示例显示了四个带电粒子之间的相互作用。







绘制点的力场:牵引力(<质量>)


描述:还有另一个操作符可以绘制关于固定质量粒子的力场。粒子本身不参与力的计算。通过这种方式,人们可以直观地看到作用在某个粒子上的力。




网格


栅格可用于可视化将平面映射到其自身的变换。通过栅格,可以可视化由这种贴图引起的变形。


映射矩形网格:地图网格(<expr>)


描述:此操作符采用矩形网格,并通过中给定的函数使其变形<出口>。默认情况下,原始网格的范围被视为平面中的单位矩形。可以使用修饰符更改此矩形的边界。也可以使用复杂->真修改器。

修改人:有几个修改器控制此函数的行为。

修饰符参数效果
外观
颜色[<real1>、<real2>、<real3>]将颜色设置为特定值
阿尔法<真实>设置不透明度
大小<真实>设置网格线的大小
迭代控制
润智[<真实>,<真实>]x个-源矩形的范围
yrange公司[<真实>,<真实>]-源矩形的范围
分辨率<整数>两个方向上的网格线数
分辨率x<整数>中的网格线数x个-方向
分辨率<整数>中的网格线数-方向
<整数>双向细化
阶梯(stepx)<整数>中的细化x个-方向
stepy公司<整数>中的细化-方向
类型
复杂的<布尔值>使用复杂函数




示例:下面的代码举例说明了地图网格操作员。还说明了润智yrange公司修改器。它显示了二维函数的效果,该函数使x个单独协调。


f(v):=(v_1^2,v_2^2);线宽(1.5);地图网格(f(v),颜色->(0,0,0));地图网格(f(v),x范围->[1,2],颜色->(.6,0,0));地图网格(f(v),yrange->[1,2],color->(.6,0,0));地图网格(f(v),x范围->[1,2],y范围->[12,2],颜色->(0,.6,0));





在下面的示例中,我们看到网格线通常不必保持笔直或平行。

f(v):=(v1*sin(v2),v2*sin)(v1);线宽(1.5);地图网格(f(v),x范围->[1,2],y范围->[1,1,2]);




下面的简单示例说明了地图网格用于复杂功能。

mapgrid(z^2,复杂->真);


使用分辨率修改器,可以指定生成的网格线数。

mapgrid(z^2,复杂->真,分辨率->4);


默认情况下地图网格命令直接连接网格点。这可能会导致图片无法真正映射数学真理。使用修改器,可以在网格点之间引入其他步骤。

地图网格(z^2,复杂度->true,分辨率->4,步长->5);


最后三段代码的结果如下所示。



网格包含关于复杂函数的非常特征性的信息。以下三张图片显示了函数的网格z*z,正弦(z),1/z(1/z)棕褐色(z)分别是。







示波器


示波器允许可视化物理模拟和动画中数值的动态变化。



物理量值曲线图:绘制曲线(<vec>,<list>)


描述:在真实和模拟的物理环境中,人们通常对绘制曲线感兴趣,这些曲线显示了震级如何随时间演变。为此绘制曲线已创建运算符。在这里<vec>是指绘图区域左下角的二维矢量,以及<列表>是要观察的值的列表。当动画运行时,将更新值并绘制相应的曲线。

例子:下一张图片显示了绘制曲线操作员。辛迪实验室,构造了一个物理摆。以下代码生成x个移动点及其坐标x个速度:

绘制曲线([0,0],[D.x,D.vx])




修改人:这个绘制曲线运算符支持许多修饰符。Than可用于更改曲线的外观并显示其他信息。

修改器参数效果
尺寸
宽度<真实>绘图范围的像素宽度
高度<真实>每条曲线的像素高度
外观
边境<布尔>显示表格的边框
后面<布尔>显示背景
后面[<real1>、<real2>、<real3>]以指定颜色显示背景
背面α<真实>背景不透明度
颜色[<col1>、<col2>、<col3>…]为每条曲线提供颜色
问询处
文本[<text1>,<text2>,…]为每条曲线提供标题
展厅<布尔>显示每条曲线的最大值和最小值
致使
范围<字符串>“预览”缩放到绝对测量的最大值,“自动”缩放到当前显示的曲线部分
范围[<string1>,<string2>,…]每条曲线的单个“peek”/“auto”



下面的代码演示了修饰符的用法。它显示了弱耦合摆及其能量行为。

线颜色((1,1,1));文本颜色((0,0.8,0));绘制曲线((-7,-3),[A.x,B.x,A.ke,B.ke,A.pe+B.pe+c.pe],高度->50,颜色->(1,1,1),返回->(0,0,0),backalpha->1,范围->“查看”,宽度->400,颜色->[[1,0.5,0.5],[0.5,1,0.5],     [1,0.5,0.5], [0.5,1,0.5],[0.5,0.5,1]],文本->[“PosA=”+A.x,“PosB=”+B.x,“能量A=”+A.ke,“能量B=”+B.ke,“势能=”+(a.pe+b.pe+c.pe)]);


相应的图纸如下所示:



此页面的参与者:香肠,科尔滕坎普里希特.
页面上次修改日期为2014年7月10日星期四[08:07:04 UTC]香肠.

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


菜单