大家好,我是复仇流浪者,我有回来了!!!
今天我给大家当来一个Python绘画;
好了废话不多说,上代码吧!!!
# 直接点击“运行”即可
# 礼花蛋
import turtle
import math
import random
turtle.speed(0)
turtle.ht()
body = turtle.Turtle()
body.ht()
hand = turtle.Turtle()
hand.ht()
face = turtle.Turtle()
face.ht()
eye1 = turtle.Turtle()
eye1.ht()
eye2 = turtle.Turtle()
eye2.ht()
eyesball = turtle.Turtle()
eyesball.ht()
mouth = turtle.Turtle()
mouth.ht()
cheek = turtle.Turtle()
cheek.ht()
def ellipspos(a, b, angle, steps, rotateAngle, x, y, t=turtle):
rotateAngle = rotateAngle / 360 * 2 * math.pi
t.penup()
t.setpos(x + b * math.sin(rotateAngle), y - b * math.cos(rotateAngle))
def ellips(a, b, angle, steps, rotateAngle, x, y, up=False, down=False, t=turtle):
x = -x
t.penup()
minAngle = (2 * math.pi / 360) * angle / steps
rotateAngle = rotateAngle / 360 * 2 * math.pi
halfsteps = steps // 2
for i in range(steps + 1):
nextPoint = [y + a * math.sin((i + 1) * minAngle),
x - b * math.cos((i + 1) * minAngle)]
nextPoint = [nextPoint[0] * math.cos(rotateAngle) - nextPoint[1] * math.sin(rotateAngle),
nextPoint[0] * math.sin(rotateAngle) + nextPoint[1] * math.cos(rotateAngle)]
t.setpos(nextPoint)
if up and i <= halfsteps:
t.pendown()
elif up and i > halfsteps:
break
elif down and i > halfsteps:
t.pendown()
elif down and i < halfsteps:
t.penup()
else:
t.pendown()
t.end_fill()
# 画身体
def draw_body(color):
body.fillcolor(color)
ellipspos(200, 150, 360, 160, 90, 0, 0, body)
body.begin_fill()
ellips(200, 150, 360, 160, 90, 0, 0, True, False, body)
body.end_fill()
body.fillcolor(color)
ellipspos(140, 150, 360, 160, 90, 0, 0, body)
body.begin_fill()
ellips(140, 150, 360, 160, 90, 0, 0, False, True, body)
body.end_fill()
# 画脸
def draw_face(color):
face.fillcolor(color)
face.penup()
face.goto(-75,-80) #蓝色脸位置正常-75,-80
face.pendown()
face.begin_fill()
face.forward(145)
face.circle(50, 60)
face.circle(100, 30)
face.circle(150, 30)
face.circle(180, 45)
face.left(30)
face.circle(180, 45)
face.circle(150, 30)
face.circle(100, 30)
face.circle(50, 70)
face.end_fill()
face.penup()
# 画手
def draw_hands(color):
hand.fillcolor(color)
hand.penup()
ellipspos(56, 12, 360, 150, 90, 166, -8, hand)
hand.begin_fill()
ellips(56, 12, 360, 150, 90, 166, -8, False, False, hand)
hand.end_fill()
hand.penup()
ellipspos(56, 12, 360, 150, 90, -166, -8, hand)
hand.begin_fill()
ellips(56, 12, 360, 150, 90, -166, -8, False, False, hand)
hand.end_fill()
# 画眼球
def draw_eyesball(color1,color2,color3):
eyesball.fillcolor(color1)
eyesball.penup()
eyesball.goto(65, 15)
eyesball.pendown()
eyesball.begin_fill()
eyesball.circle(20)
eyesball.end_fill()
eyesball.penup()
eyesball.goto(-65, 15)
eyesball.pendown()
eyesball.begin_fill()
eyesball.circle(20)
eyesball.end_fill()
eyesball.fillcolor(color2)
eyesball.penup()
eyesball.goto(65, 25)
eyesball.pendown()
eyesball.begin_fill()
eyesball.circle(10)
eyesball.end_fill()
eyesball.penup()
eyesball.goto(-65, 25)
eyesball.pendown()
eyesball.begin_fill()
eyesball.circle(10)
eyesball.end_fill()
eyesball.fillcolor(color3)
eyesball.penup()
eyesball.goto(58, 38)
eyesball.pendown()
eyesball.begin_fill()
eyesball.circle(8)
eyesball.end_fill()
eyesball.penup()
eyesball.goto(-72, 38)
eyesball.pendown()
eyesball.begin_fill()
eyesball.circle(8)
eyesball.end_fill()
# 画眼睛
def draw_eyes():
eye1.fillcolor("#ffffff")
eye1.penup()
ellipspos(60, 40, 360, 150, 98, 70, 30, eye1)
eye1.begin_fill()
ellips(60, 40, 360, 150, 98, 70, 30, False, False, eye1)
eye1.end_fill()
eye2.fillcolor("#ffffff")
ellipspos(60, 40, 360, 150, 82, -70, 30, eye2)
eye2.begin_fill()
eye2.penup()
ellips(60, 40, 360, 150, 82, -70, 30, False, False, eye2)
eye2.end_fill()
draw_eyesball("#003333","#000000","#ffffff") # 眼白,瞳孔,反光
# 画嘴
def draw_mouth(color):
mouth.fillcolor(color)
ellipspos(30, 8, 360, 150, 90, 0, -40, mouth)
mouth.begin_fill()
ellips(30, 8, 360, 150, 90, 0, -40, False, False, mouth)
mouth.end_fill()
mouth.penup()
mouth.goto(-6, -19)
mouth.pendown()
mouth.fillcolor("#ffffff")
mouth.begin_fill()
for i in range(3):
mouth.forward(12)
mouth.left(120)
mouth.end_fill()
# 画脸颊
def draw_cheeks(color):
cheek.fillcolor(color)
cheek.pencolor("#ffcccc")
cheek.penup()
cheek.goto(-90, -52)
cheek.pendown()
cheek.begin_fill()
cheek.circle(17)
cheek.end_fill()
cheek.penup()
cheek.goto(90, -52)
cheek.pendown()
cheek.begin_fill()
cheek.circle(17)
cheek.end_fill()
# 画眉毛
def draw_eyebrows():
turtle.color("#000000")
turtle.pensize(3)
turtle.penup()
turtle.goto(-75, 100)
turtle.pendown()
turtle.seth(35)
turtle.forward(40)
turtle.seth(-80)
turtle.forward(10)
turtle.penup()
turtle.goto(75, 100)
turtle.pendown()
turtle.seth(145)
turtle.forward(40)
turtle.seth(260)
turtle.forward(10)
# 画星星
x = turtle.window_width() / 3
y = turtle.window_height() / 2
def goto_place():
turtle.penup()
x_1 = random.uniform(-x, x)
y_1 = random.uniform(0, y)
turtle.goto(x_1, y_1)
turtle.pendown()
def place_of_star():
y = turtle.ycor()
return y
def change_place():
turtle.penup()
x_1 = random.uniform(-x, x)
y_1 = random.uniform(200, y)
turtle.goto(x_1, y_1)
turtle.pendown()
def draw_star(c):
step = random.randint(20, 30)
turtle.color(c)
turtle.setheading(random.randint(1, 180))
turtle.begin_fill()
for _ in range(5):
turtle.forward(step)
turtle.right(144)
turtle.end_fill()
# 画可爱的专属蛋君
# 画身体
draw_body("white")
# 画脸
draw_face("royalblue")
# 画手
draw_hands("white")
# 画嘴
draw_mouth("brown")
# 画脸颊
draw_cheeks("pink")
# 画眼睛
draw_eyes()
# 画眉毛
draw_eyebrows()
好了,这就是主要代码,还有一个附赠的小MOD,可以画星星!!!
for _ in range(100):
# 去某一个位置
goto_place()
# 如果星星的位置低于200
if place_of_star() < 200:
# 那么就换个位置
change_place()
# 画星星
draw_star("yellow")
好啦同志们,这一期文章就到这里了,我们下期见啦!!!
本站作者已申明原创,禁止转载!
文章内容属作者个人观点,不代表本站立场,如有侵权立删。






