一、紫荆花的简化
图1 紫荆花照片
紫荆花花瓣可简化为四段圆弧:
花瓣可简化为半径为R的大圆弧,半径为R' = R/2的中圆弧,两个半径为r = R'/2 = R/4的小圆弧组成(见图2)。由于中圆弧与小圆弧是外切连接,故圆弧的端点都须在一条直线上,因此中圆弧与两小圆弧的圆弧角应该相同,大圆弧与小圆弧的转角和各圆弧的圆弧角可通过几何关系用数学方法求得(如图2所示),也可在编程时先预估再修改调整,直至四段圆弧闭合。
图2 紫荆花花瓣的艺术性简化图
二、紫荆花的绘制
由于turtle绘制圆弧时是不需要求坐标的,只需要定一个起始方向角度,圆半径、画圆方向和圆弧的角度即可绘制,除起始方向角度外都是相对的,故可以先预估一个差不多的圆弧角,绘制后再根据误差修改调整即可。如中圆弧和小圆弧的圆弧角为130°时,大圆弧的圆弧角为132°、大圆弧转小圆弧右转179.5°时,由四段圆弧组成的紫荆花花瓣轮廓线基本闭合。
将绘制一片花瓣的程序设计成一个可接收一个起始角的函数,在绘制n片花瓣时,只需传递一个每瓣增加360/n的起始角就可以绘制出一朵n片花瓣的花。紫荆花为5片花瓣。
绘制程序如下:
执行结果:(见图3)
图3 turtle绘制的紫荆花图
三、修改参数绘制黄花菜花
图4 黄花菜花照片
如将花名改为“黄花菜花”,笔尖颜色(花瓣边缘色)为goldenrod(浓黄色)、填充颜色为tomato(蕃茄色)、花瓣数n=6,则执行结果:(见图5)
图5 turtle绘制的黄花菜花图