迭代树?分形树?你会做吗?嘿!还有涂色呢——GeoGebra
叫法有点多——迭代树、分形树、二叉树。
先来看个基础版的:
再来看涂色版的:
还有一种是“四季更迭”:
有那么点美的享受吧?如果进行制作,还可以更理解迭代、涂色!获取满满的成就感!
制作思路、指令
树干、树枝即为线段。将树干旋转、缩放可得到树枝;再将所得树枝重复刚刚的操作(旋转、缩放),得到新的树枝;……。
- 旋转——旋转(Rotate)。
- 缩放——位似(Dilate)。
- 线段——线段(Segment)。
也就是可用迭代去生成树,而《学做勾股树,掌握迭代!套路在手,不怕迭代》总结了迭代的套路:
迭代树是“一生二”,可以直接套用图中的基本形式指令。那么,最大的问题就是写出如何由对象0生成对象1和对象2。这里不妨让线段作为对象,用线段作为基础去迭代生成。
于是,需写出左、右线段如何由底下线段得到:
- 要确定一条线段,需要确定两点
- 一点是底下线段的一端点,另一点是由底下线段的另一端点旋转、位似得到
有了思路就可以尝试制作啦!
所有指令如下:
注:迭代列表(IterationList)、合并(Join)、映射(Zip)、 描点(Point)。
至于涂色,如果直接用涂色工具,效果如下:
若是想要让树干、树枝的颜色,可以较为自由地渐变,比如由棕色到黄色,再到绿色进行渐变。那就先要知晓这些颜色的RGB值:
于是:
原理:在折线上取点,利用点的三维坐标设置对象的RGB动态颜色。
设置动态颜色( <对象>, <红色值 0~1>, <绿色值 0~1>, <蓝色值 0~1> )
所以,需留意,得让RGB值除以255,使得值在0到1。
注:折线(PolyLine)、填充列(FillColumn)、元素(Element)、执行(Execute)、序列(Sequence)、设置线径(SetLineThickness)。
由此,l1的各个元素的颜色都不同。
至于“四季更迭”,其实是要让l1的颜色由角度α、β决定,只需将B1至B11的动态颜色改为由α、β决定。例如:
只要图中红线标示部分在0到1之间即可。像第二种情况,会从棕色(起始颜色)变化到绿色(终止颜色)。而第一种则是从棕黄(非起始颜色)变化到绿色(终止颜色)。
另外,为了效果更好——让树干到树枝,逐渐变细:
执行(序列("SetLineThickness(B"+k+","+(13-k+1)+")",k,1,11))
这条执行指令相当于输入:设置线径(B1,13),设置线径(B2,12),……,设置线径(B11,3)
制作过程【视频】
如果想看详细的解释或者制作过程,请点击链接看视频。
结语
除了回顾分形树的制作,建议再回顾下勾股树(“一生二”)、毕氏螺线(“一生一”)的做法。
【点击文末的“了解更多”,关注后回复迭代,可立马获取。】
请先 后发表评论~