用Python绘制的爱心树与表白代码

发表于:2021-4-13 09:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:有趣好玩的代码    来源:CSDN

  用的的开发工具为pycham,pycham也是广泛用于做Python开发的工具。运用的turtle库,当然了如果是安装了anaconda3这个库那更好,以为这里面有我们会做Python程序设计时用到的大部分的库,turtle它是python中一个绘制图像的函数库,可以用它来绘制很多的东西,比如简单的小黄人、玫瑰花等,这个库也可以生说是一只马良的神笔的吧。比如以下是为女朋友准备的小小的惊喜吧。
  1、爱心树

  import turtle
  import random
  def love(x,y):#在(x,y)处画爱心lalala
      lv=turtle.Turtle()
      lv.hideturtle()
      lv.up()
      lv.goto(x,y)#定位到(x,y)
      def curvemove():#画圆弧
          for i in range(20):
              lv.right(10)
              lv.forward(2)
      lv.color('red','pink')
      lv.speed(100)
      lv.pensize(1)
      #开始画爱心lalala
      lv.down()
      lv.begin_fill()
      lv.left(140)
      lv.forward(22)
      curvemove()
      lv.left(120)
      curvemove()
      lv.forward(22)
      lv.write("杨幂",font=("Arial",12,"normal"),align="center")#写上表白的人的名字
      lv.left(140)#画完复位
      lv.end_fill()
  def tree(branchLen,t):
      if branchLen > 5:#剩余树枝太少要结束递归
          if branchLen<20:
              t.color("green")
              t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))
              t.down()
              t.forward(branchLen)
              love(t.xcor(),t.ycor())#传输现在turtle的坐标
              t.up()
              t.backward(branchLen)
              t.color("brown")
              return
          t.pensize(random.uniform((branchLen+5)/4-2,(branchLen+6)/4+5))
          t.down()
          t.forward(branchLen)
          # 以下递归
          ang=random.uniform(15,45)
          t.right(ang)
          tree(branchLen-random.uniform(12,16),t)#随机决定减小长度
          t.left(2*ang)
          tree(branchLen-random.uniform(12,16),t)#随机决定减小长度
          t.right(ang)
          t.up()
          t.backward(branchLen)
  myWin = turtle.Screen()
  t = turtle.Turtle()
  t.hideturtle()
  t.speed(1000)
  t.left(90)
  t.up()
  t.backward(200)
  t.down()
  t.color("brown")
  t.pensize(32)
  t.forward(60)
  tree(100,t)
  myWin.exitonclick()
  2、画桃心

  # -*- coding:utf-8 -*-
  import turtle
  import time
  # 画爱心的顶部
  def LittleHeart():
      for i in range(200):
          turtle.right(1)
          turtle.forward(2)
  # 输入表白的语句,默认I Love you
  love = input('请输入表白语句,默认为输入为"I Love you": ')
  # 输入署名或者赠谁,没有不执行
  me = input('请输入您心上人的姓名或者昵称: ')
  if love == '':
      love = 'I Love you'
  # 窗口大小
  turtle.setup(width=800, height=500)
  # 颜色
  turtle.color('red', 'pink')
  # 笔粗细
  turtle.pensize(5)
  # 速度
  turtle.speed(1)
  # 提笔
  turtle.up()
  # 隐藏笔
  turtle.hideturtle()
  # 去到的坐标,窗口中心为0,0
  turtle.goto(0, -180)
  turtle.showturtle()
  # 画上线
  turtle.down()
  turtle.speed(1)
  turtle.begin_fill()
  turtle.left(140)
  turtle.forward(224)
  # 调用画爱心左边的顶部
  LittleHeart()
  # 调用画爱右边的顶部
  turtle.left(120)
  LittleHeart()
  # 画下线
  turtle.forward(224)
  turtle.end_fill()
  turtle.pensize(5)
  turtle.up()
  turtle.hideturtle()
  # 在心中写字 一次
  turtle.goto(0, 0)
  turtle.showturtle()
  turtle.color('#CD5C5C', 'pink')
  # 在心中写字 font可以设置字体自己电脑有的都可以设 align开始写字的位置
  turtle.write(love, font=('gungsuh', 30,), align="center")
  turtle.up()
  turtle.hideturtle()
  time.sleep(2)
  # 在心中写字 二次
  turtle.goto(0, 0)
  turtle.showturtle()
  turtle.color('red', 'pink')
  turtle.write(love, font=('gungsuh', 30,), align="center")
  turtle.up()
  turtle.hideturtle()
  # 写署名
  if me != '':
      turtle.color('black', 'pink')
      time.sleep(2)
      turtle.goto(180, -180)
      turtle.showturtle()
      turtle.write(me, font=(20,), align="center", move=True)
  # 点击窗口关闭
  window = turtle.Screen()
  window.exitonclick()

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号