xxxxxxxxxx
207
// Create your own customized flower!
// You can either follow the rules or generate a new species.
var tranx=0
var trany=0
function setup() {
createCanvas(600, 600)
background(0)
}
function draw() {
push()
textFont('Avenir')
noStroke()
fill(255,10)
textSize(20)
translate(-220,230)
text('Floral impression',250,280)
text('Hint',700,280)
textSize(10)
text('1-3: Choose a species',250,300)
text('5-8: Add petals',250,320)
text('0: Screenshot',250,340)
text('1+5: Dandelion',700,300)
text('2+6: Red Spider Lily',700,320)
text('3+7+8: Hydrangea',700,340)
pop()
}
function mouseDragged() {
if (key === '5') {
tranx=300
trany=250
translate(tranx, trany)
//D-petal
stroke(255,20)
strokeWeight(2)
fill(255,10)
line(0,0,mouseX-tranx, mouseY-trany)
noStroke()
ellipse(mouseX-tranx, mouseY-trany, 50,50)
ellipse(mouseX-tranx, mouseY-trany, 15,15)
ellipse(mouseX-tranx, mouseY-trany, 10,10)
ellipse((mouseX-tranx)/1.5, (mouseY-trany)/1.5, 30,30)
ellipse((mouseX-tranx)/1.5, (mouseY-trany)/1.5, 13,13)
ellipse((mouseX-tranx)/1.5, (mouseY-trany)/1.5, 8,8)
ellipse((mouseX-tranx)/4, (mouseY-trany)/4, 20,20)
ellipse((mouseX-tranx)/4, (mouseY-trany)/4, 10,10)
ellipse((mouseX-tranx)/4, (mouseY-trany)/4, 5,5)
}
if (key === '6') {
tranx=300
trany=250
translate(tranx,trany)
var a =2.5
fill(255,0,0,30)
noStroke()
print(mouseX)
ellipse(mouseX-tranx,mouseY-trany,10,10)
ellipse(mouseX-tranx,mouseY-trany,5,5)
ellipse((mouseX-tranx)/a,(mouseY-trany)/a,10,10)
ellipse((mouseX-tranx)/a,(mouseY-trany)/a,5,5)
//petals
strokeWeight(2)
stroke(255,0,0,40)
noFill()
if(mouseX<300){
bezier((-tranx+mouseX)/a, (-trany+mouseY)/a, (-30-tranx+mouseX)/a, (100-trany+mouseY)/a,(50-tranx+mouseX)/a, (150-trany+mouseY)/a, 0, 0)
bezier(-tranx+mouseX, -trany+mouseY, -30-tranx+mouseX, 100-trany+mouseY,50-tranx+mouseX, 150-trany+mouseY, 0, 0)
}else if (mouseX<600){
bezier((-tranx+mouseX)/a, (-trany+mouseY)/a, (30-tranx+mouseX)/a, (100-trany+mouseY)/a,(-50-tranx+mouseX)/a, (150-trany+mouseY)/a, 0, 0)
bezier( -tranx+mouseX, -trany+mouseY, 30-tranx+mouseX, 100-trany+mouseY,-50-tranx+mouseX, 150-trany+mouseY, 0, 0)
}
}
if (key === '7'){
var c= random(114,168)
fill(106, c, 250,40)
noStroke()
var b= random(0,360)
var weight1 = dist(mouseX, mouseY,pmouseX, pmouseY)
translate(mouseX, mouseY)
scale(1+weight1/150)
angleMode(DEGREES)
rotate(b)
rect(0,0,30,30,0,40,2,40)
scale(0.6)
fill(255,15)
rect(0,0,30,30,0,40,2,40)
}
if (key === '8'){
var e= random(154,237)
fill(e, 154, 237,40)
noStroke()
var f= random(0,360)
var weight2 = dist(mouseX, mouseY,pmouseX, pmouseY)
translate(mouseX, mouseY)
scale(1+weight2/150)
angleMode(DEGREES)
rotate(f)
rect(0,0,30,30,0,40,2,40)
scale(0.6)
fill(255,15)
rect(0,0,30,30,0,40,2,40)
}
}
function keyPressed(){
if (key === '1') {
tranx=300
trany=250
translate(tranx, trany)
fill(0)
rect(-300,-250, 600,600)
stroke(132, 153, 96)
strokeWeight(12)
line(0,0,0,400)
noStroke()
fill(132, 153, 96,70)
ellipse(0,0,87,87)
ellipse(0,0,82,82)
ellipse(0,0,93,93)
ellipse(0,0,100,100)
fill(115, 122, 74)
ellipse(0,0,80,80)
}
if (key === '2') {
tranx=300
trany=250
translate(tranx, trany)
fill(0)
rect(-300,-250, 600,600)
stroke(94, 102, 44)
strokeWeight(20)
line(0,0,0,400)
strokeWeight(10)
line(0,0,60,-30)
line(0,0,-50,-20)
line(0,0,-20,-35)
strokeWeight(13)
line(0,0,40,3)
noStroke()
fill(76, 68, 45)
ellipse(40,3,20,20)
ellipse(-20,-35,20,20)
ellipse(60,-30,20,20)
ellipse(-50,-20,20,20)
}
if (key === '3') {
//spherical flower
scale(0.8)
translate(75,65)
tranx=300
trany=250
translate(tranx, trany)
fill(0)
background(0)
stroke(108, 140, 46)
strokeWeight(35)
line(0,0,0,500)
strokeWeight(20)
line(0,0,70,-90)
line(0,0,-80,-50)
line(0,0,-20,-125)
strokeWeight(25)
line(0,0,80,20)
line(0,0,-40,50)
noStroke()
fill(161, 186, 87)
ellipse(-40,50,30,30)
ellipse(-20,-125,30,30)
ellipse(80,20,30,30)
ellipse(-80,-50,30,30)
ellipse(70,-90,30,30)
}
if (key === '0') {
save('floralimpression')
}
}