您的位置:首页 > 编程语言 > Python开发

绘制图形,挑战上色分形树-python

2019-01-18 11:05 671 查看

python绘制图形

最近太懈怠啦~没有好好学习,赶紧把课程补一补!
今天要学小乌龟库——turtle库

小乌龟库比较特别,大部分的语句都是 <a>.<b>()的形式:表示使用<a> 中的方法<b>(),或者调用函数库<a>中的函数<b>()

形状绘制函数
  • turtle.forward(distance) -画笔向前(右)移动distance距离
  • turtle.backward(distance) -画笔向后(左)移动distance距离
  • turtle.right(degree) -绘制方向向右旋转degree度
  • turtle.left(degree) -绘制方向向左旋转degree度
  • turtle.exitonclick() -点击关闭图形窗口

先小小的试验下

"""
作者:xxj
功能:bulingbuling_pentagram
版本:1.0
时间:2019.1.17
"""
import turtle

def main():
"""
主函数
"""

count = 1

while count <= 5:
turtle.forward(250)
turtle.right(144)
count = count+1

turtle.exitonclick()

if __name__ == '__main__':
main()

画笔控制函数
  • turtle.penup() -抬起画笔,之后移动画笔不绘制形状(画虚线)
  • turtle.pendown() -落下画笔,之后移动画笔绘制形状
  • turtle.pensize() -设置画笔宽度
  • turtle.pencolor() -设置画笔颜色,常用的颜色:white、black、grey、darkgreen、gold、violet、purple

先小小的试验下,顺便把代码改成迭代

"""
author:xxj
function:recursive_pentagram
version:2.0
time:2019.1.17
"""
import turtle

def draw_recursive_pentagram(size):
"""
迭代绘制五角星
"""
# 绘制五角星功能
count = 1
while count <= 5:
turtle.forward(size)
turtle.right(144)
count += 1

#五角星绘制完成,更新参数
size += 10
if size <= 100:
draw_recursive_pentagram(size)

def main():
"""
主函数
"""
turtle.penup()
turtle.bk(400)
turtle.pendown()
turtle.pensize(2)
turtle.pencolor('red')
turtle.speed(0.1)

size = 50
draw_recursive_pentagram(size)

turtle.exitonclick()

if __name__ == '__main__':
main()

大BOSS:利用递归绘制分形树

思路分析:

角度转换:先向右转M°,一直绘制到枝丫长度小于0,再回到节点,再向左转两个M°,即2M°,一直绘制,最后再向右转M°回到正中间。

"""
author:xxj
function:recursive_fractal_tree
version:1.0
time:2019.1.18
"""
import turtle

def draw_branch(branch_length):
"""
绘制分形树
"""
if branch_length <= 5:
turtle.color('green')

if branch_length > 5:
# 绘制右侧树枝
turtle.forward(branch_length)
print('向前',branch_length)
turtle.right(20)
print('右转 20')
draw_branch(branch_length - 15)

# 绘制左侧树枝
turtle.left(40)
print('左转 40')
draw_branch(branch_length - 15)

# 返回之前的树枝
turtle.right(20)
print('右转 20')
turtle.backward(branch_length)
print('向后', branch_length)
turtle.color('brown')

def main():
"""
主函数
"""
turtle.left(90)
turtle.penup()
turtle.backward(180)
turtle.pendown()
turtle.screensize(800, 600, 'black')
turtle.pensize(2)
turtle.color('brown')
draw_branch(100)
turtle.penup()
turtle.goto(0, -180)
turtle.write("居居老师和颖宝冲鸭", font=("Arial", 20, "normal"))
turtle.exitonclick()

if __name__ == '__main__':
main()


教程:小象学院,梁斌老师,讲的贼好~

最后表扬下认真学习的自己

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: