欢迎光临散文网 会员登陆 & 注册

S4E14 圣诞树

2022-03-02 13:29 作者:学用数学  | 我要投稿

趁着圣诞夜,本周任务就是要来绘制如下的圣诞树。


在这篇文案,主要想与老师分享些,以「自我提问」来解决问题的方法。

以这个圣诞树为例,第一部自我提问,就是要提醒自己去分析这个圣诞树的主要结构可以拆解为哪些部分?

经过这个提问,引导我注意到,可分为树干、绿色的横杆、蓝色、红色的外围曲线。而本题的关键就在于这红、蓝曲线的绘制方式。关于要绘制红蓝曲线。可再通过些问题拆解得到细部的操作思路。

你将学会

  • 通过自我提问来拆解问题

  • 用空间中曲线 curve 来绘制螺线

  • 知道 cone 指令的使用

学习内容

1 单个螺线的制作

问:这红、蓝曲线的结构是什么呢?

答:一层层往下扩大的曲线。


问:那如果从上方看会是如何?

答:会是两条由内往外生长的螺线。


问:那如何制作这渐渐变大的螺线呢?

答:螺线其实类似圆,有周期运动特性,可用 (cos(t),sin(t)) 来改变。但差别正在与半径会渐渐扩大。可考虑将, 长度设为 t,这样就会便绕圆周、边变大。因此输入指令  T1 = Curve(t cos(t),  t sin(t), 0 ,t,0, 4pi)  ;

问:那如改变这曲线的形状呢?

答:可增加滑动条 a, b 考虑用 Curve(a*t cos(b*t),  a*t sin(b*t), 0 ,t,0, 4pi) ;
问:那 a, b 的参数对图形对影响为何呢?

答:a 控制半径,也就是控制图像大小。b  控制 ??? ,答案见 ①


2 如何让曲线向上延伸

问:那如何让高度也不同呢?

答:用 (t*cos(t),  t*sin(t), t ) 这样就像个龙卷风的样子?


问:那如何倒过来呢?

答:可先建个滑动条 Top 控制顶点,并用参数 c 来控制下降速度。并将z 坐标的参数改为 T1=Curve(a*t cos(b*t),  a*t*sin(b*t), ??? ,t,0,4pi)   答案见 ②。



3 如何制作双螺线?

问:这两条曲线有何关系呢?

答:对 z 轴相对称。


问:如何实现这 z 轴相对称的表示法?

答:可用 x, y 坐标都加负号 :T2 = Curve(-a*t*cos(b*t),  -a*t*sin(b*t), Top - c*t ,t,0,4pi)  也可用曲线参数的平移,改变位置。也就是都加个 pi 。T2 = Curve(a*t*cos(b*t + pi),  a*t*sin(b*t + pi), Top - c*t ,t,0,4pi)  
问:如何连接两个曲线?

答:先取得两个曲线上的点。也就是把曲线参数,改为点坐标。但要让他成为动点,需要增加一个滑动条 t。P1 = (a*t*cos(b*t),  a*t*sin(b*t ), Top - c*t)  P2 = ???   答案见 ③。


问:如何呈现很多横杆?

答:移动时,将轨迹保留下来。


4 影响树干的结构参数有什么?

问:影响树干的结构是什么?

答:树干的结构是个圆锥。


问:建一个圆锥需要什么参数?

答:需要一个圆与高。因此,要决定圆锥的顶点、底部位置还有底部圆的大小。

  • 要建立【滑动条】 Base=-8 来控制底部圆的位置。

  • 可建 rBase = 5 控制底部圆的大小。

  • 因此,底部的圆可建为 cBase = Circle(???,???,Vector((0,0,1)))。

    答案见 ④。

  • 可用 cone=(cBase, Top-Base ) 来建立圆锥。


当完成上述任务后,你可再对半径作一些不同的设定,来作出不同外观的圣诞树。

答案区

① b 控制周期,影响疏密程度。

② T1=Curve(a*t cos(b*t),  a*t*sin(b*t), Top - c*t ,t,0,4pi)

③ P2 = (a*t*cos(b*t + pi),  a*t*sin(b*t + pi ), Top - c*t)  

④ cBase = Circle( cBase, rBase,Vector((0,0,1)))

参考资料

【GGB】https://www.geogebra.org/classic/fkbr95cn

【Bili 】https://www.bilibili.com/video/BV12J411x7J2



S4E14 圣诞树的评论 (共 条)

分享到微博请遵守国家法律