Arte generativo básico, ejemplos de codigo con Python

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()