Mi proyecto del curso: Diseño con Python: programar para un contexto visual
Mi proyecto del curso: Diseño con Python: programar para un contexto visual
de joinner medina @joinner
- 431
- 5
- 1

import py5
import random
def draw_star(x, y, exterior_radio, interior_radio, points_number= 5, rotation=0, color=(255, 255, 255)):
py5.no_stroke()
py5.fill(*color)
py5.push_matrix()
py5.translate(x, y)
py5.rotate(py5.radians(rotation))
py5.begin_shape()
# La diferencia entre el radio exterior y el radio interior
# puede ajustarse para modificar la forma de la estrella.
# El ángulo inicial se establece para que la estrella apunte hacia arriba.
start_ang = py5.radians(-90)
step = py5.TWO_PI / points_number
for i in range(points_number):
# Se calculan los vértices exteriores de la estrella
ang = start_ang + step * i
ax = py5.cos(ang) * exterior_radio
ay = py5.sin(ang) * exterior_radio
py5.vertex(ax, ay)
# Se calculan los vértices interiores de la estrella
bx = py5.cos(ang + step / 2.0) * interior_radio
by = py5.sin(ang + step / 2.0) * interior_radio
py5.vertex(bx, by)
py5.end_shape(py5.CLOSE)
py5.pop_matrix()
def draw_table():
py5.no_stroke()
display_width = py5.width
display_height = py5.height
# Define los colores de las celdas del tablero
colors = [(0, 0, 0), (255, 255, 255)]
# Define el número de celdas en base al tamaño de la pantalla
total_cell_x = 8
total_cell_y = 8
# Calcula el tamaño de cada celda para que se ajuste al tamaño de la pantalla
cell_size_x = display_width / total_cell_x
cell_size_y = display_height / total_cell_y
for i in range(total_cell_x):
for j in range(total_cell_y):
# Valores aleatorios para la estrella
exterior_radio = random.randint(10, 50)
interior_radio = random.randint(5, 25)
points_number = random.randint(2, 10)
rotation = random.randint(0, 360)
# Dibuja el tablero de ajedrez
cell_color = colors[(i + j) % 2]
# Rellena la celda con el color correspondiente
py5.fill(cell_color[0], cell_color[1], cell_color[2])
# Dibuja la celda en la posición i, j
py5.rect(i * cell_size_x, j * cell_size_y, cell_size_x, cell_size_y)
# Define el color de la estrella en función del color de la celda
star_color = colors[1] if cell_color == colors[0] else colors[0]
# Dibuja la estrella en el centro de la celda
draw_star((i + 0.5) * cell_size_x, (j + 0.5) * cell_size_y, exterior_radio, interior_radio, points_number, rotation, star_color)
def setup():
py5.size(980, 980)
draw_table()
py5.run_sketch()
1 comentário
Muito bem, obrigado por compartilhar!
Faça login ou cadastre-se Gratuitamente para comentar