17
edits
| No edit summary | No edit summary | ||
| Line 77: | Line 77: | ||
| === homework 2 === | === homework 2 === | ||
| <source lang = "java"> | |||
| // number of max slices | |||
| int maxSlices = 256; | |||
| Slice[] slice = new Slice[maxSlices]; | |||
| // number of start slices | |||
| int n = 16; | |||
| float step = 2; | |||
| PImage img;      | |||
| void setup() { | |||
|   smooth(); | |||
|   background(0); | |||
|   img = loadImage("farbe_008.jpg"); | |||
|   img.resize(600,1000); | |||
|   size(600,600); | |||
|   for (int i = 0; i < n; i++) { | |||
|     slice[i] = new Slice(int(i*img.width/n),int(img.width/n),img); | |||
|   } | |||
|     println(width); | |||
|     println(height); | |||
| } | |||
| void draw() { | |||
|   // background colour | |||
|   fill(0); | |||
|   // create rectangle with width and height of the image | |||
|   rect(0,0,width,height); | |||
|    for (int i = 0; i < n; i++) { | |||
|    slice[i].paint(); | |||
|   } | |||
| } | |||
| void mousePressed() { | |||
|   save("pic.jpg"); | |||
|   n = int(n*step); | |||
|   if(n > maxSlices | n < 4){ | |||
|     step = 1/step; | |||
|     n = int(n*step*step); | |||
|   } | |||
|   for (int i = 0; i < n; i++) { | |||
|     slice[i] = new Slice(int(i*img.width/n),int(img.width/n),img); | |||
|   } | |||
| } | |||
| class Slice { | |||
|   int xini; | |||
|   int xSize; | |||
|   PImage img; | |||
|   PImage imgSlice;      | |||
|   float vel; | |||
|   float xVel; | |||
|   float xPos; | |||
|   float sign; | |||
|   float seed; | |||
|   float iter = 0; | |||
|   float t = 100; | |||
|   Slice(int xiniTemp, int xSizeTemp, PImage imgTemp) { | |||
|     xini = xiniTemp; | |||
|     xSize = xSizeTemp; | |||
|     img = imgTemp; | |||
|     imgSlice = createImage(xSize,img.height,ARGB); | |||
|     vel = 0; | |||
|     xVel = 0; | |||
|     sign = random(-1,1); | |||
|     sign = sign/abs(sign); | |||
|     seed = random(0,100); | |||
|     xPos = 0.5*(width-img.width) + xini + xVel + sign*noise(seed)*img.width/3; | |||
|     int p = 0; | |||
|     for (int i = 0; i < img.height; i++) { | |||
|       for (int j = 0; j < img.width; j++) { | |||
|         if((j >= xini) & (j < xini + xSize)){ | |||
|           imgSlice.pixels[p] = img.pixels[j + i*img.width]; | |||
|           p +=1;        | |||
|         } | |||
|       } | |||
|     } | |||
|   } | |||
| // create sliced image | |||
|   void paint() { | |||
|     image(imgSlice,xPos,0); | |||
|   } | |||
| } | |||
| </source> | |||
| === homework 3 === | === homework 3 === | ||
edits