当前位置:优草派 > 问答 > Python问答

python画五角星代码

标签: Python  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的显示循环来显示图形。

五、

TOP 10
  • 周排行
  • 月排行