现在许多网站追求一种简洁动态的设计,在页面上使用Python实时画出一道弧度是一种展现简洁美的方式,如果能用Python实时画弧度和圆那该多好啊?
接下来直接进入正题,我们如何实现这样的功能呢?
在这里我们用的是python里面的turtle库,我们通过不断地变化角度绘画直线从而实现一个圆。源代码如下:
import turtle import math bob = turtle.Turtle() #创造一个turtle object名为bob def arc(t,r,angle): arc_length = 2 *math.pi * r *angle /360 #求出弧长 n = 50 #要绘画直线的的次数 #n的数值越大越好看,但运行时间会增加 step_length = arc_length/n #每一次画线的长度 step_angle = angle/n #每一次画线所变化的角度 for i in range(n): t.fd(step_length) #向前画直线 t.lt(step_angle) #转角度 turtle.mainloop() #保留图形 arc(bob,80,150) #调用函数实现实时绘制 #bob是名称,80是大小,150是弧度,360即圆
如:
前者是150度 后者是360度,显然在n=50的情况下画得很粗糙
现在看看n=(int) arc_length
现在是不是平滑一点了? 但是时间也花得更长了。
你可以尽量试试,试出一种更好的算法,我这里推荐的是n=(int)arc_length/2+10
难并不难在实时画弧度或者圆,FLASH也能实现这样的功能,问题是怎样实现与用户交互的功能?强大的python将是很好的选择。