用LOGO编程语言实现曲线缝合

小编:大闷头 更新时间:2022-08-21

女士们,先生们,老少爷们儿们!在下张大少。

曲线缝合是数学教学大纲的一个组成部分,许多教师在不同的层次上使用,无论是作为简单的绘画练习还是作为图案概括的重要工具。计算机的使用增强了这一课题的吸引力和适用性,事实证明LOGO是一种强大的、非常灵活的编程语言,很适合用于图形。

许多曲线缝合图案来自于一个基本图案,该图案由两条等长的线相交形成一个角度。在这两条线上以一定的间隔标出一些点。然后将一条线上的点与另一条线上的点以一定的方式连接起来,形成抛物线的包络线。

该过程在图1(a)中得到了说明。这显示了一个一般的角度8,缝合工作将沿着这个角度进行。我们假设该角度的两个分支长度相等I,并且它们被细分为n个长度为h=l/n的增量。图1(a)显示了一个典型的长度为x的缝合线,与原始方向形成一个角度。

l1,l2和θ是输入参数,而α和x则需要导出。

用LOGO编程语言实现曲线缝合用LOGO编程语言实现曲线缝合

我们选择用反余弦函数来定义a,因为这个函数的范围是[0°~-180°],而反正弦函数的范围是[-90°~+ 90° ]。

随着渐进式缝合的进行,l1增加了h,而l2减少了同样的数量。

这些结果可以很容易地被纳入一个程序,该程序将进行缝合。该程序需要三个输入参数。1,两个分支的长度,n,要画的针数,θ,缝合的角度。该程序首先绘制角度的两个分支,然后调用一个子程序来处理缝合工作。

这个相对简单的程序代表了一个基本的构建模块,在这个模块上可以构建很多曲线拼接大厦。在第一种情况下,它可以用来沿着任何角度进行缝合,无论是锐角还是钝角(图2)。

用LOGO编程语言实现曲线缝合

现在,让我们来探索使用这一程序的许多方法。我们首先考虑许多这样的角聚集在一点形成一个蜘蛛网的情况。这可以通过下面的程序非常简单地完成。

使用“网络”的例子如图3所示。

用LOGO编程语言实现曲线缝合

我们将考虑的下一组图案是基于将两个缝合的角度结合在一起形成一个菱形(图4)。

用LOGO编程语言实现曲线缝合

可以将菱形围绕一个点组合在一起,从而得到以下图案。

用LOGO编程语言实现曲线缝合

菱形也可以以一种略微不同的方式组合在一起,即“Flowerl”产生了图6中所示的图案,这些图案与花产生的图案密切相关(图5)。

用LOGO编程语言实现曲线缝合

另一套非常吸引人的图案可以通过将正多边形的每个顶点上的两个相同的缝合角放在一起来获得。

用LOGO编程语言实现曲线缝合

“三叶草”可以成功地与“网”结合,产生更多令人愉悦的图案。这些例子如下所示(图8)。

用LOGO编程语言实现曲线缝合

我们在这里展示了“缝合”程序的一些应用。显然还可以找到更多。事实上,该程序的简单性使得门外汉自己动手制作自己的曲线缝合图案成为可能。

为了进一步简化调用序列,可以去掉变量I和n。这意味着这两个量保持固定,而角度θ保持为唯一的变量。

尽管它有很大的灵活性,“缝合”在圆形图案上用处不大,这是我们希望从现在开始集中讨论的话题。

这些圆形图案是由圆周上m个等距点连接而成的。我们将这些点标为1,2,3,...这些点根据特定的规则连接在一起。

例如,我们可以考虑通过将点1连接到点l+1、点2连接到点l+2直到要连接到i+m三l mod(M)的点m而创建的图案。这组图案构成了圆形的包络线。

另一种可能是考虑通过将点1连接到点n、点2连接到点2n,以此类推直到点m连接到点nm而创建的图案。这组构成了外摆线的包络,如心(n=2)和肾线(n=3)。

下图说明了问题的几何结构。一个特定的针脚将Pi(r sin a,r cos a)与Qi(r sinb,r cos b)连接起来

用LOGO编程语言实现曲线缝合

并且我们已经结合了上面提到的两种情况。

用LOGO编程语言实现曲线缝合

为了建立一个能够处理这种情况的程序,我们需要能够画一条线来连接给定坐标的两点。这是通过在(X1,Y1)和(x2,Y2)之间画一条线的过程“lnne”成功完成的。

“lnne”是一个非常有用的例程,可以用于许多目的。一旦它被加载,一个单独的程序就足以处理我们上面提到的两种情况。除了我们已经介绍的三个变量m、I和n之外,将圆的半径r保持为一个变量也是有用的。

为了画出圆的包络,我们简单地固定n = 1,并使用一个合适的l值——较大的l值产生大的内圆,而较大的l值(l < m/2)产生较小的内圆。

用LOGO编程语言实现曲线缝合

对于外摆线,我们简单地固定l=0,并选择不同的n值:对于心形,n = 2;对于肾形,n = 3;对于Cremona的外摆线,n = 4,等等。我们注意到在每种情况下,曲线都有n - 1个尖点。

用LOGO编程语言实现曲线缝合

可以研究其他可能性,例如上述两种效果的组合。结果是形成外摆线,这些外摆线相对于l = 0时获得的外摆线旋转了。

另一个有趣的可能性是研究椭圆上的点而不是圆上的点的相同问题。一些结果如下图所示。

用LOGO编程语言实现曲线缝合

有人观察到,圆所遇到的大多数性质都在椭圆中重现了。当考虑与圆相比略有扭曲的偏心外摆线时,就会发生轻微的差别。

另一种圆形图案是所谓的神秘玫瑰图案,其中m个等距点彼此相连。因此,点1将连接到其他m- 1个点。已经连接到1的点2将需要连接到其他m-2个点,以此类推,直到点(m - 1)仍然需要连接到点m。

这种情况很容易编程。

m = 7和m = 14的结果如下所示。

用LOGO编程语言实现曲线缝合

除了图纸外,该程序还可以很容易地扩展到计算和打印出每个图案绘制的线条数。这将成为研究神秘玫瑰中线条数和顶点数之间关系的有用工具。

再说一次,我们不会把自己限制在圈子里的模式。对于位于等角螺线上的点,可以获得非常漂亮的壳状图案。其中一种模式如图14所示。

用LOGO编程语言实现曲线缝合

我们在这篇文章中展示了如何将曲线拼接成功地移植到计算机上。LOGO 语言的简单性和灵活性使这一操作非常流畅,在发现新模式、新属性和新概括方面尤其富有成效。

青山不改,绿水长流,在下告退。

转发随意,转载请联系张大少本尊。