资讯专栏INFORMATION COLUMN

python绘制神器五角星+小黄人+樱花方法介绍

89542767 / 395人阅读

  小编写这篇文章的主要讲解的是,关于python一些案例的介绍,主要是对五角星+小黄人+樱花,对这种方法的一个具体介绍,下面就给大家做出一个比较详细解答。


  前言


  这期文章我就为大家介绍关于python的艺术美——画图神器


  在数学中有一种美,叫几何美,我们又称为艺术美,用具有规律的线条,迭代出美丽的图片,这就是许多艺术家在创作是的灵感渠道。下面我们就为大家准备了一个简单的五角星绘制。


  涉及第三库的导入,模块的导入,还有一些我想我现在也介绍不完,下面就让我们一起来领略美感吧!


  绘制五角星


  import turtle
  def draw_recursive_pentargram(size):
  '''
  迭代绘制五角星
  '''
  count=1
  while count<=5:
  turtle.backward(size)
  turtle.right(144)
  count+=1
  #五角星绘制完成,更新参数
  size+=10
  if size<=100:
  draw_recursive_pentargram(size)
  def main():
  '''
  主函数
  '''
  turtle.speed(0)
  #turtle.penup()
  turtle.forward(40)
  #turtle.pendown()
  turtle.pensize(2)
  turtle.pencolor("red")
  turtle.bgcolor('black')
  size=50
  draw_recursive_pentargram(size)
  turtle.exitonclick()
  if __name__=="__main__":
  main()

01.png

  是不是感觉挺神奇的,其实这个算法是最简单的。下面我就让大家来见识一下它的真正的本领,感性的魅力。


  这个代码我是去向大师借来的哟,不是小陈自己写的,嘻嘻嘻。


  小黄人绘制案例


  #小黄人绘制案例************************************************************************
  import turtle
  t=turtle.Turtle()
  wn=turtle.Screen()
  turtle.colormode(255)
  t.hideturtle()
  t.speed(10)
  t.penup()
  t.pensize(4)
  t.goto(100,0)
  t.pendown()
  t.left(90)
  t.color((0,0,0),(255,255,0))
  #身体绘制上色
  t.begin_fill()
  t.forward(200)
  t.circle(100,180)
  t.forward(200)
  t.circle(100,180)
  t.end_fill()
  #右眼睛绘制上色
  t.pensize(12)
  t.penup()
  t.goto(-100,200)
  t.pendown()
  t.right(100)
  t.circle(500,23)
  t.pensize(3)
  t.penup()
  t.goto(0,200)
  t.pendown()
  t.seth(270)
  t.color("black","white")
  t.begin_fill()
  t.circle(30)
  t.end_fill()
  t.penup()
  t.goto(15,200)
  t.pendown()
  t.color("black","black")
  t.begin_fill()
  t.circle(15)
  t.end_fill()
  t.penup()
  t.goto(35,205)
  t.color("black","white")
  t.begin_fill()
  t.circle(5)
  t.end_fill()
  #左眼睛绘制上色
  t.pensize(3)
  t.penup()
  t.goto(0,200)
  t.pendown()
  t.seth(90)
  t.color("black","white")
  t.begin_fill()
  t.circle(30)
  t.end_fill()
  t.penup()
  t.goto(-15,200)
  t.pendown()
  t.color("black","black")
  t.begin_fill()
  t.circle(15)
  t.end_fill()
  t.penup()
  t.goto(-35,205)
  t.color("black","white")
  t.begin_fill()
  t.circle(5)
  t.end_fill()
  #嘴绘制上色
  t.penup()
  t.goto(-20,100)
  t.pendown()
  t.seth(270)
  t.color("black","white")
  t.begin_fill()
  t.circle(20,180)
  t.left(90)
  t.forward(40)
  t.end_fill()
  #裤子绘制上色
  t.penup()
  t.goto(-100,0)
  t.pendown()
  t.seth(0)
  t.color("black","blue")
  t.begin_fill()
  t.forward(20)
  t.left(90)
  t.forward(40)
  t.right(90)
  t.forward(160)
  t.right(90)
  t.forward(40)
  t.left(90)
  t.forward(20)
  t.seth(270)
  t.penup()
  t.goto(-100,0)
  t.circle(100,180)
  t.end_fill()
  #左裤子腰带
  t.penup()
  t.goto(-70,20)
  t.pendown()
  t.color("black","blue")
  t.begin_fill()
  t.seth(45)
  t.forward(15)
  t.left(90)
  t.forward(60)
  t.seth(270)
  t.forward(15)
  t.left(40)
  t.forward(50)
  t.end_fill()
  t.left(180)
  t.goto(-70,30)
  t.dot()
  #右裤腰带
  t.penup()
  t.goto(70,20)
  t.pendown()
  t.color("black","blue")
  t.begin_fill()
  t.seth(135)
  t.forward(15)
  t.right(90)
  t.forward(60)
  t.seth(270)
  t.forward(15)
  t.right(40)
  t.forward(50)
  t.end_fill()
  t.left(180)
  t.goto(70,30)
  t.dot()
  #脚
  t.penup()
  t.goto(4,-100)
  t.pendown()
  t.seth(270)
  t.color("black","black")
  t.begin_fill()
  t.forward(30)
  t.left(90)
  t.forward(40)
  t.seth(20)
  t.circle(10,180)
  t.circle(400,2)
  t.seth(90)
  t.forward(20)
  t.goto(4,-100)
  t.end_fill()
  t.penup()
  t.goto(-4,-100)
  t.pendown()
  t.seth(270)
  t.color("black","black")
  t.begin_fill()
  t.forward(30)
  t.right(90)
  t.forward(40)
  t.seth(20)
  t.circle(10,-225)
  t.circle(400,-3)
  t.seth(90)
  t.forward(21)
  t.goto(-4,-100)
  t.end_fill()
  #左手
  t.penup()
  t.goto(-100,50)
  t.pendown()
  t.seth(225)
  t.color("black","yellow")
  t.begin_fill()
  t.forward(40)
  t.left(90)
  t.forward(35)
  t.seth(90)
  t.forward(50)
  t.end_fill()
  #右手
  t.penup()
  t.goto(100,50)
  t.pendown()
  t.seth(315)
  t.color("black","yellow")
  t.begin_fill()
  t.forward(40)
  t.right(90)
  t.forward(36)
  t.seth(90)
  t.forward(50)
  t.end_fill()
  #
  t.penup()
  t.goto(0,-100)
  t.pendown()
  t.forward(30)
  #
  t.penup()
  t.goto(0,-20)
  t.pendown()
  t.color("yellow")
  t.begin_fill()
  t.seth(45)
  t.forward(20)
  t.circle(10,180)
  t.right(90)
  t.circle(10,180)
  t.forward(20)
  t.end_fill()
  #
  t.penup()
  t.color("black")
  t.goto(-100,-20)
  t.pendown()
  t.circle(30,90)
  t.penup()
  t.goto(100,-20)
  t.pendown()
  t.circle(30,-90)
  #头顶
  t.penup()
  t.goto(2,300)
  t.pendown()
  t.begin_fill()
  t.seth(135)
  t.circle(100,40)
  t.end_fill()
  t.penup()
  t.goto(2,300)
  t.pendown()
  t.begin_fill()
  t.seth(45)
  t.circle(100,40)
  t.end_fill()
  turtle.exitonclick()


  看似复杂而又繁琐的代码,它其实是由规律的,不信你可以自己看看它的写法。


  运行美图:

02.png

  小黄人不错吧!!!


  樱花案例


  import turtle as T
  import random
  import time
  #画樱花的躯干(60,t)
  def Tree(branch,t):
  time.sleep(0.0005)
  if branch>3:
  if 8<=branch<=12:
  if random.randint(0,2)==0:
  t.color('snow')#白
  else:
  t.color('lightcoral')#淡珊瑚色
  t.pensize(branch/3)
  elif branch<8:
  if random.randint(0,1)==0:
  t.color('snow')
  else:
  t.color('lightcoral')#淡珊瑚色
  t.pensize(branch/2)
  else:
  t.color('sienna')#赭(zhě)色
  t.pensize(branch/10)#6
  t.forward(branch)
  a=1.5*random.random()
  t.right(20*a)
  b=1.5*random.random()
  Tree(branch-10*b,t)
  t.left(40*a)
  Tree(branch-10*b,t)
  t.right(20*a)
  t.up()
  t.backward(branch)
  t.down()
  #掉落的花瓣
  def Petal(m,t):
  for i in range(m):
  a=200-400*random.random()
  b=10-20*random.random()
  t.up()
  t.forward(b)
  t.left(90)
  t.forward(a)
  t.down()
  t.color('lightcoral')#淡珊瑚色
  t.circle(1)
  t.up()
  t.backward(a)
  t.right(90)
  t.backward(b)
  #绘图区域
  t=T.Turtle()
  #画布大小
  w=T.Screen()
  t.hideturtle()#隐藏画笔
  t.getscreen().tracer(5,0)
  w.screensize(bg='wheat')#wheat小麦
  t.left(90)
  t.up()
  t.backward(150)
  t.down()
  t.color('sienna')
  #画樱花的躯干
  Tree(60,t)
  #掉落的花瓣
  Petal(200,t)
  w.exitonclick()

03.png

  综上所述,关于一些知识要点,就为大家介绍到这里了,希望可以为大家带来更多的帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128180.html

相关文章

  • #yyds干货盘点# Python - 画国旗

    摘要:用的模块绘制国旗小黄绘制矩形绘制五角星主程序画国旗主体画大星星画小星星隐藏海龟显示绘图窗口 用Python的turtle模块绘制国旗Version: 0.1Author: 小黄Date: 2021.11.22import turtledef draw_rectangle(x, y, width, height)...

    番茄西红柿 评论0 收藏2637
  • SegmentFault 技术周刊 Vol.38 - 神奇的 CSS

    摘要:层叠即表示允许以多种方式来描述样式,一个元素可以被渲染呈现出多种样式。可以让属性的变化过程持续一段时间,而不是立即生效。比如,将元素的颜色从白色改为黑色,通常这个改变是立即生效的,使用后,将按一个曲线速率变化。 showImg(https://segmentfault.com/img/bVZwyL?w=900&h=385); CSS 的全称是 Cascading Style Sheet...

    elliott_hu 评论0 收藏0
  • Python3 turtle教程

    摘要:基础概念画布画布就是为我们展开用于绘图区域我们可以设置它的大小和初始位置。常用的画布方法有两个和。设置画笔的宽度没有参数传入返回当前画笔颜色传入参数设置画笔颜色可以是字符串如也可以是元组。 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬...

    刘福 评论0 收藏0
  • Python 送你一棵圣诞树

    摘要:但今年不能老送同样的东西啊,那就给大家送上几棵圣诞树吧。极简版这个可算是最简单的圣诞树了。例如上面这棵圣诞树,每一个树枝又是一个小的圣诞树。这与编程中的递归思想很像顶部五角星略过炫彩版一般圣诞树上都会挂上的小彩灯。 今天是圣诞节,先祝大家圣诞快乐! 有人要说了,圣诞节是耶稣诞生的日子,我又不信基督教,有啥好庆祝的。这你就有所不知了,Python 的诞生也跟圣诞节有关:1989 年,那是...

    miya 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<