利用python实现实时画弧度和圆

现在许多网站追求一种简洁动态的设计,在页面上使用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将是很好的选择。 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注