优草派 > 问答 > Python

python画五角星代码

作者:jhualin     

Python是一种高级编程语言,常用于数据分析、人工智能、Web开发等领域。除此之外,Python还可以用来画图形。本文将介绍如何使用Python画五角星,包括基本的代码实现、改进的方法、以及在Tkinter和Pygame中的应用。

一、基本实现方法

在Python中,我们可以使用turtle库来绘制图形。turtle库是一个很好用的库,它能够让我们使用简单的命令来画出复杂的图形。下面是一个画五角星的基本代码:

```python

import turtle

# 设置画笔的颜色和粗细

turtle.color('red', 'yellow')

turtle.pensize(3)

# 画五角星

turtle.begin_fill()

for i in range(5):

turtle.forward(100)

turtle.right(144)

turtle.end_fill()

# 显示图形

turtle.done()

```

这段代码的作用是导入turtle库,然后设置画笔的颜色和粗细,接着画出五角星并填充颜色,最后显示图形。其中,`turtle.forward(100)`表示向前走100个像素,`turtle.right(144)`表示向右转144度。

二、改进方法

上面的代码可以画出一个基本的五角星,但是它有一些缺点。例如,它的角度是硬编码的,不能灵活地改变。为了解决这个问题,我们可以写一个函数来画出任意大小和角度的五角星。

```python

import turtle

import math

# 画五角星的函数

def draw_star(size, angle):

turtle.color('red', 'yellow')

turtle.pensize(3)

turtle.begin_fill()

for i in range(5):

turtle.forward(size)

turtle.right(angle)

turtle.forward(size)

turtle.left(2 * angle)

turtle.end_fill()

# 主函数

if __name__ == '__main__':

size = int(input('请输入五角星的大小:'))

angle = int(input('请输入五角星的角度:'))

draw_star(size, angle)

turtle.done()

```

这段代码中,我们定义了一个名为`draw_star()`的函数来画五角星。`size`和`angle`是函数的参数,分别表示五角星的大小和角度。我们使用`input()`函数让用户输入这两个参数,然后调用`draw_star()`函数画出五角星。

三、Tkinter中的应用

除了使用turtle库,我们还可以在Tkinter中使用Canvas来绘制图形。下面是一个使用Canvas绘制五角星的代码:

```python

import tkinter as tk

import math

# 画五角星的函数

def draw_star(canvas, x, y, size, angle):

points = []

for i in range(5):

x1 = x + size * math.sin(math.radians(angle + i * 72))

y1 = y + size * math.cos(math.radians(angle + i * 72))

points.append((x1, y1))

x2 = x + size * math.sin(math.radians(angle + (i + 0.5) * 72))

y2 = y + size * math.cos(math.radians(angle + (i + 0.5) * 72))

points.append((x2, y2))

canvas.create_polygon(points, fill='yellow', outline='red', width=3)

# 主函数

if __name__ == '__main__':

root = tk.Tk()

canvas = tk.Canvas(root, width=500, height=500)

canvas.pack()

draw_star(canvas, 250, 250, 100, 0)

root.mainloop()

```

这段代码中,我们使用了Canvas的`create_polygon()`函数来创建一个多边形,然后填充颜色并设置边框的颜色和宽度。`draw_star()`函数的作用是计算五角星的五个顶点的坐标,并将它们存储在一个列表中。然后,我们调用`create_polygon()`函数来创建一个五角星。

四、Pygame中的应用

除了在Tkinter中使用Canvas,我们还可以在Pygame中使用Surface来绘制图形。下面是一个使用Surface绘制五角星的代码:

```python

import pygame

import math

# 画五角星的函数

def draw_star(surface, x, y, size, angle):

points = []

for i in range(5):

x1 = x + size * math.sin(math.radians(angle + i * 72))

y1 = y + size * math.cos(math.radians(angle + i * 72))

points.append((x1, y1))

x2 = x + size * math.sin(math.radians(angle + (i + 0.5) * 72))

y2 = y + size * math.cos(math.radians(angle + (i + 0.5) * 72))

points.append((x2, y2))

pygame.draw.polygon(surface, (255, 255, 0), points, 3)

# 主函数

if __name__ == '__main__':

pygame.init()

size = (500, 500)

screen = pygame.display.set_mode(size)

pygame.display.set_caption('Draw a star')

clock = pygame.time.Clock()

done = False

while not done:

for event in pygame.event.get():

if event.type == pygame.QUIT:

done = True

screen.fill((0, 0, 0))

draw_star(screen, 250, 250, 100, 0)

pygame.display.flip()

clock.tick(60)

pygame.quit()

```

这段代码中,我们使用了Pygame的`draw.polygon()`函数来创建一个多边形,然后填充颜色并设置边框的颜色和宽度。`draw_star()`函数的作用与在Tkinter中的一样,计算五角星的五个顶点的坐标,并将它们存储在一个列表中。然后,我们调用`draw.polygon()`函数来创建一个五角星。在主函数中,我们使用了Pygame的显示循环来显示图形。

五、

5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
相关问题
anaconda3安装后找不到
安卓超强文本编辑器中文版
在线代码编辑
怎么读取mat文件
查看更多

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024