于是仔细研究,发现这幅图有技巧,需要利用初中几何知识求出两条边的比例才能画出跟原图一模一样的效果。这可提起了我的兴趣,于是立马分析图形中线条与线条之间的关系,角度是多少,作图,辅助线,计算角度,计算各条关键线段的长。加下来我就将我分析的过程展示出来,供scratch的编程爱好者,和编程爱好者中的数学爱好者参考,共同学习。(因为我怕不写下来,等两天我再看,又忘了!)
首先,将原图拆分成这样的单元图形:最终的图形即是这个基本图形通过不断的旋转所组成的。
单元代码如下:
这里我就直接数的对儿数,一共有8对,所以需要由刚才那个基础图形旋转八次得到。
所以每次旋转的度数为360/8 = 45(度)
代码如下:
现在画出来的结果是这样子的:
跟原图对比,有点像,但中间的差别还是蛮大的。什么原因呢?哦!正如我们开篇时所说的,长边和短边的比例没有经过计算,所以这样是不会和原图相像的。
正因为这些点的重合,才会让图形看起来更加的漂亮,像一朵绽开的花儿。
那接下来我就截取其中的一块作为我们的标本进行分析。
其中:BG即为单元图形的半个长臂,在此,我们令单元图的长臂长为a,则BG=a/2,DC,DF,DE为过D点分别向直角边BG,HG以及等腰直角三角形BGH斜边BH分别引的三条垂线,垂足分别为C,F,E。在这里我们可以发现,这三条垂线段均为相交的两个单元图形的短边,我们令其为b,所以则有点D为等腰直角三角形BGH的内心-三角形内切圆的圆心(到三边距离相等的点)。好的,现在的重点就落在了求这个等腰直角三角形的内切圆半径的长度了。方法为等面积法(是不是似曾相识的感觉)
化解得:
则:
所以,我们需要再次申请一个变量,来容纳a的值,如下:
a=外边长/2
所以代码可以如下写:
展示最终成效:
完美!!
————————————— 教育就是每一次的正向反馈! ——————————————