Advertisement
proce55or

Bouncing shapeshifter

Feb 6th, 2014
705
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.25 KB | None | 0 0
  1. /* This program draws a picture called "Bouncing shapeshifter"
  2.  using only basic shapes in Processing. My intention was to
  3.  create an illusion of movement and changes in shape. I have
  4.  also implemented the 4th parameter in fill and stroke
  5.  color - opacity - to get more complex color palette. Created
  6.  by Olaf Keller for the Coursera course: "Introduction to
  7.  Computational Arts: Processing"
  8.  */
  9.  
  10. void setup() {
  11.  
  12.   size(800, 500);
  13.  
  14. }
  15.  
  16. void draw() {
  17.  
  18.   background(0);
  19.  
  20.   fill(255, 255, 255, 2);
  21.   stroke(255, 255, 255, 2);
  22.   triangle(0, 149, 52, 101, 68, 170);
  23.  
  24.   fill(255, 250, 250, 4);
  25.   stroke(255, 255, 255, 3);
  26.   triangle(0, 149, 66, 124, 56, 194);
  27.  
  28.   fill(255, 245, 245, 6);
  29.   stroke(255, 255, 255, 6);
  30.   triangle(0, 149, 72, 142, 43, 207);
  31.  
  32.   fill(255, 240, 240, 8);
  33.   stroke(255, 255, 255, 8);
  34.   triangle(15, 166, 86, 169, 49, 229);
  35.  
  36.   fill(255, 235, 235, 11);
  37.   stroke(255, 255, 255, 11);
  38.   triangle(31, 197, 101, 206, 58, 263);
  39.  
  40.   fill(255, 230, 230, 13);
  41.   stroke(255, 255, 255, 13);
  42.   triangle(38, 224, 106, 246, 53, 293);
  43.  
  44.   fill(255, 225, 225, 15);
  45.   stroke(255, 255, 255, 15);
  46.   triangle(51, 248, 111, 287, 47, 319);
  47.  
  48.   fill(255, 220, 220, 18);
  49.   stroke(255, 255, 255, 18);
  50.   triangle(38, 339, 61, 272, 108, 325);
  51.  
  52.   fill(255, 215, 215, 20);
  53.   stroke(255, 255, 255, 20);
  54.   triangle(34, 356, 71, 295, 105, 357);
  55.  
  56.   fill(255, 210, 210, 22);
  57.   stroke(255, 255, 255, 22);
  58.   triangle(31, 377, 80, 326, 100, 395);
  59.  
  60.   fill(255, 205, 205, 24);
  61.   stroke(255, 255, 255, 24);
  62.   triangle(46, 376, 107, 341, 107, 412);
  63.  
  64.   fill(255, 200, 200, 27);
  65.   stroke(255, 255, 255, 27);
  66.   triangle(67, 361, 136, 342, 117, 411);
  67.  
  68.   fill(255, 190, 190, 29);
  69.   stroke(255, 255, 255, 29);
  70.   triangle(93, 346, 163, 357, 117, 411);
  71.  
  72.   fill(255, 185, 185, 31);
  73.   stroke(255, 255, 255, 31);
  74.   triangle(115, 341, 178, 374, 117, 411);
  75.  
  76.   fill(255, 180, 180, 33);
  77.   stroke(255, 255, 255, 33);
  78.   triangle(148, 347, 189, 405, 117, 411);
  79.  
  80.   fill(255, 175, 175, 35);
  81.   stroke(255, 255, 255, 35);
  82.   quad(128, 378, 157, 323, 219, 356, 190, 411);
  83.  
  84.   fill(255, 170, 170, 37);
  85.   stroke(255, 255, 255, 37);
  86.   quad(142, 345, 184, 299, 237, 347, 195, 393);
  87.  
  88.   fill(255, 165, 165, 39);
  89.   stroke(255, 255, 255, 39);
  90.   quad(163, 313, 215, 279, 254, 339, 202, 373);
  91.  
  92.   fill(255, 160, 160, 41);
  93.   stroke(255, 255, 255, 41);
  94.   quad(185, 298, 244, 280, 264, 348, 205, 366);
  95.  
  96.   fill(255, 155, 155, 43);
  97.   stroke(255, 255, 255, 43);
  98.   quad(220, 281, 282, 286, 275, 357, 213, 352);
  99.  
  100.   fill(255, 150, 150, 45);
  101.   stroke(255, 255, 255, 45);
  102.   quad(249, 283, 309, 301, 288, 369, 228, 351);
  103.  
  104.   fill(255, 145, 145, 47);
  105.   stroke(255, 255, 255, 47);
  106.   beginShape();
  107.   vertex(263, 357);
  108.   vertex(256, 294);
  109.   vertex(319, 290);
  110.   vertex(338, 351);
  111.   vertex(287, 382);
  112.   endShape(CLOSE);
  113.  
  114.  
  115.   fill(255, 140, 140, 50);
  116.   stroke(255, 255, 255, 50);
  117.   beginShape();
  118.   vertex(257, 364);
  119.   vertex(285, 305);
  120.   vertex(349, 310);
  121.   vertex(360, 372);
  122.   vertex(303, 406);
  123.   endShape(CLOSE);
  124.  
  125.  
  126.   fill(255, 135, 135, 52);
  127.   stroke(255, 255, 255, 52);
  128.   beginShape();
  129.   vertex(269, 366);
  130.   vertex(303, 310);
  131.   vertex(365, 321);
  132.   vertex(370, 384);
  133.   vertex(311, 412);
  134.   endShape(CLOSE);
  135.  
  136.  
  137.   fill(255, 130, 130, 54);
  138.   stroke(255, 255, 255, 54);
  139.   beginShape();
  140.   vertex(292, 353);
  141.   vertex(346, 317);
  142.   vertex(398, 353);
  143.   vertex(375, 413);
  144.   vertex(310, 413);
  145.   endShape(CLOSE);
  146.  
  147.  
  148.   fill(255, 125, 125, 56);
  149.   stroke(255, 255, 255, 56);
  150.   beginShape();
  151.   vertex(309, 338);
  152.   vertex(365, 308);
  153.   vertex(408, 354);
  154.   vertex(379, 413);
  155.   vertex(318, 403);
  156.   endShape(CLOSE);
  157.  
  158.  
  159.   fill(255, 120, 120, 59);
  160.   stroke(255, 255, 255, 59);
  161.   beginShape();
  162.   vertex(324, 328);
  163.   vertex(384, 307);
  164.   vertex(419, 360);
  165.   vertex(381, 413);
  166.   vertex(322, 393);
  167.   endShape(CLOSE);
  168.  
  169.  
  170.   fill(255, 115, 115, 61);
  171.   stroke(255, 255, 255, 61);
  172.   beginShape();
  173.   vertex(340, 311);
  174.   vertex(401, 293);
  175.   vertex(433, 347);
  176.   vertex(393, 399);
  177.   vertex(335, 377);
  178.   endShape(CLOSE);
  179.  
  180.   fill(255, 110, 110, 64);
  181.   stroke(255, 255, 255, 64);
  182.   beginShape();
  183.   vertex(359, 283);
  184.   vertex(417, 257);
  185.   vertex(457, 306);
  186.   vertex(424, 363);
  187.   vertex(364, 349);
  188.   endShape(CLOSE);
  189.  
  190.   fill(255, 105, 105, 66);
  191.   stroke(255, 255, 255, 66);
  192.   beginShape();
  193.   vertex(378, 324);
  194.   vertex(380, 258);
  195.   vertex(440, 237);
  196.   vertex(475, 290);
  197.   vertex(437, 343);
  198.   endShape(CLOSE);
  199.  
  200.   fill(255, 100, 100, 68);
  201.   stroke(255, 255, 255, 68);
  202.   beginShape();
  203.   vertex(411, 271);
  204.   vertex(434, 210);
  205.   vertex(497, 208);
  206.   vertex(514, 270);
  207.   vertex(461, 308);
  208.   endShape(CLOSE);
  209.  
  210.   fill(255, 95, 95, 70);
  211.   stroke(255, 255, 255, 70);
  212.   beginShape();
  213.   vertex(461, 310);
  214.   vertex(445, 254);
  215.   vertex(484, 213);
  216.   vertex(540, 226);
  217.   vertex(557, 282);
  218.   vertex(517, 323);
  219.   endShape(CLOSE);
  220.  
  221.   fill(255, 90, 90, 72);
  222.   stroke(255, 255, 255, 72);
  223.   beginShape();
  224.   vertex(460, 309);
  225.   vertex(468, 252);
  226.   vertex(522, 230);
  227.   vertex(567, 265);
  228.   vertex(559, 322);
  229.   vertex(506, 344);
  230.   endShape(CLOSE);
  231.  
  232.   fill(255, 85, 85, 74);
  233.   stroke(255, 255, 255, 74);
  234.   beginShape();
  235.   vertex(490, 358);
  236.   vertex(461, 308);
  237.   vertex(490, 258);
  238.   vertex(547, 258);
  239.   vertex(576, 308);
  240.   vertex(547, 358);
  241.   endShape(CLOSE);
  242.  
  243.   fill(255, 80, 80, 62);
  244.   stroke(255, 255, 255, 62);
  245.   beginShape();
  246.   vertex(483, 381);
  247.   vertex(470, 325);
  248.   vertex(513, 286);
  249.   vertex(568, 303);
  250.   vertex(581, 359);
  251.   vertex(539, 398);
  252.   endShape(CLOSE);
  253.  
  254.   fill(255, 70, 70, 65);
  255.   stroke(255, 255, 255, 65);
  256.   beginShape();
  257.   vertex(486, 381);
  258.   vertex(489, 323);
  259.   vertex(541, 297);
  260.   vertex(589, 329);
  261.   vertex(586, 387);
  262.   vertex(534, 413);
  263.   endShape(CLOSE);
  264.  
  265.   fill(255, 65, 65, 65);
  266.   stroke(255, 255, 255, 65);
  267.   beginShape();
  268.   vertex(501, 368);
  269.   vertex(520, 314);
  270.   vertex(577, 304);
  271.   vertex(614, 348);
  272.   vertex(595, 402);
  273.   vertex(538, 412);
  274.   endShape(CLOSE);
  275.  
  276.   fill(255, 60, 60, 68);
  277.   stroke(255, 255, 255, 68);
  278.   beginShape();
  279.   vertex(557, 413);
  280.   vertex(524, 379);
  281.   vertex(524, 331);
  282.   vertex(557, 298);
  283.   vertex(604, 298);
  284.   vertex(638, 331);
  285.   vertex(638, 379);
  286.   vertex(604, 413);
  287.   endShape(CLOSE);
  288.  
  289.   fill(255, 55, 55, 71);
  290.   stroke(255, 255, 255, 71);
  291.   beginShape();
  292.   vertex(572, 405);
  293.   vertex(544, 367);
  294.   vertex(550, 320);
  295.   vertex(588, 291);
  296.   vertex(635, 297);
  297.   vertex(663, 335);
  298.   vertex(657, 382);
  299.   vertex(619, 411);
  300.   endShape(CLOSE);
  301.  
  302.   fill(255, 50, 50, 74);
  303.   stroke(255, 255, 255, 74);
  304.   beginShape();
  305.   vertex(588, 388);
  306.   vertex(567, 346);
  307.   vertex(582, 300);
  308.   vertex(624, 279);
  309.   vertex(669, 294);
  310.   vertex(690, 336);
  311.   vertex(675, 381);
  312.   vertex(633, 403);
  313.   endShape(CLOSE);
  314.  
  315.   fill(255, 45, 45, 76);
  316.   stroke(255, 255, 255, 76);
  317.   beginShape();
  318.   vertex(606, 366);
  319.   vertex(592, 321);
  320.   vertex(614, 279);
  321.   vertex(659, 264);
  322.   vertex(701, 286);
  323.   vertex(715, 331);
  324.   vertex(693, 373);
  325.   vertex(648, 388);
  326.   endShape(CLOSE);
  327.  
  328.   ellipseMode(CENTER);
  329.  
  330.   fill(255, 40, 40, 78);
  331.   stroke(255, 255, 255, 78);
  332.   ellipse(671, 319, 126, 126);
  333.  
  334.   fill(255, 35, 35, 80);
  335.   stroke(255, 255, 255, 80);
  336.   ellipse(695, 313, 111, 111);
  337.  
  338.   fill(255, 30, 30, 82);
  339.   stroke(255, 255, 255, 82);
  340.   ellipse(715, 311, 96, 96);
  341.  
  342.   fill(255, 25, 25, 84);
  343.   stroke(255, 255, 255, 84);
  344.   ellipse(731, 309, 81, 81);
  345.  
  346.   fill(255, 20, 20, 86);
  347.   stroke(255, 255, 255, 86);
  348.   ellipse(750, 309, 66, 66);
  349.  
  350.   fill(255, 15, 15, 88);
  351.   stroke(255, 255, 255, 88);
  352.   ellipse(772, 314, 51, 51);
  353.  
  354.   fill(255, 10, 10, 90);
  355.   stroke(255, 255, 255, 90);
  356.   ellipse(786, 322, 36, 36);
  357.  
  358.   fill(255, 5, 5, 92);
  359.   stroke(255, 255, 255, 92);
  360.   ellipse(800, 340, 21, 21);
  361.  
  362.   fill(255, 0, 0, 94);
  363.   stroke(255, 255, 255, 94);
  364.   ellipse(800, 350, 6, 6);
  365. }
  366.  
  367.  
  368. /* Functions below create and save the output as a normal .png file
  369.  and high resolution .png when 's' key is pressed - code by Amnon Owed:
  370.  http://amnonp5.wordpress.com/2012/01/28/25-life-saving-tips-for-processing/
  371.  */
  372.  
  373. void keyPressed() {
  374.   if (key == 's') {
  375.     save("normal2.png");
  376.     saveHiRes(2);
  377.     exit();
  378.   }
  379. }
  380.  
  381. void saveHiRes(int scaleFactor) {
  382.   PGraphics hires = createGraphics(width*scaleFactor, height*scaleFactor, JAVA2D);
  383.   beginRecord(hires);
  384.   hires.scale(scaleFactor);
  385.   draw();
  386.   endRecord();
  387.   hires.save("hires.png");
  388. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement