当前位置:   article > 正文

python有趣的图案代码简单,玫瑰花代码编程python_python简单图案代码

python简单图案代码

大家好,小编为大家解答python好看图案的编程代码的问题。很多人还不知道python有趣的图案代码简单,现在让我们一起来看看吧!

Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

1、安卓小人

  1. #!/usr/bin/env python
  2. import turtle
  3. aj=turtle.Pen()
  4. y=0
  5. aj.speed(5)
  6. #turtle.screensize(200,800)
  7. turtle.bgcolor("black")
  8. #aj.shape("turtle")
  9. def head():
  10. aj.color("green")
  11. aj.fd(160)
  12. x=aj.xcor()
  13. aj.seth(90)
  14. aj.begin_fill()
  15. #aj.color("green")
  16. aj.circle(x/2,180)
  17. aj.end_fill()
  18. aj.penup()
  19. aj.goto(33,37)
  20. aj.pendown()
  21. aj.dot(13,"black")
  22. aj.penup()
  23. aj.goto(126,37)
  24. aj.pendown()
  25. aj.dot(13,"black")
  26. aj.penup()
  27. aj.home()
  28. aj.pendown()
  29. aj.hideturtle()
  30. aj.fd(160)
  31. aj.seth(90)
  32. aj.circle(x/2,60)
  33. aj.right(90)
  34. aj.pensize(5)
  35. aj.fd(30)
  36. aj.penup()
  37. aj.home()
  38. #aj.pendown()
  39. aj.hideturtle()
  40. aj.fd(160)
  41. aj.seth(90)
  42. aj.circle(x/2,120)
  43. aj.right(90)
  44. aj.pensize(5)
  45. aj.pendown()
  46. aj.fd(30)
  47. aj.penup()
  48. aj.home()
  49. aj.penup()
  50. def body():
  51. aj.pensize(0)
  52. aj.home()
  53. aj.showturtle()
  54. aj.goto(0,-7)
  55. aj.pendown()
  56. aj.begin_fill()
  57. aj.fd(160)
  58. aj.right(90)
  59. aj.fd(120)
  60. aj.right(90)
  61. aj.fd(160)
  62. y=aj.ycor()
  63. aj.right(90)
  64. aj.fd(120)
  65. aj.end_fill()
  66. def legs():
  67. aj.penup()
  68. #turtle.color("red")
  69. aj.goto(33,-169)
  70. aj.pendown()
  71. aj.pensize(32)
  72. aj.fd(43)
  73. aj.penup()
  74. aj.goto(130,-169)
  75. aj.pendown()
  76. aj.fd(43)
  77. aj.penup()
  78. def hands():
  79. aj.home()
  80. aj.pensize(30)
  81. aj.goto(-18,-77)
  82. aj.pendown()
  83. aj.left(90)
  84. aj.fd(65)
  85. aj.penup()
  86. aj.goto(179,-77)
  87. aj.pendown()
  88. aj.fd(65)
  89. aj.penup()
  90. aj.hideturtle
  91. aj.fd(100)
  92. aj.hideturtle()
  93. aj.circle(100)
  94. aj.circle(100,360,59)
  95. aj.reset()
  96. turtle.bgcolor("black")
  97. turtle.pencolor("green")
  98. turtle.hideturtle()
  99. turtle.goto(-300,0)
  100. aj.hideturtle
  101. turtle.write("Thank you for watching....", font = ("Bodoni MT Black", 28, "bold"))
  102. turtle.penup()
  103. turtle.goto(-40,-170)
  104. turtle.pendown()
  105. turtle.pencolor("yellow")
  106. turtle.write("Developed by 一个超会写Bug的安太狼", font = ("Palatino Linotype", 22, "bold"))
  107. head()
  108. body()
  109. legs()
  110. hands()
  111. turtle.done()

效果图:

Python画各种有趣的图及源码

2、龙形曲线(Dragon Curve)

又叫分形龙,是一种自相似碎形曲线的统称,因形似龙的蜿蜒盘曲而得名论文同义句在线转换器软件

  1. # -*- coding: utf-8 -*-
  2. from turtle import *
  3. length = 5
  4. angle = 90
  5. setup(1280,720)
  6. up()
  7. goto(300,-100)
  8. down()
  9. def draw_path(path):
  10. for symbol in path:
  11. if symbol == 'f':
  12. import random
  13. colormode(255)
  14. color(random.randint(0,255),random.randint(0,255),random.randint(0,255))
  15. fd(length)
  16. elif symbol == '-':
  17. lt(angle)
  18. elif symbol == '+':
  19. rt(angle)
  20. def apply_path(rules,path):
  21. lit = [x for x in path]
  22. for i in range(len(lit)):
  23. symbol = lit[i]
  24. if symbol == 'x':
  25. lit[i] = rules[symbol]
  26. elif symbol == 'y':
  27. lit[i] = rules[symbol]
  28. path = ''.join(lit)
  29. return path
  30. rules = {
  31. 'x':'x+yf+',
  32. 'y':'-fx-y'
  33. }
  34. path = 'fx'
  35. speed(0)
  36. for i in range(13):
  37. path = apply_path(rules,path)
  38. draw_path(path)
  39. done()

效果图:

Python画各种有趣的图及源码

3、樱桃树

  1. # -*- coding: utf-8 -*-
  2. import turtle
  3. toplevel = 8 # 一共递归6
  4. angle = 30
  5. rangle = 15
  6. def drawTree(length, level):
  7. turtle.left(angle) # 绘制左枝
  8. turtle.color("black")
  9. turtle.forward(length)
  10. if level == toplevel: # 叶子
  11. turtle.color("pink")
  12. turtle.circle(2, 360)
  13. if level < toplevel: # 在左枝退回去之前递归
  14. drawTree(length - 10, level + 1)
  15. turtle.back(length)
  16. turtle.right(angle + rangle) # 绘制右枝
  17. turtle.color("black")
  18. turtle.forward(length)
  19. if level == toplevel: # 叶子
  20. turtle.color("pink")
  21. turtle.circle(2, 360)
  22. if level < toplevel: # 在右枝退回去之前递归
  23. drawTree(length - 10, level + 1)
  24. turtle.color("black")
  25. turtle.back(length)
  26. turtle.left(rangle)
  27. turtle.left(90)
  28. turtle.penup()
  29. turtle.back(300)
  30. turtle.pendown()
  31. turtle.forward(100)
  32. turtle.speed('fastest')
  33. drawTree(80, 1)
  34. turtle.done()

效果图:

Python画各种有趣的图及源码

4、科赫雪花

(获取更多资料请往下拉)

  1. import turtle as t
  2. from turtle import *
  3. import random
  4. def draw_path(path):
  5. t.colormode(255)
  6. t.color(random.randint(0,255),random.randint(0,255),random.randint(0,255))
  7. for symbol in path:
  8. if symbol == 'F':
  9. forward(length)
  10. elif symbol == '-':
  11. right(angle)
  12. elif symbol == '+':
  13. left(angle)
  14. def apply_rule(path):
  15. rule = 'F+F--F+F'
  16. return path.replace('F',rule)
  17. length = .5
  18. angle = 60
  19. setup(1280,720)
  20. bgcolor('black')
  21. up()
  22. color("#0fe6ca")
  23. goto(0,0)
  24. down()
  25. path = 'F--F--F'
  26. speed(0)
  27. up()
  28. goto(-440,-250)
  29. down()
  30. for i in range(5):
  31. path = apply_rule(path)
  32. draw_path(path)
  33. draw_path(path)
  34. draw_path(path)
  35. a,b = pos()
  36. for i in range(3):
  37. up()
  38. a += 250
  39. goto(a,b)
  40. down()
  41. draw_path(path)
  42. draw_path(path)
  43. draw_path(path)
  44. b += 220
  45. for i in range(2):
  46. up()
  47. a -= 250
  48. goto(a,b)
  49. down()
  50. draw_path(path)
  51. draw_path(path)
  52. draw_path(path)
  53. b += 220
  54. for i in range(2):
  55. draw_path(path)
  56. draw_path(path)
  57. draw_path(path)
  58. up()
  59. a += 130
  60. goto(a,b)
  61. down()

效果图:

Python画各种有趣的图及源码

5、视觉冲击1

  1. import turtle as t
  2. from turtle import *
  3. angle = 60 #通过改变角度,绘制出各种多边形
  4. t.setup(1280,720)
  5. t.bgcolor('black')
  6. t.pensize(2)
  7. randomColor = ['red','blue','green','purple','gold','pink']
  8. t.speed(0)
  9. for i in range(600):
  10. t.color(randomColor[i%6])
  11. t.fd(i)
  12. t.rt(angle+1)
  13. up()
  14. color("#0fe6ca")
  15. goto(0,0)
  16. down()
  17. t.done()

效果图:

Python画各种有趣的图及源码

6、视觉冲击2

  1. # -*- coding: utf-8 -*-
  2. import turtle as t
  3. from turtle import *
  4. angle = 60 #通过改变角度,绘制出各种多边形
  5. t.bgcolor('black')
  6. t.pensize(2)
  7. randomColor = ['red','blue','green','purple','gold','pink']
  8. t.speed(0)
  9. for i in range(200):
  10. t.color(randomColor[i%6])
  11. t.circle(i)
  12. t.rt(angle+1)
  13. up()
  14. color("#0fe6ca")
  15. goto(0,0)
  16. down()

效果图:

Python画各种有趣的图及源码

7、视觉冲击3

  1. from turtle import *
  2. import time
  3. speed(0)
  4. colormode(255)
  5. clrs = ["MidnightBlue", "Navy", "DarkBlue", "MediumBlue", "RoyalBlue", "MediumSlateBlue", "CornflowerBlue",
  6. "DodgerBlue", "DeepskyBlue", "LightSkyBlue", "SkyBlue", "LightBlue"]
  7. time.sleep(2)
  8. for j in range(120):
  9. cn = 0
  10. c = 30
  11. f = 70
  12. for i in range(12):
  13. pencolor(clrs[cn])
  14. circle(c)
  15. left(90)
  16. penup()
  17. forward(f)
  18. right(90)
  19. pendown()
  20. c = c * 0.8
  21. f = f * 0.8
  22. circle(c)
  23. cn = cn + 1
  24. penup()
  25. goto(0, 0)
  26. forward(5)
  27. right(3)
  28. pendown()

效果图:

Python画各种有趣的图及源码

8、希尔伯特曲线:

  1. # -*- coding: utf-8 -*-
  2. from turtle import *
  3. import random
  4. length = 10
  5. angle = 90
  6. setup(1280,720)
  7. up()
  8. goto(-640,-360)
  9. down()
  10. def draw_path(path):
  11. for symbol in path:
  12. if symbol == 'f':
  13. colormode(255)
  14. color(random.randint(0,255),random.randint(0,255),random.randint(0,255))
  15. fd(length)
  16. elif symbol == '+':
  17. lt(angle)
  18. elif symbol == '-':
  19. rt(angle)
  20. def apply_path(rules,path):
  21. lit = [x for x in path]
  22. for i in range(len(lit)):
  23. symbol = lit[i]
  24. if symbol == 'x':
  25. lit[i] = rules[symbol]
  26. elif symbol == 'y':
  27. lit[i] = rules[symbol]
  28. path = ''.join(lit)
  29. return path
  30. rules = {
  31. 'x':'+yf-xfx-fy+',
  32. 'y':'-xf+yfy+fx-'
  33. }
  34. path = 'x'
  35. speed(0)
  36. for i in range(7):
  37. path = apply_path(rules,path)
  38. draw_path(path)
  39. done()

效果图:

Python画各种有趣的图及源码

9、Sierpiński箭头曲线

  1. # -*- coding: utf-8 -*-
  2. from turtle import *
  3. length = 5
  4. angle = -60
  5. setup(1280,720)
  6. up()
  7. goto(-640,-350)
  8. down()
  9. def draw_path(path):
  10. for symbol in path:
  11. if symbol == 'A' or symbol == 'B':
  12. import random
  13. colormode(255)
  14. color(random.randint(0,255),random.randint(0,255),random.randint(0,255))
  15. forward(length)
  16. elif symbol == '-':
  17. right(angle)
  18. elif symbol == '+':
  19. left(angle)
  20. ht()
  21. def apply_rules(path,rules):
  22. lit = [_ for _ in path]
  23. for i in range(len(lit)):
  24. symbol = lit[i]
  25. if symbol in rules:
  26. lit[i] = rules[symbol]
  27. path = ''.join(lit)
  28. return path
  29. rules = {
  30. 'A':'B-A-B',
  31. 'B':'A+B+A'
  32. }
  33. path = 'A'
  34. speed(0)
  35. for i in range(7):
  36. path = apply_rules(path,rules)
  37. draw_path(path)
  38. up()
  39. goto(0,-340)
  40. angle = 60
  41. down()
  42. draw_path(path)
  43. up()
  44. goto(0,-340)
  45. angle = -60
  46. down()
  47. draw_path(path)

效果图:

Python画各种有趣的图及源码

10、Koch曲线

  1. # -*- coding: utf-8 -*-
  2. from turtle import *
  3. import random
  4. length = 2
  5. angle = 90
  6. setup(1280,720)
  7. up()
  8. goto(-600,-350)
  9. down()
  10. def draw_path(path):
  11. for symbol in path:
  12. if symbol == 'F':
  13. colormode(255)
  14. color(random.randint(0,255),random.randint(0,255),random.randint(0,255))
  15. forward(length)
  16. elif symbol == '-':
  17. right(angle)
  18. elif symbol == '+':
  19. left(angle)
  20. ht()
  21. def apply_rule(path):
  22. rule = 'F+F-F-F+F'
  23. return path.replace('F',rule)
  24. path = 'F'
  25. speed(0)
  26. for i in range(5):
  27. path = apply_rule(path)
  28. for i in range(5):
  29. draw_path(path)
  30. up()
  31. goto(-478,-228)
  32. down()
  33. for i in range(4):
  34. draw_path(path)
  35. up()
  36. goto(-356,-106)
  37. down()
  38. for i in range(3):
  39. draw_path(path)
  40. up()
  41. goto(-235,16)
  42. down()
  43. for i in range(2):
  44. draw_path(path)
  45. up()
  46. goto(-115,137)
  47. down()
  48. draw_path(path)

效果图:

Python画各种有趣的图及源码

11、月亮代表我的心

  1. # -*- coding: utf-8 -*-
  2. from turtle import *
  3. import time
  4. import turtle as t
  5. def gotopos(x, y):
  6. up()
  7. goto(x, y)
  8. down()
  9. ht()
  10. def author():
  11. pensize(2)
  12. gotopos(610, -315)
  13. lt(-90)
  14. fd(80)
  15. pensize(1)
  16. lt(-270)
  17. def apply_rules(path, rules):
  18. L = [_ for _ in path]
  19. for i in range(len(L)):
  20. symbol = L[i]
  21. if symbol == 'F':
  22. L[i] = rules[symbol]
  23. if symbol == 'X':
  24. L[i] = rules[symbol]
  25. path = ''.join(L)
  26. return path
  27. def draw_path(path):
  28. posList, angleList = [], []
  29. for symbol in path:
  30. if symbol == 'F':
  31. t.forward(length)
  32. elif symbol == '+':
  33. t.left(angle)
  34. elif symbol == '-':
  35. t.rt(angle)
  36. elif symbol == '[':
  37. posList.append(t.pos())
  38. angleList.append(t.heading())
  39. elif symbol == 'a':
  40. t.pensize(3)
  41. t.color("#867b68")
  42. elif symbol == 'b':
  43. t.pensize(2)
  44. t.color("#867b68")
  45. elif symbol == 'c':
  46. t.pensize(2)
  47. t.color("#867b68")
  48. elif symbol == ']':
  49. t.up()
  50. t.home()
  51. t.goto(posList.pop())
  52. t.left(angleList.pop())
  53. t.down()
  54. def writez(x, y, str_, size=56, font="华文行楷"):
  55. gotopos(x, y)
  56. write(str_, font=(font, size))
  57. setup(1280, 800)
  58. speed(5)
  59. bgcolor("#9c917f")
  60. color("#afa697")
  61. begin_fill()
  62. gotopos(0, -400)
  63. circle(400)
  64. end_fill()
  65. author()
  66. color("#7d776d")
  67. s = "愿天化作比翼鸟"
  68. s2 = "在地愿为连理枝"
  69. for i in range(len(s)):
  70. writez(560, 350 - i * 50, s[i], 36)
  71. for i in range(len(s2)):
  72. writez(460, 350 - i * 50, s2[i], 36)
  73. color("#888475")
  74. writez(-50, 100, "我")
  75. writez(-50, 40, "的")
  76. writez(-160, 0, "心", 96)
  77. writez(-50, 0, "月", 176)
  78. writez(33, -30, "代", 62)
  79. writez(-18, -95, "表", 78)
  80. writez(-213, -210, "亮", 196)
  81. gotopos(249, -26)
  82. color("#867b68")
  83. speed(0)
  84. gotopos(-650, -100)
  85. length = 6
  86. path = 'F'
  87. angle = 27
  88. rules = {
  89. 'F': 'aFF[b-F++F][c+F--F]c++F--F',
  90. 'X': 'aFF+[b+F]+[c-F]'
  91. }
  92. for _ in range(4):
  93. path = apply_rules(path, rules)
  94. draw_path(path)
  95. gotopos(570, -330)
  96. done()

效果图:

Python画各种有趣的图及源码

12、生则同寝 死则同穴

  1. # -*- coding: utf-8 -*-
  2. from turtle import *
  3. import random
  4. import time
  5. str_ = """
  6. 守一段情 念一个人。
  7. 时光不老 我们不散。
  8. 厮守终生 不离不弃。
  9. 天暗下来 你就是光。
  10. 亡魂溺海 止于终老。
  11. 生死挈阔 与子成说。
  12. 柔情似水 佳期如梦。
  13. 我中有你 你中有我。
  14. 青山不老 为雪白头。
  15. 心若向阳 无畏悲伤。
  16. 一人一心 白首不离。
  17. 心如荒岛 囚我终老。
  18. 我的世界 只有你懂。
  19. 你若安好 便是晴天。
  20. 心有灵犀 一点就通。
  21. 厮守海角 非你不娶。
  22. 执子的手 漫漫的走。
  23. 执子之手 与子偕老。
  24. 山河拱手 为君一笑。
  25. 红尘初妆 山河无疆。
  26. 千秋功名 一世葬你。
  27. 既不回头 何必不忘。
  28. 既然无缘 何须誓言。
  29. 今日种种 似水无痕。
  30. 明夕何夕 君已陌路。
  31. 才会相思 便害相思。
  32. 人来人往 繁华似锦。
  33. 回首万年 情衷伊人。
  34. 生能尽欢 死亦无憾。
  35. 执手若无 泪溅花上。
  36. 花开花落 人世无常。
  37. 入我心者 待以君王。
  38. 为醉而醉 似醉非醉。
  39. 伤心鸿影 爱已惘然。
  40. 只要你要 只要我有。
  41. 日久生情 日久情疏。
  42. 忧佳相随 风雨无悔。
  43. 有生之年 誓死娇宠
  44. 引喻山河 指日可诚。
  45. 水上鸳鸯 云中翡翠。
  46. 天荒地老 海誓山盟。
  47. 生则同寝 死则同穴。
  48. 生有此女 夫复何求""".split("。")
  49. setup(1280,720) # 设置窗口大小
  50. colormode(255) # 使用的颜色模式, 整数还是小数
  51. up()
  52. a, b = -500, 280
  53. goto(a,b)
  54. bgcolor("black")
  55. down()
  56. def w(str_,b):
  57. bgcolor( random.randint(0,255),random.randint(0,255),random.randint(0,255)) # 随机生成RGB值, 每次调用函数改变背景颜色
  58. for i in range(len(str_)):
  59. up()
  60. goto(a+100*i,b)
  61. down()
  62. size = random.randint(12,68) # 随机字体大小
  63. color( random.randint(0,255),random.randint(0,255),random.randint(0,255)) # 随机字体颜色
  64. write(str_[i], align="center",font=("楷体",size))
  65. for k in range(4):
  66. for i in range(7):
  67. w(str_[i+7*k],b-100*i)
  68. reset() # 清屏
  69. for i in range(7):
  70. w(str_[i+7*4],b-100*i)
  71. up()
  72. color("#262626;")
  73. goto(-600,300)
  74. write('Author:Mifen',font=("微软雅黑", 18))
  75. goto(-600,250)
  76. write('E-mail :8*******7346@qq.com',font=("微软雅黑", 18))
  77. goto(-600, 200)
  78. write('Code :https://github.com/Amd794/Python123', font=("微软雅黑", 18))
  79. goto(-600,-350)
  80. down()
  81. ht()

部分效果图:

Python画各种有趣的图及源码

Python画各种有趣的图及源码

Python画各种有趣的图及源码

Python画各种有趣的图及源码

留在文尾的吐槽: 当初学习编程走了可不少绕路,学不到正经干货,要不是因为喜欢编程这些功能,早都放弃了,于是认真的总结记录了很多资料,有需要的关注我,私信1 ,给你分享更多❤

文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树首页概览392952 人正在系统学习中
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/92113
推荐阅读
相关标签
  

闽ICP备14008679号