编程环境

打印

编程环境



这个辛迪脚本编程语言是为灰姑娘构造添加各种增强功能的强大工具。它的设计使得灰姑娘的几何部分与模拟CindyLab公司尽可能平滑。其功能设计允许进行高级编程,从而实现交互式场景的快速原型制作。这个辛迪脚本该语言利用了这样一个事实,即它在这样一个环境中运行,一方面,图形输出和鼠标驱动输入(几何部分)都有设备,另一方面,物理模拟可以“外包”给辛迪实验室仿真引擎。因此,用户可以专注于对核心问题进行编程。通常,只需要几行代码就可以实现所需的行为。这与普通编程语言形成了强烈对比,在普通编程语言中,编程的很大一部分都是为了创建图形鼠标驱动的用户界面。

示例应用程序

以下可能性辛迪脚本和其他任何编程语言一样,它们是无限的,并且只受用户的想象力(可能还有磁盘空间)的限制。然而,我们在这里想介绍该语言的几个核心应用领域。

增强的图形输出
核心设施之一辛迪脚本可以通过编程在几何视图中生成图形输出。当使用动态几何系统时,人们经常会遇到这样的情况,即希望通过越来越多的元素来扩展几何结构,以至于以建设性的方式进行扩展变得不合理。的编程工具辛迪脚本可以用于自动创建这些元素。

辛迪脚本提供了对几何变换的访问,因此只需几行代码就可以很容易地创建功能非常复杂的几何图形。

脚本化的“毕达哥拉斯树”


程序化绘图
有一类特殊的应用程序根本无法用经典的动态几何方法解决。动态几何中的构造本质上类似于无分支程序,其中始终执行所有计算。因此,在动态几何程序中包含逻辑决策或算法行为是固有的困难。通常,通过交集属性(所谓的布尔点).灰姑娘2也提供了此功能,但同时,辛迪脚本提供了一种更好、更优雅的方法来处理此问题。

辛迪脚本是一种功能齐全的高级编程语言,在其中很容易实现任意算法行为。因此,即使是复杂的算法也可以被包括在动态几何环境中的一般级别上。这种算法很容易包含图形输出。

点集的Delaunay图和Voronoi图


数学函数分析

特别地,辛迪脚本提供高级函数绘图例程。因此,可以绘制和分析处理导数、极值等的函数。函数可以直接输入到图形中,结果可以立即显示。利用这一点,再加上Cinderella的HTML导出功能,可以很容易地生成交互式工作表,从而实现各种各样的函数分析模式。函数也可以由几何结构的几何相关性定义,这有助于在一个示例中组合输入和分析部分。

求函数根的牛顿迭代法



控制施工行为
一个特别有趣的场景出现在辛迪脚本控制自由元素的位置。运动由控制辛迪脚本通常优先于用户执行的操作。因此,您可以影响用户输入的效果。下面的示例在一个非常简单的场景中演示了这一点。下图演示了Pick定理,它允许通过计算多边形中的整数点和边界上的整数点来计算三角形的面积。

皮克定理的证明


Pick定理仅适用于顶点坐标为整数对的多边形,动态几何程序通常不支持这种限制。然而,通过添加以下三行代码,可以改变三个自由点的行为:

A.xy=圆形(A);B.xy=圆形(B);C.xy=圆形(C);


虽然这些点可以自由移动,但该代码强制每个顶点捕捉到最近的积分点。本例中的所有文本以及所有绿色和黄色点也是用生成的辛迪脚本.

设计和功能

辛迪脚本设计用于在输入参数因用户交互而动态变化的环境中编写数学问题。一方面,这是通过提供一种既有强大数据类型(实数、复数、列表、向量、矩阵等)又有强大操作的语言来实现的。另一方面,它是在设计语言时考虑到交互式用户输入的实时要求而实现的。

高级函数编程

辛迪脚本是一种函数式语言。这意味着所有操作都表示为函数对数据的应用。在功能上编程可能需要一些时间来适应,但它提供了很高的表达能力,因此只需几行代码就可以描述复杂的情况。例如,以下三行代码计算并打印小于100的素数列表:

除数(x):=选择(1..x,mod(x,#)==0);素数(n):=选择(1..n,长度(除数(#))==2);打印(素数(100));


第一行定义了一个函数,该函数返回一个数的所有除数的列表x个。第二行提供了一个函数,该函数返回所有小于的数字的列表n个正好有两个除数。这些正是小于n个算法的输出如下:


[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97]


将这些高级编程工具与图形输入和输出一起使用,提供了大多数其他编程环境所不具备的可能性。下图显示了在中编程的迭代定义的植物状结构辛迪脚本。该设备的生成代码显示在其旁边。它基本上只使用基本绘图功能、高级几何变换和函数编程来创建整个图形。


在视野中种植植物





实时计算
辛迪脚本即使几何结构的微小移动也可以对代码进行评估。通过这种方式,可以实现与几何图形的实时交互。用户选择一个点,移动它,然后可以直接观察计算结果的变化。尽管辛迪脚本作为一种解释性语言,它的速度仍然足以在大多数标准情况下创建流畅的绘图印象。动态运行的程序能够立即对用户输入作出反应,这为各种应用程序和交互场景打开了大门。这里的应用范围从小学和高中水平的解释到大学课程,再到复杂数学研究的调查。下面的示例显示了使用最小二乘法的线性回归图解的快照。移动或添加点时,图片会动态更新。

高斯近似线性回归


精确计时

辛迪脚本为同步程序提供了各种可能性,包括实时同步程序和物理模拟时间同步程序。因此,可以轻松创建涉及计时行为的模拟。这在编程交互式游戏或教育娱乐场景时非常有用,例如,在这些场景中,解决练习的任务受时间限制。同步的能力辛迪脚本随着物理时间的推移,模拟可以在两个方向上使用。因此,可以使用此技术将物理模拟与实时同步。或者,可以将编程时间和计算时间耦合,使模拟与计算同步减慢或加速。

实时时钟


高级绘图

一行辛迪脚本代码足以绘制简单的函数。例如,绘图(sin(x))将立即调用要在视图中绘制的正弦函数的图形。然而,灰姑娘还提供了几种可能性和增强功能,允许直接显示最大值、最小值和拐点。有了这些功能,很容易对函数进行有视觉意义的分析。还可以生成使用不同函数值的颜色值的二维函数图。因此,可以很容易地创建二维数据的图像。下图显示了函数的密度分布sin(距离(x-A)*距离(x-B))对于两点A类B类.

Cassinian椭圆为波浪




此页面的参与者:里希特,科尔滕坎普莱姆巴赫.
页面上次修改日期为2011年9月4日星期日[21:39:44 UTC]里希特.

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


菜单