El arte generativo es una forma de arte que utiliza algoritmos y sistemas para crear arte de manera autónoma o semi-autónoma. Python es un lenguaje de programación que es muy popular para la creación de arte generativo debido a su facilidad de uso y a la gran cantidad de librerías para trabajar con gráficos y visualización de datos.
instalación:
pip install turtle
1. Dibujo de líneas aleatorias
puedes utilizar la librería turtle
de Python para dibujar líneas aleatorias en una ventana gráfica. El siguiente código te muestra cómo hacerlo
import turtle
import random
# configurar el canvas
canvas = turtle.Screen()
canvas.setup(width=500, height=500)
# crear el lápiz
pen = turtle.Turtle()
pen.speed(0)
pen.width(3)
# dibujar líneas aleatorias
for i in range(50):
x1 = random.randint(-250, 250)
y1 = random.randint(-250, 250)
x2 = random.randint(-250, 250)
y2 = random.randint(-250, 250)
pen.penup()
pen.goto(x1, y1)
pen.pendown()
pen.goto(x2, y2)
–
2. Generación de fractales
puedes utilizar la librería turtle
para generar fractales de manera autónoma. El siguiente código te muestra cómo hacerlo:
import turtle
# configurar el canvas
canvas = turtle.Screen()
canvas.setup(width=500, height=500)
# crear el lápiz
pen = turtle.Turtle()
pen.speed(0)
pen.width(3)
# función para dibujar un triángulo
def draw_triangle(length):
for i in range(3):
pen.forward(length)
pen.left(120)
# función para generar el fractal
def generate_fractal(length, depth):
if depth == 0:
return
draw_triangle(length)
pen.forward(length / 2)
generate_fractal(length / 2, depth - 1)
pen.backward(length / 2)
pen.left(60)
pen.forward(length / 2)
pen.right(60)
generate_fractal(length / 2, depth - 1)
pen.left(60)
pen.backward(length / 2)
pen.right(60)
# generar el fractal
generate_fractal(200, 4)
–
3. Visualización de datos
puedes utilizar la librería matplolib y numpy para visualizar datos de manera creativa.
import matplotlib.pyplot as plt
import numpy as np
# generar datos aleatorios
x = np.random.rand(100)
y = np.random.rand(100)
colors = np.random.rand(100)
sizes = 1000 * np.random.rand(100)
# crear el gráfico
fig, ax = plt.subplots()
ax.scatter(x, y, c=colors, s=sizes, alpha=0.5)
# mostrar el gráfico
plt.show()