Python应用:绘画
作为一门应用广泛的编程语言,Python甚至可以用于绘画,不过要花费一定时间进行训练。下面以案例形式介绍如何用Python绘画。

多边形的绘制案例
以下是绘制六边形的Python代码:
#多边形的绘制案例
import turtle
def main():
turtle.color("green")
#steps代表多边形的绘制
turtle.circle(50,steps=6)
turtle.exitonclick()
if __name__ == "__main__":
main()
太阳花案例
以下是绘制太阳花的Python代码:
#太阳花案例
import turtle
import time
turtle.color("red","yellow")
turtle.begin_fill()
for _ in range(50):
turtle.speed(0)
turtle.forward(200)
turtle.left(170)
turtle.end_fill()
turtle.mainloop()
颜色五角星案例
以下是绘制颜色五角星的Python代码:
#颜色五角星案例
import turtle
import time
turtle.pensize(5)
turtle.pencolor("yellow")
turtle.fillcolor("red")
turtle.begin_fill()
for _ in range(5):
turtle.forward(200)
turtle.right(144)
turtle.end_fill()
time.sleep(2)
turtle.penup()
turtle.goto(-150,-120)
turtle.color("violet")
turtle.write("Done",font=("Arial"))
turtle.mainloop()
艺术图片
以下是绘制艺术图片的Python代码:
#艺术图片
import turtle
turtle.speed(0)
turtle.delay(0)
turtle.pensize(2)
turtle.bgcolor("black")
colors=["red","blue","yellow","purple"]
for x in range(300):
turtle.color(colors[x%4])
turtle.forward(2*x)
turtle.left(91)
turtle.done()
黑六边形
以下是绘制黑六边形的Python代码:
#黑六边形
import turtle
def bye(x,y):
turtle.bye()
s=turtle.Screen()
s.bgcolor("black")
s.screensize(800,800)
s.title("ClassUsing")
s.onscreenclick(bye)
p=turtle.Turtle()
p.speed(0)
p.hideturtle()
p.pencolor("red")
p.pensize(3)
p.circle(50,360,6)
turtle.done()
绘制时钟
以下是绘制时钟的Python代码:
#绘制时钟
import turtle as tt
from datetime import *
#当前日期属于一周的第几天
def Week(t):
week=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
return week[t.weekday()]
#获取当前时间
def Date(t):
y=t.year
m=t.month
d=t.day
cur_hour=t.hour
cur_min=t.minute
cur_sec=t.second
return "%s-%d-%d %d:%02d:%02d"%(y,m,d,cur_hour,cur_min,cur_sec)
#移动画笔,距离为distance
def movePen(distance):
tt.penup()
tt.pensize(5)
tt.pencolor("blue")
tt.fd(distance)
tt.pendown()
#绘制表针
def makeHands(name,length):
#清空窗口,重置turtule状态为初始状态
tt.reset()
movePen(-length*0.1)
#开始记录多边形的顶点
tt.begin_poly()
tt.fd(length*1.1)
#停止记录多边形的顶点
tt.end_poly()
#返回记录的多边形
handForm=tt.get_poly()
tt.register_shape(name,handForm)
#初始化
def initial():
global secHand, minHand, hurHand, printer
#重置方向向北(上),正角度为顺时针
tt.mode("logo")
#建立并初始化表针
makeHands("secHand",180)
makeHands("minHand",150)
makeHands("hurHand",110)
secHand=tt.Turtle()
secHand.shape("secHand")
minHand=tt.Turtle()
minHand.shape("minHand")
hurHand=tt.Turtle()
hurHand.shape("hurHand")
for hand in secHand, minHand, hurHand:
hand.shapesize(1,1,4)
hand.speed(0)
#输出文字
printer=tt.Turtle()
#隐藏画笔
printer.hideturtle()
printer.penup()
#绘制表盘外框
def drawClock(R):
#清空窗口,重置turtule状态为初始状态
tt.reset()
#画笔尺寸
tt.pensize(5)
for i in range(60):
movePen(R)
if i % 5 == 0:
tt.fd(20)
movePen(-R-20)
else:
tt.dot(5,"red")
movePen(-R)
tt.right(6)
#写文本
for i in range(12):
movePen(R-30)
tt.write(int(i+1),align="center",font=("Consolas",14,"bold"))
movePen(-R+30)
tt.right(30)
#表针的动态显示
def handsMove():
t=datetime.today()
second=t.second+t.microsecond*0.000001
minute=t.minute+second/60.0
hour=t.hour+minute/60.0
secHand.seth(6*second)
minHand.seth(6*minute)
hurHand.seth(30*hour)
tt.tracer(False)
printer.fd(65)
tt.pencolor("green")
printer.write(Week(t),align="center",font=("黑体",14))
printer.back(130)
printer.write(Date(t),align="center",font=("Consolas",14))
#设置当前画笔位置为原点,方向朝东
printer.home()
tt.tracer(True)
#经过100ms后继续调用handsMove函数
tt.ontimer(handsMove,100)
#调用定义的函数,打开和关闭动画,为更新图纸设置延迟;
tt.tracer(False)
initial()
drawClock(200)
tt.tracer(True)
handsMove()
tt.mainloop()
绘制分形树
以下是绘制分形树的Python代码:
#绘制分形树
import turtle
def draw_branch(branch_length):
'''绘制分形树'''
if branch_length > 5:
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7216.html
