【Python打卡2019】之turtle库画五角星

0.turtle的具体使用见我室友的博客

https://blog.youkuaiyun.com/MessiNine/article/details/80314783#commentBox

1.画一下最简单的五角星

1.1思路:
  • 将turtle画笔想象成自己的笔,先向右画一笔,然后转向左下方画一笔,然后再向右上方画一笔…一共五笔;
  • 转化为函数思路,先前进一段,再右转144°,前进一段;然后再右转144°,前进一段…重复五次;
1.2实现:

turtle.fd(dis)表示前进dis距离(默认方向向右);
turtle.right(degree)表示右转degree度;
于是乎:

turtle.fd(100)
turtle.right(144)

就是向右一笔。
一共五笔,那么:

    for i in range(5):
        fd_right(100, 144)
fd_right()就是上面的一笔的函数:
def fd_right(fd_length,right_degree):
    turtle.fd(fd_length)
    turtle.right(right_degree)

最终程序与效果:

"""
    五角星的绘制
    日期20190412
"""
import turtle #调用turtle函数库

def main():
    """
    主函数
    """
    turtle.setup(500, 600, 50, 50)
    for i in range(5):
        fd_right(100, 144)
    turtle.done()
def fd_right(fd_length,right_degree):
    turtle.fd(fd_length)
    turtle.right(right_degree)
if __name__=='__main__':
    main()

五角星

2.未完待续,有空来补

我来了!没想到吧!
下面画一下多个五角星,思路也比较简单,每画一次五角星之后,把边长增加;

"""
    多个五角星的绘制
    日期20190412
"""
import turtle #调用turtle函数库

def main():
    """
    主函数
    """
    turtle.setup(800, 600, 50, 50)#设置窗口位置和大小
    fd_first = 100  #五角星边的初始长度
    for i in range(5):#画五个
        for j in range(5):#共五笔
            fd_right(fd_first, 144)
        fd_first+=20 #增加边长
    turtle.done()

def fd_right(fd_length,right_degree):
    turtle.fd(fd_length)
    turtle.right(right_degree)
if __name__=='__main__':
    main()

五个五角星

### Python turtle 绘制五角星 #### 使用 `for` 循环绘制五角星 通过使用 `for` 循环可以简化重复操作,使代码更加简洁。下面是一个完整的例子来展示如何利用 `turtle` 中的方法创建一个红色填充的五角星图形[^1]。 ```python import turtle t = turtle.Pen() t.speed('fastest') # 设置绘图速度 t.fillcolor("red") t.begin_fill() for _ in range(5): t.forward(300) t.right(180 - 36) t.end_fill() turtle.done() ``` 此段程序首先设置了笔的速度为最快(`speed('fastest')`)以便快速查看效果;接着定义了五边形每条边长 (`forward(300)`) 和转角度数 (计算公式为 `180 - 180 / n`, 其中n=5表示五个顶点)[^1]。 #### 使用 `while` 循环绘制五角星 另一种方式是采用无限循环配合条件判断的方式来实现相同的效果。这种方式下当乌龟回到起点附近时会自动停止绘并完成闭合路径[^2]。 ```python from turtle import * fillcolor("red") begin_fill() angle = 144 # 计算得到的角度值 distance = 200 # 边长距离设定 while True: forward(distance) right(angle) if abs(pos()) < 1: # 当位置接近原点则退出循环 break end_fill() done() ``` 这里值得注意的是,在每次转弯之后都会检查当前坐标是否已经非常靠近起始位置(即 `(0, 0)`),一旦满足这个条件就跳出循环从而形成封闭形状。 #### 添加文字说明 如果希望在图像旁边加上一些描述性的文字,则可以通过调用 `write()` 函数轻松做到这一点[^3]: ```python import turtle t = turtle.Turtle() t.hideturtle() # 隐藏箭头图标 # ... (前面相同的绘图逻辑) t.penup() t.goto(-70, -100) # 移动到指定位置而不留下痕迹 t.pendown() t.write("大猫 2019", align="left", font=("Arial", 20, "normal")) turtle.done() ``` 上述代码片段展示了如何先隐藏默认显示的小海龟指针,再将光标移至适当的位置书写自定义文本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值