Python → Processing → Generativna umetnost
Generativna umetnost u Python Processing-u
Generativna umetnost je način stvaranja slika pomoću koda. Umesto da ručno crtamo, program koristi matematiku, slučajne brojeve i pravila da generiše umetnost.
Ovo je jedna od najzanimljivijih primena Python Processing-a i često se koristi u kreativnim projektima, školskim radovima i takmičenjima.
Ako niste radili osnove crtanja, preporučujemo prvo:
Osnovni oblici
Animacija i promenljive
Primer 1: Nasumični krugovi
def setup():
size(600, 400)
background(255)
for i in range(100):
x = random(width)
y = random(height)
r = random(10, 50)
fill(random(255), random(255), random(255), 150)
noStroke()
ellipse(x, y, r, r)
Program crta 100 krugova na nasumičnim pozicijama. Svaki krug ima različitu boju i providnost.
Primer 2: Generativni kvadrati
def setup():
size(600, 400)
background(20)
for x in range(0, width, 40):
for y in range(0, height, 40):
boja = random(255)
fill(boja, 100, 255)
rect(x, y, 30, 30)
Petlje omogućavaju kreiranje mreže oblika. Boje su generisane nasumično.
Primer 3: Animirana generativna umetnost
def setup():
size(600, 400)
background(0)
def draw():
x = random(width)
y = random(height)
fill(random(255), random(255), random(255), 100)
noStroke()
ellipse(x, y, 20, 20)
Svaki frame dodaje nove oblike i stvara animirani umetnički efekat.
Mini projekat: Dinamični kolaž
Napravite generativni kolaž sa kombinacijom krugova, kvadrata i linija. Možete dodati interakciju sa mišem:
shapes = []
def setup():
size(600, 400)
background(0)
def draw():
background(0, 10) # blagi trail efekat
# Dodavanje novih oblika klikom
if mousePressed:
shapes.append((mouseX, mouseY, random(10,50), random(255), random(255), random(255)))
for s in shapes:
x, y, r, r_color, g_color, b_color = s
fill(r_color, g_color, b_color, 150)
noStroke()
ellipse(x, y, r, r)
Klikom dodajemo nove oblike koji ostaju na ekranu. Animacija i providnost stvaraju zanimljiv vizuelni efekat.
Šta smo naučili
- Generisanje nasumičnih vrednosti sa
random() - Stvaranje obrazaca pomoću petlji
- Kombinovanje boja i providnosti
- Animaciju pomoću
draw() - Interaktivnost sa mišem
- Kreiranje mini projekta sa trajnim oblicima
Vežba
- Napravite generativnu umetnost koristeći krugove i kvadrate
- Dodajte interaktivnost sa mišem (klik ili pozicija)
- Koristite providne boje i animaciju
- Napravite da se oblici boje menjaju u zavisnosti od x ili y pozicije
Često postavljana pitanja (FAQ)
Šta je generativna umetnost?
Stvaranje vizuelnog sadržaja pomoću koda, gde matematička pravila i random funkcije definišu izgled.
Koje funkcije Python Processing-a se najčešće koriste?
random(), ellipse(), rect(), line(), fill(), noStroke(), draw().
Da li je potrebno znanje animacije?
Ne, osnovna animacija se lako uči kroz draw() i promenljive za poziciju.
Može li se koristiti interaktivnost?
Da, mišem ili klikom možemo menjati poziciju, boju ili veličinu oblika.
Mini projekti sa generativnom umetnošću
Ova sekcija daje ideje za male projekte koje možete odmah implementirati u Python Processing-u. Cilj je da kombinujete nasumičnost, petlje i interaktivnost.
Projekat 1: Animirani talasi
def setup():
size(600, 400)
noFill()
stroke(100, 150, 255)
def draw():
background(0)
for y in range(0, height, 20):
beginShape()
for x in range(0, width, 20):
y_offset = sin((x + frameCount*5) * 0.05) * 20
vertex(x, y + y_offset)
endShape()
Talasi se pomeraju animacijom. Možete menjati boju ili brzinu talasa.
Projekat 2: Interaktivni spirali
def setup():
size(600, 400)
background(0)
def draw():
translate(width/2, height/2)
stroke(random(255), random(255), random(255))
noFill()
angle = frameCount * 0.1
for r in range(0, 200, 5):
x = r * cos(angle + r*0.1)
y = r * sin(angle + r*0.1)
ellipse(x, y, 5, 5)
Spirala se animira, a boje se menjaju nasumično. Klikom možete resetovati pozadinu.
Projekat 3: Oblaci oblika
shapes = []
def setup():
size(600, 400)
background(0)
def draw():
background(0, 15)
if mousePressed:
for i in range(5):
shapes.append((mouseX + random(-20,20),
mouseY + random(-20,20),
random(5,15),
random(255),
random(255),
random(255)))
for s in shapes:
x, y, r, r_c, g_c, b_c = s
fill(r_c, g_c, b_c, 150)
noStroke()
ellipse(x, y, r, r)
Klikom dodajete “oblačiće” oblika koji ostaju na ekranu i stvaraju kolažni efekat.
Zadaci za vežbu
- Napravite svoj mini generativni projekat koristeći kombinaciju oblika i boja
- Dodajte interakciju sa mišem ili tastaturom
- Koristite animaciju kroz
draw()i providnost boja - Eksperimentišite sa slučajnim pozicijama i veličinama oblika
Povezane lekcije
FAQ — Generativna umetnost u Python Processing-u
1. Šta je generativna umetnost?
Generativna umetnost je način kreiranja vizuelnih efekata i slika pomoću koda, nasumičnih vrednosti i pravila.
2. Koje funkcije su najvažnije u Python Processing-u za generativnu umetnost?
Najčešće se koriste random(), sin(), cos(), petlje (for) i draw() za animaciju.
3. Kako mogu napraviti interaktivni projekat?
Koristi mouseX, mouseY i mousePressed da objekti reaguju na kretanje miša ili klik.
4. Kako da kombinujem više oblika i boja?
Možeš koristiti liste objekata, nasumične vrednosti za boje i veličine, i crtati ih u draw() petlji.
5. Kako da animiram umetnost kroz vreme?
Kod koji pišeš u draw() funkciji se izvršava u svakom frame-u, što omogućava animaciju oblika i boja.