当前位置:   article > 正文

python画半圆弧怎么转一个方向,如何用python画半圆_python turtle半圆

python turtle半圆

本篇文章给大家谈谈python画半圆并填充上下不同颜色,以及python画半圆弧怎么转一个方向,希望对各位有所帮助,不要忘了收藏本站喔。

Turtle库是 Python中自带的用于绘制图形、图像的函数库。原理非常简单:在绘图窗口的正中间,有一只小海龟,用户通过一些指令可以控制小海龟在绘图区域上移动的方向和距离,记录小海龟的移动轨迹,即可完成图形、图像的绘制python创意小作品

Turtle库中提供了大量的函数,除了可以控制小海龟的行为外,还可以设置绘图区域的大小、位置,线条的颜色、样式,填充的位置、颜色等,此外,还提供了一些常见图形的绘制,如圆、多边形等。通过Turtle 可以绘制下图所示的一些经典效果。

绘图窗口大小与位置

图片

位置坐标与移动

图片

方向与角度

图片

简单案例效果

图片

绘制正多边形

图片

设置颜色

使用turtle绘图时,离不开颜色的支持,颜色既可以通过一些常见的颜色单词表示,如red、green、blue等,也可以通过代表RGB三原色的元组表示。在 turtle 库中提供了多个方法用于设置颜色,包括设置颜色模式、设置画笔颜色、设置填充颜色等。

图片

绘制填充区域

画笔的一些设置

图片

尝试实现上图所示效果,界面上有两个大小和样式一样的五角星,只是位置不同,五角星边长为80,边框颜色为红色,填充色为蓝色,边框粗细为3,绘制结束后不显示指针。(提示:两个五角星之间存在一定的间距,需要移动画笔

  1. import turtle
  2. turtle.color("red", "blue")
  3. turtle.pensize(3) # 设置画笔粗细,单位为像素
  4. turtle.begin_fill() # 开始填充
  5. for i in range(5): # 执行 5 次循环,绘制五角星
  6. turtle.fd(80) # 向前80
  7. turtle.rt(144) # 右转 144度
  8. turtle.penup() # 提前画笔
  9. turtle.goto(-100, 0) # 移动到一个新的位置
  10. turtle.pendown() # 放下画笔
  11. turtle.end_fill() # 结束填充
  12. turtle.begin_fill() # 开始填充
  13. for i in range(5): # 执行 5 次循环
  14. turtle.fd(80) # 向前200
  15. turtle.rt(144) # 右转 144度
  16. turtle.end_fill() # 结束填充
  17. turtle.hideturtle() # 隐藏指针
  18. turtle.done() # 完成绘图,停留在界面,没有该方法会直接退出
 一些基本形状绘制

图片

尝试实现下图所示效果,绘制多个圆内切正多边形,从三边形一直到九边形。圆的半径为40,绘制完成一个形状后前进100。

图片

  1. import turtle
  2. turtle.pensize(3) # 设置画笔宽度为3
  3. turtle.color('blue', 'red') # 设置画笔颜色和填充色
  4. turtle.begin_fill() # 开始填充
  5. turtle.forward(-400) # 反方向移动400像素
  6. for i in range(3, 10):
  7. turtle.circle(40, steps=i) # 画圆内切多边形
  8. turtle.forward(100) # 前进100像素
  9. turtle.circle(40) # 画圆
  10. turtle.end_fill() # 结束填充海龟
  11. turtle.hideturtle() # 隐藏海龟
  12. turtle.done() # 结束
 其他一些实用方法
  • turtle.write(文本内容, align=“left”, font=(“Arial”, 8, “normal”)) :绘制字符串,align参数用于设置对其方式,font参数用于设置字体,包括字体名称、字体大小、字体样式,align参数和font参数都有默认值;

  • turtle.position()(别名turtle.pos):返回当前的位置距离原点的距离。

  • turtle.speed(速度):设置画笔移动速度,取值范围为[0,10]整数,数字越大越快;

  • turtle.tracer(False):关闭动画,默认会有动画效果。

实现下图所示效果,在界面上显示当前的时间,并随时间动态变化。(提示:时间的格式化,内容动态更新)

图片

  1. import turtle
  2. import time
  3. turtle.pencolor("red") # 设置画笔颜色
  4. turtle.hideturtle() # 隐藏指针
  5. turtle.tracer(False) # 关闭动画,否则会看到明显的刷新效果
  6. while True: # 死循环
  7. s_time = time.strftime("%Y-%m-%d %H:%M:%S") # 时间格式化字符串
  8. turtle.write(s_time, align="center", font=("Arial", 24, "italic")) # 绘制字符串
  9. time.sleep(1) # 休眠 1 秒
  10. turtle.clear() # 清空已有内容
  11. turtle.done() # 绘制完成
 一些经典案例效果

绘制下图所示18*18棋盘效果,思路:绘制19条横线,19条竖线,相邻横线、相邻竖线之间的间隔相同,绘制完一条横线或竖线后要抬起画笔,移动到一个新的位置

图片

  1. import turtle
  2. turtle.pensize(2) # 设置画笔大小
  3. width = 15 # 每个单元格的边长
  4. turtle.speed("fastest") # 设置画笔速度
  5. for i in range(0, 19): # 循环画横线
  6. turtle.penup() # 抬起画笔
  7. turtle.goto(0, i * width) # 调整位置
  8. turtle.pendown() # 按下画笔
  9. turtle.forward(18 * width) # 画线
  10. turtle.left(90) # 左转90度
  11. for i in range(0, 19): # 循环画竖线
  12. turtle.penup() # 抬起画笔
  13. turtle.goto(i * width, 0) # 调整位置
  14. turtle.pendown() # 按下画笔
  15. turtle.forward(18 * width) # 画线
  16. turtle.hideturtle() # 隐藏指针
  17. turtle.done() # 绘制完成,停留在界面上

 绘制下图所示太阳花效果,思路:不断画等长的线段,然后每次画完后偏移一定的角度,直到有线段重合。(偏移的角度不同,最终的效果也会不同

图片

  1. import turtle
  2. turtle.color('red', 'yellow') # 设置画笔颜色和填充颜色
  3. turtle.begin_fill() # 开始填充图形
  4. turtle.pensize(2) # 设置画笔大小
  5. turtle.speed("normal") # 设置绘画速度
  6. while True: # 做循环
  7. turtle.forward(200) # 画笔前进200个像素
  8. turtle.left(170) # 左转170度
  9. if abs(turtle.pos()) < 1: # 判断画笔是否回到起点
  10. break
  11. turtle.end_fill() # 结束填充图形
  12. turtle.hideturtle() # 隐藏画笔指针
  13. turtle.done() # 完成绘画

 绘制下方左图所示心形效果,心形绘制原理如下方右图图所示,心形大致由两条线段以及两个半圆弧组成,线段的长度刚好为半圆弧的直径,在绘制过程中注意方向的变化

图片

  1. import turtle
  2. radius = 80
  3. turtle.color("red", "pink") # 设置画笔颜色和填充色
  4. turtle.pensize(2) # 设置画笔大小
  5. turtle.begin_fill() # 开始填充
  6. turtle.left(45) # 左转45度
  7. turtle.fd(2 * radius) # 前进
  8. turtle.circle(radius, 180) # 画半圆
  9. turtle.right(90) # 右转90度
  10. turtle.circle(radius, 180) # 画半圆
  11. turtle.fd(2 * radius) # 前进200像素
  12. turtle.end_fill() # 结束填充
  13. turtle.hideturtle() # 隐藏指针
  14. turtle.done() # 结束,停留在当前界面

 绘制如图所示阴阳八卦图效果,分析:该图主要是由一些圆弧组成,核心是画圆和圆弧,关键是要把握方向,从效果图来看,这是一个对称的图,所以只要画出了左半部分,右半部分只要改一下方向和位置即可。左半部分由两部分组成:黑色填充白色小圆黑色填充部分由三部分线条围成:小圆半圆弧、大圆半圆弧、小圆半圆弧。代码参考如下。

  1. import turtle
  2. def fill_half(left=1): # 绘制半个填充部分
  3. turtle.home() # 回到初始状态
  4. turtle.begin_fill() # 开始填充黑色
  5. turtle.circle(radius/2, 180) # 画小半圆
  6. turtle.circle(radius, left * 180) # 画大半圆
  7. turtle.circle(radius/2, -180) # 画小半圆
  8. turtle.end_fill() # 结束填充
  9. def draw_small_circle(up=1): # 绘制中间的小圆
  10. turtle.home() # 回到初始状态
  11. turtle.begin_fill() # 开始填充黑色
  12. turtle.penup() # 抬起画笔
  13. turtle.sety(up * 0.35 * radius) # 设置 y 轴坐标
  14. turtle.pendown() # 放下画笔
  15. turtle.circle(up * 0.15 * radius) # 画圆,上下部分方向不同
  16. turtle.end_fill() # 结束填充
  17. turtle.hideturtle() # 隐藏指针
  18. radius = 200 # 大圆的半径
  19. turtle.width(3) # 画笔粗细
  20. turtle.speed("fast") # 设置画笔速度
  21. turtle.color("black") # 画笔和填充色都为黑色
  22. fill_half(left=1) # 绘制左半部分填充
  23. turtle.color("white") # 画笔和填充色都为白色
  24. draw_small_circle(up=1) # 绘制左半部分中的圆
  25. turtle.color("black", "white") # 画笔和填充色都为黑色
  26. fill_half(left=-1) # 绘制下半部分填充
  27. turtle.color("black") # 画笔和填充色都为黑色
  28. draw_small_circle(up=-1) # 绘制下半部分中的圆
  29. turtle.done() # 绘画结束,停留在当前界面

         更多Turtle绘图案例效果关注微信公众号:Python资源分享,回复 turtle 即可获取。  欢迎加入QQ群一起学习交流:858228002  

完整的课件下载网址如下:Python绘图库Turtle详解(含丰富示例)-互联网文档类资源-CSDN下载详细介绍Python中绘图库Turtle的使用,通过图解分析和案例实现加深对一些关键函数的理解。从易更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/Dream_Gao1989/18540870icon-default.png?t=N7T8https://download.csdn.net/download/Dream_Gao1989/18540870

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

闽ICP备14008679号