<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ConstOest</id>
	<title>Medien Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ConstOest"/>
	<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/Special:Contributions/ConstOest"/>
	<updated>2026-06-15T10:56:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80875</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80875"/>
		<updated>2016-04-07T20:40:01Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: /* Bubble Type */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Letter Homework ==&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Homework 2.1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a very simple Code-Font. It&#039;s just for Capital Letters and there are rectangles from A to Z. These Rectangles become smaller from A to Z. A is the biggest and Z a dot.&lt;br /&gt;
&lt;br /&gt;
[[Image:Simplefont_const.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image Simple Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//import library&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
&lt;br /&gt;
// new Font&lt;br /&gt;
Fontastic f;&lt;br /&gt;
int version = 0;&lt;br /&gt;
&lt;br /&gt;
// Settings&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(600, 300);&lt;br /&gt;
  fill(55);&lt;br /&gt;
  createFont(); // create the font&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Zeichnenfunktion&lt;br /&gt;
void draw() {  &lt;br /&gt;
  background(255);&lt;br /&gt;
  PFont myFont = createFont(f.getTTFfilename(), 64); // reading the font that has just been created&lt;br /&gt;
&lt;br /&gt;
  textFont(myFont);&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  text(Fontastic.alphabet, 0, Fontastic.alphabet.length/2, width/2, height/3);&lt;br /&gt;
  text(Fontastic.alphabet, Fontastic.alphabet.length/2, Fontastic.alphabet.length, width/2, height/3*2);&lt;br /&gt;
&lt;br /&gt;
  noLoop();&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
&lt;br /&gt;
  if (f != null) { f.cleanup(); }&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;simpleFont&amp;quot; + nf(version,4));&lt;br /&gt;
&lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;1.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(600);&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;Fontastic.alphabet.length; i++) {&lt;br /&gt;
    &lt;br /&gt;
    char c = Fontastic.alphabet[i];&lt;br /&gt;
    &lt;br /&gt;
    PVector[] points = new PVector[4];&lt;br /&gt;
    &lt;br /&gt;
    int maxwidth = 512-i*19;&lt;br /&gt;
    int maxheight = 1024-i*39;&lt;br /&gt;
    &lt;br /&gt;
    points[0] = new PVector(0, 0);&lt;br /&gt;
    points[1] = new PVector(maxwidth, 0);&lt;br /&gt;
    points[2] = new PVector(maxwidth, maxheight);&lt;br /&gt;
    points[3] = new PVector(0, maxheight);&lt;br /&gt;
    &lt;br /&gt;
    f.addGlyph(c).addContour(points);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.buildFont();&lt;br /&gt;
  f.cleanup();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Homework 2.2 ==&lt;br /&gt;
&lt;br /&gt;
This programm &amp;quot;distort&amp;quot; the font &amp;quot;BEBAS&amp;quot; with triangles. There triangles on the contour of 5 origonal letters of this font. With the position of the mouse u change in x-coordinates the size of the triangle and in y-coordinates the y-position of the indiviual retangles. If you have your right position u can click any key to save this font.&lt;br /&gt;
&lt;br /&gt;
[[Image:Font_distor_const_03.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_01.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_02.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Images Font Distor Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Triangle Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Libraries&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
import geomerative.*;&lt;br /&gt;
&lt;br /&gt;
Fontastic f;&lt;br /&gt;
RFont font;&lt;br /&gt;
&lt;br /&gt;
PFont myFont;&lt;br /&gt;
int version = 0;&lt;br /&gt;
int charWidth = 512;&lt;br /&gt;
boolean fontBuilt = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  size(800, 800);&lt;br /&gt;
  fill(0);&lt;br /&gt;
&lt;br /&gt;
  // always initialize the library in setup&lt;br /&gt;
  RG.init(this);&lt;br /&gt;
  // load the initial font&lt;br /&gt;
  font = new RFont(&amp;quot;BEBAS.TTF&amp;quot;,150);&lt;br /&gt;
&lt;br /&gt;
  // get the points on the curve&#039;s shape&lt;br /&gt;
  // set style and segment resultion&lt;br /&gt;
  RCommand.setSegmentLength(10);&lt;br /&gt;
  RCommand.setSegmentator(RCommand.UNIFORMLENGTH);&lt;br /&gt;
&lt;br /&gt;
  initFont();&lt;br /&gt;
  updateFont();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  updateFont();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  int numberOfLetters = 5; // the number of letters to display&lt;br /&gt;
  for (int i=0; i&amp;lt;numberOfLetters; i++) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    translate(width/2, height/2);&lt;br /&gt;
    scale(charWidth/500f / 5f);&lt;br /&gt;
    translate(-(numberOfLetters -1)*charWidth / 2 + i*charWidth, 0);&lt;br /&gt;
    translate(-charWidth/2, charWidth/2);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(55);&lt;br /&gt;
    renderGlyphSolid(Fontastic.alphabet[i]);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (fontBuilt) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    textFont(myFont);&lt;br /&gt;
    textAlign(CENTER, CENTER);&lt;br /&gt;
    fill(0);&lt;br /&gt;
    textSize(charWidth / 5f);&lt;br /&gt;
    text(new String(subset(Fontastic.alphabet, 0, numberOfLetters)), width/2, height*0.6);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initFont() {&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;font_distor&amp;quot; + nf(version,4)); // create new Fontastic object&lt;br /&gt;
&lt;br /&gt;
  // add letters to the font, without adding glyph shapes&lt;br /&gt;
  for (char c : Fontastic.alphabet) {   &lt;br /&gt;
    f.addGlyph(c);                      // add all uppercase letters from the alphabet &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.setFontFamilyName(&amp;quot;font_distor&amp;quot;); &lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;0.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(int(charWidth * 1.1));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateFont() {&lt;br /&gt;
  &lt;br /&gt;
  for (char c : Fontastic.alphabet) {&lt;br /&gt;
&lt;br /&gt;
    RShape shp = font.toShape(c);&lt;br /&gt;
    RPoint[] pnts = shp.getPoints();&lt;br /&gt;
&lt;br /&gt;
    f.getGlyph(c).clearContours();&lt;br /&gt;
&lt;br /&gt;
    for (int i=0; i&amp;lt;pnts.length-1; i++) {&lt;br /&gt;
&lt;br /&gt;
      RPoint p = pnts[i];&lt;br /&gt;
      PVector[] points = new PVector[4];&lt;br /&gt;
&lt;br /&gt;
      float circleSize = 40;&lt;br /&gt;
&lt;br /&gt;
      int resolution = 3;&lt;br /&gt;
      points = new PVector[resolution];&lt;br /&gt;
      for (int j=0; j&amp;lt;resolution; j++) {&lt;br /&gt;
        float angle = TWO_PI/(resolution * 1f) * j;&lt;br /&gt;
        float x = p.x * 5 + sin(angle) * circleSize;&lt;br /&gt;
        float y = -p.y * 5 +  cos(angle) * circleSize;&lt;br /&gt;
        y -= (mouseY - height/4f) / height/4f * noise(i * 2+millis()/1000000000000f) * 8000; &lt;br /&gt;
        points[j] = new PVector(x, y);&lt;br /&gt;
        circleSize = circleSize-(mouseX-mouseX*0.85);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      f.getGlyph(c).addContour(points);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  f.buildFont(); // write ttf file&lt;br /&gt;
  f.cleanup();   // delete all glyph files that have been created while building the font&lt;br /&gt;
  &lt;br /&gt;
  fontBuilt = true;&lt;br /&gt;
&lt;br /&gt;
  myFont = createFont(f.getTTFfilename(), 200); // set the font to be used for rendering&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
  &lt;br /&gt;
  initFont();   // and make a new font right away&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// A function to preview a glyph in Processing&lt;br /&gt;
&lt;br /&gt;
void renderGlyphSolid(char c) {&lt;br /&gt;
    &lt;br /&gt;
  FContour[] contours = f.getGlyph(c).getContoursArray();&lt;br /&gt;
&lt;br /&gt;
  for (int j=0; j&amp;lt;contours.length; j++) {&lt;br /&gt;
&lt;br /&gt;
    FPoint[] points = f.getGlyph(c).getContour(j).getPointsArray();&lt;br /&gt;
&lt;br /&gt;
    if (points.length &amp;gt; 0) { //just to be sure    &lt;br /&gt;
      // Draw the solid shape in Processing&lt;br /&gt;
      beginShape();      &lt;br /&gt;
      for (int i=0; i&amp;lt;points.length; i++) {&lt;br /&gt;
        FPoint p1 = points[i];&lt;br /&gt;
        FPoint p2 = points[(i+1)%points.length];&lt;br /&gt;
        if (p1.hasControlPoint2() &amp;amp;&amp;amp; p2.hasControlPoint1()) {&lt;br /&gt;
          if (i == 0) { &lt;br /&gt;
            vertex(points[0].x, -points[0].y);&lt;br /&gt;
          }&lt;br /&gt;
          bezierVertex(p1.controlPoint2.x, -p1.controlPoint2.y, p2.controlPoint1.x, -p2.controlPoint1.y, p2.x, -p2.y);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          vertex(p1.x, -p1.y);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      endShape();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
&lt;br /&gt;
  if (key == &#039;s&#039;) {&lt;br /&gt;
    createFont();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ani C ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Constantin_Letter.gif|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import de.looksgood.ani.*;&lt;br /&gt;
import de.looksgood.ani.easing.*;&lt;br /&gt;
&lt;br /&gt;
float arcbegin = PI-2*QUARTER_PI;&lt;br /&gt;
float arcend = PI+2*QUARTER_PI;&lt;br /&gt;
float newbegin = 0;&lt;br /&gt;
float newend = PI;&lt;br /&gt;
int line_width = 0;&lt;br /&gt;
int thickline = 0;&lt;br /&gt;
int thickserif = 0;&lt;br /&gt;
&lt;br /&gt;
Ani linesAni;&lt;br /&gt;
Ani serifAni;&lt;br /&gt;
Ani linethickAni;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
  smooth();&lt;br /&gt;
  Ani.init(this);&lt;br /&gt;
  linesAni = new Ani(this, 2, 3, &amp;quot;line_width&amp;quot;, 90, Ani.LINEAR);&lt;br /&gt;
  linethickAni = new Ani(this, 1, 3, &amp;quot;thickline&amp;quot;, 30, Ani.LINEAR);&lt;br /&gt;
  serifAni = new Ani(this, 1.5, 3, &amp;quot;thickserif&amp;quot;, 15, Ani.LINEAR);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void draw() {&lt;br /&gt;
 &lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
 &lt;br /&gt;
  background(color_bg);&lt;br /&gt;
 &lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
 &lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, arcbegin, arcend, OPEN);&lt;br /&gt;
  strokeWeight(thickline);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(thickserif);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void mousePressed() {&lt;br /&gt;
  if (mouseButton == LEFT) {&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcbegin&amp;quot;, newbegin, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcend&amp;quot;, newend, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    linesAni.start();&lt;br /&gt;
    linethickAni.start();&lt;br /&gt;
    serifAni.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Ani.to(object, duration, variable name, target position, easing);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Robo Flowers ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Robo_Flower_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:Robo_Flower_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3D Letters ==&lt;br /&gt;
[[Image:3DLetters_Const_00.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bubble Type ==&lt;br /&gt;
This is my final Project for this Course. You can see it [http://bubbletype.constantin-oestreich.de/ here].&lt;br /&gt;
&lt;br /&gt;
My Intention was to make something &amp;quot;growing&amp;quot; which runs without special programms on every computer. For this I used javascript to animate the letters of this 3 Fonts inside the html5 canvas. U can use the buttons to control what you want.&lt;br /&gt;
&lt;br /&gt;
=== index.html ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Type&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;style.css&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Title&amp;quot;&amp;gt;&lt;br /&gt;
        Welcome to Bubble Type&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Color&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/green.png&amp;quot; id=&amp;quot;green-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/red.png&amp;quot; id=&amp;quot;red-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/blue.png&amp;quot; id=&amp;quot;blue-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/yellow.png&amp;quot; id=&amp;quot;yellow-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/multi.png&amp;quot; id=&amp;quot;multi-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/grey.png&amp;quot; id=&amp;quot;grey-button&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;!--       &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;green-button&amp;quot;&amp;gt;Green&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;red-button&amp;quot;&amp;gt;Red&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;blue-button&amp;quot;&amp;gt;Blue&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;yellow-button&amp;quot;&amp;gt;Yellow&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;multi-button&amp;quot;&amp;gt;Multi&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;grey-button&amp;quot;&amp;gt;Grey&amp;lt;/button&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Font&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/sans.png&amp;quot; id=&amp;quot;sans&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/serif.png&amp;quot; id=&amp;quot;serif&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/hand.png&amp;quot; id=&amp;quot;hand&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/thin.png&amp;quot; id=&amp;quot;thin&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/medium.png&amp;quot; id=&amp;quot;medium&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/big.png&amp;quot; id=&amp;quot;big&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;sans&amp;quot;&amp;gt;Sans&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;serif&amp;quot;&amp;gt;Serif&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;hand&amp;quot;&amp;gt;Hand&amp;lt;/button&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Size&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;thin&amp;quot;&amp;gt;Thin&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;medium&amp;quot;&amp;gt;Medium&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;big&amp;quot;&amp;gt;Big&amp;lt;/button&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Faktor&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x1.png&amp;quot; id=&amp;quot;x1&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x2.png&amp;quot; id=&amp;quot;x2&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x3.png&amp;quot; id=&amp;quot;x3&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x4.png&amp;quot; id=&amp;quot;x4&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;!--     &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x1&amp;quot;&amp;gt;X1&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x2&amp;quot;&amp;gt;X2&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x3&amp;quot;&amp;gt;X3&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x4&amp;quot;&amp;gt;X4&amp;lt;/button&amp;gt;&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Canvas&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;canvas id=&amp;quot;canvas&amp;quot;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;br /&gt;
        &amp;lt;script src=&amp;quot;main.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style.css ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
@import url(https://fonts.googleapis.com/css?family=Pacifico); &lt;br /&gt;
@import url(https://fonts.googleapis.com/css?family=Gabriela);&lt;br /&gt;
@import url(https://fonts.googleapis.com/css?family=Stalemate);&lt;br /&gt;
&lt;br /&gt;
html, body {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    background: #ebebeb;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
#Title {&lt;br /&gt;
    padding-top: 40px;&lt;br /&gt;
    padding-bottom: 20px;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    color: #d1d1d1;&lt;br /&gt;
    text-shadow: 2px 2px #919191;&lt;br /&gt;
    font-size: 50px;&lt;br /&gt;
    font-family: &#039;Pacifico&#039;, cursive;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Buttons-Color {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 8px;&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
#Buttons-Font {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Buttons-Size {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Buttons-Faktor {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 8px;&lt;br /&gt;
    padding-right: 6px; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Canvas {&lt;br /&gt;
    position: relative;&lt;br /&gt;
    display: block;&lt;br /&gt;
    z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== main.js ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//Globale Variablen&lt;br /&gt;
var greens = new Array(&#039;#1fad0c&#039;,&#039;#199508&#039;,&#039;#1b710f&#039;,&#039;#4d7e0c&#039;,&#039;#6cba07&#039;);&lt;br /&gt;
var reds = new Array(&#039;#66200a&#039;,&#039;#96391d&#039;,&#039;#d34317&#039;,&#039;#ec6338&#039;,&#039;#fb997b&#039;);&lt;br /&gt;
var blues = new Array(&#039;#064077&#039;,&#039;#2565a0&#039;,&#039;#5c97cf&#039;,&#039;#63acef&#039;,&#039;#a8d3fc&#039;);&lt;br /&gt;
var yellows = new Array(&#039;#d8d62c&#039;,&#039;#edeb4c&#039;,&#039;#f7f56f&#039;,&#039;#dcdb82&#039;,&#039;#f6f5b3&#039;);&lt;br /&gt;
var multis = new Array (&#039;#1b710f&#039;,&#039;#4d7e0c&#039;,&#039;#d34317&#039;,&#039;#ec6338&#039;,&#039;#63acef&#039;,&#039;#a8d3fc&#039;,&#039;#dcdb82&#039;,&#039;#f6f5b3&#039;);&lt;br /&gt;
var greys = new Array(&#039;#272727&#039;, &#039;#4a4a4a&#039;, &#039;#717171&#039;, &#039;#a0a0a0&#039;, &#039;#c8c8c8&#039;);&lt;br /&gt;
var fill_color_circle = greens;&lt;br /&gt;
var gLetter = &#039;A&#039;;&lt;br /&gt;
var gText = &#039;ABCDEFGHIJKLMNOPQRSTUVWXYZ&#039;;&lt;br /&gt;
var gLetterIndex = 0;&lt;br /&gt;
var gAnimation = true;&lt;br /&gt;
var Heigh_or_Width = Math.min(window.innerHeight, window.innerWidth);&lt;br /&gt;
var gLetterHigh = Heigh_or_Width*0.4;&lt;br /&gt;
var loadfont = &#039;Arial&#039;;&lt;br /&gt;
var font = gLetterHigh + &#039;px &#039; + loadfont;&lt;br /&gt;
var canvas = document.getElementById(&#039;canvas&#039;);&lt;br /&gt;
canvas.width = window.innerWidth;&lt;br /&gt;
canvas.height = window.innerHeight - document.getElementById(&#039;Title&#039;).offsetHeight;&lt;br /&gt;
var ctx = canvas.getContext(&#039;2d&#039;);&lt;br /&gt;
var Grid_Scale = 250;&lt;br /&gt;
var Grid_Cell_Size = Math.ceil(Heigh_or_Width / Grid_Scale);&lt;br /&gt;
var Clips = [];&lt;br /&gt;
var activeCells = [];&lt;br /&gt;
var intv = 6;&lt;br /&gt;
var minc = 1;&lt;br /&gt;
var maxc = 5;&lt;br /&gt;
var res;&lt;br /&gt;
var faktor = 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Color Buttons&lt;br /&gt;
document.getElementById(&#039;green-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  greens;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;red-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  reds;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;blue-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  blues;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;yellow-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  yellows;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;multi-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  multis;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;grey-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  greys;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Font Buttons&lt;br /&gt;
document.getElementById(&#039;sans&#039;).onclick=function(){&lt;br /&gt;
    loadfont = &#039;Arial&#039;;&lt;br /&gt;
    font = gLetterHigh + &#039;px &#039; + loadfont;&lt;br /&gt;
    return font;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;serif&#039;).onclick=function(){&lt;br /&gt;
    loadfont = &#039;Gabriela&#039;;&lt;br /&gt;
    font = gLetterHigh + &#039;px &#039; + loadfont;&lt;br /&gt;
    return font;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;hand&#039;).onclick=function(){&lt;br /&gt;
    loadfont = &#039;Stalemate&#039;;&lt;br /&gt;
    font = gLetterHigh + &#039;px &#039; + loadfont;&lt;br /&gt;
    return font;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//Size Buttons&lt;br /&gt;
document.getElementById(&#039;thin&#039;).onclick=function(){&lt;br /&gt;
    minc = 1;&lt;br /&gt;
    maxc = 5;&lt;br /&gt;
    return minc;&lt;br /&gt;
    return maxc;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;medium&#039;).onclick=function(){&lt;br /&gt;
    minc = 1;&lt;br /&gt;
    maxc = 5;&lt;br /&gt;
    minc = minc*3;&lt;br /&gt;
    maxc = maxc*3;&lt;br /&gt;
    return minc;&lt;br /&gt;
    return maxc;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;big&#039;).onclick=function(){&lt;br /&gt;
    minc = 1;&lt;br /&gt;
    maxc = 5;&lt;br /&gt;
    minc = minc*6;&lt;br /&gt;
    maxc = maxc*6;&lt;br /&gt;
    return minc;&lt;br /&gt;
    return maxc;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//Faktor Buttons&lt;br /&gt;
document.getElementById(&#039;x1&#039;).onclick=function(){&lt;br /&gt;
    faktor = 1;&lt;br /&gt;
    return faktor;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;x2&#039;).onclick=function(){&lt;br /&gt;
    faktor = 3;&lt;br /&gt;
    return faktor;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;x3&#039;).onclick=function(){&lt;br /&gt;
    faktor = 8;&lt;br /&gt;
    return faktor;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;x4&#039;).onclick=function(){&lt;br /&gt;
    faktor = 20;&lt;br /&gt;
    return faktor;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Stop Funktion die Animation anhält&lt;br /&gt;
function myStopFunction(b) {&lt;br /&gt;
    clearInterval(b);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Random Choice&lt;br /&gt;
function choice(random_choice) {&lt;br /&gt;
    return random_choice[Math.round(Math.random())]; //0 oder 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Clean Canvas&lt;br /&gt;
function cleanup() {&lt;br /&gt;
    ctx.clearRect(0, 0, canvas.width, canvas.height);&lt;br /&gt;
    console.log (&#039;Clean&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Fonteinstellungen&lt;br /&gt;
function start() {&lt;br /&gt;
    ctx.fillStyle = &#039;white&#039;;&lt;br /&gt;
    ctx.font = font;&lt;br /&gt;
    ctx.textAlign = &#039;center&#039;;&lt;br /&gt;
    ctx.fontWeight=&#039;bold&#039;;&lt;br /&gt;
    ctx.fillText(gLetter, canvas.width/2, gLetterHigh);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Grid erkennen / Array erstellen / x Werte an y Position speichern oder false wnn nicht auf buchstabe&lt;br /&gt;
function clip_grid()&lt;br /&gt;
{&lt;br /&gt;
    for (var y = 0; y &amp;lt; Grid_Scale; y += 1)&lt;br /&gt;
    {&lt;br /&gt;
        var clipColumn = [];&lt;br /&gt;
        clipColumn.length = Grid_Cell_Size;&lt;br /&gt;
        for (var x = 0; x &amp;lt; Grid_Scale; x += 1)&lt;br /&gt;
        {&lt;br /&gt;
            var data = ctx.getImageData(x * Grid_Cell_Size, y * Grid_Cell_Size,Grid_Cell_Size,Grid_Cell_Size);&lt;br /&gt;
            var v = data.data[(Grid_Cell_Size + Grid_Cell_Size)];&lt;br /&gt;
            if (v &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                activeCells.push(data);&lt;br /&gt;
                clipColumn[x] = activeCells.length - 1;&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                clipColumn[x] = false;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        Clips[y] = clipColumn;&lt;br /&gt;
        //console.log (clipColumn);&lt;br /&gt;
    }&lt;br /&gt;
    console.log (&#039;Grid&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Kreis zeichnen&lt;br /&gt;
function circle(centerX,centerY,radius)&lt;br /&gt;
{&lt;br /&gt;
        ctx.beginPath();&lt;br /&gt;
        ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);&lt;br /&gt;
        ctx.fillStyle = fill_color_circle[getRandomInt(0,fill_color_circle.length)]; // Füllen mit zufälliger Farbe aus Liste&lt;br /&gt;
        ctx.fill();&lt;br /&gt;
        ctx.lineWidth = 2;&lt;br /&gt;
        ctx.strokeStyle = fill_color_circle[getRandomInt(0,fill_color_circle.length)]; // Füllen mit zufälliger Farbe aus Liste&lt;br /&gt;
        ctx.stroke();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Randomvariable Kreise&lt;br /&gt;
function getRandomInt(min, max) {&lt;br /&gt;
    return Math.floor(Math.random() * (max - min + 1)) + min;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Grid in finale Liste speichern&lt;br /&gt;
function prepare()&lt;br /&gt;
{&lt;br /&gt;
    var tx = 0;&lt;br /&gt;
    var ty = 0;&lt;br /&gt;
    var a = []; &lt;br /&gt;
    if (canvas.width &amp;gt; canvas.height)&lt;br /&gt;
    {&lt;br /&gt;
        tx = (canvas.width - Heigh_or_Width) / 2;&lt;br /&gt;
    } &lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        ty = (canvas.height - Heigh_or_Width) / 2;&lt;br /&gt;
    }&lt;br /&gt;
    var count=0;&lt;br /&gt;
    for (var y = 0; y &amp;lt; Grid_Scale; y += 1)&lt;br /&gt;
    {&lt;br /&gt;
        for (var x = 0; x &amp;lt; Grid_Scale; x += 1)&lt;br /&gt;
        {&lt;br /&gt;
            var cellData = Clips[y][x];&lt;br /&gt;
            if (cellData !== false)&lt;br /&gt;
            {&lt;br /&gt;
                a[count]= [];&lt;br /&gt;
                var imgData = choice(activeCells);&lt;br /&gt;
                a[count][&#039;0&#039;]=true;&lt;br /&gt;
                a[count][&#039;1&#039;]=x*Grid_Cell_Size;&lt;br /&gt;
                a[count][&#039;2&#039;]=y*Grid_Cell_Size;&lt;br /&gt;
                count++;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    res = a;&lt;br /&gt;
    //console.log (res);&lt;br /&gt;
    console.log (&#039;Prepare&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion:Circle zeichnen auf Punkte im Buchstaben Grid&lt;br /&gt;
function draw(a)&lt;br /&gt;
{&lt;br /&gt;
    var n=-1;&lt;br /&gt;
    if (n&amp;lt;0)&lt;br /&gt;
    {&lt;br /&gt;
        n=getRandomInt(0,a.length);&lt;br /&gt;
        while(a[n][&#039;0&#039;]===false)&lt;br /&gt;
        {&lt;br /&gt;
            n=getRandomInt(0,a.length);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    var rad=getRandomInt(minc,maxc);&lt;br /&gt;
    circle(a[n][&#039;1&#039;],a[n][&#039;2&#039;],rad);&lt;br /&gt;
    console.log (&#039;Draw&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Event Listener auf Keyboardeingabe - beendet Alphabet&lt;br /&gt;
window.addEventListener(&#039;keypress&#039;, function (getLetter) {&lt;br /&gt;
    gAnimation = false;&lt;br /&gt;
    var newLetter = String.fromCharCode(getLetter.keyCode);&lt;br /&gt;
    gLetter = newLetter;&lt;br /&gt;
    render();&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Alphabet&lt;br /&gt;
function nextLetter(bl) {&lt;br /&gt;
    if (gAnimation) {&lt;br /&gt;
        myStopFunction(bl);&lt;br /&gt;
        gLetterIndex = (gLetterIndex + 1) % gText.length;&lt;br /&gt;
        gLetter = gText[gLetterIndex];&lt;br /&gt;
        render();&lt;br /&gt;
  }&lt;br /&gt;
  console.log (&#039;Next Letter&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Alles aufrufen&lt;br /&gt;
function render() {&lt;br /&gt;
    cleanup();&lt;br /&gt;
    start();&lt;br /&gt;
    clip_grid();&lt;br /&gt;
    cleanup();&lt;br /&gt;
    prepare();&lt;br /&gt;
    var drw=window.setInterval(function(){draw(res);},intv/(2*faktor));&lt;br /&gt;
    var stp=window.setTimeout(function(){nextLetter(drw);},intv*res.length/(faktor/2));&lt;br /&gt;
    console.log (&#039;Render&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
console.log (&#039;Start Project&#039;);&lt;br /&gt;
render();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80874</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80874"/>
		<updated>2016-04-07T20:38:23Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: /* main.js */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Letter Homework ==&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Homework 2.1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a very simple Code-Font. It&#039;s just for Capital Letters and there are rectangles from A to Z. These Rectangles become smaller from A to Z. A is the biggest and Z a dot.&lt;br /&gt;
&lt;br /&gt;
[[Image:Simplefont_const.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image Simple Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//import library&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
&lt;br /&gt;
// new Font&lt;br /&gt;
Fontastic f;&lt;br /&gt;
int version = 0;&lt;br /&gt;
&lt;br /&gt;
// Settings&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(600, 300);&lt;br /&gt;
  fill(55);&lt;br /&gt;
  createFont(); // create the font&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Zeichnenfunktion&lt;br /&gt;
void draw() {  &lt;br /&gt;
  background(255);&lt;br /&gt;
  PFont myFont = createFont(f.getTTFfilename(), 64); // reading the font that has just been created&lt;br /&gt;
&lt;br /&gt;
  textFont(myFont);&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  text(Fontastic.alphabet, 0, Fontastic.alphabet.length/2, width/2, height/3);&lt;br /&gt;
  text(Fontastic.alphabet, Fontastic.alphabet.length/2, Fontastic.alphabet.length, width/2, height/3*2);&lt;br /&gt;
&lt;br /&gt;
  noLoop();&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
&lt;br /&gt;
  if (f != null) { f.cleanup(); }&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;simpleFont&amp;quot; + nf(version,4));&lt;br /&gt;
&lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;1.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(600);&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;Fontastic.alphabet.length; i++) {&lt;br /&gt;
    &lt;br /&gt;
    char c = Fontastic.alphabet[i];&lt;br /&gt;
    &lt;br /&gt;
    PVector[] points = new PVector[4];&lt;br /&gt;
    &lt;br /&gt;
    int maxwidth = 512-i*19;&lt;br /&gt;
    int maxheight = 1024-i*39;&lt;br /&gt;
    &lt;br /&gt;
    points[0] = new PVector(0, 0);&lt;br /&gt;
    points[1] = new PVector(maxwidth, 0);&lt;br /&gt;
    points[2] = new PVector(maxwidth, maxheight);&lt;br /&gt;
    points[3] = new PVector(0, maxheight);&lt;br /&gt;
    &lt;br /&gt;
    f.addGlyph(c).addContour(points);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.buildFont();&lt;br /&gt;
  f.cleanup();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Homework 2.2 ==&lt;br /&gt;
&lt;br /&gt;
This programm &amp;quot;distort&amp;quot; the font &amp;quot;BEBAS&amp;quot; with triangles. There triangles on the contour of 5 origonal letters of this font. With the position of the mouse u change in x-coordinates the size of the triangle and in y-coordinates the y-position of the indiviual retangles. If you have your right position u can click any key to save this font.&lt;br /&gt;
&lt;br /&gt;
[[Image:Font_distor_const_03.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_01.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_02.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Images Font Distor Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Triangle Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Libraries&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
import geomerative.*;&lt;br /&gt;
&lt;br /&gt;
Fontastic f;&lt;br /&gt;
RFont font;&lt;br /&gt;
&lt;br /&gt;
PFont myFont;&lt;br /&gt;
int version = 0;&lt;br /&gt;
int charWidth = 512;&lt;br /&gt;
boolean fontBuilt = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  size(800, 800);&lt;br /&gt;
  fill(0);&lt;br /&gt;
&lt;br /&gt;
  // always initialize the library in setup&lt;br /&gt;
  RG.init(this);&lt;br /&gt;
  // load the initial font&lt;br /&gt;
  font = new RFont(&amp;quot;BEBAS.TTF&amp;quot;,150);&lt;br /&gt;
&lt;br /&gt;
  // get the points on the curve&#039;s shape&lt;br /&gt;
  // set style and segment resultion&lt;br /&gt;
  RCommand.setSegmentLength(10);&lt;br /&gt;
  RCommand.setSegmentator(RCommand.UNIFORMLENGTH);&lt;br /&gt;
&lt;br /&gt;
  initFont();&lt;br /&gt;
  updateFont();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  updateFont();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  int numberOfLetters = 5; // the number of letters to display&lt;br /&gt;
  for (int i=0; i&amp;lt;numberOfLetters; i++) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    translate(width/2, height/2);&lt;br /&gt;
    scale(charWidth/500f / 5f);&lt;br /&gt;
    translate(-(numberOfLetters -1)*charWidth / 2 + i*charWidth, 0);&lt;br /&gt;
    translate(-charWidth/2, charWidth/2);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(55);&lt;br /&gt;
    renderGlyphSolid(Fontastic.alphabet[i]);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (fontBuilt) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    textFont(myFont);&lt;br /&gt;
    textAlign(CENTER, CENTER);&lt;br /&gt;
    fill(0);&lt;br /&gt;
    textSize(charWidth / 5f);&lt;br /&gt;
    text(new String(subset(Fontastic.alphabet, 0, numberOfLetters)), width/2, height*0.6);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initFont() {&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;font_distor&amp;quot; + nf(version,4)); // create new Fontastic object&lt;br /&gt;
&lt;br /&gt;
  // add letters to the font, without adding glyph shapes&lt;br /&gt;
  for (char c : Fontastic.alphabet) {   &lt;br /&gt;
    f.addGlyph(c);                      // add all uppercase letters from the alphabet &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.setFontFamilyName(&amp;quot;font_distor&amp;quot;); &lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;0.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(int(charWidth * 1.1));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateFont() {&lt;br /&gt;
  &lt;br /&gt;
  for (char c : Fontastic.alphabet) {&lt;br /&gt;
&lt;br /&gt;
    RShape shp = font.toShape(c);&lt;br /&gt;
    RPoint[] pnts = shp.getPoints();&lt;br /&gt;
&lt;br /&gt;
    f.getGlyph(c).clearContours();&lt;br /&gt;
&lt;br /&gt;
    for (int i=0; i&amp;lt;pnts.length-1; i++) {&lt;br /&gt;
&lt;br /&gt;
      RPoint p = pnts[i];&lt;br /&gt;
      PVector[] points = new PVector[4];&lt;br /&gt;
&lt;br /&gt;
      float circleSize = 40;&lt;br /&gt;
&lt;br /&gt;
      int resolution = 3;&lt;br /&gt;
      points = new PVector[resolution];&lt;br /&gt;
      for (int j=0; j&amp;lt;resolution; j++) {&lt;br /&gt;
        float angle = TWO_PI/(resolution * 1f) * j;&lt;br /&gt;
        float x = p.x * 5 + sin(angle) * circleSize;&lt;br /&gt;
        float y = -p.y * 5 +  cos(angle) * circleSize;&lt;br /&gt;
        y -= (mouseY - height/4f) / height/4f * noise(i * 2+millis()/1000000000000f) * 8000; &lt;br /&gt;
        points[j] = new PVector(x, y);&lt;br /&gt;
        circleSize = circleSize-(mouseX-mouseX*0.85);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      f.getGlyph(c).addContour(points);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  f.buildFont(); // write ttf file&lt;br /&gt;
  f.cleanup();   // delete all glyph files that have been created while building the font&lt;br /&gt;
  &lt;br /&gt;
  fontBuilt = true;&lt;br /&gt;
&lt;br /&gt;
  myFont = createFont(f.getTTFfilename(), 200); // set the font to be used for rendering&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
  &lt;br /&gt;
  initFont();   // and make a new font right away&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// A function to preview a glyph in Processing&lt;br /&gt;
&lt;br /&gt;
void renderGlyphSolid(char c) {&lt;br /&gt;
    &lt;br /&gt;
  FContour[] contours = f.getGlyph(c).getContoursArray();&lt;br /&gt;
&lt;br /&gt;
  for (int j=0; j&amp;lt;contours.length; j++) {&lt;br /&gt;
&lt;br /&gt;
    FPoint[] points = f.getGlyph(c).getContour(j).getPointsArray();&lt;br /&gt;
&lt;br /&gt;
    if (points.length &amp;gt; 0) { //just to be sure    &lt;br /&gt;
      // Draw the solid shape in Processing&lt;br /&gt;
      beginShape();      &lt;br /&gt;
      for (int i=0; i&amp;lt;points.length; i++) {&lt;br /&gt;
        FPoint p1 = points[i];&lt;br /&gt;
        FPoint p2 = points[(i+1)%points.length];&lt;br /&gt;
        if (p1.hasControlPoint2() &amp;amp;&amp;amp; p2.hasControlPoint1()) {&lt;br /&gt;
          if (i == 0) { &lt;br /&gt;
            vertex(points[0].x, -points[0].y);&lt;br /&gt;
          }&lt;br /&gt;
          bezierVertex(p1.controlPoint2.x, -p1.controlPoint2.y, p2.controlPoint1.x, -p2.controlPoint1.y, p2.x, -p2.y);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          vertex(p1.x, -p1.y);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      endShape();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
&lt;br /&gt;
  if (key == &#039;s&#039;) {&lt;br /&gt;
    createFont();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ani C ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Constantin_Letter.gif|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import de.looksgood.ani.*;&lt;br /&gt;
import de.looksgood.ani.easing.*;&lt;br /&gt;
&lt;br /&gt;
float arcbegin = PI-2*QUARTER_PI;&lt;br /&gt;
float arcend = PI+2*QUARTER_PI;&lt;br /&gt;
float newbegin = 0;&lt;br /&gt;
float newend = PI;&lt;br /&gt;
int line_width = 0;&lt;br /&gt;
int thickline = 0;&lt;br /&gt;
int thickserif = 0;&lt;br /&gt;
&lt;br /&gt;
Ani linesAni;&lt;br /&gt;
Ani serifAni;&lt;br /&gt;
Ani linethickAni;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
  smooth();&lt;br /&gt;
  Ani.init(this);&lt;br /&gt;
  linesAni = new Ani(this, 2, 3, &amp;quot;line_width&amp;quot;, 90, Ani.LINEAR);&lt;br /&gt;
  linethickAni = new Ani(this, 1, 3, &amp;quot;thickline&amp;quot;, 30, Ani.LINEAR);&lt;br /&gt;
  serifAni = new Ani(this, 1.5, 3, &amp;quot;thickserif&amp;quot;, 15, Ani.LINEAR);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void draw() {&lt;br /&gt;
 &lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
 &lt;br /&gt;
  background(color_bg);&lt;br /&gt;
 &lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
 &lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, arcbegin, arcend, OPEN);&lt;br /&gt;
  strokeWeight(thickline);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(thickserif);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void mousePressed() {&lt;br /&gt;
  if (mouseButton == LEFT) {&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcbegin&amp;quot;, newbegin, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcend&amp;quot;, newend, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    linesAni.start();&lt;br /&gt;
    linethickAni.start();&lt;br /&gt;
    serifAni.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Ani.to(object, duration, variable name, target position, easing);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Robo Flowers ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Robo_Flower_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:Robo_Flower_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3D Letters ==&lt;br /&gt;
[[Image:3DLetters_Const_00.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bubble Type ==&lt;br /&gt;
This is my final Project for this Course. You can see it [http://bubbletype.constantin-oestreich.de/ here].&lt;br /&gt;
&lt;br /&gt;
My Intention was to make something &amp;quot;growing&amp;quot; which runs without special programms on every computer. For this I used javascript to animate the letters of this 3 Fonts inside the html5 canvas. U can use the buttons to control what you want to see.&lt;br /&gt;
&lt;br /&gt;
=== index.html ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Type&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;style.css&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Title&amp;quot;&amp;gt;&lt;br /&gt;
        Welcome to Bubble Type&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Color&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/green.png&amp;quot; id=&amp;quot;green-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/red.png&amp;quot; id=&amp;quot;red-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/blue.png&amp;quot; id=&amp;quot;blue-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/yellow.png&amp;quot; id=&amp;quot;yellow-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/multi.png&amp;quot; id=&amp;quot;multi-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/grey.png&amp;quot; id=&amp;quot;grey-button&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;!--       &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;green-button&amp;quot;&amp;gt;Green&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;red-button&amp;quot;&amp;gt;Red&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;blue-button&amp;quot;&amp;gt;Blue&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;yellow-button&amp;quot;&amp;gt;Yellow&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;multi-button&amp;quot;&amp;gt;Multi&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;grey-button&amp;quot;&amp;gt;Grey&amp;lt;/button&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Font&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/sans.png&amp;quot; id=&amp;quot;sans&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/serif.png&amp;quot; id=&amp;quot;serif&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/hand.png&amp;quot; id=&amp;quot;hand&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/thin.png&amp;quot; id=&amp;quot;thin&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/medium.png&amp;quot; id=&amp;quot;medium&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/big.png&amp;quot; id=&amp;quot;big&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;sans&amp;quot;&amp;gt;Sans&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;serif&amp;quot;&amp;gt;Serif&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;hand&amp;quot;&amp;gt;Hand&amp;lt;/button&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Size&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;thin&amp;quot;&amp;gt;Thin&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;medium&amp;quot;&amp;gt;Medium&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;big&amp;quot;&amp;gt;Big&amp;lt;/button&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Faktor&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x1.png&amp;quot; id=&amp;quot;x1&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x2.png&amp;quot; id=&amp;quot;x2&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x3.png&amp;quot; id=&amp;quot;x3&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x4.png&amp;quot; id=&amp;quot;x4&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;!--     &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x1&amp;quot;&amp;gt;X1&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x2&amp;quot;&amp;gt;X2&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x3&amp;quot;&amp;gt;X3&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x4&amp;quot;&amp;gt;X4&amp;lt;/button&amp;gt;&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Canvas&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;canvas id=&amp;quot;canvas&amp;quot;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;br /&gt;
        &amp;lt;script src=&amp;quot;main.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style.css ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
@import url(https://fonts.googleapis.com/css?family=Pacifico); &lt;br /&gt;
@import url(https://fonts.googleapis.com/css?family=Gabriela);&lt;br /&gt;
@import url(https://fonts.googleapis.com/css?family=Stalemate);&lt;br /&gt;
&lt;br /&gt;
html, body {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    background: #ebebeb;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
#Title {&lt;br /&gt;
    padding-top: 40px;&lt;br /&gt;
    padding-bottom: 20px;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    color: #d1d1d1;&lt;br /&gt;
    text-shadow: 2px 2px #919191;&lt;br /&gt;
    font-size: 50px;&lt;br /&gt;
    font-family: &#039;Pacifico&#039;, cursive;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Buttons-Color {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 8px;&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
#Buttons-Font {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Buttons-Size {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Buttons-Faktor {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 8px;&lt;br /&gt;
    padding-right: 6px; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Canvas {&lt;br /&gt;
    position: relative;&lt;br /&gt;
    display: block;&lt;br /&gt;
    z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== main.js ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//Globale Variablen&lt;br /&gt;
var greens = new Array(&#039;#1fad0c&#039;,&#039;#199508&#039;,&#039;#1b710f&#039;,&#039;#4d7e0c&#039;,&#039;#6cba07&#039;);&lt;br /&gt;
var reds = new Array(&#039;#66200a&#039;,&#039;#96391d&#039;,&#039;#d34317&#039;,&#039;#ec6338&#039;,&#039;#fb997b&#039;);&lt;br /&gt;
var blues = new Array(&#039;#064077&#039;,&#039;#2565a0&#039;,&#039;#5c97cf&#039;,&#039;#63acef&#039;,&#039;#a8d3fc&#039;);&lt;br /&gt;
var yellows = new Array(&#039;#d8d62c&#039;,&#039;#edeb4c&#039;,&#039;#f7f56f&#039;,&#039;#dcdb82&#039;,&#039;#f6f5b3&#039;);&lt;br /&gt;
var multis = new Array (&#039;#1b710f&#039;,&#039;#4d7e0c&#039;,&#039;#d34317&#039;,&#039;#ec6338&#039;,&#039;#63acef&#039;,&#039;#a8d3fc&#039;,&#039;#dcdb82&#039;,&#039;#f6f5b3&#039;);&lt;br /&gt;
var greys = new Array(&#039;#272727&#039;, &#039;#4a4a4a&#039;, &#039;#717171&#039;, &#039;#a0a0a0&#039;, &#039;#c8c8c8&#039;);&lt;br /&gt;
var fill_color_circle = greens;&lt;br /&gt;
var gLetter = &#039;A&#039;;&lt;br /&gt;
var gText = &#039;ABCDEFGHIJKLMNOPQRSTUVWXYZ&#039;;&lt;br /&gt;
var gLetterIndex = 0;&lt;br /&gt;
var gAnimation = true;&lt;br /&gt;
var Heigh_or_Width = Math.min(window.innerHeight, window.innerWidth);&lt;br /&gt;
var gLetterHigh = Heigh_or_Width*0.4;&lt;br /&gt;
var loadfont = &#039;Arial&#039;;&lt;br /&gt;
var font = gLetterHigh + &#039;px &#039; + loadfont;&lt;br /&gt;
var canvas = document.getElementById(&#039;canvas&#039;);&lt;br /&gt;
canvas.width = window.innerWidth;&lt;br /&gt;
canvas.height = window.innerHeight - document.getElementById(&#039;Title&#039;).offsetHeight;&lt;br /&gt;
var ctx = canvas.getContext(&#039;2d&#039;);&lt;br /&gt;
var Grid_Scale = 250;&lt;br /&gt;
var Grid_Cell_Size = Math.ceil(Heigh_or_Width / Grid_Scale);&lt;br /&gt;
var Clips = [];&lt;br /&gt;
var activeCells = [];&lt;br /&gt;
var intv = 6;&lt;br /&gt;
var minc = 1;&lt;br /&gt;
var maxc = 5;&lt;br /&gt;
var res;&lt;br /&gt;
var faktor = 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Color Buttons&lt;br /&gt;
document.getElementById(&#039;green-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  greens;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;red-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  reds;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;blue-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  blues;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;yellow-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  yellows;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;multi-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  multis;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;grey-button&#039;).onclick=function(){&lt;br /&gt;
    fill_color_circle =  greys;&lt;br /&gt;
    return fill_color_circle;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Font Buttons&lt;br /&gt;
document.getElementById(&#039;sans&#039;).onclick=function(){&lt;br /&gt;
    loadfont = &#039;Arial&#039;;&lt;br /&gt;
    font = gLetterHigh + &#039;px &#039; + loadfont;&lt;br /&gt;
    return font;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;serif&#039;).onclick=function(){&lt;br /&gt;
    loadfont = &#039;Gabriela&#039;;&lt;br /&gt;
    font = gLetterHigh + &#039;px &#039; + loadfont;&lt;br /&gt;
    return font;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;hand&#039;).onclick=function(){&lt;br /&gt;
    loadfont = &#039;Stalemate&#039;;&lt;br /&gt;
    font = gLetterHigh + &#039;px &#039; + loadfont;&lt;br /&gt;
    return font;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//Size Buttons&lt;br /&gt;
document.getElementById(&#039;thin&#039;).onclick=function(){&lt;br /&gt;
    minc = 1;&lt;br /&gt;
    maxc = 5;&lt;br /&gt;
    return minc;&lt;br /&gt;
    return maxc;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;medium&#039;).onclick=function(){&lt;br /&gt;
    minc = 1;&lt;br /&gt;
    maxc = 5;&lt;br /&gt;
    minc = minc*3;&lt;br /&gt;
    maxc = maxc*3;&lt;br /&gt;
    return minc;&lt;br /&gt;
    return maxc;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;big&#039;).onclick=function(){&lt;br /&gt;
    minc = 1;&lt;br /&gt;
    maxc = 5;&lt;br /&gt;
    minc = minc*6;&lt;br /&gt;
    maxc = maxc*6;&lt;br /&gt;
    return minc;&lt;br /&gt;
    return maxc;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//Faktor Buttons&lt;br /&gt;
document.getElementById(&#039;x1&#039;).onclick=function(){&lt;br /&gt;
    faktor = 1;&lt;br /&gt;
    return faktor;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;x2&#039;).onclick=function(){&lt;br /&gt;
    faktor = 3;&lt;br /&gt;
    return faktor;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;x3&#039;).onclick=function(){&lt;br /&gt;
    faktor = 8;&lt;br /&gt;
    return faktor;&lt;br /&gt;
};&lt;br /&gt;
document.getElementById(&#039;x4&#039;).onclick=function(){&lt;br /&gt;
    faktor = 20;&lt;br /&gt;
    return faktor;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Stop Funktion die Animation anhält&lt;br /&gt;
function myStopFunction(b) {&lt;br /&gt;
    clearInterval(b);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Random Choice&lt;br /&gt;
function choice(random_choice) {&lt;br /&gt;
    return random_choice[Math.round(Math.random())]; //0 oder 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Clean Canvas&lt;br /&gt;
function cleanup() {&lt;br /&gt;
    ctx.clearRect(0, 0, canvas.width, canvas.height);&lt;br /&gt;
    console.log (&#039;Clean&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Fonteinstellungen&lt;br /&gt;
function start() {&lt;br /&gt;
    ctx.fillStyle = &#039;white&#039;;&lt;br /&gt;
    ctx.font = font;&lt;br /&gt;
    ctx.textAlign = &#039;center&#039;;&lt;br /&gt;
    ctx.fontWeight=&#039;bold&#039;;&lt;br /&gt;
    ctx.fillText(gLetter, canvas.width/2, gLetterHigh);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Grid erkennen / Array erstellen / x Werte an y Position speichern oder false wnn nicht auf buchstabe&lt;br /&gt;
function clip_grid()&lt;br /&gt;
{&lt;br /&gt;
    for (var y = 0; y &amp;lt; Grid_Scale; y += 1)&lt;br /&gt;
    {&lt;br /&gt;
        var clipColumn = [];&lt;br /&gt;
        clipColumn.length = Grid_Cell_Size;&lt;br /&gt;
        for (var x = 0; x &amp;lt; Grid_Scale; x += 1)&lt;br /&gt;
        {&lt;br /&gt;
            var data = ctx.getImageData(x * Grid_Cell_Size, y * Grid_Cell_Size,Grid_Cell_Size,Grid_Cell_Size);&lt;br /&gt;
            var v = data.data[(Grid_Cell_Size + Grid_Cell_Size)];&lt;br /&gt;
            if (v &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                activeCells.push(data);&lt;br /&gt;
                clipColumn[x] = activeCells.length - 1;&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                clipColumn[x] = false;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        Clips[y] = clipColumn;&lt;br /&gt;
        //console.log (clipColumn);&lt;br /&gt;
    }&lt;br /&gt;
    console.log (&#039;Grid&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Kreis zeichnen&lt;br /&gt;
function circle(centerX,centerY,radius)&lt;br /&gt;
{&lt;br /&gt;
        ctx.beginPath();&lt;br /&gt;
        ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);&lt;br /&gt;
        ctx.fillStyle = fill_color_circle[getRandomInt(0,fill_color_circle.length)]; // Füllen mit zufälliger Farbe aus Liste&lt;br /&gt;
        ctx.fill();&lt;br /&gt;
        ctx.lineWidth = 2;&lt;br /&gt;
        ctx.strokeStyle = fill_color_circle[getRandomInt(0,fill_color_circle.length)]; // Füllen mit zufälliger Farbe aus Liste&lt;br /&gt;
        ctx.stroke();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Randomvariable Kreise&lt;br /&gt;
function getRandomInt(min, max) {&lt;br /&gt;
    return Math.floor(Math.random() * (max - min + 1)) + min;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Grid in finale Liste speichern&lt;br /&gt;
function prepare()&lt;br /&gt;
{&lt;br /&gt;
    var tx = 0;&lt;br /&gt;
    var ty = 0;&lt;br /&gt;
    var a = []; &lt;br /&gt;
    if (canvas.width &amp;gt; canvas.height)&lt;br /&gt;
    {&lt;br /&gt;
        tx = (canvas.width - Heigh_or_Width) / 2;&lt;br /&gt;
    } &lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        ty = (canvas.height - Heigh_or_Width) / 2;&lt;br /&gt;
    }&lt;br /&gt;
    var count=0;&lt;br /&gt;
    for (var y = 0; y &amp;lt; Grid_Scale; y += 1)&lt;br /&gt;
    {&lt;br /&gt;
        for (var x = 0; x &amp;lt; Grid_Scale; x += 1)&lt;br /&gt;
        {&lt;br /&gt;
            var cellData = Clips[y][x];&lt;br /&gt;
            if (cellData !== false)&lt;br /&gt;
            {&lt;br /&gt;
                a[count]= [];&lt;br /&gt;
                var imgData = choice(activeCells);&lt;br /&gt;
                a[count][&#039;0&#039;]=true;&lt;br /&gt;
                a[count][&#039;1&#039;]=x*Grid_Cell_Size;&lt;br /&gt;
                a[count][&#039;2&#039;]=y*Grid_Cell_Size;&lt;br /&gt;
                count++;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    res = a;&lt;br /&gt;
    //console.log (res);&lt;br /&gt;
    console.log (&#039;Prepare&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion:Circle zeichnen auf Punkte im Buchstaben Grid&lt;br /&gt;
function draw(a)&lt;br /&gt;
{&lt;br /&gt;
    var n=-1;&lt;br /&gt;
    if (n&amp;lt;0)&lt;br /&gt;
    {&lt;br /&gt;
        n=getRandomInt(0,a.length);&lt;br /&gt;
        while(a[n][&#039;0&#039;]===false)&lt;br /&gt;
        {&lt;br /&gt;
            n=getRandomInt(0,a.length);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    var rad=getRandomInt(minc,maxc);&lt;br /&gt;
    circle(a[n][&#039;1&#039;],a[n][&#039;2&#039;],rad);&lt;br /&gt;
    console.log (&#039;Draw&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Event Listener auf Keyboardeingabe - beendet Alphabet&lt;br /&gt;
window.addEventListener(&#039;keypress&#039;, function (getLetter) {&lt;br /&gt;
    gAnimation = false;&lt;br /&gt;
    var newLetter = String.fromCharCode(getLetter.keyCode);&lt;br /&gt;
    gLetter = newLetter;&lt;br /&gt;
    render();&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Alphabet&lt;br /&gt;
function nextLetter(bl) {&lt;br /&gt;
    if (gAnimation) {&lt;br /&gt;
        myStopFunction(bl);&lt;br /&gt;
        gLetterIndex = (gLetterIndex + 1) % gText.length;&lt;br /&gt;
        gLetter = gText[gLetterIndex];&lt;br /&gt;
        render();&lt;br /&gt;
  }&lt;br /&gt;
  console.log (&#039;Next Letter&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktion: Alles aufrufen&lt;br /&gt;
function render() {&lt;br /&gt;
    cleanup();&lt;br /&gt;
    start();&lt;br /&gt;
    clip_grid();&lt;br /&gt;
    cleanup();&lt;br /&gt;
    prepare();&lt;br /&gt;
    var drw=window.setInterval(function(){draw(res);},intv/(2*faktor));&lt;br /&gt;
    var stp=window.setTimeout(function(){nextLetter(drw);},intv*res.length/(faktor/2));&lt;br /&gt;
    console.log (&#039;Render&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
console.log (&#039;Start Project&#039;);&lt;br /&gt;
render();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80873</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80873"/>
		<updated>2016-04-07T20:37:58Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: /* style.css */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Letter Homework ==&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Homework 2.1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a very simple Code-Font. It&#039;s just for Capital Letters and there are rectangles from A to Z. These Rectangles become smaller from A to Z. A is the biggest and Z a dot.&lt;br /&gt;
&lt;br /&gt;
[[Image:Simplefont_const.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image Simple Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//import library&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
&lt;br /&gt;
// new Font&lt;br /&gt;
Fontastic f;&lt;br /&gt;
int version = 0;&lt;br /&gt;
&lt;br /&gt;
// Settings&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(600, 300);&lt;br /&gt;
  fill(55);&lt;br /&gt;
  createFont(); // create the font&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Zeichnenfunktion&lt;br /&gt;
void draw() {  &lt;br /&gt;
  background(255);&lt;br /&gt;
  PFont myFont = createFont(f.getTTFfilename(), 64); // reading the font that has just been created&lt;br /&gt;
&lt;br /&gt;
  textFont(myFont);&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  text(Fontastic.alphabet, 0, Fontastic.alphabet.length/2, width/2, height/3);&lt;br /&gt;
  text(Fontastic.alphabet, Fontastic.alphabet.length/2, Fontastic.alphabet.length, width/2, height/3*2);&lt;br /&gt;
&lt;br /&gt;
  noLoop();&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
&lt;br /&gt;
  if (f != null) { f.cleanup(); }&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;simpleFont&amp;quot; + nf(version,4));&lt;br /&gt;
&lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;1.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(600);&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;Fontastic.alphabet.length; i++) {&lt;br /&gt;
    &lt;br /&gt;
    char c = Fontastic.alphabet[i];&lt;br /&gt;
    &lt;br /&gt;
    PVector[] points = new PVector[4];&lt;br /&gt;
    &lt;br /&gt;
    int maxwidth = 512-i*19;&lt;br /&gt;
    int maxheight = 1024-i*39;&lt;br /&gt;
    &lt;br /&gt;
    points[0] = new PVector(0, 0);&lt;br /&gt;
    points[1] = new PVector(maxwidth, 0);&lt;br /&gt;
    points[2] = new PVector(maxwidth, maxheight);&lt;br /&gt;
    points[3] = new PVector(0, maxheight);&lt;br /&gt;
    &lt;br /&gt;
    f.addGlyph(c).addContour(points);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.buildFont();&lt;br /&gt;
  f.cleanup();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Homework 2.2 ==&lt;br /&gt;
&lt;br /&gt;
This programm &amp;quot;distort&amp;quot; the font &amp;quot;BEBAS&amp;quot; with triangles. There triangles on the contour of 5 origonal letters of this font. With the position of the mouse u change in x-coordinates the size of the triangle and in y-coordinates the y-position of the indiviual retangles. If you have your right position u can click any key to save this font.&lt;br /&gt;
&lt;br /&gt;
[[Image:Font_distor_const_03.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_01.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_02.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Images Font Distor Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Triangle Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Libraries&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
import geomerative.*;&lt;br /&gt;
&lt;br /&gt;
Fontastic f;&lt;br /&gt;
RFont font;&lt;br /&gt;
&lt;br /&gt;
PFont myFont;&lt;br /&gt;
int version = 0;&lt;br /&gt;
int charWidth = 512;&lt;br /&gt;
boolean fontBuilt = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  size(800, 800);&lt;br /&gt;
  fill(0);&lt;br /&gt;
&lt;br /&gt;
  // always initialize the library in setup&lt;br /&gt;
  RG.init(this);&lt;br /&gt;
  // load the initial font&lt;br /&gt;
  font = new RFont(&amp;quot;BEBAS.TTF&amp;quot;,150);&lt;br /&gt;
&lt;br /&gt;
  // get the points on the curve&#039;s shape&lt;br /&gt;
  // set style and segment resultion&lt;br /&gt;
  RCommand.setSegmentLength(10);&lt;br /&gt;
  RCommand.setSegmentator(RCommand.UNIFORMLENGTH);&lt;br /&gt;
&lt;br /&gt;
  initFont();&lt;br /&gt;
  updateFont();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  updateFont();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  int numberOfLetters = 5; // the number of letters to display&lt;br /&gt;
  for (int i=0; i&amp;lt;numberOfLetters; i++) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    translate(width/2, height/2);&lt;br /&gt;
    scale(charWidth/500f / 5f);&lt;br /&gt;
    translate(-(numberOfLetters -1)*charWidth / 2 + i*charWidth, 0);&lt;br /&gt;
    translate(-charWidth/2, charWidth/2);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(55);&lt;br /&gt;
    renderGlyphSolid(Fontastic.alphabet[i]);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (fontBuilt) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    textFont(myFont);&lt;br /&gt;
    textAlign(CENTER, CENTER);&lt;br /&gt;
    fill(0);&lt;br /&gt;
    textSize(charWidth / 5f);&lt;br /&gt;
    text(new String(subset(Fontastic.alphabet, 0, numberOfLetters)), width/2, height*0.6);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initFont() {&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;font_distor&amp;quot; + nf(version,4)); // create new Fontastic object&lt;br /&gt;
&lt;br /&gt;
  // add letters to the font, without adding glyph shapes&lt;br /&gt;
  for (char c : Fontastic.alphabet) {   &lt;br /&gt;
    f.addGlyph(c);                      // add all uppercase letters from the alphabet &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.setFontFamilyName(&amp;quot;font_distor&amp;quot;); &lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;0.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(int(charWidth * 1.1));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateFont() {&lt;br /&gt;
  &lt;br /&gt;
  for (char c : Fontastic.alphabet) {&lt;br /&gt;
&lt;br /&gt;
    RShape shp = font.toShape(c);&lt;br /&gt;
    RPoint[] pnts = shp.getPoints();&lt;br /&gt;
&lt;br /&gt;
    f.getGlyph(c).clearContours();&lt;br /&gt;
&lt;br /&gt;
    for (int i=0; i&amp;lt;pnts.length-1; i++) {&lt;br /&gt;
&lt;br /&gt;
      RPoint p = pnts[i];&lt;br /&gt;
      PVector[] points = new PVector[4];&lt;br /&gt;
&lt;br /&gt;
      float circleSize = 40;&lt;br /&gt;
&lt;br /&gt;
      int resolution = 3;&lt;br /&gt;
      points = new PVector[resolution];&lt;br /&gt;
      for (int j=0; j&amp;lt;resolution; j++) {&lt;br /&gt;
        float angle = TWO_PI/(resolution * 1f) * j;&lt;br /&gt;
        float x = p.x * 5 + sin(angle) * circleSize;&lt;br /&gt;
        float y = -p.y * 5 +  cos(angle) * circleSize;&lt;br /&gt;
        y -= (mouseY - height/4f) / height/4f * noise(i * 2+millis()/1000000000000f) * 8000; &lt;br /&gt;
        points[j] = new PVector(x, y);&lt;br /&gt;
        circleSize = circleSize-(mouseX-mouseX*0.85);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      f.getGlyph(c).addContour(points);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  f.buildFont(); // write ttf file&lt;br /&gt;
  f.cleanup();   // delete all glyph files that have been created while building the font&lt;br /&gt;
  &lt;br /&gt;
  fontBuilt = true;&lt;br /&gt;
&lt;br /&gt;
  myFont = createFont(f.getTTFfilename(), 200); // set the font to be used for rendering&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
  &lt;br /&gt;
  initFont();   // and make a new font right away&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// A function to preview a glyph in Processing&lt;br /&gt;
&lt;br /&gt;
void renderGlyphSolid(char c) {&lt;br /&gt;
    &lt;br /&gt;
  FContour[] contours = f.getGlyph(c).getContoursArray();&lt;br /&gt;
&lt;br /&gt;
  for (int j=0; j&amp;lt;contours.length; j++) {&lt;br /&gt;
&lt;br /&gt;
    FPoint[] points = f.getGlyph(c).getContour(j).getPointsArray();&lt;br /&gt;
&lt;br /&gt;
    if (points.length &amp;gt; 0) { //just to be sure    &lt;br /&gt;
      // Draw the solid shape in Processing&lt;br /&gt;
      beginShape();      &lt;br /&gt;
      for (int i=0; i&amp;lt;points.length; i++) {&lt;br /&gt;
        FPoint p1 = points[i];&lt;br /&gt;
        FPoint p2 = points[(i+1)%points.length];&lt;br /&gt;
        if (p1.hasControlPoint2() &amp;amp;&amp;amp; p2.hasControlPoint1()) {&lt;br /&gt;
          if (i == 0) { &lt;br /&gt;
            vertex(points[0].x, -points[0].y);&lt;br /&gt;
          }&lt;br /&gt;
          bezierVertex(p1.controlPoint2.x, -p1.controlPoint2.y, p2.controlPoint1.x, -p2.controlPoint1.y, p2.x, -p2.y);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          vertex(p1.x, -p1.y);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      endShape();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
&lt;br /&gt;
  if (key == &#039;s&#039;) {&lt;br /&gt;
    createFont();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ani C ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Constantin_Letter.gif|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import de.looksgood.ani.*;&lt;br /&gt;
import de.looksgood.ani.easing.*;&lt;br /&gt;
&lt;br /&gt;
float arcbegin = PI-2*QUARTER_PI;&lt;br /&gt;
float arcend = PI+2*QUARTER_PI;&lt;br /&gt;
float newbegin = 0;&lt;br /&gt;
float newend = PI;&lt;br /&gt;
int line_width = 0;&lt;br /&gt;
int thickline = 0;&lt;br /&gt;
int thickserif = 0;&lt;br /&gt;
&lt;br /&gt;
Ani linesAni;&lt;br /&gt;
Ani serifAni;&lt;br /&gt;
Ani linethickAni;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
  smooth();&lt;br /&gt;
  Ani.init(this);&lt;br /&gt;
  linesAni = new Ani(this, 2, 3, &amp;quot;line_width&amp;quot;, 90, Ani.LINEAR);&lt;br /&gt;
  linethickAni = new Ani(this, 1, 3, &amp;quot;thickline&amp;quot;, 30, Ani.LINEAR);&lt;br /&gt;
  serifAni = new Ani(this, 1.5, 3, &amp;quot;thickserif&amp;quot;, 15, Ani.LINEAR);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void draw() {&lt;br /&gt;
 &lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
 &lt;br /&gt;
  background(color_bg);&lt;br /&gt;
 &lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
 &lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, arcbegin, arcend, OPEN);&lt;br /&gt;
  strokeWeight(thickline);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(thickserif);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void mousePressed() {&lt;br /&gt;
  if (mouseButton == LEFT) {&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcbegin&amp;quot;, newbegin, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcend&amp;quot;, newend, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    linesAni.start();&lt;br /&gt;
    linethickAni.start();&lt;br /&gt;
    serifAni.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Ani.to(object, duration, variable name, target position, easing);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Robo Flowers ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Robo_Flower_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:Robo_Flower_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3D Letters ==&lt;br /&gt;
[[Image:3DLetters_Const_00.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bubble Type ==&lt;br /&gt;
This is my final Project for this Course. You can see it [http://bubbletype.constantin-oestreich.de/ here].&lt;br /&gt;
&lt;br /&gt;
My Intention was to make something &amp;quot;growing&amp;quot; which runs without special programms on every computer. For this I used javascript to animate the letters of this 3 Fonts inside the html5 canvas. U can use the buttons to control what you want to see.&lt;br /&gt;
&lt;br /&gt;
=== index.html ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Type&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;style.css&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Title&amp;quot;&amp;gt;&lt;br /&gt;
        Welcome to Bubble Type&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Color&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/green.png&amp;quot; id=&amp;quot;green-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/red.png&amp;quot; id=&amp;quot;red-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/blue.png&amp;quot; id=&amp;quot;blue-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/yellow.png&amp;quot; id=&amp;quot;yellow-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/multi.png&amp;quot; id=&amp;quot;multi-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/grey.png&amp;quot; id=&amp;quot;grey-button&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;!--       &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;green-button&amp;quot;&amp;gt;Green&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;red-button&amp;quot;&amp;gt;Red&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;blue-button&amp;quot;&amp;gt;Blue&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;yellow-button&amp;quot;&amp;gt;Yellow&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;multi-button&amp;quot;&amp;gt;Multi&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;grey-button&amp;quot;&amp;gt;Grey&amp;lt;/button&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Font&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/sans.png&amp;quot; id=&amp;quot;sans&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/serif.png&amp;quot; id=&amp;quot;serif&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/hand.png&amp;quot; id=&amp;quot;hand&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/thin.png&amp;quot; id=&amp;quot;thin&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/medium.png&amp;quot; id=&amp;quot;medium&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/big.png&amp;quot; id=&amp;quot;big&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;sans&amp;quot;&amp;gt;Sans&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;serif&amp;quot;&amp;gt;Serif&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;hand&amp;quot;&amp;gt;Hand&amp;lt;/button&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Size&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;thin&amp;quot;&amp;gt;Thin&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;medium&amp;quot;&amp;gt;Medium&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;big&amp;quot;&amp;gt;Big&amp;lt;/button&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Faktor&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x1.png&amp;quot; id=&amp;quot;x1&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x2.png&amp;quot; id=&amp;quot;x2&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x3.png&amp;quot; id=&amp;quot;x3&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x4.png&amp;quot; id=&amp;quot;x4&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;!--     &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x1&amp;quot;&amp;gt;X1&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x2&amp;quot;&amp;gt;X2&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x3&amp;quot;&amp;gt;X3&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x4&amp;quot;&amp;gt;X4&amp;lt;/button&amp;gt;&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Canvas&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;canvas id=&amp;quot;canvas&amp;quot;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;br /&gt;
        &amp;lt;script src=&amp;quot;main.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style.css ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
@import url(https://fonts.googleapis.com/css?family=Pacifico); &lt;br /&gt;
@import url(https://fonts.googleapis.com/css?family=Gabriela);&lt;br /&gt;
@import url(https://fonts.googleapis.com/css?family=Stalemate);&lt;br /&gt;
&lt;br /&gt;
html, body {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    background: #ebebeb;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
#Title {&lt;br /&gt;
    padding-top: 40px;&lt;br /&gt;
    padding-bottom: 20px;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    color: #d1d1d1;&lt;br /&gt;
    text-shadow: 2px 2px #919191;&lt;br /&gt;
    font-size: 50px;&lt;br /&gt;
    font-family: &#039;Pacifico&#039;, cursive;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Buttons-Color {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 8px;&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
#Buttons-Font {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Buttons-Size {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Buttons-Faktor {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 8px;&lt;br /&gt;
    padding-right: 6px; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Canvas {&lt;br /&gt;
    position: relative;&lt;br /&gt;
    display: block;&lt;br /&gt;
    z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== main.js ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80872</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80872"/>
		<updated>2016-04-07T20:37:06Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: /* index.html */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Letter Homework ==&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Homework 2.1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a very simple Code-Font. It&#039;s just for Capital Letters and there are rectangles from A to Z. These Rectangles become smaller from A to Z. A is the biggest and Z a dot.&lt;br /&gt;
&lt;br /&gt;
[[Image:Simplefont_const.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image Simple Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//import library&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
&lt;br /&gt;
// new Font&lt;br /&gt;
Fontastic f;&lt;br /&gt;
int version = 0;&lt;br /&gt;
&lt;br /&gt;
// Settings&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(600, 300);&lt;br /&gt;
  fill(55);&lt;br /&gt;
  createFont(); // create the font&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Zeichnenfunktion&lt;br /&gt;
void draw() {  &lt;br /&gt;
  background(255);&lt;br /&gt;
  PFont myFont = createFont(f.getTTFfilename(), 64); // reading the font that has just been created&lt;br /&gt;
&lt;br /&gt;
  textFont(myFont);&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  text(Fontastic.alphabet, 0, Fontastic.alphabet.length/2, width/2, height/3);&lt;br /&gt;
  text(Fontastic.alphabet, Fontastic.alphabet.length/2, Fontastic.alphabet.length, width/2, height/3*2);&lt;br /&gt;
&lt;br /&gt;
  noLoop();&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
&lt;br /&gt;
  if (f != null) { f.cleanup(); }&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;simpleFont&amp;quot; + nf(version,4));&lt;br /&gt;
&lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;1.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(600);&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;Fontastic.alphabet.length; i++) {&lt;br /&gt;
    &lt;br /&gt;
    char c = Fontastic.alphabet[i];&lt;br /&gt;
    &lt;br /&gt;
    PVector[] points = new PVector[4];&lt;br /&gt;
    &lt;br /&gt;
    int maxwidth = 512-i*19;&lt;br /&gt;
    int maxheight = 1024-i*39;&lt;br /&gt;
    &lt;br /&gt;
    points[0] = new PVector(0, 0);&lt;br /&gt;
    points[1] = new PVector(maxwidth, 0);&lt;br /&gt;
    points[2] = new PVector(maxwidth, maxheight);&lt;br /&gt;
    points[3] = new PVector(0, maxheight);&lt;br /&gt;
    &lt;br /&gt;
    f.addGlyph(c).addContour(points);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.buildFont();&lt;br /&gt;
  f.cleanup();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Homework 2.2 ==&lt;br /&gt;
&lt;br /&gt;
This programm &amp;quot;distort&amp;quot; the font &amp;quot;BEBAS&amp;quot; with triangles. There triangles on the contour of 5 origonal letters of this font. With the position of the mouse u change in x-coordinates the size of the triangle and in y-coordinates the y-position of the indiviual retangles. If you have your right position u can click any key to save this font.&lt;br /&gt;
&lt;br /&gt;
[[Image:Font_distor_const_03.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_01.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_02.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Images Font Distor Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Triangle Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Libraries&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
import geomerative.*;&lt;br /&gt;
&lt;br /&gt;
Fontastic f;&lt;br /&gt;
RFont font;&lt;br /&gt;
&lt;br /&gt;
PFont myFont;&lt;br /&gt;
int version = 0;&lt;br /&gt;
int charWidth = 512;&lt;br /&gt;
boolean fontBuilt = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  size(800, 800);&lt;br /&gt;
  fill(0);&lt;br /&gt;
&lt;br /&gt;
  // always initialize the library in setup&lt;br /&gt;
  RG.init(this);&lt;br /&gt;
  // load the initial font&lt;br /&gt;
  font = new RFont(&amp;quot;BEBAS.TTF&amp;quot;,150);&lt;br /&gt;
&lt;br /&gt;
  // get the points on the curve&#039;s shape&lt;br /&gt;
  // set style and segment resultion&lt;br /&gt;
  RCommand.setSegmentLength(10);&lt;br /&gt;
  RCommand.setSegmentator(RCommand.UNIFORMLENGTH);&lt;br /&gt;
&lt;br /&gt;
  initFont();&lt;br /&gt;
  updateFont();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  updateFont();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  int numberOfLetters = 5; // the number of letters to display&lt;br /&gt;
  for (int i=0; i&amp;lt;numberOfLetters; i++) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    translate(width/2, height/2);&lt;br /&gt;
    scale(charWidth/500f / 5f);&lt;br /&gt;
    translate(-(numberOfLetters -1)*charWidth / 2 + i*charWidth, 0);&lt;br /&gt;
    translate(-charWidth/2, charWidth/2);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(55);&lt;br /&gt;
    renderGlyphSolid(Fontastic.alphabet[i]);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (fontBuilt) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    textFont(myFont);&lt;br /&gt;
    textAlign(CENTER, CENTER);&lt;br /&gt;
    fill(0);&lt;br /&gt;
    textSize(charWidth / 5f);&lt;br /&gt;
    text(new String(subset(Fontastic.alphabet, 0, numberOfLetters)), width/2, height*0.6);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initFont() {&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;font_distor&amp;quot; + nf(version,4)); // create new Fontastic object&lt;br /&gt;
&lt;br /&gt;
  // add letters to the font, without adding glyph shapes&lt;br /&gt;
  for (char c : Fontastic.alphabet) {   &lt;br /&gt;
    f.addGlyph(c);                      // add all uppercase letters from the alphabet &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.setFontFamilyName(&amp;quot;font_distor&amp;quot;); &lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;0.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(int(charWidth * 1.1));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateFont() {&lt;br /&gt;
  &lt;br /&gt;
  for (char c : Fontastic.alphabet) {&lt;br /&gt;
&lt;br /&gt;
    RShape shp = font.toShape(c);&lt;br /&gt;
    RPoint[] pnts = shp.getPoints();&lt;br /&gt;
&lt;br /&gt;
    f.getGlyph(c).clearContours();&lt;br /&gt;
&lt;br /&gt;
    for (int i=0; i&amp;lt;pnts.length-1; i++) {&lt;br /&gt;
&lt;br /&gt;
      RPoint p = pnts[i];&lt;br /&gt;
      PVector[] points = new PVector[4];&lt;br /&gt;
&lt;br /&gt;
      float circleSize = 40;&lt;br /&gt;
&lt;br /&gt;
      int resolution = 3;&lt;br /&gt;
      points = new PVector[resolution];&lt;br /&gt;
      for (int j=0; j&amp;lt;resolution; j++) {&lt;br /&gt;
        float angle = TWO_PI/(resolution * 1f) * j;&lt;br /&gt;
        float x = p.x * 5 + sin(angle) * circleSize;&lt;br /&gt;
        float y = -p.y * 5 +  cos(angle) * circleSize;&lt;br /&gt;
        y -= (mouseY - height/4f) / height/4f * noise(i * 2+millis()/1000000000000f) * 8000; &lt;br /&gt;
        points[j] = new PVector(x, y);&lt;br /&gt;
        circleSize = circleSize-(mouseX-mouseX*0.85);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      f.getGlyph(c).addContour(points);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  f.buildFont(); // write ttf file&lt;br /&gt;
  f.cleanup();   // delete all glyph files that have been created while building the font&lt;br /&gt;
  &lt;br /&gt;
  fontBuilt = true;&lt;br /&gt;
&lt;br /&gt;
  myFont = createFont(f.getTTFfilename(), 200); // set the font to be used for rendering&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
  &lt;br /&gt;
  initFont();   // and make a new font right away&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// A function to preview a glyph in Processing&lt;br /&gt;
&lt;br /&gt;
void renderGlyphSolid(char c) {&lt;br /&gt;
    &lt;br /&gt;
  FContour[] contours = f.getGlyph(c).getContoursArray();&lt;br /&gt;
&lt;br /&gt;
  for (int j=0; j&amp;lt;contours.length; j++) {&lt;br /&gt;
&lt;br /&gt;
    FPoint[] points = f.getGlyph(c).getContour(j).getPointsArray();&lt;br /&gt;
&lt;br /&gt;
    if (points.length &amp;gt; 0) { //just to be sure    &lt;br /&gt;
      // Draw the solid shape in Processing&lt;br /&gt;
      beginShape();      &lt;br /&gt;
      for (int i=0; i&amp;lt;points.length; i++) {&lt;br /&gt;
        FPoint p1 = points[i];&lt;br /&gt;
        FPoint p2 = points[(i+1)%points.length];&lt;br /&gt;
        if (p1.hasControlPoint2() &amp;amp;&amp;amp; p2.hasControlPoint1()) {&lt;br /&gt;
          if (i == 0) { &lt;br /&gt;
            vertex(points[0].x, -points[0].y);&lt;br /&gt;
          }&lt;br /&gt;
          bezierVertex(p1.controlPoint2.x, -p1.controlPoint2.y, p2.controlPoint1.x, -p2.controlPoint1.y, p2.x, -p2.y);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          vertex(p1.x, -p1.y);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      endShape();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
&lt;br /&gt;
  if (key == &#039;s&#039;) {&lt;br /&gt;
    createFont();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ani C ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Constantin_Letter.gif|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import de.looksgood.ani.*;&lt;br /&gt;
import de.looksgood.ani.easing.*;&lt;br /&gt;
&lt;br /&gt;
float arcbegin = PI-2*QUARTER_PI;&lt;br /&gt;
float arcend = PI+2*QUARTER_PI;&lt;br /&gt;
float newbegin = 0;&lt;br /&gt;
float newend = PI;&lt;br /&gt;
int line_width = 0;&lt;br /&gt;
int thickline = 0;&lt;br /&gt;
int thickserif = 0;&lt;br /&gt;
&lt;br /&gt;
Ani linesAni;&lt;br /&gt;
Ani serifAni;&lt;br /&gt;
Ani linethickAni;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
  smooth();&lt;br /&gt;
  Ani.init(this);&lt;br /&gt;
  linesAni = new Ani(this, 2, 3, &amp;quot;line_width&amp;quot;, 90, Ani.LINEAR);&lt;br /&gt;
  linethickAni = new Ani(this, 1, 3, &amp;quot;thickline&amp;quot;, 30, Ani.LINEAR);&lt;br /&gt;
  serifAni = new Ani(this, 1.5, 3, &amp;quot;thickserif&amp;quot;, 15, Ani.LINEAR);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void draw() {&lt;br /&gt;
 &lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
 &lt;br /&gt;
  background(color_bg);&lt;br /&gt;
 &lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
 &lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, arcbegin, arcend, OPEN);&lt;br /&gt;
  strokeWeight(thickline);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(thickserif);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void mousePressed() {&lt;br /&gt;
  if (mouseButton == LEFT) {&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcbegin&amp;quot;, newbegin, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcend&amp;quot;, newend, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    linesAni.start();&lt;br /&gt;
    linethickAni.start();&lt;br /&gt;
    serifAni.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Ani.to(object, duration, variable name, target position, easing);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Robo Flowers ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Robo_Flower_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:Robo_Flower_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3D Letters ==&lt;br /&gt;
[[Image:3DLetters_Const_00.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bubble Type ==&lt;br /&gt;
This is my final Project for this Course. You can see it [http://bubbletype.constantin-oestreich.de/ here].&lt;br /&gt;
&lt;br /&gt;
My Intention was to make something &amp;quot;growing&amp;quot; which runs without special programms on every computer. For this I used javascript to animate the letters of this 3 Fonts inside the html5 canvas. U can use the buttons to control what you want to see.&lt;br /&gt;
&lt;br /&gt;
=== index.html ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Type&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;style.css&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Title&amp;quot;&amp;gt;&lt;br /&gt;
        Welcome to Bubble Type&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Color&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/green.png&amp;quot; id=&amp;quot;green-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/red.png&amp;quot; id=&amp;quot;red-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/blue.png&amp;quot; id=&amp;quot;blue-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/yellow.png&amp;quot; id=&amp;quot;yellow-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/multi.png&amp;quot; id=&amp;quot;multi-button&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/grey.png&amp;quot; id=&amp;quot;grey-button&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;!--       &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;green-button&amp;quot;&amp;gt;Green&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;red-button&amp;quot;&amp;gt;Red&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;blue-button&amp;quot;&amp;gt;Blue&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;yellow-button&amp;quot;&amp;gt;Yellow&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;multi-button&amp;quot;&amp;gt;Multi&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;grey-button&amp;quot;&amp;gt;Grey&amp;lt;/button&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Font&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/sans.png&amp;quot; id=&amp;quot;sans&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/serif.png&amp;quot; id=&amp;quot;serif&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/hand.png&amp;quot; id=&amp;quot;hand&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/thin.png&amp;quot; id=&amp;quot;thin&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/medium.png&amp;quot; id=&amp;quot;medium&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/big.png&amp;quot; id=&amp;quot;big&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;sans&amp;quot;&amp;gt;Sans&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;serif&amp;quot;&amp;gt;Serif&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;hand&amp;quot;&amp;gt;Hand&amp;lt;/button&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Size&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;thin&amp;quot;&amp;gt;Thin&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;medium&amp;quot;&amp;gt;Medium&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;big&amp;quot;&amp;gt;Big&amp;lt;/button&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;Buttons-Faktor&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x1.png&amp;quot; id=&amp;quot;x1&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x2.png&amp;quot; id=&amp;quot;x2&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x3.png&amp;quot; id=&amp;quot;x3&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;img/buttons/x4.png&amp;quot; id=&amp;quot;x4&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;!--     &lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x1&amp;quot;&amp;gt;X1&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x2&amp;quot;&amp;gt;X2&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x3&amp;quot;&amp;gt;X3&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;x4&amp;quot;&amp;gt;X4&amp;lt;/button&amp;gt;&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;div id=&amp;quot;Canvas&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;canvas id=&amp;quot;canvas&amp;quot;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;br /&gt;
        &amp;lt;script src=&amp;quot;main.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style.css ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== main.js ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80871</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80871"/>
		<updated>2016-04-07T20:34:07Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Letter Homework ==&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Homework 2.1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a very simple Code-Font. It&#039;s just for Capital Letters and there are rectangles from A to Z. These Rectangles become smaller from A to Z. A is the biggest and Z a dot.&lt;br /&gt;
&lt;br /&gt;
[[Image:Simplefont_const.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image Simple Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//import library&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
&lt;br /&gt;
// new Font&lt;br /&gt;
Fontastic f;&lt;br /&gt;
int version = 0;&lt;br /&gt;
&lt;br /&gt;
// Settings&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(600, 300);&lt;br /&gt;
  fill(55);&lt;br /&gt;
  createFont(); // create the font&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Zeichnenfunktion&lt;br /&gt;
void draw() {  &lt;br /&gt;
  background(255);&lt;br /&gt;
  PFont myFont = createFont(f.getTTFfilename(), 64); // reading the font that has just been created&lt;br /&gt;
&lt;br /&gt;
  textFont(myFont);&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  text(Fontastic.alphabet, 0, Fontastic.alphabet.length/2, width/2, height/3);&lt;br /&gt;
  text(Fontastic.alphabet, Fontastic.alphabet.length/2, Fontastic.alphabet.length, width/2, height/3*2);&lt;br /&gt;
&lt;br /&gt;
  noLoop();&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
&lt;br /&gt;
  if (f != null) { f.cleanup(); }&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;simpleFont&amp;quot; + nf(version,4));&lt;br /&gt;
&lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;1.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(600);&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;Fontastic.alphabet.length; i++) {&lt;br /&gt;
    &lt;br /&gt;
    char c = Fontastic.alphabet[i];&lt;br /&gt;
    &lt;br /&gt;
    PVector[] points = new PVector[4];&lt;br /&gt;
    &lt;br /&gt;
    int maxwidth = 512-i*19;&lt;br /&gt;
    int maxheight = 1024-i*39;&lt;br /&gt;
    &lt;br /&gt;
    points[0] = new PVector(0, 0);&lt;br /&gt;
    points[1] = new PVector(maxwidth, 0);&lt;br /&gt;
    points[2] = new PVector(maxwidth, maxheight);&lt;br /&gt;
    points[3] = new PVector(0, maxheight);&lt;br /&gt;
    &lt;br /&gt;
    f.addGlyph(c).addContour(points);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.buildFont();&lt;br /&gt;
  f.cleanup();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Homework 2.2 ==&lt;br /&gt;
&lt;br /&gt;
This programm &amp;quot;distort&amp;quot; the font &amp;quot;BEBAS&amp;quot; with triangles. There triangles on the contour of 5 origonal letters of this font. With the position of the mouse u change in x-coordinates the size of the triangle and in y-coordinates the y-position of the indiviual retangles. If you have your right position u can click any key to save this font.&lt;br /&gt;
&lt;br /&gt;
[[Image:Font_distor_const_03.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_01.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_02.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Images Font Distor Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Triangle Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Libraries&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
import geomerative.*;&lt;br /&gt;
&lt;br /&gt;
Fontastic f;&lt;br /&gt;
RFont font;&lt;br /&gt;
&lt;br /&gt;
PFont myFont;&lt;br /&gt;
int version = 0;&lt;br /&gt;
int charWidth = 512;&lt;br /&gt;
boolean fontBuilt = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  size(800, 800);&lt;br /&gt;
  fill(0);&lt;br /&gt;
&lt;br /&gt;
  // always initialize the library in setup&lt;br /&gt;
  RG.init(this);&lt;br /&gt;
  // load the initial font&lt;br /&gt;
  font = new RFont(&amp;quot;BEBAS.TTF&amp;quot;,150);&lt;br /&gt;
&lt;br /&gt;
  // get the points on the curve&#039;s shape&lt;br /&gt;
  // set style and segment resultion&lt;br /&gt;
  RCommand.setSegmentLength(10);&lt;br /&gt;
  RCommand.setSegmentator(RCommand.UNIFORMLENGTH);&lt;br /&gt;
&lt;br /&gt;
  initFont();&lt;br /&gt;
  updateFont();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  updateFont();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  int numberOfLetters = 5; // the number of letters to display&lt;br /&gt;
  for (int i=0; i&amp;lt;numberOfLetters; i++) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    translate(width/2, height/2);&lt;br /&gt;
    scale(charWidth/500f / 5f);&lt;br /&gt;
    translate(-(numberOfLetters -1)*charWidth / 2 + i*charWidth, 0);&lt;br /&gt;
    translate(-charWidth/2, charWidth/2);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(55);&lt;br /&gt;
    renderGlyphSolid(Fontastic.alphabet[i]);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (fontBuilt) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    textFont(myFont);&lt;br /&gt;
    textAlign(CENTER, CENTER);&lt;br /&gt;
    fill(0);&lt;br /&gt;
    textSize(charWidth / 5f);&lt;br /&gt;
    text(new String(subset(Fontastic.alphabet, 0, numberOfLetters)), width/2, height*0.6);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initFont() {&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;font_distor&amp;quot; + nf(version,4)); // create new Fontastic object&lt;br /&gt;
&lt;br /&gt;
  // add letters to the font, without adding glyph shapes&lt;br /&gt;
  for (char c : Fontastic.alphabet) {   &lt;br /&gt;
    f.addGlyph(c);                      // add all uppercase letters from the alphabet &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.setFontFamilyName(&amp;quot;font_distor&amp;quot;); &lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;0.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(int(charWidth * 1.1));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateFont() {&lt;br /&gt;
  &lt;br /&gt;
  for (char c : Fontastic.alphabet) {&lt;br /&gt;
&lt;br /&gt;
    RShape shp = font.toShape(c);&lt;br /&gt;
    RPoint[] pnts = shp.getPoints();&lt;br /&gt;
&lt;br /&gt;
    f.getGlyph(c).clearContours();&lt;br /&gt;
&lt;br /&gt;
    for (int i=0; i&amp;lt;pnts.length-1; i++) {&lt;br /&gt;
&lt;br /&gt;
      RPoint p = pnts[i];&lt;br /&gt;
      PVector[] points = new PVector[4];&lt;br /&gt;
&lt;br /&gt;
      float circleSize = 40;&lt;br /&gt;
&lt;br /&gt;
      int resolution = 3;&lt;br /&gt;
      points = new PVector[resolution];&lt;br /&gt;
      for (int j=0; j&amp;lt;resolution; j++) {&lt;br /&gt;
        float angle = TWO_PI/(resolution * 1f) * j;&lt;br /&gt;
        float x = p.x * 5 + sin(angle) * circleSize;&lt;br /&gt;
        float y = -p.y * 5 +  cos(angle) * circleSize;&lt;br /&gt;
        y -= (mouseY - height/4f) / height/4f * noise(i * 2+millis()/1000000000000f) * 8000; &lt;br /&gt;
        points[j] = new PVector(x, y);&lt;br /&gt;
        circleSize = circleSize-(mouseX-mouseX*0.85);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      f.getGlyph(c).addContour(points);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  f.buildFont(); // write ttf file&lt;br /&gt;
  f.cleanup();   // delete all glyph files that have been created while building the font&lt;br /&gt;
  &lt;br /&gt;
  fontBuilt = true;&lt;br /&gt;
&lt;br /&gt;
  myFont = createFont(f.getTTFfilename(), 200); // set the font to be used for rendering&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
  &lt;br /&gt;
  initFont();   // and make a new font right away&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// A function to preview a glyph in Processing&lt;br /&gt;
&lt;br /&gt;
void renderGlyphSolid(char c) {&lt;br /&gt;
    &lt;br /&gt;
  FContour[] contours = f.getGlyph(c).getContoursArray();&lt;br /&gt;
&lt;br /&gt;
  for (int j=0; j&amp;lt;contours.length; j++) {&lt;br /&gt;
&lt;br /&gt;
    FPoint[] points = f.getGlyph(c).getContour(j).getPointsArray();&lt;br /&gt;
&lt;br /&gt;
    if (points.length &amp;gt; 0) { //just to be sure    &lt;br /&gt;
      // Draw the solid shape in Processing&lt;br /&gt;
      beginShape();      &lt;br /&gt;
      for (int i=0; i&amp;lt;points.length; i++) {&lt;br /&gt;
        FPoint p1 = points[i];&lt;br /&gt;
        FPoint p2 = points[(i+1)%points.length];&lt;br /&gt;
        if (p1.hasControlPoint2() &amp;amp;&amp;amp; p2.hasControlPoint1()) {&lt;br /&gt;
          if (i == 0) { &lt;br /&gt;
            vertex(points[0].x, -points[0].y);&lt;br /&gt;
          }&lt;br /&gt;
          bezierVertex(p1.controlPoint2.x, -p1.controlPoint2.y, p2.controlPoint1.x, -p2.controlPoint1.y, p2.x, -p2.y);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          vertex(p1.x, -p1.y);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      endShape();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
&lt;br /&gt;
  if (key == &#039;s&#039;) {&lt;br /&gt;
    createFont();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ani C ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Constantin_Letter.gif|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import de.looksgood.ani.*;&lt;br /&gt;
import de.looksgood.ani.easing.*;&lt;br /&gt;
&lt;br /&gt;
float arcbegin = PI-2*QUARTER_PI;&lt;br /&gt;
float arcend = PI+2*QUARTER_PI;&lt;br /&gt;
float newbegin = 0;&lt;br /&gt;
float newend = PI;&lt;br /&gt;
int line_width = 0;&lt;br /&gt;
int thickline = 0;&lt;br /&gt;
int thickserif = 0;&lt;br /&gt;
&lt;br /&gt;
Ani linesAni;&lt;br /&gt;
Ani serifAni;&lt;br /&gt;
Ani linethickAni;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
  smooth();&lt;br /&gt;
  Ani.init(this);&lt;br /&gt;
  linesAni = new Ani(this, 2, 3, &amp;quot;line_width&amp;quot;, 90, Ani.LINEAR);&lt;br /&gt;
  linethickAni = new Ani(this, 1, 3, &amp;quot;thickline&amp;quot;, 30, Ani.LINEAR);&lt;br /&gt;
  serifAni = new Ani(this, 1.5, 3, &amp;quot;thickserif&amp;quot;, 15, Ani.LINEAR);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void draw() {&lt;br /&gt;
 &lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
 &lt;br /&gt;
  background(color_bg);&lt;br /&gt;
 &lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
 &lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, arcbegin, arcend, OPEN);&lt;br /&gt;
  strokeWeight(thickline);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(thickserif);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void mousePressed() {&lt;br /&gt;
  if (mouseButton == LEFT) {&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcbegin&amp;quot;, newbegin, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcend&amp;quot;, newend, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    linesAni.start();&lt;br /&gt;
    linethickAni.start();&lt;br /&gt;
    serifAni.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Ani.to(object, duration, variable name, target position, easing);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Robo Flowers ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Robo_Flower_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:Robo_Flower_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3D Letters ==&lt;br /&gt;
[[Image:3DLetters_Const_00.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bubble Type ==&lt;br /&gt;
This is my final Project for this Course. You can see it [http://bubbletype.constantin-oestreich.de/ here].&lt;br /&gt;
&lt;br /&gt;
My Intention was to make something &amp;quot;growing&amp;quot; which runs without special programms on every computer. For this I used javascript to animate the letters of this 3 Fonts inside the html5 canvas. U can use the buttons to control what you want to see.&lt;br /&gt;
&lt;br /&gt;
=== index.html ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style.css ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== main.js ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80870</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=80870"/>
		<updated>2016-04-07T20:17:30Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Letter Homework ==&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Homework 02 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a very simple Code-Font. It&#039;s just for Capital Letters and there are rectangles from A to Z. These Rectangles become smaller from A to Z. A is the biggest and Z a dot.&lt;br /&gt;
&lt;br /&gt;
[[Image:Simplefont_const.JPG|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Image Simple Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//import library&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
&lt;br /&gt;
// new Font&lt;br /&gt;
Fontastic f;&lt;br /&gt;
int version = 0;&lt;br /&gt;
&lt;br /&gt;
// Settings&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(600, 300);&lt;br /&gt;
  fill(55);&lt;br /&gt;
  createFont(); // create the font&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Zeichnenfunktion&lt;br /&gt;
void draw() {  &lt;br /&gt;
  background(255);&lt;br /&gt;
  PFont myFont = createFont(f.getTTFfilename(), 64); // reading the font that has just been created&lt;br /&gt;
&lt;br /&gt;
  textFont(myFont);&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  text(Fontastic.alphabet, 0, Fontastic.alphabet.length/2, width/2, height/3);&lt;br /&gt;
  text(Fontastic.alphabet, Fontastic.alphabet.length/2, Fontastic.alphabet.length, width/2, height/3*2);&lt;br /&gt;
&lt;br /&gt;
  noLoop();&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
&lt;br /&gt;
  if (f != null) { f.cleanup(); }&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;simpleFont&amp;quot; + nf(version,4));&lt;br /&gt;
&lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;1.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(600);&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;Fontastic.alphabet.length; i++) {&lt;br /&gt;
    &lt;br /&gt;
    char c = Fontastic.alphabet[i];&lt;br /&gt;
    &lt;br /&gt;
    PVector[] points = new PVector[4];&lt;br /&gt;
    &lt;br /&gt;
    int maxwidth = 512-i*19;&lt;br /&gt;
    int maxheight = 1024-i*39;&lt;br /&gt;
    &lt;br /&gt;
    points[0] = new PVector(0, 0);&lt;br /&gt;
    points[1] = new PVector(maxwidth, 0);&lt;br /&gt;
    points[2] = new PVector(maxwidth, maxheight);&lt;br /&gt;
    points[3] = new PVector(0, maxheight);&lt;br /&gt;
    &lt;br /&gt;
    f.addGlyph(c).addContour(points);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.buildFont();&lt;br /&gt;
  f.cleanup();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This programm &amp;quot;distort&amp;quot; the font &amp;quot;BEBAS&amp;quot; with triangles. There triangles on the contour of 5 origonal letters of this font. With the position of the mouse u change in x-coordinates the size of the triangle and in y-coordinates the y-position of the indiviual retangles. If you have your right position u can click any key to save this font.&lt;br /&gt;
&lt;br /&gt;
[[Image:Font_distor_const_03.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_01.JPG|thumb|left|400px]]&lt;br /&gt;
[[Image:Font_distor_const_02.JPG|thumb|left|400px]]&lt;br /&gt;
&lt;br /&gt;
* Images Font Distor Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Libraries&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
import geomerative.*;&lt;br /&gt;
&lt;br /&gt;
Fontastic f;&lt;br /&gt;
RFont font;&lt;br /&gt;
&lt;br /&gt;
PFont myFont;&lt;br /&gt;
int version = 0;&lt;br /&gt;
int charWidth = 512;&lt;br /&gt;
boolean fontBuilt = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  size(800, 800);&lt;br /&gt;
  fill(0);&lt;br /&gt;
&lt;br /&gt;
  // always initialize the library in setup&lt;br /&gt;
  RG.init(this);&lt;br /&gt;
  // load the initial font&lt;br /&gt;
  font = new RFont(&amp;quot;BEBAS.TTF&amp;quot;,150);&lt;br /&gt;
&lt;br /&gt;
  // get the points on the curve&#039;s shape&lt;br /&gt;
  // set style and segment resultion&lt;br /&gt;
  RCommand.setSegmentLength(10);&lt;br /&gt;
  RCommand.setSegmentator(RCommand.UNIFORMLENGTH);&lt;br /&gt;
&lt;br /&gt;
  initFont();&lt;br /&gt;
  updateFont();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  updateFont();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  int numberOfLetters = 5; // the number of letters to display&lt;br /&gt;
  for (int i=0; i&amp;lt;numberOfLetters; i++) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    translate(width/2, height/2);&lt;br /&gt;
    scale(charWidth/500f / 5f);&lt;br /&gt;
    translate(-(numberOfLetters -1)*charWidth / 2 + i*charWidth, 0);&lt;br /&gt;
    translate(-charWidth/2, charWidth/2);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(55);&lt;br /&gt;
    renderGlyphSolid(Fontastic.alphabet[i]);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (fontBuilt) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    textFont(myFont);&lt;br /&gt;
    textAlign(CENTER, CENTER);&lt;br /&gt;
    fill(0);&lt;br /&gt;
    textSize(charWidth / 5f);&lt;br /&gt;
    text(new String(subset(Fontastic.alphabet, 0, numberOfLetters)), width/2, height*0.6);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initFont() {&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;font_distor&amp;quot; + nf(version,4)); // create new Fontastic object&lt;br /&gt;
&lt;br /&gt;
  // add letters to the font, without adding glyph shapes&lt;br /&gt;
  for (char c : Fontastic.alphabet) {   &lt;br /&gt;
    f.addGlyph(c);                      // add all uppercase letters from the alphabet &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.setFontFamilyName(&amp;quot;font_distor&amp;quot;); &lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;0.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(int(charWidth * 1.1));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateFont() {&lt;br /&gt;
  &lt;br /&gt;
  for (char c : Fontastic.alphabet) {&lt;br /&gt;
&lt;br /&gt;
    RShape shp = font.toShape(c);&lt;br /&gt;
    RPoint[] pnts = shp.getPoints();&lt;br /&gt;
&lt;br /&gt;
    f.getGlyph(c).clearContours();&lt;br /&gt;
&lt;br /&gt;
    for (int i=0; i&amp;lt;pnts.length-1; i++) {&lt;br /&gt;
&lt;br /&gt;
      RPoint p = pnts[i];&lt;br /&gt;
      PVector[] points = new PVector[4];&lt;br /&gt;
&lt;br /&gt;
      float circleSize = 40;&lt;br /&gt;
&lt;br /&gt;
      int resolution = 3;&lt;br /&gt;
      points = new PVector[resolution];&lt;br /&gt;
      for (int j=0; j&amp;lt;resolution; j++) {&lt;br /&gt;
        float angle = TWO_PI/(resolution * 1f) * j;&lt;br /&gt;
        float x = p.x * 5 + sin(angle) * circleSize;&lt;br /&gt;
        float y = -p.y * 5 +  cos(angle) * circleSize;&lt;br /&gt;
        y -= (mouseY - height/4f) / height/4f * noise(i * 2+millis()/1000000000000f) * 8000; &lt;br /&gt;
        points[j] = new PVector(x, y);&lt;br /&gt;
        circleSize = circleSize-(mouseX-mouseX*0.85);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      f.getGlyph(c).addContour(points);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  f.buildFont(); // write ttf file&lt;br /&gt;
  f.cleanup();   // delete all glyph files that have been created while building the font&lt;br /&gt;
  &lt;br /&gt;
  fontBuilt = true;&lt;br /&gt;
&lt;br /&gt;
  myFont = createFont(f.getTTFfilename(), 200); // set the font to be used for rendering&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
  &lt;br /&gt;
  initFont();   // and make a new font right away&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// A function to preview a glyph in Processing&lt;br /&gt;
&lt;br /&gt;
void renderGlyphSolid(char c) {&lt;br /&gt;
    &lt;br /&gt;
  FContour[] contours = f.getGlyph(c).getContoursArray();&lt;br /&gt;
&lt;br /&gt;
  for (int j=0; j&amp;lt;contours.length; j++) {&lt;br /&gt;
&lt;br /&gt;
    FPoint[] points = f.getGlyph(c).getContour(j).getPointsArray();&lt;br /&gt;
&lt;br /&gt;
    if (points.length &amp;gt; 0) { //just to be sure    &lt;br /&gt;
      // Draw the solid shape in Processing&lt;br /&gt;
      beginShape();      &lt;br /&gt;
      for (int i=0; i&amp;lt;points.length; i++) {&lt;br /&gt;
        FPoint p1 = points[i];&lt;br /&gt;
        FPoint p2 = points[(i+1)%points.length];&lt;br /&gt;
        if (p1.hasControlPoint2() &amp;amp;&amp;amp; p2.hasControlPoint1()) {&lt;br /&gt;
          if (i == 0) { &lt;br /&gt;
            vertex(points[0].x, -points[0].y);&lt;br /&gt;
          }&lt;br /&gt;
          bezierVertex(p1.controlPoint2.x, -p1.controlPoint2.y, p2.controlPoint1.x, -p2.controlPoint1.y, p2.x, -p2.y);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          vertex(p1.x, -p1.y);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      endShape();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
&lt;br /&gt;
  if (key == &#039;s&#039;) {&lt;br /&gt;
    createFont();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ani C ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Constantin_Letter.gif|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import de.looksgood.ani.*;&lt;br /&gt;
import de.looksgood.ani.easing.*;&lt;br /&gt;
&lt;br /&gt;
float arcbegin = PI-2*QUARTER_PI;&lt;br /&gt;
float arcend = PI+2*QUARTER_PI;&lt;br /&gt;
float newbegin = 0;&lt;br /&gt;
float newend = PI;&lt;br /&gt;
int line_width = 0;&lt;br /&gt;
int thickline = 0;&lt;br /&gt;
int thickserif = 0;&lt;br /&gt;
&lt;br /&gt;
Ani linesAni;&lt;br /&gt;
Ani serifAni;&lt;br /&gt;
Ani linethickAni;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
  smooth();&lt;br /&gt;
  Ani.init(this);&lt;br /&gt;
  linesAni = new Ani(this, 2, 3, &amp;quot;line_width&amp;quot;, 90, Ani.LINEAR);&lt;br /&gt;
  linethickAni = new Ani(this, 1, 3, &amp;quot;thickline&amp;quot;, 30, Ani.LINEAR);&lt;br /&gt;
  serifAni = new Ani(this, 1.5, 3, &amp;quot;thickserif&amp;quot;, 15, Ani.LINEAR);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void draw() {&lt;br /&gt;
 &lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
 &lt;br /&gt;
  background(color_bg);&lt;br /&gt;
 &lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
 &lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, arcbegin, arcend, OPEN);&lt;br /&gt;
  strokeWeight(thickline);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(thickserif);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void mousePressed() {&lt;br /&gt;
  if (mouseButton == LEFT) {&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcbegin&amp;quot;, newbegin, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcend&amp;quot;, newend, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    linesAni.start();&lt;br /&gt;
    linethickAni.start();&lt;br /&gt;
    serifAni.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Ani.to(object, duration, variable name, target position, easing);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Robo Flowers ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Robo_Flower_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:Robo_Flower_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3D Letters ==&lt;br /&gt;
[[Image:3DLetters_Const_00.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_01.png|thumb|left|400px]]&lt;br /&gt;
[[Image:3DLetters_Const_02.png|thumb|left|400px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bubble Type ==&lt;br /&gt;
This is my final Project for this Course. You can see it [http://bubbletype.constantin-oestreich.de/ here].&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=77753</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=77753"/>
		<updated>2016-01-21T18:05:08Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Letter Homework ==&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Homework 02 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a very simple Code-Font. It&#039;s just for Capital Letters and there are rectangles from A to Z. These Rectangles become smaller from A to Z. A is the biggest and Z a dot.&lt;br /&gt;
&lt;br /&gt;
[[Image:Simplefont_const.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Image Simple Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//import library&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
&lt;br /&gt;
// new Font&lt;br /&gt;
Fontastic f;&lt;br /&gt;
int version = 0;&lt;br /&gt;
&lt;br /&gt;
// Settings&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(600, 300);&lt;br /&gt;
  fill(55);&lt;br /&gt;
  createFont(); // create the font&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Zeichnenfunktion&lt;br /&gt;
void draw() {  &lt;br /&gt;
  background(255);&lt;br /&gt;
  PFont myFont = createFont(f.getTTFfilename(), 64); // reading the font that has just been created&lt;br /&gt;
&lt;br /&gt;
  textFont(myFont);&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  text(Fontastic.alphabet, 0, Fontastic.alphabet.length/2, width/2, height/3);&lt;br /&gt;
  text(Fontastic.alphabet, Fontastic.alphabet.length/2, Fontastic.alphabet.length, width/2, height/3*2);&lt;br /&gt;
&lt;br /&gt;
  noLoop();&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
&lt;br /&gt;
  if (f != null) { f.cleanup(); }&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;simpleFont&amp;quot; + nf(version,4));&lt;br /&gt;
&lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;1.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(600);&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;Fontastic.alphabet.length; i++) {&lt;br /&gt;
    &lt;br /&gt;
    char c = Fontastic.alphabet[i];&lt;br /&gt;
    &lt;br /&gt;
    PVector[] points = new PVector[4];&lt;br /&gt;
    &lt;br /&gt;
    int maxwidth = 512-i*19;&lt;br /&gt;
    int maxheight = 1024-i*39;&lt;br /&gt;
    &lt;br /&gt;
    points[0] = new PVector(0, 0);&lt;br /&gt;
    points[1] = new PVector(maxwidth, 0);&lt;br /&gt;
    points[2] = new PVector(maxwidth, maxheight);&lt;br /&gt;
    points[3] = new PVector(0, maxheight);&lt;br /&gt;
    &lt;br /&gt;
    f.addGlyph(c).addContour(points);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.buildFont();&lt;br /&gt;
  f.cleanup();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This programm &amp;quot;distort&amp;quot; the font &amp;quot;BEBAS&amp;quot; with triangles. There triangles on the contour of 5 origonal letters of this font. With the position of the mouse u change in x-coordinates the size of the triangle and in y-coordinates the y-position of the indiviual retangles. If you have your right position u can click any key to save this font.&lt;br /&gt;
&lt;br /&gt;
[[Image:Font_distor_const_03.JPG]]&lt;br /&gt;
[[Image:Font_distor_const_01.JPG]]&lt;br /&gt;
[[Image:Font_distor_const_02.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Images Font Distor Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Libraries&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
import geomerative.*;&lt;br /&gt;
&lt;br /&gt;
Fontastic f;&lt;br /&gt;
RFont font;&lt;br /&gt;
&lt;br /&gt;
PFont myFont;&lt;br /&gt;
int version = 0;&lt;br /&gt;
int charWidth = 512;&lt;br /&gt;
boolean fontBuilt = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  size(800, 800);&lt;br /&gt;
  fill(0);&lt;br /&gt;
&lt;br /&gt;
  // always initialize the library in setup&lt;br /&gt;
  RG.init(this);&lt;br /&gt;
  // load the initial font&lt;br /&gt;
  font = new RFont(&amp;quot;BEBAS.TTF&amp;quot;,150);&lt;br /&gt;
&lt;br /&gt;
  // get the points on the curve&#039;s shape&lt;br /&gt;
  // set style and segment resultion&lt;br /&gt;
  RCommand.setSegmentLength(10);&lt;br /&gt;
  RCommand.setSegmentator(RCommand.UNIFORMLENGTH);&lt;br /&gt;
&lt;br /&gt;
  initFont();&lt;br /&gt;
  updateFont();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  updateFont();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  int numberOfLetters = 5; // the number of letters to display&lt;br /&gt;
  for (int i=0; i&amp;lt;numberOfLetters; i++) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    translate(width/2, height/2);&lt;br /&gt;
    scale(charWidth/500f / 5f);&lt;br /&gt;
    translate(-(numberOfLetters -1)*charWidth / 2 + i*charWidth, 0);&lt;br /&gt;
    translate(-charWidth/2, charWidth/2);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(55);&lt;br /&gt;
    renderGlyphSolid(Fontastic.alphabet[i]);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (fontBuilt) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    textFont(myFont);&lt;br /&gt;
    textAlign(CENTER, CENTER);&lt;br /&gt;
    fill(0);&lt;br /&gt;
    textSize(charWidth / 5f);&lt;br /&gt;
    text(new String(subset(Fontastic.alphabet, 0, numberOfLetters)), width/2, height*0.6);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initFont() {&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;font_distor&amp;quot; + nf(version,4)); // create new Fontastic object&lt;br /&gt;
&lt;br /&gt;
  // add letters to the font, without adding glyph shapes&lt;br /&gt;
  for (char c : Fontastic.alphabet) {   &lt;br /&gt;
    f.addGlyph(c);                      // add all uppercase letters from the alphabet &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.setFontFamilyName(&amp;quot;font_distor&amp;quot;); &lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;0.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(int(charWidth * 1.1));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateFont() {&lt;br /&gt;
  &lt;br /&gt;
  for (char c : Fontastic.alphabet) {&lt;br /&gt;
&lt;br /&gt;
    RShape shp = font.toShape(c);&lt;br /&gt;
    RPoint[] pnts = shp.getPoints();&lt;br /&gt;
&lt;br /&gt;
    f.getGlyph(c).clearContours();&lt;br /&gt;
&lt;br /&gt;
    for (int i=0; i&amp;lt;pnts.length-1; i++) {&lt;br /&gt;
&lt;br /&gt;
      RPoint p = pnts[i];&lt;br /&gt;
      PVector[] points = new PVector[4];&lt;br /&gt;
&lt;br /&gt;
      float circleSize = 40;&lt;br /&gt;
&lt;br /&gt;
      int resolution = 3;&lt;br /&gt;
      points = new PVector[resolution];&lt;br /&gt;
      for (int j=0; j&amp;lt;resolution; j++) {&lt;br /&gt;
        float angle = TWO_PI/(resolution * 1f) * j;&lt;br /&gt;
        float x = p.x * 5 + sin(angle) * circleSize;&lt;br /&gt;
        float y = -p.y * 5 +  cos(angle) * circleSize;&lt;br /&gt;
        y -= (mouseY - height/4f) / height/4f * noise(i * 2+millis()/1000000000000f) * 8000; &lt;br /&gt;
        points[j] = new PVector(x, y);&lt;br /&gt;
        circleSize = circleSize-(mouseX-mouseX*0.85);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      f.getGlyph(c).addContour(points);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  f.buildFont(); // write ttf file&lt;br /&gt;
  f.cleanup();   // delete all glyph files that have been created while building the font&lt;br /&gt;
  &lt;br /&gt;
  fontBuilt = true;&lt;br /&gt;
&lt;br /&gt;
  myFont = createFont(f.getTTFfilename(), 200); // set the font to be used for rendering&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
  &lt;br /&gt;
  initFont();   // and make a new font right away&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// A function to preview a glyph in Processing&lt;br /&gt;
&lt;br /&gt;
void renderGlyphSolid(char c) {&lt;br /&gt;
    &lt;br /&gt;
  FContour[] contours = f.getGlyph(c).getContoursArray();&lt;br /&gt;
&lt;br /&gt;
  for (int j=0; j&amp;lt;contours.length; j++) {&lt;br /&gt;
&lt;br /&gt;
    FPoint[] points = f.getGlyph(c).getContour(j).getPointsArray();&lt;br /&gt;
&lt;br /&gt;
    if (points.length &amp;gt; 0) { //just to be sure    &lt;br /&gt;
      // Draw the solid shape in Processing&lt;br /&gt;
      beginShape();      &lt;br /&gt;
      for (int i=0; i&amp;lt;points.length; i++) {&lt;br /&gt;
        FPoint p1 = points[i];&lt;br /&gt;
        FPoint p2 = points[(i+1)%points.length];&lt;br /&gt;
        if (p1.hasControlPoint2() &amp;amp;&amp;amp; p2.hasControlPoint1()) {&lt;br /&gt;
          if (i == 0) { &lt;br /&gt;
            vertex(points[0].x, -points[0].y);&lt;br /&gt;
          }&lt;br /&gt;
          bezierVertex(p1.controlPoint2.x, -p1.controlPoint2.y, p2.controlPoint1.x, -p2.controlPoint1.y, p2.x, -p2.y);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          vertex(p1.x, -p1.y);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      endShape();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
&lt;br /&gt;
  if (key == &#039;s&#039;) {&lt;br /&gt;
    createFont();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ani C ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Constantin_Letter.gif]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import de.looksgood.ani.*;&lt;br /&gt;
import de.looksgood.ani.easing.*;&lt;br /&gt;
&lt;br /&gt;
float arcbegin = PI-2*QUARTER_PI;&lt;br /&gt;
float arcend = PI+2*QUARTER_PI;&lt;br /&gt;
float newbegin = 0;&lt;br /&gt;
float newend = PI;&lt;br /&gt;
int line_width = 0;&lt;br /&gt;
int thickline = 0;&lt;br /&gt;
int thickserif = 0;&lt;br /&gt;
&lt;br /&gt;
Ani linesAni;&lt;br /&gt;
Ani serifAni;&lt;br /&gt;
Ani linethickAni;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
  smooth();&lt;br /&gt;
  Ani.init(this);&lt;br /&gt;
  linesAni = new Ani(this, 2, 3, &amp;quot;line_width&amp;quot;, 90, Ani.LINEAR);&lt;br /&gt;
  linethickAni = new Ani(this, 1, 3, &amp;quot;thickline&amp;quot;, 30, Ani.LINEAR);&lt;br /&gt;
  serifAni = new Ani(this, 1.5, 3, &amp;quot;thickserif&amp;quot;, 15, Ani.LINEAR);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void draw() {&lt;br /&gt;
 &lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
 &lt;br /&gt;
  background(color_bg);&lt;br /&gt;
 &lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
 &lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, arcbegin, arcend, OPEN);&lt;br /&gt;
  strokeWeight(thickline);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(thickserif);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void mousePressed() {&lt;br /&gt;
  if (mouseButton == LEFT) {&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcbegin&amp;quot;, newbegin, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcend&amp;quot;, newend, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    linesAni.start();&lt;br /&gt;
    linethickAni.start();&lt;br /&gt;
    serifAni.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Ani.to(object, duration, variable name, target position, easing);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Robo Flowers ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Robo_Flower_01.png]]&lt;br /&gt;
[[Image:Robo_Flower_02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3D Letters ===&lt;br /&gt;
&lt;br /&gt;
[[Image:3DLetters_Const_00.png]]&lt;br /&gt;
[[Image:3DLetters_Const_01.png]]&lt;br /&gt;
[[Image:3DLetters_Const_02.png]]&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:3DLetters_Const_02.png&amp;diff=77752</id>
		<title>File:3DLetters Const 02.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:3DLetters_Const_02.png&amp;diff=77752"/>
		<updated>2016-01-21T18:04:39Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:3DLetters_Const_01.png&amp;diff=77751</id>
		<title>File:3DLetters Const 01.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:3DLetters_Const_01.png&amp;diff=77751"/>
		<updated>2016-01-21T18:04:25Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:3DLetters_Const_00.png&amp;diff=77749</id>
		<title>File:3DLetters Const 00.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:3DLetters_Const_00.png&amp;diff=77749"/>
		<updated>2016-01-21T18:04:05Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=75685</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=75685"/>
		<updated>2015-12-02T20:45:33Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Letter Homework ==&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Homework 02 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a very simple Code-Font. It&#039;s just for Capital Letters and there are rectangles from A to Z. These Rectangles become smaller from A to Z. A is the biggest and Z a dot.&lt;br /&gt;
&lt;br /&gt;
[[Image:Simplefont_const.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Image Simple Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//import library&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
&lt;br /&gt;
// new Font&lt;br /&gt;
Fontastic f;&lt;br /&gt;
int version = 0;&lt;br /&gt;
&lt;br /&gt;
// Settings&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(600, 300);&lt;br /&gt;
  fill(55);&lt;br /&gt;
  createFont(); // create the font&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Zeichnenfunktion&lt;br /&gt;
void draw() {  &lt;br /&gt;
  background(255);&lt;br /&gt;
  PFont myFont = createFont(f.getTTFfilename(), 64); // reading the font that has just been created&lt;br /&gt;
&lt;br /&gt;
  textFont(myFont);&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  text(Fontastic.alphabet, 0, Fontastic.alphabet.length/2, width/2, height/3);&lt;br /&gt;
  text(Fontastic.alphabet, Fontastic.alphabet.length/2, Fontastic.alphabet.length, width/2, height/3*2);&lt;br /&gt;
&lt;br /&gt;
  noLoop();&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
&lt;br /&gt;
  if (f != null) { f.cleanup(); }&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;simpleFont&amp;quot; + nf(version,4));&lt;br /&gt;
&lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;1.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(600);&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;Fontastic.alphabet.length; i++) {&lt;br /&gt;
    &lt;br /&gt;
    char c = Fontastic.alphabet[i];&lt;br /&gt;
    &lt;br /&gt;
    PVector[] points = new PVector[4];&lt;br /&gt;
    &lt;br /&gt;
    int maxwidth = 512-i*19;&lt;br /&gt;
    int maxheight = 1024-i*39;&lt;br /&gt;
    &lt;br /&gt;
    points[0] = new PVector(0, 0);&lt;br /&gt;
    points[1] = new PVector(maxwidth, 0);&lt;br /&gt;
    points[2] = new PVector(maxwidth, maxheight);&lt;br /&gt;
    points[3] = new PVector(0, maxheight);&lt;br /&gt;
    &lt;br /&gt;
    f.addGlyph(c).addContour(points);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.buildFont();&lt;br /&gt;
  f.cleanup();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This programm &amp;quot;distort&amp;quot; the font &amp;quot;BEBAS&amp;quot; with triangles. There triangles on the contour of 5 origonal letters of this font. With the position of the mouse u change in x-coordinates the size of the triangle and in y-coordinates the y-position of the indiviual retangles. If you have your right position u can click any key to save this font.&lt;br /&gt;
&lt;br /&gt;
[[Image:Font_distor_const_03.JPG]]&lt;br /&gt;
[[Image:Font_distor_const_01.JPG]]&lt;br /&gt;
[[Image:Font_distor_const_02.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Images Font Distor Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Libraries&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
import geomerative.*;&lt;br /&gt;
&lt;br /&gt;
Fontastic f;&lt;br /&gt;
RFont font;&lt;br /&gt;
&lt;br /&gt;
PFont myFont;&lt;br /&gt;
int version = 0;&lt;br /&gt;
int charWidth = 512;&lt;br /&gt;
boolean fontBuilt = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  size(800, 800);&lt;br /&gt;
  fill(0);&lt;br /&gt;
&lt;br /&gt;
  // always initialize the library in setup&lt;br /&gt;
  RG.init(this);&lt;br /&gt;
  // load the initial font&lt;br /&gt;
  font = new RFont(&amp;quot;BEBAS.TTF&amp;quot;,150);&lt;br /&gt;
&lt;br /&gt;
  // get the points on the curve&#039;s shape&lt;br /&gt;
  // set style and segment resultion&lt;br /&gt;
  RCommand.setSegmentLength(10);&lt;br /&gt;
  RCommand.setSegmentator(RCommand.UNIFORMLENGTH);&lt;br /&gt;
&lt;br /&gt;
  initFont();&lt;br /&gt;
  updateFont();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  updateFont();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  int numberOfLetters = 5; // the number of letters to display&lt;br /&gt;
  for (int i=0; i&amp;lt;numberOfLetters; i++) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    translate(width/2, height/2);&lt;br /&gt;
    scale(charWidth/500f / 5f);&lt;br /&gt;
    translate(-(numberOfLetters -1)*charWidth / 2 + i*charWidth, 0);&lt;br /&gt;
    translate(-charWidth/2, charWidth/2);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(55);&lt;br /&gt;
    renderGlyphSolid(Fontastic.alphabet[i]);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (fontBuilt) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    textFont(myFont);&lt;br /&gt;
    textAlign(CENTER, CENTER);&lt;br /&gt;
    fill(0);&lt;br /&gt;
    textSize(charWidth / 5f);&lt;br /&gt;
    text(new String(subset(Fontastic.alphabet, 0, numberOfLetters)), width/2, height*0.6);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initFont() {&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;font_distor&amp;quot; + nf(version,4)); // create new Fontastic object&lt;br /&gt;
&lt;br /&gt;
  // add letters to the font, without adding glyph shapes&lt;br /&gt;
  for (char c : Fontastic.alphabet) {   &lt;br /&gt;
    f.addGlyph(c);                      // add all uppercase letters from the alphabet &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.setFontFamilyName(&amp;quot;font_distor&amp;quot;); &lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;0.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(int(charWidth * 1.1));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateFont() {&lt;br /&gt;
  &lt;br /&gt;
  for (char c : Fontastic.alphabet) {&lt;br /&gt;
&lt;br /&gt;
    RShape shp = font.toShape(c);&lt;br /&gt;
    RPoint[] pnts = shp.getPoints();&lt;br /&gt;
&lt;br /&gt;
    f.getGlyph(c).clearContours();&lt;br /&gt;
&lt;br /&gt;
    for (int i=0; i&amp;lt;pnts.length-1; i++) {&lt;br /&gt;
&lt;br /&gt;
      RPoint p = pnts[i];&lt;br /&gt;
      PVector[] points = new PVector[4];&lt;br /&gt;
&lt;br /&gt;
      float circleSize = 40;&lt;br /&gt;
&lt;br /&gt;
      int resolution = 3;&lt;br /&gt;
      points = new PVector[resolution];&lt;br /&gt;
      for (int j=0; j&amp;lt;resolution; j++) {&lt;br /&gt;
        float angle = TWO_PI/(resolution * 1f) * j;&lt;br /&gt;
        float x = p.x * 5 + sin(angle) * circleSize;&lt;br /&gt;
        float y = -p.y * 5 +  cos(angle) * circleSize;&lt;br /&gt;
        y -= (mouseY - height/4f) / height/4f * noise(i * 2+millis()/1000000000000f) * 8000; &lt;br /&gt;
        points[j] = new PVector(x, y);&lt;br /&gt;
        circleSize = circleSize-(mouseX-mouseX*0.85);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      f.getGlyph(c).addContour(points);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  f.buildFont(); // write ttf file&lt;br /&gt;
  f.cleanup();   // delete all glyph files that have been created while building the font&lt;br /&gt;
  &lt;br /&gt;
  fontBuilt = true;&lt;br /&gt;
&lt;br /&gt;
  myFont = createFont(f.getTTFfilename(), 200); // set the font to be used for rendering&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
  &lt;br /&gt;
  initFont();   // and make a new font right away&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// A function to preview a glyph in Processing&lt;br /&gt;
&lt;br /&gt;
void renderGlyphSolid(char c) {&lt;br /&gt;
    &lt;br /&gt;
  FContour[] contours = f.getGlyph(c).getContoursArray();&lt;br /&gt;
&lt;br /&gt;
  for (int j=0; j&amp;lt;contours.length; j++) {&lt;br /&gt;
&lt;br /&gt;
    FPoint[] points = f.getGlyph(c).getContour(j).getPointsArray();&lt;br /&gt;
&lt;br /&gt;
    if (points.length &amp;gt; 0) { //just to be sure    &lt;br /&gt;
      // Draw the solid shape in Processing&lt;br /&gt;
      beginShape();      &lt;br /&gt;
      for (int i=0; i&amp;lt;points.length; i++) {&lt;br /&gt;
        FPoint p1 = points[i];&lt;br /&gt;
        FPoint p2 = points[(i+1)%points.length];&lt;br /&gt;
        if (p1.hasControlPoint2() &amp;amp;&amp;amp; p2.hasControlPoint1()) {&lt;br /&gt;
          if (i == 0) { &lt;br /&gt;
            vertex(points[0].x, -points[0].y);&lt;br /&gt;
          }&lt;br /&gt;
          bezierVertex(p1.controlPoint2.x, -p1.controlPoint2.y, p2.controlPoint1.x, -p2.controlPoint1.y, p2.x, -p2.y);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          vertex(p1.x, -p1.y);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      endShape();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
&lt;br /&gt;
  if (key == &#039;s&#039;) {&lt;br /&gt;
    createFont();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ani C ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Constantin_Letter.gif]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import de.looksgood.ani.*;&lt;br /&gt;
import de.looksgood.ani.easing.*;&lt;br /&gt;
&lt;br /&gt;
float arcbegin = PI-2*QUARTER_PI;&lt;br /&gt;
float arcend = PI+2*QUARTER_PI;&lt;br /&gt;
float newbegin = 0;&lt;br /&gt;
float newend = PI;&lt;br /&gt;
int line_width = 0;&lt;br /&gt;
int thickline = 0;&lt;br /&gt;
int thickserif = 0;&lt;br /&gt;
&lt;br /&gt;
Ani linesAni;&lt;br /&gt;
Ani serifAni;&lt;br /&gt;
Ani linethickAni;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
  smooth();&lt;br /&gt;
  Ani.init(this);&lt;br /&gt;
  linesAni = new Ani(this, 2, 3, &amp;quot;line_width&amp;quot;, 90, Ani.LINEAR);&lt;br /&gt;
  linethickAni = new Ani(this, 1, 3, &amp;quot;thickline&amp;quot;, 30, Ani.LINEAR);&lt;br /&gt;
  serifAni = new Ani(this, 1.5, 3, &amp;quot;thickserif&amp;quot;, 15, Ani.LINEAR);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void draw() {&lt;br /&gt;
 &lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
 &lt;br /&gt;
  background(color_bg);&lt;br /&gt;
 &lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
 &lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, arcbegin, arcend, OPEN);&lt;br /&gt;
  strokeWeight(thickline);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(thickserif);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void mousePressed() {&lt;br /&gt;
  if (mouseButton == LEFT) {&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcbegin&amp;quot;, newbegin, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    Ani.from(this, 3, &amp;quot;arcend&amp;quot;, newend, Ani.BOUNCE_IN_OUT);&lt;br /&gt;
    linesAni.start();&lt;br /&gt;
    linethickAni.start();&lt;br /&gt;
    serifAni.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Ani.to(object, duration, variable name, target position, easing);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Robo Flowers ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Robo_Flower_01.png]]&lt;br /&gt;
[[Image:Robo_Flower_02.png]]&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=75684</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=75684"/>
		<updated>2015-12-02T20:43:21Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Letter Homework ==&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Homework 02 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a very simple Code-Font. It&#039;s just for Capital Letters and there are rectangles from A to Z. These Rectangles become smaller from A to Z. A is the biggest and Z a dot.&lt;br /&gt;
&lt;br /&gt;
[[Image:Simplefont_const.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Image Simple Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//import library&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
&lt;br /&gt;
// new Font&lt;br /&gt;
Fontastic f;&lt;br /&gt;
int version = 0;&lt;br /&gt;
&lt;br /&gt;
// Settings&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(600, 300);&lt;br /&gt;
  fill(55);&lt;br /&gt;
  createFont(); // create the font&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Zeichnenfunktion&lt;br /&gt;
void draw() {  &lt;br /&gt;
  background(255);&lt;br /&gt;
  PFont myFont = createFont(f.getTTFfilename(), 64); // reading the font that has just been created&lt;br /&gt;
&lt;br /&gt;
  textFont(myFont);&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  text(Fontastic.alphabet, 0, Fontastic.alphabet.length/2, width/2, height/3);&lt;br /&gt;
  text(Fontastic.alphabet, Fontastic.alphabet.length/2, Fontastic.alphabet.length, width/2, height/3*2);&lt;br /&gt;
&lt;br /&gt;
  noLoop();&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
&lt;br /&gt;
  if (f != null) { f.cleanup(); }&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;simpleFont&amp;quot; + nf(version,4));&lt;br /&gt;
&lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;1.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(600);&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;Fontastic.alphabet.length; i++) {&lt;br /&gt;
    &lt;br /&gt;
    char c = Fontastic.alphabet[i];&lt;br /&gt;
    &lt;br /&gt;
    PVector[] points = new PVector[4];&lt;br /&gt;
    &lt;br /&gt;
    int maxwidth = 512-i*19;&lt;br /&gt;
    int maxheight = 1024-i*39;&lt;br /&gt;
    &lt;br /&gt;
    points[0] = new PVector(0, 0);&lt;br /&gt;
    points[1] = new PVector(maxwidth, 0);&lt;br /&gt;
    points[2] = new PVector(maxwidth, maxheight);&lt;br /&gt;
    points[3] = new PVector(0, maxheight);&lt;br /&gt;
    &lt;br /&gt;
    f.addGlyph(c).addContour(points);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.buildFont();&lt;br /&gt;
  f.cleanup();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This programm &amp;quot;distort&amp;quot; the font &amp;quot;BEBAS&amp;quot; with triangles. There triangles on the contour of 5 origonal letters of this font. With the position of the mouse u change in x-coordinates the size of the triangle and in y-coordinates the y-position of the indiviual retangles. If you have your right position u can click any key to save this font.&lt;br /&gt;
&lt;br /&gt;
[[Image:Font_distor_const_03.JPG]]&lt;br /&gt;
[[Image:Font_distor_const_01.JPG]]&lt;br /&gt;
[[Image:Font_distor_const_02.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Images Font Distor Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Libraries&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
import geomerative.*;&lt;br /&gt;
&lt;br /&gt;
Fontastic f;&lt;br /&gt;
RFont font;&lt;br /&gt;
&lt;br /&gt;
PFont myFont;&lt;br /&gt;
int version = 0;&lt;br /&gt;
int charWidth = 512;&lt;br /&gt;
boolean fontBuilt = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  size(800, 800);&lt;br /&gt;
  fill(0);&lt;br /&gt;
&lt;br /&gt;
  // always initialize the library in setup&lt;br /&gt;
  RG.init(this);&lt;br /&gt;
  // load the initial font&lt;br /&gt;
  font = new RFont(&amp;quot;BEBAS.TTF&amp;quot;,150);&lt;br /&gt;
&lt;br /&gt;
  // get the points on the curve&#039;s shape&lt;br /&gt;
  // set style and segment resultion&lt;br /&gt;
  RCommand.setSegmentLength(10);&lt;br /&gt;
  RCommand.setSegmentator(RCommand.UNIFORMLENGTH);&lt;br /&gt;
&lt;br /&gt;
  initFont();&lt;br /&gt;
  updateFont();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  updateFont();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  int numberOfLetters = 5; // the number of letters to display&lt;br /&gt;
  for (int i=0; i&amp;lt;numberOfLetters; i++) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    translate(width/2, height/2);&lt;br /&gt;
    scale(charWidth/500f / 5f);&lt;br /&gt;
    translate(-(numberOfLetters -1)*charWidth / 2 + i*charWidth, 0);&lt;br /&gt;
    translate(-charWidth/2, charWidth/2);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(55);&lt;br /&gt;
    renderGlyphSolid(Fontastic.alphabet[i]);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (fontBuilt) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    textFont(myFont);&lt;br /&gt;
    textAlign(CENTER, CENTER);&lt;br /&gt;
    fill(0);&lt;br /&gt;
    textSize(charWidth / 5f);&lt;br /&gt;
    text(new String(subset(Fontastic.alphabet, 0, numberOfLetters)), width/2, height*0.6);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initFont() {&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;font_distor&amp;quot; + nf(version,4)); // create new Fontastic object&lt;br /&gt;
&lt;br /&gt;
  // add letters to the font, without adding glyph shapes&lt;br /&gt;
  for (char c : Fontastic.alphabet) {   &lt;br /&gt;
    f.addGlyph(c);                      // add all uppercase letters from the alphabet &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.setFontFamilyName(&amp;quot;font_distor&amp;quot;); &lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;0.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(int(charWidth * 1.1));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateFont() {&lt;br /&gt;
  &lt;br /&gt;
  for (char c : Fontastic.alphabet) {&lt;br /&gt;
&lt;br /&gt;
    RShape shp = font.toShape(c);&lt;br /&gt;
    RPoint[] pnts = shp.getPoints();&lt;br /&gt;
&lt;br /&gt;
    f.getGlyph(c).clearContours();&lt;br /&gt;
&lt;br /&gt;
    for (int i=0; i&amp;lt;pnts.length-1; i++) {&lt;br /&gt;
&lt;br /&gt;
      RPoint p = pnts[i];&lt;br /&gt;
      PVector[] points = new PVector[4];&lt;br /&gt;
&lt;br /&gt;
      float circleSize = 40;&lt;br /&gt;
&lt;br /&gt;
      int resolution = 3;&lt;br /&gt;
      points = new PVector[resolution];&lt;br /&gt;
      for (int j=0; j&amp;lt;resolution; j++) {&lt;br /&gt;
        float angle = TWO_PI/(resolution * 1f) * j;&lt;br /&gt;
        float x = p.x * 5 + sin(angle) * circleSize;&lt;br /&gt;
        float y = -p.y * 5 +  cos(angle) * circleSize;&lt;br /&gt;
        y -= (mouseY - height/4f) / height/4f * noise(i * 2+millis()/1000000000000f) * 8000; &lt;br /&gt;
        points[j] = new PVector(x, y);&lt;br /&gt;
        circleSize = circleSize-(mouseX-mouseX*0.85);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      f.getGlyph(c).addContour(points);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  f.buildFont(); // write ttf file&lt;br /&gt;
  f.cleanup();   // delete all glyph files that have been created while building the font&lt;br /&gt;
  &lt;br /&gt;
  fontBuilt = true;&lt;br /&gt;
&lt;br /&gt;
  myFont = createFont(f.getTTFfilename(), 200); // set the font to be used for rendering&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
  &lt;br /&gt;
  initFont();   // and make a new font right away&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// A function to preview a glyph in Processing&lt;br /&gt;
&lt;br /&gt;
void renderGlyphSolid(char c) {&lt;br /&gt;
    &lt;br /&gt;
  FContour[] contours = f.getGlyph(c).getContoursArray();&lt;br /&gt;
&lt;br /&gt;
  for (int j=0; j&amp;lt;contours.length; j++) {&lt;br /&gt;
&lt;br /&gt;
    FPoint[] points = f.getGlyph(c).getContour(j).getPointsArray();&lt;br /&gt;
&lt;br /&gt;
    if (points.length &amp;gt; 0) { //just to be sure    &lt;br /&gt;
      // Draw the solid shape in Processing&lt;br /&gt;
      beginShape();      &lt;br /&gt;
      for (int i=0; i&amp;lt;points.length; i++) {&lt;br /&gt;
        FPoint p1 = points[i];&lt;br /&gt;
        FPoint p2 = points[(i+1)%points.length];&lt;br /&gt;
        if (p1.hasControlPoint2() &amp;amp;&amp;amp; p2.hasControlPoint1()) {&lt;br /&gt;
          if (i == 0) { &lt;br /&gt;
            vertex(points[0].x, -points[0].y);&lt;br /&gt;
          }&lt;br /&gt;
          bezierVertex(p1.controlPoint2.x, -p1.controlPoint2.y, p2.controlPoint1.x, -p2.controlPoint1.y, p2.x, -p2.y);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          vertex(p1.x, -p1.y);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      endShape();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
&lt;br /&gt;
  if (key == &#039;s&#039;) {&lt;br /&gt;
    createFont();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ani C ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Constantin_Letter.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Robo Flowers ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Robo_Flower_01.png]]&lt;br /&gt;
[[Image:Robo_Flower_02.png]]&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Constantin_Letter.gif&amp;diff=75683</id>
		<title>File:Constantin Letter.gif</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Constantin_Letter.gif&amp;diff=75683"/>
		<updated>2015-12-02T20:43:01Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Robo_Flower_02.png&amp;diff=75682</id>
		<title>File:Robo Flower 02.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Robo_Flower_02.png&amp;diff=75682"/>
		<updated>2015-12-02T20:42:15Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Robo_Flower_01.png&amp;diff=75681</id>
		<title>File:Robo Flower 01.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Robo_Flower_01.png&amp;diff=75681"/>
		<updated>2015-12-02T20:40:12Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=74982</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=74982"/>
		<updated>2015-11-19T12:53:39Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Letter Homework ==&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Homework 02 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a very simple Code-Font. It&#039;s just for Capital Letters and there are rectangles from A to Z. These Rectangles become smaller from A to Z. A is the biggest and Z a dot.&lt;br /&gt;
&lt;br /&gt;
[[Image:Simplefont_const.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Image Simple Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//import library&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
&lt;br /&gt;
// new Font&lt;br /&gt;
Fontastic f;&lt;br /&gt;
int version = 0;&lt;br /&gt;
&lt;br /&gt;
// Settings&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(600, 300);&lt;br /&gt;
  fill(55);&lt;br /&gt;
  createFont(); // create the font&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Zeichnenfunktion&lt;br /&gt;
void draw() {  &lt;br /&gt;
  background(255);&lt;br /&gt;
  PFont myFont = createFont(f.getTTFfilename(), 64); // reading the font that has just been created&lt;br /&gt;
&lt;br /&gt;
  textFont(myFont);&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  text(Fontastic.alphabet, 0, Fontastic.alphabet.length/2, width/2, height/3);&lt;br /&gt;
  text(Fontastic.alphabet, Fontastic.alphabet.length/2, Fontastic.alphabet.length, width/2, height/3*2);&lt;br /&gt;
&lt;br /&gt;
  noLoop();&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
&lt;br /&gt;
  if (f != null) { f.cleanup(); }&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;simpleFont&amp;quot; + nf(version,4));&lt;br /&gt;
&lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;1.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(600);&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;Fontastic.alphabet.length; i++) {&lt;br /&gt;
    &lt;br /&gt;
    char c = Fontastic.alphabet[i];&lt;br /&gt;
    &lt;br /&gt;
    PVector[] points = new PVector[4];&lt;br /&gt;
    &lt;br /&gt;
    int maxwidth = 512-i*19;&lt;br /&gt;
    int maxheight = 1024-i*39;&lt;br /&gt;
    &lt;br /&gt;
    points[0] = new PVector(0, 0);&lt;br /&gt;
    points[1] = new PVector(maxwidth, 0);&lt;br /&gt;
    points[2] = new PVector(maxwidth, maxheight);&lt;br /&gt;
    points[3] = new PVector(0, maxheight);&lt;br /&gt;
    &lt;br /&gt;
    f.addGlyph(c).addContour(points);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.buildFont();&lt;br /&gt;
  f.cleanup();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This programm &amp;quot;distort&amp;quot; the font &amp;quot;BEBAS&amp;quot; with triangles. There triangles on the contour of 5 origonal letters of this font. With the position of the mouse u change in x-coordinates the size of the triangle and in y-coordinates the y-position of the indiviual retangles. If you have your right position u can click any key to save this font.&lt;br /&gt;
&lt;br /&gt;
[[Image:Font_distor_const_03.JPG]]&lt;br /&gt;
[[Image:Font_distor_const_01.JPG]]&lt;br /&gt;
[[Image:Font_distor_const_02.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Images Font Distor Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Libraries&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
import geomerative.*;&lt;br /&gt;
&lt;br /&gt;
Fontastic f;&lt;br /&gt;
RFont font;&lt;br /&gt;
&lt;br /&gt;
PFont myFont;&lt;br /&gt;
int version = 0;&lt;br /&gt;
int charWidth = 512;&lt;br /&gt;
boolean fontBuilt = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  size(800, 800);&lt;br /&gt;
  fill(0);&lt;br /&gt;
&lt;br /&gt;
  // always initialize the library in setup&lt;br /&gt;
  RG.init(this);&lt;br /&gt;
  // load the initial font&lt;br /&gt;
  font = new RFont(&amp;quot;BEBAS.TTF&amp;quot;,150);&lt;br /&gt;
&lt;br /&gt;
  // get the points on the curve&#039;s shape&lt;br /&gt;
  // set style and segment resultion&lt;br /&gt;
  RCommand.setSegmentLength(10);&lt;br /&gt;
  RCommand.setSegmentator(RCommand.UNIFORMLENGTH);&lt;br /&gt;
&lt;br /&gt;
  initFont();&lt;br /&gt;
  updateFont();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  updateFont();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  int numberOfLetters = 5; // the number of letters to display&lt;br /&gt;
  for (int i=0; i&amp;lt;numberOfLetters; i++) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    translate(width/2, height/2);&lt;br /&gt;
    scale(charWidth/500f / 5f);&lt;br /&gt;
    translate(-(numberOfLetters -1)*charWidth / 2 + i*charWidth, 0);&lt;br /&gt;
    translate(-charWidth/2, charWidth/2);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(55);&lt;br /&gt;
    renderGlyphSolid(Fontastic.alphabet[i]);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (fontBuilt) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    textFont(myFont);&lt;br /&gt;
    textAlign(CENTER, CENTER);&lt;br /&gt;
    fill(0);&lt;br /&gt;
    textSize(charWidth / 5f);&lt;br /&gt;
    text(new String(subset(Fontastic.alphabet, 0, numberOfLetters)), width/2, height*0.6);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initFont() {&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;font_distor&amp;quot; + nf(version,4)); // create new Fontastic object&lt;br /&gt;
&lt;br /&gt;
  // add letters to the font, without adding glyph shapes&lt;br /&gt;
  for (char c : Fontastic.alphabet) {   &lt;br /&gt;
    f.addGlyph(c);                      // add all uppercase letters from the alphabet &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.setFontFamilyName(&amp;quot;font_distor&amp;quot;); &lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;0.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(int(charWidth * 1.1));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateFont() {&lt;br /&gt;
  &lt;br /&gt;
  for (char c : Fontastic.alphabet) {&lt;br /&gt;
&lt;br /&gt;
    RShape shp = font.toShape(c);&lt;br /&gt;
    RPoint[] pnts = shp.getPoints();&lt;br /&gt;
&lt;br /&gt;
    f.getGlyph(c).clearContours();&lt;br /&gt;
&lt;br /&gt;
    for (int i=0; i&amp;lt;pnts.length-1; i++) {&lt;br /&gt;
&lt;br /&gt;
      RPoint p = pnts[i];&lt;br /&gt;
      PVector[] points = new PVector[4];&lt;br /&gt;
&lt;br /&gt;
      float circleSize = 40;&lt;br /&gt;
&lt;br /&gt;
      int resolution = 3;&lt;br /&gt;
      points = new PVector[resolution];&lt;br /&gt;
      for (int j=0; j&amp;lt;resolution; j++) {&lt;br /&gt;
        float angle = TWO_PI/(resolution * 1f) * j;&lt;br /&gt;
        float x = p.x * 5 + sin(angle) * circleSize;&lt;br /&gt;
        float y = -p.y * 5 +  cos(angle) * circleSize;&lt;br /&gt;
        y -= (mouseY - height/4f) / height/4f * noise(i * 2+millis()/1000000000000f) * 8000; &lt;br /&gt;
        points[j] = new PVector(x, y);&lt;br /&gt;
        circleSize = circleSize-(mouseX-mouseX*0.85);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      f.getGlyph(c).addContour(points);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  f.buildFont(); // write ttf file&lt;br /&gt;
  f.cleanup();   // delete all glyph files that have been created while building the font&lt;br /&gt;
  &lt;br /&gt;
  fontBuilt = true;&lt;br /&gt;
&lt;br /&gt;
  myFont = createFont(f.getTTFfilename(), 200); // set the font to be used for rendering&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
  &lt;br /&gt;
  initFont();   // and make a new font right away&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// A function to preview a glyph in Processing&lt;br /&gt;
&lt;br /&gt;
void renderGlyphSolid(char c) {&lt;br /&gt;
    &lt;br /&gt;
  FContour[] contours = f.getGlyph(c).getContoursArray();&lt;br /&gt;
&lt;br /&gt;
  for (int j=0; j&amp;lt;contours.length; j++) {&lt;br /&gt;
&lt;br /&gt;
    FPoint[] points = f.getGlyph(c).getContour(j).getPointsArray();&lt;br /&gt;
&lt;br /&gt;
    if (points.length &amp;gt; 0) { //just to be sure    &lt;br /&gt;
      // Draw the solid shape in Processing&lt;br /&gt;
      beginShape();      &lt;br /&gt;
      for (int i=0; i&amp;lt;points.length; i++) {&lt;br /&gt;
        FPoint p1 = points[i];&lt;br /&gt;
        FPoint p2 = points[(i+1)%points.length];&lt;br /&gt;
        if (p1.hasControlPoint2() &amp;amp;&amp;amp; p2.hasControlPoint1()) {&lt;br /&gt;
          if (i == 0) { &lt;br /&gt;
            vertex(points[0].x, -points[0].y);&lt;br /&gt;
          }&lt;br /&gt;
          bezierVertex(p1.controlPoint2.x, -p1.controlPoint2.y, p2.controlPoint1.x, -p2.controlPoint1.y, p2.x, -p2.y);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          vertex(p1.x, -p1.y);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      endShape();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
&lt;br /&gt;
  if (key == &#039;s&#039;) {&lt;br /&gt;
    createFont();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=74977</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=74977"/>
		<updated>2015-11-19T12:49:28Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Letter Homework ==&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Homework 02 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a very simple Code-Font. It&#039;s just for Capital Letters and there are rectangles from A to Z. These Rectangles become smaller from A to Z. A is the biggest and Z a dot.&lt;br /&gt;
&lt;br /&gt;
[[Image:Simplefont_const.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Image Simple Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//import library&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
&lt;br /&gt;
// new Font&lt;br /&gt;
Fontastic f;&lt;br /&gt;
int version = 0;&lt;br /&gt;
&lt;br /&gt;
// Settings&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(600, 300);&lt;br /&gt;
  fill(55);&lt;br /&gt;
  createFont(); // create the font&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Zeichnenfunktion&lt;br /&gt;
void draw() {  &lt;br /&gt;
  background(255);&lt;br /&gt;
  PFont myFont = createFont(f.getTTFfilename(), 64); // reading the font that has just been created&lt;br /&gt;
&lt;br /&gt;
  textFont(myFont);&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  text(Fontastic.alphabet, 0, Fontastic.alphabet.length/2, width/2, height/3);&lt;br /&gt;
  text(Fontastic.alphabet, Fontastic.alphabet.length/2, Fontastic.alphabet.length, width/2, height/3*2);&lt;br /&gt;
&lt;br /&gt;
  noLoop();&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
&lt;br /&gt;
  if (f != null) { f.cleanup(); }&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;simpleFont&amp;quot; + nf(version,4));&lt;br /&gt;
&lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;1.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(600);&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;Fontastic.alphabet.length; i++) {&lt;br /&gt;
    &lt;br /&gt;
    char c = Fontastic.alphabet[i];&lt;br /&gt;
    &lt;br /&gt;
    PVector[] points = new PVector[4];&lt;br /&gt;
    &lt;br /&gt;
    int maxwidth = 512-i*19;&lt;br /&gt;
    int maxheight = 1024-i*39;&lt;br /&gt;
    &lt;br /&gt;
    points[0] = new PVector(0, 0);&lt;br /&gt;
    points[1] = new PVector(maxwidth, 0);&lt;br /&gt;
    points[2] = new PVector(maxwidth, maxheight);&lt;br /&gt;
    points[3] = new PVector(0, maxheight);&lt;br /&gt;
    &lt;br /&gt;
    f.addGlyph(c).addContour(points);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.buildFont();&lt;br /&gt;
  f.cleanup();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This programm &amp;quot;distort&amp;quot; the font &amp;quot;BEBAS&amp;quot; with triangles. There triangles on the contour of 5 origonal letters of this font. With the position of the mouse u change in x-coordinates the size of the triangle and in y-coordinates the y-position of the indiviual retangles. If you have your right position u can click any key to save this font.&lt;br /&gt;
&lt;br /&gt;
[[Font_distor_const_03.JPG]]&lt;br /&gt;
[[Font_distor_const_01.JPG]]&lt;br /&gt;
[[Font_distor_const_02.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Images Font Distor Font&lt;br /&gt;
&lt;br /&gt;
=== Source Code Simple Font ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Libraries&lt;br /&gt;
import fontastic.*;&lt;br /&gt;
import geomerative.*;&lt;br /&gt;
&lt;br /&gt;
Fontastic f;&lt;br /&gt;
RFont font;&lt;br /&gt;
&lt;br /&gt;
PFont myFont;&lt;br /&gt;
int version = 0;&lt;br /&gt;
int charWidth = 512;&lt;br /&gt;
boolean fontBuilt = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  size(800, 800);&lt;br /&gt;
  fill(0);&lt;br /&gt;
&lt;br /&gt;
  // always initialize the library in setup&lt;br /&gt;
  RG.init(this);&lt;br /&gt;
  // load the initial font&lt;br /&gt;
  font = new RFont(&amp;quot;BEBAS.TTF&amp;quot;,150);&lt;br /&gt;
&lt;br /&gt;
  // get the points on the curve&#039;s shape&lt;br /&gt;
  // set style and segment resultion&lt;br /&gt;
  RCommand.setSegmentLength(10);&lt;br /&gt;
  RCommand.setSegmentator(RCommand.UNIFORMLENGTH);&lt;br /&gt;
&lt;br /&gt;
  initFont();&lt;br /&gt;
  updateFont();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  updateFont();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  int numberOfLetters = 5; // the number of letters to display&lt;br /&gt;
  for (int i=0; i&amp;lt;numberOfLetters; i++) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    translate(width/2, height/2);&lt;br /&gt;
    scale(charWidth/500f / 5f);&lt;br /&gt;
    translate(-(numberOfLetters -1)*charWidth / 2 + i*charWidth, 0);&lt;br /&gt;
    translate(-charWidth/2, charWidth/2);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(55);&lt;br /&gt;
    renderGlyphSolid(Fontastic.alphabet[i]);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (fontBuilt) {&lt;br /&gt;
    pushMatrix();&lt;br /&gt;
    textFont(myFont);&lt;br /&gt;
    textAlign(CENTER, CENTER);&lt;br /&gt;
    fill(0);&lt;br /&gt;
    textSize(charWidth / 5f);&lt;br /&gt;
    text(new String(subset(Fontastic.alphabet, 0, numberOfLetters)), width/2, height*0.6);&lt;br /&gt;
    popMatrix();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initFont() {&lt;br /&gt;
&lt;br /&gt;
  f = new Fontastic(this, &amp;quot;font_distor&amp;quot; + nf(version,4)); // create new Fontastic object&lt;br /&gt;
&lt;br /&gt;
  // add letters to the font, without adding glyph shapes&lt;br /&gt;
  for (char c : Fontastic.alphabet) {   &lt;br /&gt;
    f.addGlyph(c);                      // add all uppercase letters from the alphabet &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  f.setFontFamilyName(&amp;quot;font_distor&amp;quot;); &lt;br /&gt;
  f.setAuthor(&amp;quot;Constantin&amp;quot;);&lt;br /&gt;
  f.setVersion(&amp;quot;0.0&amp;quot;);&lt;br /&gt;
  f.setAdvanceWidth(int(charWidth * 1.1));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateFont() {&lt;br /&gt;
  &lt;br /&gt;
  for (char c : Fontastic.alphabet) {&lt;br /&gt;
&lt;br /&gt;
    RShape shp = font.toShape(c);&lt;br /&gt;
    RPoint[] pnts = shp.getPoints();&lt;br /&gt;
&lt;br /&gt;
    f.getGlyph(c).clearContours();&lt;br /&gt;
&lt;br /&gt;
    for (int i=0; i&amp;lt;pnts.length-1; i++) {&lt;br /&gt;
&lt;br /&gt;
      RPoint p = pnts[i];&lt;br /&gt;
      PVector[] points = new PVector[4];&lt;br /&gt;
&lt;br /&gt;
      float circleSize = 40;&lt;br /&gt;
&lt;br /&gt;
      int resolution = 3;&lt;br /&gt;
      points = new PVector[resolution];&lt;br /&gt;
      for (int j=0; j&amp;lt;resolution; j++) {&lt;br /&gt;
        float angle = TWO_PI/(resolution * 1f) * j;&lt;br /&gt;
        float x = p.x * 5 + sin(angle) * circleSize;&lt;br /&gt;
        float y = -p.y * 5 +  cos(angle) * circleSize;&lt;br /&gt;
        y -= (mouseY - height/4f) / height/4f * noise(i * 2+millis()/1000000000000f) * 8000; &lt;br /&gt;
        points[j] = new PVector(x, y);&lt;br /&gt;
        circleSize = circleSize-(mouseX-mouseX*0.85);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      f.getGlyph(c).addContour(points);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void createFont() {&lt;br /&gt;
&lt;br /&gt;
  f.buildFont(); // write ttf file&lt;br /&gt;
  f.cleanup();   // delete all glyph files that have been created while building the font&lt;br /&gt;
  &lt;br /&gt;
  fontBuilt = true;&lt;br /&gt;
&lt;br /&gt;
  myFont = createFont(f.getTTFfilename(), 200); // set the font to be used for rendering&lt;br /&gt;
&lt;br /&gt;
  version++;&lt;br /&gt;
  &lt;br /&gt;
  initFont();   // and make a new font right away&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// A function to preview a glyph in Processing&lt;br /&gt;
&lt;br /&gt;
void renderGlyphSolid(char c) {&lt;br /&gt;
    &lt;br /&gt;
  FContour[] contours = f.getGlyph(c).getContoursArray();&lt;br /&gt;
&lt;br /&gt;
  for (int j=0; j&amp;lt;contours.length; j++) {&lt;br /&gt;
&lt;br /&gt;
    FPoint[] points = f.getGlyph(c).getContour(j).getPointsArray();&lt;br /&gt;
&lt;br /&gt;
    if (points.length &amp;gt; 0) { //just to be sure    &lt;br /&gt;
      // Draw the solid shape in Processing&lt;br /&gt;
      beginShape();      &lt;br /&gt;
      for (int i=0; i&amp;lt;points.length; i++) {&lt;br /&gt;
        FPoint p1 = points[i];&lt;br /&gt;
        FPoint p2 = points[(i+1)%points.length];&lt;br /&gt;
        if (p1.hasControlPoint2() &amp;amp;&amp;amp; p2.hasControlPoint1()) {&lt;br /&gt;
          if (i == 0) { &lt;br /&gt;
            vertex(points[0].x, -points[0].y);&lt;br /&gt;
          }&lt;br /&gt;
          bezierVertex(p1.controlPoint2.x, -p1.controlPoint2.y, p2.controlPoint1.x, -p2.controlPoint1.y, p2.x, -p2.y);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          vertex(p1.x, -p1.y);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      endShape();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
&lt;br /&gt;
  if (key == &#039;s&#039;) {&lt;br /&gt;
    createFont();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Font_distor_const_01.JPG&amp;diff=74976</id>
		<title>File:Font distor const 01.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Font_distor_const_01.JPG&amp;diff=74976"/>
		<updated>2015-11-19T12:48:45Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Font_distor_const_02.JPG&amp;diff=74975</id>
		<title>File:Font distor const 02.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Font_distor_const_02.JPG&amp;diff=74975"/>
		<updated>2015-11-19T12:48:35Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Font_distor_const_03.JPG&amp;diff=74974</id>
		<title>File:Font distor const 03.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Font_distor_const_03.JPG&amp;diff=74974"/>
		<updated>2015-11-19T12:48:09Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Simplefont_const.JPG&amp;diff=74971</id>
		<title>File:Simplefont const.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Simplefont_const.JPG&amp;diff=74971"/>
		<updated>2015-11-19T12:33:05Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=74557</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=74557"/>
		<updated>2015-10-29T15:02:37Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Letter Homework ===&lt;br /&gt;
&lt;br /&gt;
I chose to recreate the letter C, cause it&#039;s one of my initials. &lt;br /&gt;
&lt;br /&gt;
[[Image:Letter_C_Constantin.JPG]]&lt;br /&gt;
&lt;br /&gt;
* Image of the letter&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  noFill();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
&lt;br /&gt;
  int midsize = 200;&lt;br /&gt;
  int letter_height = 180;&lt;br /&gt;
  int letter_width = 150;&lt;br /&gt;
  int thickness = 30;&lt;br /&gt;
  int color_bg = 0;&lt;br /&gt;
  int color_letter = 255;&lt;br /&gt;
  int line_width = 90;&lt;br /&gt;
&lt;br /&gt;
  background(color_bg);&lt;br /&gt;
&lt;br /&gt;
  stroke(color_letter);&lt;br /&gt;
  strokeWeight(thickness);&lt;br /&gt;
&lt;br /&gt;
  //Arc&lt;br /&gt;
  arc(midsize, midsize, letter_width, letter_height, PI-2*QUARTER_PI, PI+2*QUARTER_PI, OPEN);&lt;br /&gt;
  line(midsize, midsize+letter_height/2, midsize+line_width, midsize+letter_height/2);&lt;br /&gt;
  line(midsize, midsize-letter_height/2, midsize+line_width, midsize-letter_height/2);&lt;br /&gt;
  strokeWeight(0.5*thickness);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize+letter_height/2-0.5*line_width, midsize+line_width, midsize+letter_height/2+0.5*line_width);&lt;br /&gt;
  line(midsize+line_width+0.5*thickness, midsize-letter_height/2-0.5*line_width, midsize+line_width, midsize-letter_height/2+0.5*line_width);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Letter_C_Constantin.JPG&amp;diff=74556</id>
		<title>File:Letter C Constantin.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Letter_C_Constantin.JPG&amp;diff=74556"/>
		<updated>2015-10-29T14:52:58Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=74548</id>
		<title>GMU:Wild Type/Constantin</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type/Constantin&amp;diff=74548"/>
		<updated>2015-10-29T13:47:18Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: Created page with &amp;quot;This is the page of Constantin Oestreich.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the page of Constantin Oestreich.&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type&amp;diff=74547</id>
		<title>GMU:Wild Type</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Wild_Type&amp;diff=74547"/>
		<updated>2015-10-29T13:46:31Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: Constantin Oestreich Subpage &amp;amp; Link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Martin-Schneider-Turing-Font.jpg|thumb|left|200px|Gewachsene Schrift&amp;lt;br&amp;gt;[https://www.flickr.com/photos/bitcraft/sets/72157630252521632/ Ein Turing-Pattern Font]]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wild Type: Typography ex Natura&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[:Category:Werkmodul|Werkmodul]]/[[:Category:Fachmodul|Fachmodul]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Lecturer:&#039;&#039; [[User:ms|Martin Schneider]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Credits:&#039;&#039; 6 [[ECTS]], 4 [[SWS]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Date:&#039;&#039; &#039;&#039;&#039;Donnerstag, 17:00 - 20:30 Uhr&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Venue:&#039;&#039; [https://www.uni-weimar.de/de/gestaltung/struktur/werkstaetten-ausstattung/mac-pool/ MAC-Pool Fak. G], Marienstrasse 1&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;First meeting:&#039;&#039; &#039;&#039;&#039;Donnerstag, 22. Oktober 2015&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 NEWS:&lt;br /&gt;
 Room Change: First Meeting Mac-Pool Marienstrasse 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Typography plays a huge role in media art and design.&lt;br /&gt;
But the tools typographers use on their computers still imitate the 15th century printing press.&lt;br /&gt;
In &amp;quot;Wild Type&amp;quot; we will get to know tools and programming languages for generative typography. We will learn how to apply parametric design principles to font design, how to evolve fonts with genetic algorithms inside the computer, how to animate them and make them come alive.&lt;br /&gt;
&lt;br /&gt;
We will also learn how to use methods of machine learning and image recognition to identify and generate typographical structures.&lt;br /&gt;
As part of this course we will also touch upon the field of speculative typography, and develop writing systems that plants and other nonhumans might use in their communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Typographie spielt in Medienkunst und -gestaltung eine große Rolle.&lt;br /&gt;
Allerdings imitieren die Werkzeuge der Schriftgestaltung am Computer noch immer die Druckerpresse aus dem 15. Jahrhundert.&lt;br /&gt;
In &amp;quot;Wild Type&amp;quot; lernen die Studenten wie man Prinzipen des parametrischen Designs auf Buchstaben anwendet, wie man mit genetischen Algorithmen Fonts im Computer züchten kann, und wie man Buchstaben animieren und zu interaktivem Leben erwecken kann. &lt;br /&gt;
&lt;br /&gt;
Außerdem lernen sie Methoden der automatischen Bilderkennung kennen, mit denen man typographische Strukturen in der Natur entdecken kann.&lt;br /&gt;
Im Rahmen des Kurses werden wir auch mit spekulativer Typographie in Berührung kommen, und dabei Schriften für die Kommunikation zwischen Pflanzen und anderen nicht-menschlichen Wesen und Mechanismen entwickeln.&lt;br /&gt;
&lt;br /&gt;
== Language ==&lt;br /&gt;
&lt;br /&gt;
The course will be in English, unless all participants are speaking German.&lt;br /&gt;
&lt;br /&gt;
== Eligible Participants ==&lt;br /&gt;
&lt;br /&gt;
Undergraduates and graduates enrolled in the faculties of Media and Design.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Basic knowledge of typography&lt;br /&gt;
* Basic knowledge of programming in processing or python&lt;br /&gt;
&lt;br /&gt;
== Application ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 NOTE:&lt;br /&gt;
 Deadline for application to this course is October 18th 2015.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You need to provide links to previous work to be elligible to this course.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To:&#039;&#039;&#039; [[User:ms|Martin Schneider]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Subject:&#039;&#039;&#039; Wild Type /// Application&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Content:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Please provide samples of your work:&lt;br /&gt;
#* Links to previous graphical or typography related work&lt;br /&gt;
#* Links to at least one computer generated work&lt;br /&gt;
&lt;br /&gt;
# Please tell us about you:&lt;br /&gt;
#* Program and semester (Studienprogramm und Fachsemester)&lt;br /&gt;
#* Matriculation number (Matrikelnummer)&lt;br /&gt;
#* Valid email address @uni-weimar.de (no other mailing addresses will be accepted) [[SCC-Services#E-Mail|Why?]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Theme !! Topic !!  Date&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[/Part1|I. Fonts in Processing]]&lt;br /&gt;
| From Point to Line to Letter&lt;br /&gt;
| 22. October 2015&lt;br /&gt;
|-&lt;br /&gt;
| Generating Fonts (Fontastic, Geomerative)&lt;br /&gt;
| 29. October 2015&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | [[/Part2|II. Fonts in Python]]&lt;br /&gt;
| Intro to Robofab &amp;amp; Robofont (Block-Course)&lt;br /&gt;
| &#039;&#039;t.b.a&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | [[/Part3|III. Future Fonts]]&lt;br /&gt;
| Animated Fonts&lt;br /&gt;
| 19. November 2015&lt;br /&gt;
|-&lt;br /&gt;
| Writing Systems&lt;br /&gt;
| 10. December 2015&lt;br /&gt;
|-&lt;br /&gt;
| Font Recognition and OCR&lt;br /&gt;
| 3. December 2015&lt;br /&gt;
|-&lt;br /&gt;
| Physical Fonts (3D-Printing, Bio-Art ...)&lt;br /&gt;
| 17. December 2015&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | [[/Part4|IV. Growing Fonts]]&lt;br /&gt;
| Cellular Automata, Neural Nets and Evolutionary Design&lt;br /&gt;
| 18. - 20. December 2016&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
  Please create a sub page and link to it here!&lt;br /&gt;
&lt;br /&gt;
* [[GMU:Wild_Type/Martin Schneider|Martin Schneider]]&lt;br /&gt;
*[[GMU:Wild_Type/Benjamin Voßler|Benjamin Voßler]]&lt;br /&gt;
*[[GMU:Wild_Type/Matthias Schäfer|Matthias Schäfer]]&lt;br /&gt;
*[[GMU:Wild_Type/Jessica Hüttig|Jessica Hüttig]]&lt;br /&gt;
*[[GMU:Wild_Type/Steffen Harder|Steffen Harder]]&lt;br /&gt;
*[[GMU:Wild_Type/Mark Eisenberg|Mark Eisenberg]]&lt;br /&gt;
*[[GMU:Wild_Type/Vanya Gercheva|Vanya Gercheva]]&lt;br /&gt;
*[[GMU:Wild_Type/Tim Vischer|Tim Vischer]]&lt;br /&gt;
*[[GMU:Wild_Type/Constantin |Constantin Oestreich]]&lt;br /&gt;
* and your name, too&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Introduction === &lt;br /&gt;
* [[Schrift]]&lt;br /&gt;
* [[Schrift#Schrift_im_Computer|Schrift im Computer]]&lt;br /&gt;
&lt;br /&gt;
=== Generative Typography ===&lt;br /&gt;
* [[Schrift#Parametrische_Schrift|Parametric Fonts]]&lt;br /&gt;
* [[Schrift#Gewachsene_Schrift|Growing Fonts]]&lt;br /&gt;
* [[Schrift#Bewegte_Schrift|Fonts in Motion]]&lt;br /&gt;
* [[Schrift#Werkzeuge|Tools for Generative Typography]]&lt;br /&gt;
&lt;br /&gt;
=== Exotic Writing Systems ===&lt;br /&gt;
* [[Schrift#Ferne_L.C3.A4nder_und_vergangene_Zeiten|Typography across space and time]]&lt;br /&gt;
* [[Schrift#Fantasie-Schriften|Speculative Typography]]&lt;br /&gt;
* [[Schrift#Besondere_Schriften|Niche Typography]]&lt;br /&gt;
* [[Schrift#Netz-Kultur|Internet Culture and Emoji]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:WS15]]&lt;br /&gt;
[[Category:Werkmodul]]&lt;br /&gt;
[[Category:Fachmodul]]&lt;br /&gt;
[[Category:Martin Schneider]]&lt;br /&gt;
[[Category:Processing]]&lt;br /&gt;
[[Category:Python]]&lt;br /&gt;
[[Category:Gestaltung]]&lt;br /&gt;
[[Category:Design]]&lt;br /&gt;
[[Category:Generative Gestaltung]]&lt;br /&gt;
[[Category:Schrift]]&lt;br /&gt;
[[Category:Typo]]&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=74187</id>
		<title>GMU:Bots &#039;n&#039; Plots/Constantin Oestreich</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=74187"/>
		<updated>2015-10-17T21:40:41Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Picturius Bottian Twitterbot ==&lt;br /&gt;
[[File:headerpictorius.JPG]]&lt;br /&gt;
&lt;br /&gt;
Twitterbot: [https://twitter.com/picturius @Picturus Bottian]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What the Bot does:&#039;&#039;&#039;&lt;br /&gt;
The Bot repost an filtered Image to you (if you send him one). Therefore he choose random 2-4 individual filter functions and create a new Image. He also give back a short sentence which he choose randomly. If you did not send and image and just text... he answer with: &amp;quot;No image&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[File:picturius02.JPG]]&lt;br /&gt;
[[File:picturius03.JPG]]&lt;br /&gt;
[[File:picturius04.JPG]]&lt;br /&gt;
[[File:picturius05.JPG]]&lt;br /&gt;
[[File:picturius06.JPG]]&lt;br /&gt;
[[File:picturius07.JPG]]&lt;br /&gt;
[[File:picturius08.JPG]]&lt;br /&gt;
[[File:picturius09.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas andP roblems:&#039;&#039;&#039;&lt;br /&gt;
I want to do an image bot which is not 100% clear what he creates. So I play whith this random and filter functions. To get on every processed image an individual look i had to go more and more abstract whith his output. So I increase the numbers of filter functions, put in more distorted filters and increase the minimal number of filter routines on every image.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thanks to:&#039;&#039;&#039;&lt;br /&gt;
Thanks to [http://stackoverflow.com/ Stackoverflow], thanks to the smaller Blogs and Forums I arrieved via Google, thanks to [http://effbot.org/ effbot], thanks to [https://pillow.readthedocs.org// Pillow] and last but not least thanks to Martin and Sebastian.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The code:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
### Main File ##############&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
#Import Classes + Modules&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
import random&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
from PIL import Image&lt;br /&gt;
from image import get_image_file&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from textposts import make_text&lt;br /&gt;
from textposts import no_image&lt;br /&gt;
from imagefuncs import filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
### Twitterbot functions ###&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
class MyTwitterBot(TwitterBot):&lt;br /&gt;
    &lt;br /&gt;
    # Keys&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Initialize and configure the bot &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 5     # default: 1 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Make a public tweet to the bot&#039;s own timeline. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # We might take senteces from somewhere and tweet them on a regular basis ...&lt;br /&gt;
        pass # don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
        if tweet:&lt;br /&gt;
            # get image from tweet&lt;br /&gt;
            try:&lt;br /&gt;
                image_file = get_image_file(tweet)&lt;br /&gt;
&lt;br /&gt;
                if image_file is None:&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+no_image()).format(prefix)&lt;br /&gt;
                else:&lt;br /&gt;
                    # create a tweet and make sure to cut it off at 140 chars&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+make_text()).format(prefix)&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                    print(e)&lt;br /&gt;
&lt;br /&gt;
            # do the tweeting based on wether we have an image&lt;br /&gt;
            tweetsize = 140 - len(prefix) - 1&lt;br /&gt;
            text = text[:140]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            if image_file is None:&lt;br /&gt;
&lt;br /&gt;
                    print(&amp;quot;No Image&amp;quot;)&lt;br /&gt;
                    self.post_tweet(text, reply_to=tweet)&lt;br /&gt;
                    return&lt;br /&gt;
&lt;br /&gt;
            else:&lt;br /&gt;
                filename, file = image_file&lt;br /&gt;
                img = Image.open(file)&lt;br /&gt;
                img = filter(img)&lt;br /&gt;
                format = filename.split(&amp;quot;.&amp;quot;, 1)[1].upper()&lt;br /&gt;
                print(&amp;quot;Image format: {}&amp;quot;.format(format))&lt;br /&gt;
                output = BytesIO()&lt;br /&gt;
                img.save(output, format=&amp;quot;PNG&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
            try:&lt;br /&gt;
                # Post&lt;br /&gt;
                &lt;br /&gt;
                self.post_tweet(text, reply_to=tweet, media=filename, file=output)&lt;br /&gt;
&lt;br /&gt;
                output.close()&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                # did anything go wrong when we tried to create and post the tweet?&lt;br /&gt;
                print(e)&lt;br /&gt;
    &lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Actions to take on a timeline tweet. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        pass # Don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = MyTwitterBot()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
### Filter File ############&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
def edges (image): #002&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image): #002&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image): #002&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
def pixelit (image): #001&lt;br /&gt;
    xsize, ysize = image.size&lt;br /&gt;
    width = xsize&lt;br /&gt;
    height = ysize&lt;br /&gt;
    minwidth = int(xsize * 0.05)&lt;br /&gt;
    minheight = int(ysize * 0.05)&lt;br /&gt;
    image = image.resize((minwidth, minheight) , Image.NEAREST)&lt;br /&gt;
    image = image.resize((width , height), Image.NEAREST)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def blend (image): #001&lt;br /&gt;
    image.convert(&amp;quot;RGBA&amp;quot;)&lt;br /&gt;
    imgrotate1 = image.rotate(135)&lt;br /&gt;
    imgrotate2 = image.rotate(225)&lt;br /&gt;
    image2 = Image.blend(imgrotate1, imgrotate2, 0.5)&lt;br /&gt;
    image = Image.blend(image, image2, 0.5)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def nogreen (image): #001&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    source = image.split()&lt;br /&gt;
    R, G, B = 0, 1, 2&lt;br /&gt;
    out = source[G].point(lambda i: i*0.0)&lt;br /&gt;
    source[G].paste(out, None, None)&lt;br /&gt;
    image = Image.merge(image.mode, source)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def colorchange (image) : #002&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    source = image.split()&lt;br /&gt;
    R, G, B = 0, 1, 2&lt;br /&gt;
    mask1 = source[R].point(lambda i: i&amp;lt;200 and 255)&lt;br /&gt;
    out1 = source[R].point(lambda i: i*0)&lt;br /&gt;
    source[R].paste(out1, None, mask1)&lt;br /&gt;
    mask2 = source[G].point(lambda i: i&amp;lt;200 and 255)&lt;br /&gt;
    out2 = source[G].point(lambda i: i*0.5)&lt;br /&gt;
    source[G].paste(out2, None, mask2)&lt;br /&gt;
    image = Image.merge(image.mode, source)&lt;br /&gt;
    return image&lt;br /&gt;
    &lt;br /&gt;
def switchchannels (image) : #001&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    r,g,b = image.split()&lt;br /&gt;
    image = Image.merge (&amp;quot;RGB&amp;quot;, (g,b,r))&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def pixelsort (image) :   #002&lt;br /&gt;
    source = image&lt;br /&gt;
    colors = source.getcolors(source.size[0] * source.size[1])&lt;br /&gt;
    pixels = []&lt;br /&gt;
    for i, color in colors:&lt;br /&gt;
        pixels.extend(i * [color])&lt;br /&gt;
    pixels.sort()&lt;br /&gt;
    new = Image.new(&amp;quot;RGB&amp;quot;, source.size)&lt;br /&gt;
    new.putdata(pixels)&lt;br /&gt;
    image = new&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def pixelunsort (image) : #002&lt;br /&gt;
    source = image&lt;br /&gt;
    colors = source.getcolors(source.size[0] * source.size[1])&lt;br /&gt;
    pixels = []&lt;br /&gt;
    for i, color in colors:&lt;br /&gt;
        pixels.extend(i * [color])&lt;br /&gt;
    random.shuffle(pixels)&lt;br /&gt;
    new = Image.new(&amp;quot;RGB&amp;quot;, source.size)&lt;br /&gt;
    new.putdata(pixels)&lt;br /&gt;
    image = new&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def spectral (image) : #002&lt;br /&gt;
    image2 = image&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    image = Image.new( &amp;quot;RGB&amp;quot;, image.size, &amp;quot;black&amp;quot;)&lt;br /&gt;
    pixels = image.load()&lt;br /&gt;
    for i in range (image.size[0]):&lt;br /&gt;
        for j in range (image.size[1]):&lt;br /&gt;
            pixels[i,j] = (i, j, 0)&lt;br /&gt;
    image = Image.blend(image, image2, 0.4)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def pixelunsort_green (image) : #001&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    source2 = image.split()    &lt;br /&gt;
    R, G, B = 0, 1, 2&lt;br /&gt;
    out1 = source2[R].point(lambda i: i*0.1)&lt;br /&gt;
    out2 = source2[B].point(lambda i: i*0.9)&lt;br /&gt;
    source2[R].paste(out1, None, None)&lt;br /&gt;
    source2[B].paste(out2, None, None)&lt;br /&gt;
    image = Image.merge(image.mode, source2)&lt;br /&gt;
    source = image&lt;br /&gt;
    colors = source.getcolors(source.size[0] * source.size[1])&lt;br /&gt;
    pixels = []&lt;br /&gt;
    for i, color in colors:&lt;br /&gt;
        pixels.extend(i * [color])&lt;br /&gt;
    random.shuffle(pixels)&lt;br /&gt;
    new = Image.new(&amp;quot;RGB&amp;quot;, source.size)&lt;br /&gt;
    new.putdata(pixels)&lt;br /&gt;
    image = new&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def pixelsort_green (image) : #001&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    source2 = image.split()    &lt;br /&gt;
    R, G, B = 0, 1, 2&lt;br /&gt;
    out1 = source2[R].point(lambda i: i*0.1)&lt;br /&gt;
    out2 = source2[B].point(lambda i: i*0.9)&lt;br /&gt;
    source2[R].paste(out1, None, None)&lt;br /&gt;
    source2[B].paste(out2, None, None)&lt;br /&gt;
    image = Image.merge(image.mode, source2)&lt;br /&gt;
    source = image&lt;br /&gt;
    colors = source.getcolors(source.size[0] * source.size[1])&lt;br /&gt;
    pixels = []&lt;br /&gt;
    for i, color in colors:&lt;br /&gt;
        pixels.extend(i * [color])&lt;br /&gt;
    pixels.sort()&lt;br /&gt;
    new = Image.new(&amp;quot;RGB&amp;quot;, source.size)&lt;br /&gt;
    new.putdata(pixels)&lt;br /&gt;
    image = new&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Random Filter List&lt;br /&gt;
&lt;br /&gt;
def filter (image):&lt;br /&gt;
&lt;br /&gt;
    functions_list = [edges, transpose, invert, pixelit, blend, nogreen, colorchange, switchchannels, pixelsort, pixelunsort, spectral, pixelunsort_green, pixelsort_green]&lt;br /&gt;
    filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    x = 2&lt;br /&gt;
    y = 3&lt;br /&gt;
    z = 4&lt;br /&gt;
    list = [x, y, z]&lt;br /&gt;
    anzahl = random.choice(list)&lt;br /&gt;
    print (anzahl)&lt;br /&gt;
    &lt;br /&gt;
    if anzahl == 2:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 3:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #3.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 4:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #3.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #4.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
### Text File ##############&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def make_text():&lt;br /&gt;
    a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
    b=&amp;quot;What do you think about?&amp;quot;&lt;br /&gt;
    c=&amp;quot;Uh, which Effekt&amp;quot;&lt;br /&gt;
    d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
    e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
    f=&amp;quot;Mhmmm, what you mean?&amp;quot;&lt;br /&gt;
    g=&amp;quot;My next I post!&amp;quot;&lt;br /&gt;
    h=&amp;quot;I should do more of this.&amp;quot;&lt;br /&gt;
    i=&amp;quot;Twitter is my life.&amp;quot;&lt;br /&gt;
    j=&amp;quot;This is my job!&amp;quot;&lt;br /&gt;
    k=&amp;quot;Funky&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(text_list)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
def no_image():&lt;br /&gt;
    a = &amp;quot;No Image there&amp;quot;&lt;br /&gt;
    b = &amp;quot;What you do? Where is my Image?&amp;quot;&lt;br /&gt;
    c = &amp;quot;I can&#039;t read! Send me a picture&amp;quot;&lt;br /&gt;
    d = &amp;quot;I like Images!&amp;quot;&lt;br /&gt;
    e = &amp;quot;Boring!&amp;quot;&lt;br /&gt;
    f = &amp;quot;Okay, I don&#039;t know what you want!&amp;quot;&lt;br /&gt;
    g = &amp;quot;Pictures! Thats what I want!&amp;quot;&lt;br /&gt;
    noimagelist = [a, b, c, d, e, f, g]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(noimagelist)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=74186</id>
		<title>GMU:Bots &#039;n&#039; Plots/Constantin Oestreich</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=74186"/>
		<updated>2015-10-17T21:39:12Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Picturius Bottian Twitterbot ==&lt;br /&gt;
[[File:headerpictorius.JPG]]&lt;br /&gt;
&lt;br /&gt;
Twitterbot: [https://twitter.com/picturius @Picturus Bottian]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What the Bot does:&#039;&#039;&#039;&lt;br /&gt;
The Bot repost an filtered Image to you (if you send him one). Therefore he choose random 2-4 individual filter functions and create a new Image. He also give back a short sentence which he choose randomly. If you did not send and image and just text... he answer with: &amp;quot;No image&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[File:picturius02.JPG]]&lt;br /&gt;
[[File:picturius03.JPG]]&lt;br /&gt;
[[File:picturius04.JPG]]&lt;br /&gt;
[[File:picturius05.JPG]]&lt;br /&gt;
[[File:picturius06.JPG]]&lt;br /&gt;
[[File:picturius07.JPG]]&lt;br /&gt;
[[File:picturius08.JPG]]&lt;br /&gt;
[[File:picturius09.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas andP roblems:&#039;&#039;&#039;&lt;br /&gt;
I want to do an image bot which is not 100% clear what he creates. So I play whith this random and filter functions. To get on every processed image an individual look i had to go more and more abstract whith his output. So I increase the numbers of filter functions, put in more distorted filters and increase the minimal number of filter routines on every image.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thanks to:&#039;&#039;&#039;&lt;br /&gt;
Thanks to [http://stackoverflow.com/ Stackoverflow], thanks to the smaller Blogs and Forums I arrieved via Google, thanks to [http://effbot.org/ effbot], thanks to [https://pillow.readthedocs.org// Pillow] and last but not least thanks to Martin and Sebastian.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The code:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
### Main File ##############&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
#Import Classes + Modules&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
import random&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
from PIL import Image&lt;br /&gt;
from image import get_image_file&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from textposts import make_text&lt;br /&gt;
from textposts import no_image&lt;br /&gt;
from imagefuncs import filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
### Twitterbot functions ###&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
class MyTwitterBot(TwitterBot):&lt;br /&gt;
    &lt;br /&gt;
    # Keys&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Initialize and configure the bot &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 5     # default: 1 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Make a public tweet to the bot&#039;s own timeline. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # We might take senteces from somewhere and tweet them on a regular basis ...&lt;br /&gt;
        pass # don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
        if tweet:&lt;br /&gt;
            # get image from tweet&lt;br /&gt;
            try:&lt;br /&gt;
                image_file = get_image_file(tweet)&lt;br /&gt;
&lt;br /&gt;
                if image_file is None:&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+no_image()).format(prefix)&lt;br /&gt;
                else:&lt;br /&gt;
                    # create a tweet and make sure to cut it off at 140 chars&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+make_text()).format(prefix)&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                    print(e)&lt;br /&gt;
&lt;br /&gt;
            # do the tweeting based on wether we have an image&lt;br /&gt;
            tweetsize = 140 - len(prefix) - 1&lt;br /&gt;
            text = text[:140]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            if image_file is None:&lt;br /&gt;
&lt;br /&gt;
                    print(&amp;quot;No Image&amp;quot;)&lt;br /&gt;
                    self.post_tweet(text, reply_to=tweet)&lt;br /&gt;
                    return&lt;br /&gt;
&lt;br /&gt;
            else:&lt;br /&gt;
                filename, file = image_file&lt;br /&gt;
                img = Image.open(file)&lt;br /&gt;
                img = filter(img)&lt;br /&gt;
                format = filename.split(&amp;quot;.&amp;quot;, 1)[1].upper()&lt;br /&gt;
                print(&amp;quot;Image format: {}&amp;quot;.format(format))&lt;br /&gt;
                output = BytesIO()&lt;br /&gt;
                img.save(output, format=&amp;quot;PNG&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
            try:&lt;br /&gt;
                # Post&lt;br /&gt;
                &lt;br /&gt;
                self.post_tweet(text, reply_to=tweet, media=filename, file=output)&lt;br /&gt;
&lt;br /&gt;
                output.close()&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                # did anything go wrong when we tried to create and post the tweet?&lt;br /&gt;
                print(e)&lt;br /&gt;
    &lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Actions to take on a timeline tweet. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        pass # Don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = MyTwitterBot()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
### Filter File ############&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
def edges (image): #002&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image): #002&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image): #002&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
def pixelit (image): #001&lt;br /&gt;
    xsize, ysize = image.size&lt;br /&gt;
    width = xsize&lt;br /&gt;
    height = ysize&lt;br /&gt;
    minwidth = int(xsize * 0.05)&lt;br /&gt;
    minheight = int(ysize * 0.05)&lt;br /&gt;
    image = image.resize((minwidth, minheight) , Image.NEAREST)&lt;br /&gt;
    image = image.resize((width , height), Image.NEAREST)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def blend (image): #001&lt;br /&gt;
    image.convert(&amp;quot;RGBA&amp;quot;)&lt;br /&gt;
    imgrotate1 = image.rotate(135)&lt;br /&gt;
    imgrotate2 = image.rotate(225)&lt;br /&gt;
    image2 = Image.blend(imgrotate1, imgrotate2, 0.5)&lt;br /&gt;
    image = Image.blend(image, image2, 0.5)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def nogreen (image): #001&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    source = image.split()&lt;br /&gt;
    R, G, B = 0, 1, 2&lt;br /&gt;
    out = source[G].point(lambda i: i*0.0)&lt;br /&gt;
    source[G].paste(out, None, None)&lt;br /&gt;
    image = Image.merge(image.mode, source)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def colorchange (image) : #002&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    source = image.split()&lt;br /&gt;
    R, G, B = 0, 1, 2&lt;br /&gt;
    mask1 = source[R].point(lambda i: i&amp;lt;200 and 255)&lt;br /&gt;
    out1 = source[R].point(lambda i: i*0)&lt;br /&gt;
    source[R].paste(out1, None, mask1)&lt;br /&gt;
    mask2 = source[G].point(lambda i: i&amp;lt;200 and 255)&lt;br /&gt;
    out2 = source[G].point(lambda i: i*0.5)&lt;br /&gt;
    source[G].paste(out2, None, mask2)&lt;br /&gt;
    image = Image.merge(image.mode, source)&lt;br /&gt;
    return image&lt;br /&gt;
    &lt;br /&gt;
def switchchannels (image) : #001&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    r,g,b = image.split()&lt;br /&gt;
    image = Image.merge (&amp;quot;RGB&amp;quot;, (g,b,r))&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def pixelsort (image) :   #002&lt;br /&gt;
    source = image&lt;br /&gt;
    colors = source.getcolors(source.size[0] * source.size[1])&lt;br /&gt;
    pixels = []&lt;br /&gt;
    for i, color in colors:&lt;br /&gt;
        pixels.extend(i * [color])&lt;br /&gt;
    pixels.sort()&lt;br /&gt;
    new = Image.new(&amp;quot;RGB&amp;quot;, source.size)&lt;br /&gt;
    new.putdata(pixels)&lt;br /&gt;
    image = new&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def pixelunsort (image) : #002&lt;br /&gt;
    source = image&lt;br /&gt;
    colors = source.getcolors(source.size[0] * source.size[1])&lt;br /&gt;
    pixels = []&lt;br /&gt;
    for i, color in colors:&lt;br /&gt;
        pixels.extend(i * [color])&lt;br /&gt;
    random.shuffle(pixels)&lt;br /&gt;
    new = Image.new(&amp;quot;RGB&amp;quot;, source.size)&lt;br /&gt;
    new.putdata(pixels)&lt;br /&gt;
    image = new&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def spectral (image) : #002&lt;br /&gt;
    image2 = image&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    image = Image.new( &amp;quot;RGB&amp;quot;, image.size, &amp;quot;black&amp;quot;)&lt;br /&gt;
    pixels = image.load()&lt;br /&gt;
    for i in range (image.size[0]):&lt;br /&gt;
        for j in range (image.size[1]):&lt;br /&gt;
            pixels[i,j] = (i, j, 0)&lt;br /&gt;
    image = Image.blend(image, image2, 0.4)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def pixelunsort_green (image) : #001&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    source2 = image.split()    &lt;br /&gt;
    R, G, B = 0, 1, 2&lt;br /&gt;
    out1 = source2[R].point(lambda i: i*0.1)&lt;br /&gt;
    out2 = source2[B].point(lambda i: i*0.9)&lt;br /&gt;
    source2[R].paste(out1, None, None)&lt;br /&gt;
    source2[B].paste(out2, None, None)&lt;br /&gt;
    image = Image.merge(image.mode, source2)&lt;br /&gt;
    source = image&lt;br /&gt;
    colors = source.getcolors(source.size[0] * source.size[1])&lt;br /&gt;
    pixels = []&lt;br /&gt;
    for i, color in colors:&lt;br /&gt;
        pixels.extend(i * [color])&lt;br /&gt;
    random.shuffle(pixels)&lt;br /&gt;
    new = Image.new(&amp;quot;RGB&amp;quot;, source.size)&lt;br /&gt;
    new.putdata(pixels)&lt;br /&gt;
    image = new&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
def pixelsort_green (image) : #001&lt;br /&gt;
    image.convert(&amp;quot;RGB&amp;quot;)&lt;br /&gt;
    source2 = image.split()    &lt;br /&gt;
    R, G, B = 0, 1, 2&lt;br /&gt;
    out1 = source2[R].point(lambda i: i*0.1)&lt;br /&gt;
    out2 = source2[B].point(lambda i: i*0.9)&lt;br /&gt;
    source2[R].paste(out1, None, None)&lt;br /&gt;
    source2[B].paste(out2, None, None)&lt;br /&gt;
    image = Image.merge(image.mode, source2)&lt;br /&gt;
    source = image&lt;br /&gt;
    colors = source.getcolors(source.size[0] * source.size[1])&lt;br /&gt;
    pixels = []&lt;br /&gt;
    for i, color in colors:&lt;br /&gt;
        pixels.extend(i * [color])&lt;br /&gt;
    pixels.sort()&lt;br /&gt;
    new = Image.new(&amp;quot;RGB&amp;quot;, source.size)&lt;br /&gt;
    new.putdata(pixels)&lt;br /&gt;
    image = new&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Random Filter List&lt;br /&gt;
&lt;br /&gt;
def filter (image):&lt;br /&gt;
&lt;br /&gt;
    functions_list = [edges, transpose, invert, pixelit, blend, nogreen, colorchange, switchchannels, pixelsort, pixelunsort, spectral, pixelunsort_green, pixelsort_green]&lt;br /&gt;
    filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    x = 2&lt;br /&gt;
    y = 3&lt;br /&gt;
    z = 4&lt;br /&gt;
    list = [x, y, z]&lt;br /&gt;
    anzahl = random.choice(list)&lt;br /&gt;
    print (anzahl)&lt;br /&gt;
    &lt;br /&gt;
    if anzahl == 2:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 3:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #3.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 4:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #3.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #4.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
### Text File ##############&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def make_text():&lt;br /&gt;
    a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
    b=&amp;quot;What do you think about?&amp;quot;&lt;br /&gt;
    c=&amp;quot;Uh, which Effekt&amp;quot;&lt;br /&gt;
    d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
    e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
    f=&amp;quot;Mhmmm, what you mean?&amp;quot;&lt;br /&gt;
    g=&amp;quot;My next I post!&amp;quot;&lt;br /&gt;
    h=&amp;quot;I should do more of this.&amp;quot;&lt;br /&gt;
    i=&amp;quot;Twitter is my life.&amp;quot;&lt;br /&gt;
    j=&amp;quot;This is my job!&amp;quot;&lt;br /&gt;
    k=&amp;quot;Funky&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(text_list)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
def no_image():&lt;br /&gt;
    a = &amp;quot;No Image there&amp;quot;&lt;br /&gt;
    b = &amp;quot;What you do? Where is my Image?&amp;quot;&lt;br /&gt;
    c = &amp;quot;I can&#039;t read! Send me a picture&amp;quot;&lt;br /&gt;
    d = &amp;quot;I like Images!&amp;quot;&lt;br /&gt;
    e = &amp;quot;Boring!&amp;quot;&lt;br /&gt;
    f = &amp;quot;Okay, I don&#039;t know what you want!&amp;quot;&lt;br /&gt;
    g = &amp;quot;Pictures! Thats what I want!&amp;quot;&lt;br /&gt;
    noimagelist = [a, b, c, d, e, f, g]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(noimagelist)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Source Code: ===&lt;br /&gt;
&lt;br /&gt;
==== Mainbot ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#mainbot.py&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Import Classes + Modules&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
import random&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
from PIL import Image&lt;br /&gt;
from image import get_image_file&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from textposts import make_text&lt;br /&gt;
from textposts import no_image&lt;br /&gt;
from imagefuncs import filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
### Twitterbot functions ###&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
class MyTwitterBot(TwitterBot):&lt;br /&gt;
    &lt;br /&gt;
    # Keys&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Initialize and configure the bot &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 5     # default: 1 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Make a public tweet to the bot&#039;s own timeline. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # We might take senteces from somewhere and tweet them on a regular basis ...&lt;br /&gt;
        pass # don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
        if tweet:&lt;br /&gt;
            # get image from tweet&lt;br /&gt;
            try:&lt;br /&gt;
                image_file = get_image_file(tweet)&lt;br /&gt;
&lt;br /&gt;
                if image_file is None:&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+no_image()).format(prefix)&lt;br /&gt;
                else:&lt;br /&gt;
                    # create a tweet and make sure to cut it off at 140 chars&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+make_text()).format(prefix)&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                    print(e)&lt;br /&gt;
&lt;br /&gt;
            # do the tweeting based on wether we have an image&lt;br /&gt;
            tweetsize = 140 - len(prefix) - 1&lt;br /&gt;
            text = text[:140]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            if image_file is None:&lt;br /&gt;
&lt;br /&gt;
                    print(&amp;quot;No Image&amp;quot;)&lt;br /&gt;
                    self.post_tweet(text, reply_to=tweet)&lt;br /&gt;
                    return&lt;br /&gt;
&lt;br /&gt;
            else:&lt;br /&gt;
                filename, file = image_file&lt;br /&gt;
                img = Image.open(file)&lt;br /&gt;
                img = filter(img)&lt;br /&gt;
                format = filename.split(&amp;quot;.&amp;quot;, 1)[1].upper()&lt;br /&gt;
                print(&amp;quot;Image format: {}&amp;quot;.format(format))&lt;br /&gt;
                output = BytesIO()&lt;br /&gt;
                img.save(output, format=&amp;quot;PNG&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
            try:&lt;br /&gt;
                # Post&lt;br /&gt;
                &lt;br /&gt;
                self.post_tweet(text, reply_to=tweet, media=filename, file=output)&lt;br /&gt;
&lt;br /&gt;
                output.close()&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                # did anything go wrong when we tried to create and post the tweet?&lt;br /&gt;
                print(e)&lt;br /&gt;
    &lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Actions to take on a timeline tweet. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        pass # Don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = MyTwitterBot()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Bildfunktionen + Random Auswahl ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
def pixelit (image):&lt;br /&gt;
    xsize, ysize = image.size&lt;br /&gt;
    width = xsize&lt;br /&gt;
    height = ysize&lt;br /&gt;
    minwidth = int(xsize * 0.05)&lt;br /&gt;
    minheight = int(ysize * 0.05)&lt;br /&gt;
    image = image.resize((minwidth, minheight) , Image.NEAREST)&lt;br /&gt;
    image = image.resize((width , height), Image.NEAREST)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
#Random Filter List&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def filter (image):&lt;br /&gt;
&lt;br /&gt;
    functions_list = [blur, emboss, edges, invert, transpose, pixelit]&lt;br /&gt;
    filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    x = 1&lt;br /&gt;
    y = 2&lt;br /&gt;
    z = 3&lt;br /&gt;
    list = [x, y, z]&lt;br /&gt;
    anzahl = random.choice(list)&lt;br /&gt;
    print (anzahl)&lt;br /&gt;
    &lt;br /&gt;
    if anzahl == 1:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 2:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 3:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #3.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Textfunktion ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def make_text():&lt;br /&gt;
    a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
    b=&amp;quot;What do you think about?&amp;quot;&lt;br /&gt;
    c=&amp;quot;Uh, which Effekt&amp;quot;&lt;br /&gt;
    d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
    e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
    f=&amp;quot;Mhmmm, what you mean?&amp;quot;&lt;br /&gt;
    g=&amp;quot;My next I post!&amp;quot;&lt;br /&gt;
    h=&amp;quot;I should do more of this.&amp;quot;&lt;br /&gt;
    i=&amp;quot;Twitter is my life.&amp;quot;&lt;br /&gt;
    j=&amp;quot;This is my job!&amp;quot;&lt;br /&gt;
    k=&amp;quot;Funky&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(text_list)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
def no_image():&lt;br /&gt;
    a = &amp;quot;No Image there&amp;quot;&lt;br /&gt;
    b = &amp;quot;What you do? Where is my Image?&amp;quot;&lt;br /&gt;
    c = &amp;quot;I can&#039;t read! Send me a picture&amp;quot;&lt;br /&gt;
    d = &amp;quot;I like Images!&amp;quot;&lt;br /&gt;
    e = &amp;quot;Boring!&amp;quot;&lt;br /&gt;
    f = &amp;quot;Okay, I don&#039;t know what you want!&amp;quot;&lt;br /&gt;
    g = &amp;quot;Pictures! Thats what I want!&amp;quot;&lt;br /&gt;
    noimagelist = [a, b, c, d, e, f, g]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(noimagelist)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bilder des Bots: ===&lt;br /&gt;
&lt;br /&gt;
[[File:Bot01.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot02.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot03.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot04.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot05.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot06.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Thanks for Help ===&lt;br /&gt;
&lt;br /&gt;
Thanks to [http://stackoverflow.com/ Stackoverflow], thanks to the smaller Blogs and Forums I arrieved via Google, thanks to [http://effbot.org/ effbot], thanks to [https://pillow.readthedocs.org// Pillow] and last but not least thanks to Martin and Sebastian.&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius09.JPG&amp;diff=74185</id>
		<title>File:Picturius09.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius09.JPG&amp;diff=74185"/>
		<updated>2015-10-17T21:29:34Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius08.JPG&amp;diff=74184</id>
		<title>File:Picturius08.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius08.JPG&amp;diff=74184"/>
		<updated>2015-10-17T21:29:15Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius07.JPG&amp;diff=74183</id>
		<title>File:Picturius07.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius07.JPG&amp;diff=74183"/>
		<updated>2015-10-17T21:28:44Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius06.JPG&amp;diff=74182</id>
		<title>File:Picturius06.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius06.JPG&amp;diff=74182"/>
		<updated>2015-10-17T21:28:29Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius05.JPG&amp;diff=74181</id>
		<title>File:Picturius05.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius05.JPG&amp;diff=74181"/>
		<updated>2015-10-17T21:28:10Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius04.JPG&amp;diff=74180</id>
		<title>File:Picturius04.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius04.JPG&amp;diff=74180"/>
		<updated>2015-10-17T21:27:51Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius03.JPG&amp;diff=74179</id>
		<title>File:Picturius03.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius03.JPG&amp;diff=74179"/>
		<updated>2015-10-17T21:27:21Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius02.JPG&amp;diff=74178</id>
		<title>File:Picturius02.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Picturius02.JPG&amp;diff=74178"/>
		<updated>2015-10-17T21:24:10Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Headerpictorius.JPG&amp;diff=74177</id>
		<title>File:Headerpictorius.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Headerpictorius.JPG&amp;diff=74177"/>
		<updated>2015-10-17T21:00:16Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=73804</id>
		<title>GMU:Bots &#039;n&#039; Plots/Constantin Oestreich</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=73804"/>
		<updated>2015-09-15T16:15:41Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Page of Constantin Oestreich ==&lt;br /&gt;
&lt;br /&gt;
Twitterbot: [https://twitter.com/picturius @Picturus Bottian]&lt;br /&gt;
&lt;br /&gt;
== Twitterbot Picturius Bottian ==&lt;br /&gt;
&lt;br /&gt;
=== Source Code: ===&lt;br /&gt;
&lt;br /&gt;
==== Mainbot ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#mainbot.py&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Import Classes + Modules&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
import random&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
from PIL import Image&lt;br /&gt;
from image import get_image_file&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from textposts import make_text&lt;br /&gt;
from textposts import no_image&lt;br /&gt;
from imagefuncs import filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
### Twitterbot functions ###&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
class MyTwitterBot(TwitterBot):&lt;br /&gt;
    &lt;br /&gt;
    # Keys&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Initialize and configure the bot &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 5     # default: 1 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Make a public tweet to the bot&#039;s own timeline. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # We might take senteces from somewhere and tweet them on a regular basis ...&lt;br /&gt;
        pass # don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
        if tweet:&lt;br /&gt;
            # get image from tweet&lt;br /&gt;
            try:&lt;br /&gt;
                image_file = get_image_file(tweet)&lt;br /&gt;
&lt;br /&gt;
                if image_file is None:&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+no_image()).format(prefix)&lt;br /&gt;
                else:&lt;br /&gt;
                    # create a tweet and make sure to cut it off at 140 chars&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+make_text()).format(prefix)&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                    print(e)&lt;br /&gt;
&lt;br /&gt;
            # do the tweeting based on wether we have an image&lt;br /&gt;
            tweetsize = 140 - len(prefix) - 1&lt;br /&gt;
            text = text[:140]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            if image_file is None:&lt;br /&gt;
&lt;br /&gt;
                    print(&amp;quot;No Image&amp;quot;)&lt;br /&gt;
                    self.post_tweet(text, reply_to=tweet)&lt;br /&gt;
                    return&lt;br /&gt;
&lt;br /&gt;
            else:&lt;br /&gt;
                filename, file = image_file&lt;br /&gt;
                img = Image.open(file)&lt;br /&gt;
                img = filter(img)&lt;br /&gt;
                format = filename.split(&amp;quot;.&amp;quot;, 1)[1].upper()&lt;br /&gt;
                print(&amp;quot;Image format: {}&amp;quot;.format(format))&lt;br /&gt;
                output = BytesIO()&lt;br /&gt;
                img.save(output, format=&amp;quot;PNG&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
            try:&lt;br /&gt;
                # Post&lt;br /&gt;
                &lt;br /&gt;
                self.post_tweet(text, reply_to=tweet, media=filename, file=output)&lt;br /&gt;
&lt;br /&gt;
                output.close()&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                # did anything go wrong when we tried to create and post the tweet?&lt;br /&gt;
                print(e)&lt;br /&gt;
    &lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Actions to take on a timeline tweet. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        pass # Don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = MyTwitterBot()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Bildfunktionen + Random Auswahl ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
def pixelit (image):&lt;br /&gt;
    xsize, ysize = image.size&lt;br /&gt;
    width = xsize&lt;br /&gt;
    height = ysize&lt;br /&gt;
    minwidth = int(xsize * 0.05)&lt;br /&gt;
    minheight = int(ysize * 0.05)&lt;br /&gt;
    image = image.resize((minwidth, minheight) , Image.NEAREST)&lt;br /&gt;
    image = image.resize((width , height), Image.NEAREST)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
#Random Filter List&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def filter (image):&lt;br /&gt;
&lt;br /&gt;
    functions_list = [blur, emboss, edges, invert, transpose, pixelit]&lt;br /&gt;
    filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    x = 1&lt;br /&gt;
    y = 2&lt;br /&gt;
    z = 3&lt;br /&gt;
    list = [x, y, z]&lt;br /&gt;
    anzahl = random.choice(list)&lt;br /&gt;
    print (anzahl)&lt;br /&gt;
    &lt;br /&gt;
    if anzahl == 1:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 2:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 3:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #3.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Textfunktion ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def make_text():&lt;br /&gt;
    a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
    b=&amp;quot;What do you think about?&amp;quot;&lt;br /&gt;
    c=&amp;quot;Uh, which Effekt&amp;quot;&lt;br /&gt;
    d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
    e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
    f=&amp;quot;Mhmmm, what you mean?&amp;quot;&lt;br /&gt;
    g=&amp;quot;My next I post!&amp;quot;&lt;br /&gt;
    h=&amp;quot;I should do more of this.&amp;quot;&lt;br /&gt;
    i=&amp;quot;Twitter is my life.&amp;quot;&lt;br /&gt;
    j=&amp;quot;This is my job!&amp;quot;&lt;br /&gt;
    k=&amp;quot;Funky&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(text_list)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
def no_image():&lt;br /&gt;
    a = &amp;quot;No Image there&amp;quot;&lt;br /&gt;
    b = &amp;quot;What you do? Where is my Image?&amp;quot;&lt;br /&gt;
    c = &amp;quot;I can&#039;t read! Send me a picture&amp;quot;&lt;br /&gt;
    d = &amp;quot;I like Images!&amp;quot;&lt;br /&gt;
    e = &amp;quot;Boring!&amp;quot;&lt;br /&gt;
    f = &amp;quot;Okay, I don&#039;t know what you want!&amp;quot;&lt;br /&gt;
    g = &amp;quot;Pictures! Thats what I want!&amp;quot;&lt;br /&gt;
    noimagelist = [a, b, c, d, e, f, g]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(noimagelist)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bilder des Bots: ===&lt;br /&gt;
&lt;br /&gt;
[[File:Bot01.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot02.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot03.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot04.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot05.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot06.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Thanks for Help ===&lt;br /&gt;
&lt;br /&gt;
Thanks to [http://stackoverflow.com/ Stackoverflow], thanks to the smaller Blogs and Forums I arrieved via Google, thanks to [http://effbot.org/ effbot], thanks to [https://pillow.readthedocs.org// Pillow] and last but not least thanks to Martin and Sebastian.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weiteres aus dem Kurs... ==&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_const.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Animated Robot ====&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_Const.gif]]&lt;br /&gt;
&lt;br /&gt;
Thumb doesnt work - find it here:&lt;br /&gt;
&lt;br /&gt;
Animated Robot: [https://www.uni-weimar.de/medien/wiki/images/Robot_Const.gif]&lt;br /&gt;
&lt;br /&gt;
==== Robot Code ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My Animated Robot&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Variablen&lt;br /&gt;
&lt;br /&gt;
widthBox = 400&lt;br /&gt;
heightBox = widthBox&lt;br /&gt;
centerx = widthBox / 2&lt;br /&gt;
centery = heightBox / 2&lt;br /&gt;
koerper = widthBox / 3&lt;br /&gt;
kopf = koerper / 1.5&lt;br /&gt;
auge = kopf / 6&lt;br /&gt;
blauKopf = 0&lt;br /&gt;
gruenKopf = 90&lt;br /&gt;
rotKopf = 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Ausgabe&lt;br /&gt;
&lt;br /&gt;
def setup():&lt;br /&gt;
    size (widthBox,heightBox)&lt;br /&gt;
    colorMode (RGB, 100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def draw():&lt;br /&gt;
    &lt;br /&gt;
    #Moving per Frame&lt;br /&gt;
    frameRate (25)&lt;br /&gt;
    angle = PI/8 * sin(frameCount * 0.1)&lt;br /&gt;
    &lt;br /&gt;
    #Growing Up&lt;br /&gt;
    &lt;br /&gt;
    global auge&lt;br /&gt;
    if auge&amp;lt;30:&lt;br /&gt;
        auge=auge+2&lt;br /&gt;
    else:&lt;br /&gt;
        auge=10&lt;br /&gt;
        &lt;br /&gt;
    global kopf&lt;br /&gt;
    if kopf&amp;lt;140:&lt;br /&gt;
        kopf=kopf+2&lt;br /&gt;
    else:&lt;br /&gt;
        kopf = koerper / 1.5&lt;br /&gt;
        &lt;br /&gt;
    global blauKopf&lt;br /&gt;
    global gruenKopf&lt;br /&gt;
    global rotKopf    &lt;br /&gt;
    if kopf&amp;gt;koerper / 1.5 and kopf&amp;lt;130:&lt;br /&gt;
        blauKopf = blauKopf + 5&lt;br /&gt;
        gruenKopf = gruenKopf -2&lt;br /&gt;
        rotKopf = rotKopf -2&lt;br /&gt;
    &lt;br /&gt;
    elif kopf &amp;gt; 130 and kopf &amp;lt; 140:&lt;br /&gt;
        blauKopf = 0&lt;br /&gt;
        gruenKopf = 0&lt;br /&gt;
        rotKopf = 100&lt;br /&gt;
        &lt;br /&gt;
    else:&lt;br /&gt;
        blauKopf=0&lt;br /&gt;
        gruenKopf = 90&lt;br /&gt;
        rotKopf = 100   &lt;br /&gt;
    &lt;br /&gt;
    #Variablen BG&lt;br /&gt;
    R = random(30,60)&lt;br /&gt;
    G = random(50,80)&lt;br /&gt;
    B = random(70,90) &lt;br /&gt;
    &lt;br /&gt;
    #Variablen Fill&lt;br /&gt;
    RF = random(20,50)&lt;br /&gt;
    GF = random(0,30)&lt;br /&gt;
    BF = random(10,40)&lt;br /&gt;
    &lt;br /&gt;
    #define&lt;br /&gt;
    background(R,G,B)&lt;br /&gt;
    rectMode(CENTER)&lt;br /&gt;
    fill (RF,GF,BF)&lt;br /&gt;
    stroke (90)&lt;br /&gt;
    strokeWeight(5)    &lt;br /&gt;
&lt;br /&gt;
    #---Körper---&lt;br /&gt;
    rect (centerx, centery, koerper, koerper)&lt;br /&gt;
&lt;br /&gt;
    #---Kopf---&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (rotKopf, gruenKopf, blauKopf)&lt;br /&gt;
    ellipse (centerx, centery-koerper+(kopf*0.25), kopf, kopf)&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    # Variablen Auge&lt;br /&gt;
    &lt;br /&gt;
    AugeX1 = centerx - 17&lt;br /&gt;
    AugeY1 = centerx - koerper*0.875&lt;br /&gt;
    AugeX2 = centerx + 17&lt;br /&gt;
    AugeY2 = centerx - koerper*0.875&lt;br /&gt;
    &lt;br /&gt;
    #---Auge01---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX1, AugeY1, 1)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #---Auge02---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX2, AugeY2, -1)&lt;br /&gt;
    &lt;br /&gt;
    # Arm positions&lt;br /&gt;
    posLx = centerx - koerper / 2&lt;br /&gt;
    posLy = centery - koerper / 2&lt;br /&gt;
    posRx = centerx + koerper / 2&lt;br /&gt;
    posRy = centery - koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    # Bein positions&lt;br /&gt;
    posBLx = centerx - koerper / 2&lt;br /&gt;
    posBLy = centery + koerper / 2&lt;br /&gt;
    posBRx = centerx + koerper / 2&lt;br /&gt;
    posBRy = centery + koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    #---Left Arm---&lt;br /&gt;
    drawArm(posLx-30, posLy-15, 1, angle)&lt;br /&gt;
    &lt;br /&gt;
    #---Right Arm---&lt;br /&gt;
    drawArm(posRx+30, posRy-15, -1, angle) &lt;br /&gt;
    &lt;br /&gt;
    #---Bein Links---&lt;br /&gt;
    drawBein(posBLx, posBLy)&lt;br /&gt;
    &lt;br /&gt;
    #---Bein Rechts---&lt;br /&gt;
    drawBein(posBRx-40, posBRy)&lt;br /&gt;
  &lt;br /&gt;
      &lt;br /&gt;
#Eigene Funktionen&lt;br /&gt;
&lt;br /&gt;
def drawAuge (xpos, ypos, direction):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (80,80,100)&lt;br /&gt;
    stroke (40)&lt;br /&gt;
    strokeWeight(2) &lt;br /&gt;
    translate (xpos, ypos)  &lt;br /&gt;
    scale(direction,1) &lt;br /&gt;
    ellipse (0,0,auge,auge)  &lt;br /&gt;
    popStyle()           &lt;br /&gt;
    popMatrix()&lt;br /&gt;
&lt;br /&gt;
def drawArm (xpos, ypos, direction, angle):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    scale(direction,1)&lt;br /&gt;
    rotate(angle)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,30,130)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    &lt;br /&gt;
def drawBein (xpos, ypos):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill(10,10,40)&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,40,90)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    saveFrame(&amp;quot;robot_const_###.png&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Midtermbot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
midtermbot.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
###Import###&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor&lt;br /&gt;
import tweepy&lt;br /&gt;
import time&lt;br /&gt;
import random&lt;br /&gt;
import requests&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from twitterkeys import *&lt;br /&gt;
from textposts import text&lt;br /&gt;
from imagefuncs import blur, emboss, edges, invert, transpose&lt;br /&gt;
&lt;br /&gt;
##############&lt;br /&gt;
###Programm###&lt;br /&gt;
##############&lt;br /&gt;
&lt;br /&gt;
###Twitter connect###&lt;br /&gt;
&lt;br /&gt;
#TwitterPassVariable for Test without posting on Twitter&lt;br /&gt;
#True = Post on Twitter / False = just open Image and show text local&lt;br /&gt;
check = False&lt;br /&gt;
&lt;br /&gt;
#Define TwitterKeys to variables&lt;br /&gt;
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)&lt;br /&gt;
auth.secure = True&lt;br /&gt;
auth.set_access_token(access_token, access_token_secret)&lt;br /&gt;
api = tweepy.API(auth)&lt;br /&gt;
&lt;br /&gt;
#Find Images and URL in Account on Twitter&lt;br /&gt;
timeline = api.user_timeline(screen_name = &amp;quot;C64_Bot&amp;quot;) &lt;br /&gt;
for tweet in timeline: &lt;br /&gt;
   for media in tweet.entities.get(&amp;quot;media&amp;quot;,[{}]):&lt;br /&gt;
    if media.get(&amp;quot;type&amp;quot;,None) == &amp;quot;photo&amp;quot;:&lt;br /&gt;
        url = media[&amp;quot;media_url&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
###Load Image from URL###&lt;br /&gt;
#&amp;quot;http://maui.hawaii.edu/tlc/wp-content/uploads/sites/53/2013/11/testing.jpg&amp;quot;&lt;br /&gt;
response = requests.get(url)&lt;br /&gt;
image = Image.open(BytesIO(response.content))&lt;br /&gt;
&lt;br /&gt;
#Test Bild laden&lt;br /&gt;
#image = Image.open(&amp;quot;test.png&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
#Liste der verschiedenen Funktionen erstellen&lt;br /&gt;
functions_list = [blur, emboss, edges, invert, transpose]&lt;br /&gt;
&lt;br /&gt;
#Mainfunction&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:    &lt;br /&gt;
    &lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    #2.Runde Random Filter anwenden&lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    if check == True:&lt;br /&gt;
        filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
        image.save(filename)&lt;br /&gt;
        api.update_with_media(filename,text)  &lt;br /&gt;
    &lt;br /&gt;
    else:&lt;br /&gt;
        image.show()&lt;br /&gt;
        print(text)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
#Bild blur&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Verschiedene Texte die gepostet werden können&lt;br /&gt;
a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
b=&amp;quot;I&#039;am an artist.What you think about?&amp;quot;&lt;br /&gt;
c=&amp;quot;Uh, which great Effekt&amp;quot;&lt;br /&gt;
d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
f=&amp;quot;Mhmmm, what you mean? Is this art?&amp;quot;&lt;br /&gt;
g=&amp;quot;Yes I post&amp;quot;&lt;br /&gt;
h=&amp;quot;I should do an exhibition whith this works.&amp;quot;&lt;br /&gt;
i=&amp;quot;Tell me what you think about.&amp;quot;&lt;br /&gt;
j=&amp;quot;This is my job! Post Pictures...&amp;quot;&lt;br /&gt;
k=&amp;quot;Funky...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Liste mit allen Textinhalten erstellen&lt;br /&gt;
text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Zufällige auswahl eines Inhalts&lt;br /&gt;
text = random.choice(text_list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=73803</id>
		<title>GMU:Bots &#039;n&#039; Plots/Constantin Oestreich</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=73803"/>
		<updated>2015-09-15T16:07:32Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Page of Constantin Oestreich ==&lt;br /&gt;
&lt;br /&gt;
Twitterbot: [https://twitter.com/picturius @Picturus Bottian]&lt;br /&gt;
&lt;br /&gt;
== Twitterbot Picturius Bottian ==&lt;br /&gt;
&lt;br /&gt;
=== Source Code: ===&lt;br /&gt;
&lt;br /&gt;
==== Mainbot ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#mainbot.py&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Import Classes + Modules&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
import random&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
from PIL import Image&lt;br /&gt;
from image import get_image_file&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from textposts import make_text&lt;br /&gt;
from textposts import no_image&lt;br /&gt;
from imagefuncs import filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
### Twitterbot functions ###&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
class MyTwitterBot(TwitterBot):&lt;br /&gt;
    &lt;br /&gt;
    # Keys&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Initialize and configure the bot &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 5     # default: 1 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Make a public tweet to the bot&#039;s own timeline. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # We might take senteces from somewhere and tweet them on a regular basis ...&lt;br /&gt;
        pass # don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
        if tweet:&lt;br /&gt;
            # get image from tweet&lt;br /&gt;
            try:&lt;br /&gt;
                image_file = get_image_file(tweet)&lt;br /&gt;
&lt;br /&gt;
                if image_file is None:&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+no_image()).format(prefix)&lt;br /&gt;
                else:&lt;br /&gt;
                    # create a tweet and make sure to cut it off at 140 chars&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+make_text()).format(prefix)&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                    print(e)&lt;br /&gt;
&lt;br /&gt;
            # do the tweeting based on wether we have an image&lt;br /&gt;
            tweetsize = 140 - len(prefix) - 1&lt;br /&gt;
            text = text[:140]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            if image_file is None:&lt;br /&gt;
&lt;br /&gt;
                    print(&amp;quot;No Image&amp;quot;)&lt;br /&gt;
                    self.post_tweet(text, reply_to=tweet)&lt;br /&gt;
                    return&lt;br /&gt;
&lt;br /&gt;
            else:&lt;br /&gt;
                filename, file = image_file&lt;br /&gt;
                img = Image.open(file)&lt;br /&gt;
                img = filter(img)&lt;br /&gt;
                format = filename.split(&amp;quot;.&amp;quot;, 1)[1].upper()&lt;br /&gt;
                print(&amp;quot;Image format: {}&amp;quot;.format(format))&lt;br /&gt;
                output = BytesIO()&lt;br /&gt;
                img.save(output, format=&amp;quot;PNG&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
            try:&lt;br /&gt;
                # Post&lt;br /&gt;
                &lt;br /&gt;
                self.post_tweet(text, reply_to=tweet, media=filename, file=output)&lt;br /&gt;
&lt;br /&gt;
                output.close()&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                # did anything go wrong when we tried to create and post the tweet?&lt;br /&gt;
                print(e)&lt;br /&gt;
    &lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Actions to take on a timeline tweet. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        pass # Don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = MyTwitterBot()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Bildfunktionen + Random Auswahl ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
def pixelit (image):&lt;br /&gt;
    xsize, ysize = image.size&lt;br /&gt;
    width = xsize&lt;br /&gt;
    height = ysize&lt;br /&gt;
    minwidth = int(xsize * 0.05)&lt;br /&gt;
    minheight = int(ysize * 0.05)&lt;br /&gt;
    image = image.resize((minwidth, minheight) , Image.NEAREST)&lt;br /&gt;
    image = image.resize((width , height), Image.NEAREST)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
#Random Filter List&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def filter (image):&lt;br /&gt;
&lt;br /&gt;
    functions_list = [blur, emboss, edges, invert, transpose, pixelit]&lt;br /&gt;
    filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    x = 1&lt;br /&gt;
    y = 2&lt;br /&gt;
    z = 3&lt;br /&gt;
    list = [x, y, z]&lt;br /&gt;
    anzahl = random.choice(list)&lt;br /&gt;
    print (anzahl)&lt;br /&gt;
    &lt;br /&gt;
    if anzahl == 1:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 2:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 3:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #3.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Textfunktion ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def make_text():&lt;br /&gt;
    a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
    b=&amp;quot;What do you think about?&amp;quot;&lt;br /&gt;
    c=&amp;quot;Uh, which Effekt&amp;quot;&lt;br /&gt;
    d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
    e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
    f=&amp;quot;Mhmmm, what you mean?&amp;quot;&lt;br /&gt;
    g=&amp;quot;My next I post!&amp;quot;&lt;br /&gt;
    h=&amp;quot;I should do more of this.&amp;quot;&lt;br /&gt;
    i=&amp;quot;Twitter is my life.&amp;quot;&lt;br /&gt;
    j=&amp;quot;This is my job!&amp;quot;&lt;br /&gt;
    k=&amp;quot;Funky&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(text_list)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
def no_image():&lt;br /&gt;
    a = &amp;quot;No Image there&amp;quot;&lt;br /&gt;
    b = &amp;quot;What you do? Where is my Image?&amp;quot;&lt;br /&gt;
    c = &amp;quot;I can&#039;t read! Send me a picture&amp;quot;&lt;br /&gt;
    d = &amp;quot;I like Images!&amp;quot;&lt;br /&gt;
    e = &amp;quot;Boring!&amp;quot;&lt;br /&gt;
    f = &amp;quot;Okay, I don&#039;t know what you want!&amp;quot;&lt;br /&gt;
    g = &amp;quot;Pictures! Thats what I want!&amp;quot;&lt;br /&gt;
    noimagelist = [a, b, c, d, e, f, g]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(noimagelist)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bilder des Bots: ===&lt;br /&gt;
&lt;br /&gt;
[[File:Bot01.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot02.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot03.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot04.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot05.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot06.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weiteres aus dem Kurs... ==&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_const.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Animated Robot ====&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_Const.gif]]&lt;br /&gt;
&lt;br /&gt;
Thumb doesnt work - find it here:&lt;br /&gt;
&lt;br /&gt;
Animated Robot: [https://www.uni-weimar.de/medien/wiki/images/Robot_Const.gif]&lt;br /&gt;
&lt;br /&gt;
==== Robot Code ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My Animated Robot&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Variablen&lt;br /&gt;
&lt;br /&gt;
widthBox = 400&lt;br /&gt;
heightBox = widthBox&lt;br /&gt;
centerx = widthBox / 2&lt;br /&gt;
centery = heightBox / 2&lt;br /&gt;
koerper = widthBox / 3&lt;br /&gt;
kopf = koerper / 1.5&lt;br /&gt;
auge = kopf / 6&lt;br /&gt;
blauKopf = 0&lt;br /&gt;
gruenKopf = 90&lt;br /&gt;
rotKopf = 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Ausgabe&lt;br /&gt;
&lt;br /&gt;
def setup():&lt;br /&gt;
    size (widthBox,heightBox)&lt;br /&gt;
    colorMode (RGB, 100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def draw():&lt;br /&gt;
    &lt;br /&gt;
    #Moving per Frame&lt;br /&gt;
    frameRate (25)&lt;br /&gt;
    angle = PI/8 * sin(frameCount * 0.1)&lt;br /&gt;
    &lt;br /&gt;
    #Growing Up&lt;br /&gt;
    &lt;br /&gt;
    global auge&lt;br /&gt;
    if auge&amp;lt;30:&lt;br /&gt;
        auge=auge+2&lt;br /&gt;
    else:&lt;br /&gt;
        auge=10&lt;br /&gt;
        &lt;br /&gt;
    global kopf&lt;br /&gt;
    if kopf&amp;lt;140:&lt;br /&gt;
        kopf=kopf+2&lt;br /&gt;
    else:&lt;br /&gt;
        kopf = koerper / 1.5&lt;br /&gt;
        &lt;br /&gt;
    global blauKopf&lt;br /&gt;
    global gruenKopf&lt;br /&gt;
    global rotKopf    &lt;br /&gt;
    if kopf&amp;gt;koerper / 1.5 and kopf&amp;lt;130:&lt;br /&gt;
        blauKopf = blauKopf + 5&lt;br /&gt;
        gruenKopf = gruenKopf -2&lt;br /&gt;
        rotKopf = rotKopf -2&lt;br /&gt;
    &lt;br /&gt;
    elif kopf &amp;gt; 130 and kopf &amp;lt; 140:&lt;br /&gt;
        blauKopf = 0&lt;br /&gt;
        gruenKopf = 0&lt;br /&gt;
        rotKopf = 100&lt;br /&gt;
        &lt;br /&gt;
    else:&lt;br /&gt;
        blauKopf=0&lt;br /&gt;
        gruenKopf = 90&lt;br /&gt;
        rotKopf = 100   &lt;br /&gt;
    &lt;br /&gt;
    #Variablen BG&lt;br /&gt;
    R = random(30,60)&lt;br /&gt;
    G = random(50,80)&lt;br /&gt;
    B = random(70,90) &lt;br /&gt;
    &lt;br /&gt;
    #Variablen Fill&lt;br /&gt;
    RF = random(20,50)&lt;br /&gt;
    GF = random(0,30)&lt;br /&gt;
    BF = random(10,40)&lt;br /&gt;
    &lt;br /&gt;
    #define&lt;br /&gt;
    background(R,G,B)&lt;br /&gt;
    rectMode(CENTER)&lt;br /&gt;
    fill (RF,GF,BF)&lt;br /&gt;
    stroke (90)&lt;br /&gt;
    strokeWeight(5)    &lt;br /&gt;
&lt;br /&gt;
    #---Körper---&lt;br /&gt;
    rect (centerx, centery, koerper, koerper)&lt;br /&gt;
&lt;br /&gt;
    #---Kopf---&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (rotKopf, gruenKopf, blauKopf)&lt;br /&gt;
    ellipse (centerx, centery-koerper+(kopf*0.25), kopf, kopf)&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    # Variablen Auge&lt;br /&gt;
    &lt;br /&gt;
    AugeX1 = centerx - 17&lt;br /&gt;
    AugeY1 = centerx - koerper*0.875&lt;br /&gt;
    AugeX2 = centerx + 17&lt;br /&gt;
    AugeY2 = centerx - koerper*0.875&lt;br /&gt;
    &lt;br /&gt;
    #---Auge01---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX1, AugeY1, 1)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #---Auge02---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX2, AugeY2, -1)&lt;br /&gt;
    &lt;br /&gt;
    # Arm positions&lt;br /&gt;
    posLx = centerx - koerper / 2&lt;br /&gt;
    posLy = centery - koerper / 2&lt;br /&gt;
    posRx = centerx + koerper / 2&lt;br /&gt;
    posRy = centery - koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    # Bein positions&lt;br /&gt;
    posBLx = centerx - koerper / 2&lt;br /&gt;
    posBLy = centery + koerper / 2&lt;br /&gt;
    posBRx = centerx + koerper / 2&lt;br /&gt;
    posBRy = centery + koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    #---Left Arm---&lt;br /&gt;
    drawArm(posLx-30, posLy-15, 1, angle)&lt;br /&gt;
    &lt;br /&gt;
    #---Right Arm---&lt;br /&gt;
    drawArm(posRx+30, posRy-15, -1, angle) &lt;br /&gt;
    &lt;br /&gt;
    #---Bein Links---&lt;br /&gt;
    drawBein(posBLx, posBLy)&lt;br /&gt;
    &lt;br /&gt;
    #---Bein Rechts---&lt;br /&gt;
    drawBein(posBRx-40, posBRy)&lt;br /&gt;
  &lt;br /&gt;
      &lt;br /&gt;
#Eigene Funktionen&lt;br /&gt;
&lt;br /&gt;
def drawAuge (xpos, ypos, direction):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (80,80,100)&lt;br /&gt;
    stroke (40)&lt;br /&gt;
    strokeWeight(2) &lt;br /&gt;
    translate (xpos, ypos)  &lt;br /&gt;
    scale(direction,1) &lt;br /&gt;
    ellipse (0,0,auge,auge)  &lt;br /&gt;
    popStyle()           &lt;br /&gt;
    popMatrix()&lt;br /&gt;
&lt;br /&gt;
def drawArm (xpos, ypos, direction, angle):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    scale(direction,1)&lt;br /&gt;
    rotate(angle)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,30,130)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    &lt;br /&gt;
def drawBein (xpos, ypos):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill(10,10,40)&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,40,90)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    saveFrame(&amp;quot;robot_const_###.png&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Midtermbot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
midtermbot.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
###Import###&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor&lt;br /&gt;
import tweepy&lt;br /&gt;
import time&lt;br /&gt;
import random&lt;br /&gt;
import requests&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from twitterkeys import *&lt;br /&gt;
from textposts import text&lt;br /&gt;
from imagefuncs import blur, emboss, edges, invert, transpose&lt;br /&gt;
&lt;br /&gt;
##############&lt;br /&gt;
###Programm###&lt;br /&gt;
##############&lt;br /&gt;
&lt;br /&gt;
###Twitter connect###&lt;br /&gt;
&lt;br /&gt;
#TwitterPassVariable for Test without posting on Twitter&lt;br /&gt;
#True = Post on Twitter / False = just open Image and show text local&lt;br /&gt;
check = False&lt;br /&gt;
&lt;br /&gt;
#Define TwitterKeys to variables&lt;br /&gt;
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)&lt;br /&gt;
auth.secure = True&lt;br /&gt;
auth.set_access_token(access_token, access_token_secret)&lt;br /&gt;
api = tweepy.API(auth)&lt;br /&gt;
&lt;br /&gt;
#Find Images and URL in Account on Twitter&lt;br /&gt;
timeline = api.user_timeline(screen_name = &amp;quot;C64_Bot&amp;quot;) &lt;br /&gt;
for tweet in timeline: &lt;br /&gt;
   for media in tweet.entities.get(&amp;quot;media&amp;quot;,[{}]):&lt;br /&gt;
    if media.get(&amp;quot;type&amp;quot;,None) == &amp;quot;photo&amp;quot;:&lt;br /&gt;
        url = media[&amp;quot;media_url&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
###Load Image from URL###&lt;br /&gt;
#&amp;quot;http://maui.hawaii.edu/tlc/wp-content/uploads/sites/53/2013/11/testing.jpg&amp;quot;&lt;br /&gt;
response = requests.get(url)&lt;br /&gt;
image = Image.open(BytesIO(response.content))&lt;br /&gt;
&lt;br /&gt;
#Test Bild laden&lt;br /&gt;
#image = Image.open(&amp;quot;test.png&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
#Liste der verschiedenen Funktionen erstellen&lt;br /&gt;
functions_list = [blur, emboss, edges, invert, transpose]&lt;br /&gt;
&lt;br /&gt;
#Mainfunction&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:    &lt;br /&gt;
    &lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    #2.Runde Random Filter anwenden&lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    if check == True:&lt;br /&gt;
        filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
        image.save(filename)&lt;br /&gt;
        api.update_with_media(filename,text)  &lt;br /&gt;
    &lt;br /&gt;
    else:&lt;br /&gt;
        image.show()&lt;br /&gt;
        print(text)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
#Bild blur&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Verschiedene Texte die gepostet werden können&lt;br /&gt;
a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
b=&amp;quot;I&#039;am an artist.What you think about?&amp;quot;&lt;br /&gt;
c=&amp;quot;Uh, which great Effekt&amp;quot;&lt;br /&gt;
d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
f=&amp;quot;Mhmmm, what you mean? Is this art?&amp;quot;&lt;br /&gt;
g=&amp;quot;Yes I post&amp;quot;&lt;br /&gt;
h=&amp;quot;I should do an exhibition whith this works.&amp;quot;&lt;br /&gt;
i=&amp;quot;Tell me what you think about.&amp;quot;&lt;br /&gt;
j=&amp;quot;This is my job! Post Pictures...&amp;quot;&lt;br /&gt;
k=&amp;quot;Funky...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Liste mit allen Textinhalten erstellen&lt;br /&gt;
text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Zufällige auswahl eines Inhalts&lt;br /&gt;
text = random.choice(text_list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot01.JPG&amp;diff=73802</id>
		<title>File:Bot01.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot01.JPG&amp;diff=73802"/>
		<updated>2015-09-15T16:01:27Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: uploaded a new version of &amp;amp;quot;File:Bot01.JPG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=73801</id>
		<title>GMU:Bots &#039;n&#039; Plots/Constantin Oestreich</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=73801"/>
		<updated>2015-09-15T15:25:53Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Page of Constantin Oestreich ==&lt;br /&gt;
&lt;br /&gt;
Twitterbot: [https://twitter.com/picturius @Picturus Bottian]&lt;br /&gt;
&lt;br /&gt;
== Twitterbot Picturius Bottian ==&lt;br /&gt;
&lt;br /&gt;
=== Source Code: ===&lt;br /&gt;
&lt;br /&gt;
==== Mainbot ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#mainbot.py&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Import Classes + Modules&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
import random&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
from PIL import Image&lt;br /&gt;
from image import get_image_file&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from textposts import make_text&lt;br /&gt;
from textposts import no_image&lt;br /&gt;
from imagefuncs import filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
### Twitterbot functions ###&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
class MyTwitterBot(TwitterBot):&lt;br /&gt;
    &lt;br /&gt;
    # Keys&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Initialize and configure the bot &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 5     # default: 1 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Make a public tweet to the bot&#039;s own timeline. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # We might take senteces from somewhere and tweet them on a regular basis ...&lt;br /&gt;
        pass # don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
        if tweet:&lt;br /&gt;
            # get image from tweet&lt;br /&gt;
            try:&lt;br /&gt;
                image_file = get_image_file(tweet)&lt;br /&gt;
&lt;br /&gt;
                if image_file is None:&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+no_image()).format(prefix)&lt;br /&gt;
                else:&lt;br /&gt;
                    # create a tweet and make sure to cut it off at 140 chars&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+make_text()).format(prefix)&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                    print(e)&lt;br /&gt;
&lt;br /&gt;
            # do the tweeting based on wether we have an image&lt;br /&gt;
            tweetsize = 140 - len(prefix) - 1&lt;br /&gt;
            text = text[:140]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            if image_file is None:&lt;br /&gt;
&lt;br /&gt;
                    print(&amp;quot;No Image&amp;quot;)&lt;br /&gt;
                    self.post_tweet(text, reply_to=tweet)&lt;br /&gt;
                    return&lt;br /&gt;
&lt;br /&gt;
            else:&lt;br /&gt;
                filename, file = image_file&lt;br /&gt;
                img = Image.open(file)&lt;br /&gt;
                img = filter(img)&lt;br /&gt;
                format = filename.split(&amp;quot;.&amp;quot;, 1)[1].upper()&lt;br /&gt;
                print(&amp;quot;Image format: {}&amp;quot;.format(format))&lt;br /&gt;
                output = BytesIO()&lt;br /&gt;
                img.save(output, format=&amp;quot;PNG&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
            try:&lt;br /&gt;
                # Post&lt;br /&gt;
                &lt;br /&gt;
                self.post_tweet(text, reply_to=tweet, media=filename, file=output)&lt;br /&gt;
&lt;br /&gt;
                output.close()&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                # did anything go wrong when we tried to create and post the tweet?&lt;br /&gt;
                print(e)&lt;br /&gt;
    &lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Actions to take on a timeline tweet. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        pass # Don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = MyTwitterBot()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Bildfunktionen + Random Auswahl ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
def pixelit (image):&lt;br /&gt;
    xsize, ysize = image.size&lt;br /&gt;
    width = xsize&lt;br /&gt;
    height = ysize&lt;br /&gt;
    minwidth = int(xsize * 0.05)&lt;br /&gt;
    minheight = int(ysize * 0.05)&lt;br /&gt;
    image = image.resize((minwidth, minheight) , Image.NEAREST)&lt;br /&gt;
    image = image.resize((width , height), Image.NEAREST)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
#Random Filter List&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def filter (image):&lt;br /&gt;
&lt;br /&gt;
    functions_list = [blur, emboss, edges, invert, transpose, pixelit]&lt;br /&gt;
    filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    x = 1&lt;br /&gt;
    y = 2&lt;br /&gt;
    z = 3&lt;br /&gt;
    list = [x, y, z]&lt;br /&gt;
    anzahl = random.choice(list)&lt;br /&gt;
    print (anzahl)&lt;br /&gt;
    &lt;br /&gt;
    if anzahl == 1:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 2:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 3:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #3.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Textfunktion ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def make_text():&lt;br /&gt;
    a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
    b=&amp;quot;What do you think about?&amp;quot;&lt;br /&gt;
    c=&amp;quot;Uh, which Effekt&amp;quot;&lt;br /&gt;
    d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
    e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
    f=&amp;quot;Mhmmm, what you mean?&amp;quot;&lt;br /&gt;
    g=&amp;quot;My next I post!&amp;quot;&lt;br /&gt;
    h=&amp;quot;I should do more of this.&amp;quot;&lt;br /&gt;
    i=&amp;quot;Twitter is my life.&amp;quot;&lt;br /&gt;
    j=&amp;quot;This is my job!&amp;quot;&lt;br /&gt;
    k=&amp;quot;Funky&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(text_list)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
def no_image():&lt;br /&gt;
    a = &amp;quot;No Image there&amp;quot;&lt;br /&gt;
    b = &amp;quot;What you do? Where is my Image?&amp;quot;&lt;br /&gt;
    c = &amp;quot;I can&#039;t read! Send me a picture&amp;quot;&lt;br /&gt;
    d = &amp;quot;I like Images!&amp;quot;&lt;br /&gt;
    e = &amp;quot;Boring!&amp;quot;&lt;br /&gt;
    f = &amp;quot;Okay, I don&#039;t know what you want!&amp;quot;&lt;br /&gt;
    g = &amp;quot;Pictures! Thats what I want!&amp;quot;&lt;br /&gt;
    noimagelist = [a, b, c, d, e, f, g]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(noimagelist)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bilder des Bots: ===&lt;br /&gt;
&lt;br /&gt;
[[File:Bot01.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot02.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot03.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot04.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot05.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bot06.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weiteres aus dem Kurs... ==&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_const.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Animated Robot ====&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_Const.gif]]&lt;br /&gt;
&lt;br /&gt;
Thumb doesnt work - find it here:&lt;br /&gt;
&lt;br /&gt;
Animated Robot: [https://www.uni-weimar.de/medien/wiki/images/Robot_Const.gif]&lt;br /&gt;
&lt;br /&gt;
==== Robot Code ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My Animated Robot&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Variablen&lt;br /&gt;
&lt;br /&gt;
widthBox = 400&lt;br /&gt;
heightBox = widthBox&lt;br /&gt;
centerx = widthBox / 2&lt;br /&gt;
centery = heightBox / 2&lt;br /&gt;
koerper = widthBox / 3&lt;br /&gt;
kopf = koerper / 1.5&lt;br /&gt;
auge = kopf / 6&lt;br /&gt;
blauKopf = 0&lt;br /&gt;
gruenKopf = 90&lt;br /&gt;
rotKopf = 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Ausgabe&lt;br /&gt;
&lt;br /&gt;
def setup():&lt;br /&gt;
    size (widthBox,heightBox)&lt;br /&gt;
    colorMode (RGB, 100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def draw():&lt;br /&gt;
    &lt;br /&gt;
    #Moving per Frame&lt;br /&gt;
    frameRate (25)&lt;br /&gt;
    angle = PI/8 * sin(frameCount * 0.1)&lt;br /&gt;
    &lt;br /&gt;
    #Growing Up&lt;br /&gt;
    &lt;br /&gt;
    global auge&lt;br /&gt;
    if auge&amp;lt;30:&lt;br /&gt;
        auge=auge+2&lt;br /&gt;
    else:&lt;br /&gt;
        auge=10&lt;br /&gt;
        &lt;br /&gt;
    global kopf&lt;br /&gt;
    if kopf&amp;lt;140:&lt;br /&gt;
        kopf=kopf+2&lt;br /&gt;
    else:&lt;br /&gt;
        kopf = koerper / 1.5&lt;br /&gt;
        &lt;br /&gt;
    global blauKopf&lt;br /&gt;
    global gruenKopf&lt;br /&gt;
    global rotKopf    &lt;br /&gt;
    if kopf&amp;gt;koerper / 1.5 and kopf&amp;lt;130:&lt;br /&gt;
        blauKopf = blauKopf + 5&lt;br /&gt;
        gruenKopf = gruenKopf -2&lt;br /&gt;
        rotKopf = rotKopf -2&lt;br /&gt;
    &lt;br /&gt;
    elif kopf &amp;gt; 130 and kopf &amp;lt; 140:&lt;br /&gt;
        blauKopf = 0&lt;br /&gt;
        gruenKopf = 0&lt;br /&gt;
        rotKopf = 100&lt;br /&gt;
        &lt;br /&gt;
    else:&lt;br /&gt;
        blauKopf=0&lt;br /&gt;
        gruenKopf = 90&lt;br /&gt;
        rotKopf = 100   &lt;br /&gt;
    &lt;br /&gt;
    #Variablen BG&lt;br /&gt;
    R = random(30,60)&lt;br /&gt;
    G = random(50,80)&lt;br /&gt;
    B = random(70,90) &lt;br /&gt;
    &lt;br /&gt;
    #Variablen Fill&lt;br /&gt;
    RF = random(20,50)&lt;br /&gt;
    GF = random(0,30)&lt;br /&gt;
    BF = random(10,40)&lt;br /&gt;
    &lt;br /&gt;
    #define&lt;br /&gt;
    background(R,G,B)&lt;br /&gt;
    rectMode(CENTER)&lt;br /&gt;
    fill (RF,GF,BF)&lt;br /&gt;
    stroke (90)&lt;br /&gt;
    strokeWeight(5)    &lt;br /&gt;
&lt;br /&gt;
    #---Körper---&lt;br /&gt;
    rect (centerx, centery, koerper, koerper)&lt;br /&gt;
&lt;br /&gt;
    #---Kopf---&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (rotKopf, gruenKopf, blauKopf)&lt;br /&gt;
    ellipse (centerx, centery-koerper+(kopf*0.25), kopf, kopf)&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    # Variablen Auge&lt;br /&gt;
    &lt;br /&gt;
    AugeX1 = centerx - 17&lt;br /&gt;
    AugeY1 = centerx - koerper*0.875&lt;br /&gt;
    AugeX2 = centerx + 17&lt;br /&gt;
    AugeY2 = centerx - koerper*0.875&lt;br /&gt;
    &lt;br /&gt;
    #---Auge01---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX1, AugeY1, 1)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #---Auge02---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX2, AugeY2, -1)&lt;br /&gt;
    &lt;br /&gt;
    # Arm positions&lt;br /&gt;
    posLx = centerx - koerper / 2&lt;br /&gt;
    posLy = centery - koerper / 2&lt;br /&gt;
    posRx = centerx + koerper / 2&lt;br /&gt;
    posRy = centery - koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    # Bein positions&lt;br /&gt;
    posBLx = centerx - koerper / 2&lt;br /&gt;
    posBLy = centery + koerper / 2&lt;br /&gt;
    posBRx = centerx + koerper / 2&lt;br /&gt;
    posBRy = centery + koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    #---Left Arm---&lt;br /&gt;
    drawArm(posLx-30, posLy-15, 1, angle)&lt;br /&gt;
    &lt;br /&gt;
    #---Right Arm---&lt;br /&gt;
    drawArm(posRx+30, posRy-15, -1, angle) &lt;br /&gt;
    &lt;br /&gt;
    #---Bein Links---&lt;br /&gt;
    drawBein(posBLx, posBLy)&lt;br /&gt;
    &lt;br /&gt;
    #---Bein Rechts---&lt;br /&gt;
    drawBein(posBRx-40, posBRy)&lt;br /&gt;
  &lt;br /&gt;
      &lt;br /&gt;
#Eigene Funktionen&lt;br /&gt;
&lt;br /&gt;
def drawAuge (xpos, ypos, direction):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (80,80,100)&lt;br /&gt;
    stroke (40)&lt;br /&gt;
    strokeWeight(2) &lt;br /&gt;
    translate (xpos, ypos)  &lt;br /&gt;
    scale(direction,1) &lt;br /&gt;
    ellipse (0,0,auge,auge)  &lt;br /&gt;
    popStyle()           &lt;br /&gt;
    popMatrix()&lt;br /&gt;
&lt;br /&gt;
def drawArm (xpos, ypos, direction, angle):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    scale(direction,1)&lt;br /&gt;
    rotate(angle)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,30,130)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    &lt;br /&gt;
def drawBein (xpos, ypos):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill(10,10,40)&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,40,90)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    saveFrame(&amp;quot;robot_const_###.png&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Midtermbot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
midtermbot.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
###Import###&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor&lt;br /&gt;
import tweepy&lt;br /&gt;
import time&lt;br /&gt;
import random&lt;br /&gt;
import requests&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from twitterkeys import *&lt;br /&gt;
from textposts import text&lt;br /&gt;
from imagefuncs import blur, emboss, edges, invert, transpose&lt;br /&gt;
&lt;br /&gt;
##############&lt;br /&gt;
###Programm###&lt;br /&gt;
##############&lt;br /&gt;
&lt;br /&gt;
###Twitter connect###&lt;br /&gt;
&lt;br /&gt;
#TwitterPassVariable for Test without posting on Twitter&lt;br /&gt;
#True = Post on Twitter / False = just open Image and show text local&lt;br /&gt;
check = False&lt;br /&gt;
&lt;br /&gt;
#Define TwitterKeys to variables&lt;br /&gt;
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)&lt;br /&gt;
auth.secure = True&lt;br /&gt;
auth.set_access_token(access_token, access_token_secret)&lt;br /&gt;
api = tweepy.API(auth)&lt;br /&gt;
&lt;br /&gt;
#Find Images and URL in Account on Twitter&lt;br /&gt;
timeline = api.user_timeline(screen_name = &amp;quot;C64_Bot&amp;quot;) &lt;br /&gt;
for tweet in timeline: &lt;br /&gt;
   for media in tweet.entities.get(&amp;quot;media&amp;quot;,[{}]):&lt;br /&gt;
    if media.get(&amp;quot;type&amp;quot;,None) == &amp;quot;photo&amp;quot;:&lt;br /&gt;
        url = media[&amp;quot;media_url&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
###Load Image from URL###&lt;br /&gt;
#&amp;quot;http://maui.hawaii.edu/tlc/wp-content/uploads/sites/53/2013/11/testing.jpg&amp;quot;&lt;br /&gt;
response = requests.get(url)&lt;br /&gt;
image = Image.open(BytesIO(response.content))&lt;br /&gt;
&lt;br /&gt;
#Test Bild laden&lt;br /&gt;
#image = Image.open(&amp;quot;test.png&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
#Liste der verschiedenen Funktionen erstellen&lt;br /&gt;
functions_list = [blur, emboss, edges, invert, transpose]&lt;br /&gt;
&lt;br /&gt;
#Mainfunction&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:    &lt;br /&gt;
    &lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    #2.Runde Random Filter anwenden&lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    if check == True:&lt;br /&gt;
        filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
        image.save(filename)&lt;br /&gt;
        api.update_with_media(filename,text)  &lt;br /&gt;
    &lt;br /&gt;
    else:&lt;br /&gt;
        image.show()&lt;br /&gt;
        print(text)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
#Bild blur&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Verschiedene Texte die gepostet werden können&lt;br /&gt;
a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
b=&amp;quot;I&#039;am an artist.What you think about?&amp;quot;&lt;br /&gt;
c=&amp;quot;Uh, which great Effekt&amp;quot;&lt;br /&gt;
d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
f=&amp;quot;Mhmmm, what you mean? Is this art?&amp;quot;&lt;br /&gt;
g=&amp;quot;Yes I post&amp;quot;&lt;br /&gt;
h=&amp;quot;I should do an exhibition whith this works.&amp;quot;&lt;br /&gt;
i=&amp;quot;Tell me what you think about.&amp;quot;&lt;br /&gt;
j=&amp;quot;This is my job! Post Pictures...&amp;quot;&lt;br /&gt;
k=&amp;quot;Funky...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Liste mit allen Textinhalten erstellen&lt;br /&gt;
text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Zufällige auswahl eines Inhalts&lt;br /&gt;
text = random.choice(text_list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot06.JPG&amp;diff=73800</id>
		<title>File:Bot06.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot06.JPG&amp;diff=73800"/>
		<updated>2015-09-15T15:25:02Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot05.JPG&amp;diff=73799</id>
		<title>File:Bot05.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot05.JPG&amp;diff=73799"/>
		<updated>2015-09-15T15:24:49Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot04.JPG&amp;diff=73798</id>
		<title>File:Bot04.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot04.JPG&amp;diff=73798"/>
		<updated>2015-09-15T15:24:35Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot03.JPG&amp;diff=73797</id>
		<title>File:Bot03.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot03.JPG&amp;diff=73797"/>
		<updated>2015-09-15T15:24:22Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot02.JPG&amp;diff=73796</id>
		<title>File:Bot02.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot02.JPG&amp;diff=73796"/>
		<updated>2015-09-15T15:24:02Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot01.JPG&amp;diff=73795</id>
		<title>File:Bot01.JPG</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Bot01.JPG&amp;diff=73795"/>
		<updated>2015-09-15T15:21:09Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=73794</id>
		<title>GMU:Bots &#039;n&#039; Plots/Constantin Oestreich</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=73794"/>
		<updated>2015-09-15T15:13:24Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Page of Constantin Oestreich ==&lt;br /&gt;
&lt;br /&gt;
Twitterbot: [https://twitter.com/picturius @Picturus Bottian]&lt;br /&gt;
&lt;br /&gt;
== Twitterbot Picturius Bottian ==&lt;br /&gt;
&lt;br /&gt;
=== Source Code: ===&lt;br /&gt;
&lt;br /&gt;
==== Mainbot ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#mainbot.py&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Import Classes + Modules&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
import random&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
from PIL import Image&lt;br /&gt;
from image import get_image_file&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from textposts import make_text&lt;br /&gt;
from textposts import no_image&lt;br /&gt;
from imagefuncs import filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
### Twitterbot functions ###&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
class MyTwitterBot(TwitterBot):&lt;br /&gt;
    &lt;br /&gt;
    # Keys&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Initialize and configure the bot &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 5     # default: 1 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Make a public tweet to the bot&#039;s own timeline. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # We might take senteces from somewhere and tweet them on a regular basis ...&lt;br /&gt;
        pass # don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
        if tweet:&lt;br /&gt;
            # get image from tweet&lt;br /&gt;
            try:&lt;br /&gt;
                image_file = get_image_file(tweet)&lt;br /&gt;
&lt;br /&gt;
                if image_file is None:&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+no_image()).format(prefix)&lt;br /&gt;
                else:&lt;br /&gt;
                    # create a tweet and make sure to cut it off at 140 chars&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+make_text()).format(prefix)&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                    print(e)&lt;br /&gt;
&lt;br /&gt;
            # do the tweeting based on wether we have an image&lt;br /&gt;
            tweetsize = 140 - len(prefix) - 1&lt;br /&gt;
            text = text[:140]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            if image_file is None:&lt;br /&gt;
&lt;br /&gt;
                    print(&amp;quot;No Image&amp;quot;)&lt;br /&gt;
                    self.post_tweet(text, reply_to=tweet)&lt;br /&gt;
                    return&lt;br /&gt;
&lt;br /&gt;
            else:&lt;br /&gt;
                filename, file = image_file&lt;br /&gt;
                img = Image.open(file)&lt;br /&gt;
                img = filter(img)&lt;br /&gt;
                format = filename.split(&amp;quot;.&amp;quot;, 1)[1].upper()&lt;br /&gt;
                print(&amp;quot;Image format: {}&amp;quot;.format(format))&lt;br /&gt;
                output = BytesIO()&lt;br /&gt;
                img.save(output, format=&amp;quot;PNG&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
            try:&lt;br /&gt;
                # Post&lt;br /&gt;
                &lt;br /&gt;
                self.post_tweet(text, reply_to=tweet, media=filename, file=output)&lt;br /&gt;
&lt;br /&gt;
                output.close()&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                # did anything go wrong when we tried to create and post the tweet?&lt;br /&gt;
                print(e)&lt;br /&gt;
    &lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Actions to take on a timeline tweet. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        pass # Don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = MyTwitterBot()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Bildfunktionen + Random Auswahl ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
def pixelit (image):&lt;br /&gt;
    xsize, ysize = image.size&lt;br /&gt;
    width = xsize&lt;br /&gt;
    height = ysize&lt;br /&gt;
    minwidth = int(xsize * 0.05)&lt;br /&gt;
    minheight = int(ysize * 0.05)&lt;br /&gt;
    image = image.resize((minwidth, minheight) , Image.NEAREST)&lt;br /&gt;
    image = image.resize((width , height), Image.NEAREST)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
#Random Filter List&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def filter (image):&lt;br /&gt;
&lt;br /&gt;
    functions_list = [blur, emboss, edges, invert, transpose, pixelit]&lt;br /&gt;
    filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    x = 1&lt;br /&gt;
    y = 2&lt;br /&gt;
    z = 3&lt;br /&gt;
    list = [x, y, z]&lt;br /&gt;
    anzahl = random.choice(list)&lt;br /&gt;
    print (anzahl)&lt;br /&gt;
    &lt;br /&gt;
    if anzahl == 1:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 2:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 3:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #3.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Textfunktion ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def make_text():&lt;br /&gt;
    a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
    b=&amp;quot;What do you think about?&amp;quot;&lt;br /&gt;
    c=&amp;quot;Uh, which Effekt&amp;quot;&lt;br /&gt;
    d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
    e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
    f=&amp;quot;Mhmmm, what you mean?&amp;quot;&lt;br /&gt;
    g=&amp;quot;My next I post!&amp;quot;&lt;br /&gt;
    h=&amp;quot;I should do more of this.&amp;quot;&lt;br /&gt;
    i=&amp;quot;Twitter is my life.&amp;quot;&lt;br /&gt;
    j=&amp;quot;This is my job!&amp;quot;&lt;br /&gt;
    k=&amp;quot;Funky&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(text_list)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
def no_image():&lt;br /&gt;
    a = &amp;quot;No Image there&amp;quot;&lt;br /&gt;
    b = &amp;quot;What you do? Where is my Image?&amp;quot;&lt;br /&gt;
    c = &amp;quot;I can&#039;t read! Send me a picture&amp;quot;&lt;br /&gt;
    d = &amp;quot;I like Images!&amp;quot;&lt;br /&gt;
    e = &amp;quot;Boring!&amp;quot;&lt;br /&gt;
    f = &amp;quot;Okay, I don&#039;t know what you want!&amp;quot;&lt;br /&gt;
    g = &amp;quot;Pictures! Thats what I want!&amp;quot;&lt;br /&gt;
    noimagelist = [a, b, c, d, e, f, g]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(noimagelist)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weiteres aus dem Kurs... ==&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_const.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Animated Robot ====&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_Const.gif]]&lt;br /&gt;
&lt;br /&gt;
Thumb doesnt work - find it here:&lt;br /&gt;
&lt;br /&gt;
Animated Robot: [https://www.uni-weimar.de/medien/wiki/images/Robot_Const.gif]&lt;br /&gt;
&lt;br /&gt;
==== Robot Code ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My Animated Robot&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Variablen&lt;br /&gt;
&lt;br /&gt;
widthBox = 400&lt;br /&gt;
heightBox = widthBox&lt;br /&gt;
centerx = widthBox / 2&lt;br /&gt;
centery = heightBox / 2&lt;br /&gt;
koerper = widthBox / 3&lt;br /&gt;
kopf = koerper / 1.5&lt;br /&gt;
auge = kopf / 6&lt;br /&gt;
blauKopf = 0&lt;br /&gt;
gruenKopf = 90&lt;br /&gt;
rotKopf = 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Ausgabe&lt;br /&gt;
&lt;br /&gt;
def setup():&lt;br /&gt;
    size (widthBox,heightBox)&lt;br /&gt;
    colorMode (RGB, 100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def draw():&lt;br /&gt;
    &lt;br /&gt;
    #Moving per Frame&lt;br /&gt;
    frameRate (25)&lt;br /&gt;
    angle = PI/8 * sin(frameCount * 0.1)&lt;br /&gt;
    &lt;br /&gt;
    #Growing Up&lt;br /&gt;
    &lt;br /&gt;
    global auge&lt;br /&gt;
    if auge&amp;lt;30:&lt;br /&gt;
        auge=auge+2&lt;br /&gt;
    else:&lt;br /&gt;
        auge=10&lt;br /&gt;
        &lt;br /&gt;
    global kopf&lt;br /&gt;
    if kopf&amp;lt;140:&lt;br /&gt;
        kopf=kopf+2&lt;br /&gt;
    else:&lt;br /&gt;
        kopf = koerper / 1.5&lt;br /&gt;
        &lt;br /&gt;
    global blauKopf&lt;br /&gt;
    global gruenKopf&lt;br /&gt;
    global rotKopf    &lt;br /&gt;
    if kopf&amp;gt;koerper / 1.5 and kopf&amp;lt;130:&lt;br /&gt;
        blauKopf = blauKopf + 5&lt;br /&gt;
        gruenKopf = gruenKopf -2&lt;br /&gt;
        rotKopf = rotKopf -2&lt;br /&gt;
    &lt;br /&gt;
    elif kopf &amp;gt; 130 and kopf &amp;lt; 140:&lt;br /&gt;
        blauKopf = 0&lt;br /&gt;
        gruenKopf = 0&lt;br /&gt;
        rotKopf = 100&lt;br /&gt;
        &lt;br /&gt;
    else:&lt;br /&gt;
        blauKopf=0&lt;br /&gt;
        gruenKopf = 90&lt;br /&gt;
        rotKopf = 100   &lt;br /&gt;
    &lt;br /&gt;
    #Variablen BG&lt;br /&gt;
    R = random(30,60)&lt;br /&gt;
    G = random(50,80)&lt;br /&gt;
    B = random(70,90) &lt;br /&gt;
    &lt;br /&gt;
    #Variablen Fill&lt;br /&gt;
    RF = random(20,50)&lt;br /&gt;
    GF = random(0,30)&lt;br /&gt;
    BF = random(10,40)&lt;br /&gt;
    &lt;br /&gt;
    #define&lt;br /&gt;
    background(R,G,B)&lt;br /&gt;
    rectMode(CENTER)&lt;br /&gt;
    fill (RF,GF,BF)&lt;br /&gt;
    stroke (90)&lt;br /&gt;
    strokeWeight(5)    &lt;br /&gt;
&lt;br /&gt;
    #---Körper---&lt;br /&gt;
    rect (centerx, centery, koerper, koerper)&lt;br /&gt;
&lt;br /&gt;
    #---Kopf---&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (rotKopf, gruenKopf, blauKopf)&lt;br /&gt;
    ellipse (centerx, centery-koerper+(kopf*0.25), kopf, kopf)&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    # Variablen Auge&lt;br /&gt;
    &lt;br /&gt;
    AugeX1 = centerx - 17&lt;br /&gt;
    AugeY1 = centerx - koerper*0.875&lt;br /&gt;
    AugeX2 = centerx + 17&lt;br /&gt;
    AugeY2 = centerx - koerper*0.875&lt;br /&gt;
    &lt;br /&gt;
    #---Auge01---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX1, AugeY1, 1)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #---Auge02---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX2, AugeY2, -1)&lt;br /&gt;
    &lt;br /&gt;
    # Arm positions&lt;br /&gt;
    posLx = centerx - koerper / 2&lt;br /&gt;
    posLy = centery - koerper / 2&lt;br /&gt;
    posRx = centerx + koerper / 2&lt;br /&gt;
    posRy = centery - koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    # Bein positions&lt;br /&gt;
    posBLx = centerx - koerper / 2&lt;br /&gt;
    posBLy = centery + koerper / 2&lt;br /&gt;
    posBRx = centerx + koerper / 2&lt;br /&gt;
    posBRy = centery + koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    #---Left Arm---&lt;br /&gt;
    drawArm(posLx-30, posLy-15, 1, angle)&lt;br /&gt;
    &lt;br /&gt;
    #---Right Arm---&lt;br /&gt;
    drawArm(posRx+30, posRy-15, -1, angle) &lt;br /&gt;
    &lt;br /&gt;
    #---Bein Links---&lt;br /&gt;
    drawBein(posBLx, posBLy)&lt;br /&gt;
    &lt;br /&gt;
    #---Bein Rechts---&lt;br /&gt;
    drawBein(posBRx-40, posBRy)&lt;br /&gt;
  &lt;br /&gt;
      &lt;br /&gt;
#Eigene Funktionen&lt;br /&gt;
&lt;br /&gt;
def drawAuge (xpos, ypos, direction):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (80,80,100)&lt;br /&gt;
    stroke (40)&lt;br /&gt;
    strokeWeight(2) &lt;br /&gt;
    translate (xpos, ypos)  &lt;br /&gt;
    scale(direction,1) &lt;br /&gt;
    ellipse (0,0,auge,auge)  &lt;br /&gt;
    popStyle()           &lt;br /&gt;
    popMatrix()&lt;br /&gt;
&lt;br /&gt;
def drawArm (xpos, ypos, direction, angle):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    scale(direction,1)&lt;br /&gt;
    rotate(angle)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,30,130)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    &lt;br /&gt;
def drawBein (xpos, ypos):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill(10,10,40)&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,40,90)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    saveFrame(&amp;quot;robot_const_###.png&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Midtermbot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
midtermbot.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
###Import###&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor&lt;br /&gt;
import tweepy&lt;br /&gt;
import time&lt;br /&gt;
import random&lt;br /&gt;
import requests&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from twitterkeys import *&lt;br /&gt;
from textposts import text&lt;br /&gt;
from imagefuncs import blur, emboss, edges, invert, transpose&lt;br /&gt;
&lt;br /&gt;
##############&lt;br /&gt;
###Programm###&lt;br /&gt;
##############&lt;br /&gt;
&lt;br /&gt;
###Twitter connect###&lt;br /&gt;
&lt;br /&gt;
#TwitterPassVariable for Test without posting on Twitter&lt;br /&gt;
#True = Post on Twitter / False = just open Image and show text local&lt;br /&gt;
check = False&lt;br /&gt;
&lt;br /&gt;
#Define TwitterKeys to variables&lt;br /&gt;
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)&lt;br /&gt;
auth.secure = True&lt;br /&gt;
auth.set_access_token(access_token, access_token_secret)&lt;br /&gt;
api = tweepy.API(auth)&lt;br /&gt;
&lt;br /&gt;
#Find Images and URL in Account on Twitter&lt;br /&gt;
timeline = api.user_timeline(screen_name = &amp;quot;C64_Bot&amp;quot;) &lt;br /&gt;
for tweet in timeline: &lt;br /&gt;
   for media in tweet.entities.get(&amp;quot;media&amp;quot;,[{}]):&lt;br /&gt;
    if media.get(&amp;quot;type&amp;quot;,None) == &amp;quot;photo&amp;quot;:&lt;br /&gt;
        url = media[&amp;quot;media_url&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
###Load Image from URL###&lt;br /&gt;
#&amp;quot;http://maui.hawaii.edu/tlc/wp-content/uploads/sites/53/2013/11/testing.jpg&amp;quot;&lt;br /&gt;
response = requests.get(url)&lt;br /&gt;
image = Image.open(BytesIO(response.content))&lt;br /&gt;
&lt;br /&gt;
#Test Bild laden&lt;br /&gt;
#image = Image.open(&amp;quot;test.png&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
#Liste der verschiedenen Funktionen erstellen&lt;br /&gt;
functions_list = [blur, emboss, edges, invert, transpose]&lt;br /&gt;
&lt;br /&gt;
#Mainfunction&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:    &lt;br /&gt;
    &lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    #2.Runde Random Filter anwenden&lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    if check == True:&lt;br /&gt;
        filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
        image.save(filename)&lt;br /&gt;
        api.update_with_media(filename,text)  &lt;br /&gt;
    &lt;br /&gt;
    else:&lt;br /&gt;
        image.show()&lt;br /&gt;
        print(text)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
#Bild blur&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Verschiedene Texte die gepostet werden können&lt;br /&gt;
a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
b=&amp;quot;I&#039;am an artist.What you think about?&amp;quot;&lt;br /&gt;
c=&amp;quot;Uh, which great Effekt&amp;quot;&lt;br /&gt;
d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
f=&amp;quot;Mhmmm, what you mean? Is this art?&amp;quot;&lt;br /&gt;
g=&amp;quot;Yes I post&amp;quot;&lt;br /&gt;
h=&amp;quot;I should do an exhibition whith this works.&amp;quot;&lt;br /&gt;
i=&amp;quot;Tell me what you think about.&amp;quot;&lt;br /&gt;
j=&amp;quot;This is my job! Post Pictures...&amp;quot;&lt;br /&gt;
k=&amp;quot;Funky...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Liste mit allen Textinhalten erstellen&lt;br /&gt;
text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Zufällige auswahl eines Inhalts&lt;br /&gt;
text = random.choice(text_list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=73793</id>
		<title>GMU:Bots &#039;n&#039; Plots/Constantin Oestreich</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=73793"/>
		<updated>2015-09-15T15:05:48Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Page of Constantin Oestreich ====&lt;br /&gt;
&lt;br /&gt;
Twitterbot: [https://twitter.com/picturius @Picturus Bottian]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Twitterbot Picturius Bottian ====&lt;br /&gt;
&lt;br /&gt;
=== Source Code: ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
mainbot.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Import Classes + Modules&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
import random&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
from PIL import Image&lt;br /&gt;
from image import get_image_file&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from textposts import make_text&lt;br /&gt;
from textposts import no_image&lt;br /&gt;
from imagefuncs import filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
############################&lt;br /&gt;
### Twitterbot functions ###&lt;br /&gt;
############################&lt;br /&gt;
&lt;br /&gt;
class MyTwitterBot(TwitterBot):&lt;br /&gt;
    &lt;br /&gt;
    # Keys&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Initialize and configure the bot &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 5     # default: 1 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Make a public tweet to the bot&#039;s own timeline. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # We might take senteces from somewhere and tweet them on a regular basis ...&lt;br /&gt;
        pass # don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
        if tweet:&lt;br /&gt;
            # get image from tweet&lt;br /&gt;
            try:&lt;br /&gt;
                image_file = get_image_file(tweet)&lt;br /&gt;
&lt;br /&gt;
                if image_file is None:&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+no_image()).format(prefix)&lt;br /&gt;
                else:&lt;br /&gt;
                    # create a tweet and make sure to cut it off at 140 chars&lt;br /&gt;
                    text = (&amp;quot;{},&amp;quot;+make_text()).format(prefix)&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                    print(e)&lt;br /&gt;
&lt;br /&gt;
            # do the tweeting based on wether we have an image&lt;br /&gt;
            tweetsize = 140 - len(prefix) - 1&lt;br /&gt;
            text = text[:140]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            if image_file is None:&lt;br /&gt;
&lt;br /&gt;
                    print(&amp;quot;No Image&amp;quot;)&lt;br /&gt;
                    self.post_tweet(text, reply_to=tweet)&lt;br /&gt;
                    return&lt;br /&gt;
&lt;br /&gt;
            else:&lt;br /&gt;
                filename, file = image_file&lt;br /&gt;
                img = Image.open(file)&lt;br /&gt;
                img = filter(img)&lt;br /&gt;
                format = filename.split(&amp;quot;.&amp;quot;, 1)[1].upper()&lt;br /&gt;
                print(&amp;quot;Image format: {}&amp;quot;.format(format))&lt;br /&gt;
                output = BytesIO()&lt;br /&gt;
                img.save(output, format=&amp;quot;PNG&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
            try:&lt;br /&gt;
                # Post&lt;br /&gt;
                &lt;br /&gt;
                self.post_tweet(text, reply_to=tweet, media=filename, file=output)&lt;br /&gt;
&lt;br /&gt;
                output.close()&lt;br /&gt;
&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                # did anything go wrong when we tried to create and post the tweet?&lt;br /&gt;
                print(e)&lt;br /&gt;
    &lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot; Actions to take on a timeline tweet. &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        pass # Don&#039;t do anything here ...&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = MyTwitterBot()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
def pixelit (image):&lt;br /&gt;
    xsize, ysize = image.size&lt;br /&gt;
    width = xsize&lt;br /&gt;
    height = ysize&lt;br /&gt;
    minwidth = int(xsize * 0.05)&lt;br /&gt;
    minheight = int(ysize * 0.05)&lt;br /&gt;
    image = image.resize((minwidth, minheight) , Image.NEAREST)&lt;br /&gt;
    image = image.resize((width , height), Image.NEAREST)&lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
#Random Filter List&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def filter (image):&lt;br /&gt;
&lt;br /&gt;
    functions_list = [blur, emboss, edges, invert, transpose, pixelit]&lt;br /&gt;
    filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    x = 1&lt;br /&gt;
    y = 2&lt;br /&gt;
    z = 3&lt;br /&gt;
    list = [x, y, z]&lt;br /&gt;
    anzahl = random.choice(list)&lt;br /&gt;
    print (anzahl)&lt;br /&gt;
    &lt;br /&gt;
    if anzahl == 1:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 2:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        &lt;br /&gt;
    if anzahl == 3:&lt;br /&gt;
        #Random eine Funktion&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #2.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
        #3.Runde Random Filter anwenden&lt;br /&gt;
        imagefunc = random.choice(functions_list)&lt;br /&gt;
        image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    return image&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def make_text():&lt;br /&gt;
    a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
    b=&amp;quot;What do you think about?&amp;quot;&lt;br /&gt;
    c=&amp;quot;Uh, which Effekt&amp;quot;&lt;br /&gt;
    d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
    e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
    f=&amp;quot;Mhmmm, what you mean?&amp;quot;&lt;br /&gt;
    g=&amp;quot;My next I post!&amp;quot;&lt;br /&gt;
    h=&amp;quot;I should do more of this.&amp;quot;&lt;br /&gt;
    i=&amp;quot;Twitter is my life.&amp;quot;&lt;br /&gt;
    j=&amp;quot;This is my job!&amp;quot;&lt;br /&gt;
    k=&amp;quot;Funky&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(text_list)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
def no_image():&lt;br /&gt;
    a = &amp;quot;No Image there&amp;quot;&lt;br /&gt;
    b = &amp;quot;What you do? Where is my Image?&amp;quot;&lt;br /&gt;
    c = &amp;quot;I can&#039;t read! Send me a picture&amp;quot;&lt;br /&gt;
    d = &amp;quot;I like Images!&amp;quot;&lt;br /&gt;
    e = &amp;quot;Boring!&amp;quot;&lt;br /&gt;
    f = &amp;quot;Okay, I don&#039;t know what you want!&amp;quot;&lt;br /&gt;
    g = &amp;quot;Pictures! Thats what I want!&amp;quot;&lt;br /&gt;
    noimagelist = [a, b, c, d, e, f, g]&lt;br /&gt;
    &lt;br /&gt;
    text = random.choice(noimagelist)&lt;br /&gt;
    &lt;br /&gt;
    return text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_const.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Animated Robot ====&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_Const.gif]]&lt;br /&gt;
&lt;br /&gt;
Thumb doesnt work - find it here:&lt;br /&gt;
&lt;br /&gt;
Animated Robot: [https://www.uni-weimar.de/medien/wiki/images/Robot_Const.gif]&lt;br /&gt;
&lt;br /&gt;
==== Robot Code ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My Animated Robot&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Variablen&lt;br /&gt;
&lt;br /&gt;
widthBox = 400&lt;br /&gt;
heightBox = widthBox&lt;br /&gt;
centerx = widthBox / 2&lt;br /&gt;
centery = heightBox / 2&lt;br /&gt;
koerper = widthBox / 3&lt;br /&gt;
kopf = koerper / 1.5&lt;br /&gt;
auge = kopf / 6&lt;br /&gt;
blauKopf = 0&lt;br /&gt;
gruenKopf = 90&lt;br /&gt;
rotKopf = 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Ausgabe&lt;br /&gt;
&lt;br /&gt;
def setup():&lt;br /&gt;
    size (widthBox,heightBox)&lt;br /&gt;
    colorMode (RGB, 100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def draw():&lt;br /&gt;
    &lt;br /&gt;
    #Moving per Frame&lt;br /&gt;
    frameRate (25)&lt;br /&gt;
    angle = PI/8 * sin(frameCount * 0.1)&lt;br /&gt;
    &lt;br /&gt;
    #Growing Up&lt;br /&gt;
    &lt;br /&gt;
    global auge&lt;br /&gt;
    if auge&amp;lt;30:&lt;br /&gt;
        auge=auge+2&lt;br /&gt;
    else:&lt;br /&gt;
        auge=10&lt;br /&gt;
        &lt;br /&gt;
    global kopf&lt;br /&gt;
    if kopf&amp;lt;140:&lt;br /&gt;
        kopf=kopf+2&lt;br /&gt;
    else:&lt;br /&gt;
        kopf = koerper / 1.5&lt;br /&gt;
        &lt;br /&gt;
    global blauKopf&lt;br /&gt;
    global gruenKopf&lt;br /&gt;
    global rotKopf    &lt;br /&gt;
    if kopf&amp;gt;koerper / 1.5 and kopf&amp;lt;130:&lt;br /&gt;
        blauKopf = blauKopf + 5&lt;br /&gt;
        gruenKopf = gruenKopf -2&lt;br /&gt;
        rotKopf = rotKopf -2&lt;br /&gt;
    &lt;br /&gt;
    elif kopf &amp;gt; 130 and kopf &amp;lt; 140:&lt;br /&gt;
        blauKopf = 0&lt;br /&gt;
        gruenKopf = 0&lt;br /&gt;
        rotKopf = 100&lt;br /&gt;
        &lt;br /&gt;
    else:&lt;br /&gt;
        blauKopf=0&lt;br /&gt;
        gruenKopf = 90&lt;br /&gt;
        rotKopf = 100   &lt;br /&gt;
    &lt;br /&gt;
    #Variablen BG&lt;br /&gt;
    R = random(30,60)&lt;br /&gt;
    G = random(50,80)&lt;br /&gt;
    B = random(70,90) &lt;br /&gt;
    &lt;br /&gt;
    #Variablen Fill&lt;br /&gt;
    RF = random(20,50)&lt;br /&gt;
    GF = random(0,30)&lt;br /&gt;
    BF = random(10,40)&lt;br /&gt;
    &lt;br /&gt;
    #define&lt;br /&gt;
    background(R,G,B)&lt;br /&gt;
    rectMode(CENTER)&lt;br /&gt;
    fill (RF,GF,BF)&lt;br /&gt;
    stroke (90)&lt;br /&gt;
    strokeWeight(5)    &lt;br /&gt;
&lt;br /&gt;
    #---Körper---&lt;br /&gt;
    rect (centerx, centery, koerper, koerper)&lt;br /&gt;
&lt;br /&gt;
    #---Kopf---&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (rotKopf, gruenKopf, blauKopf)&lt;br /&gt;
    ellipse (centerx, centery-koerper+(kopf*0.25), kopf, kopf)&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    # Variablen Auge&lt;br /&gt;
    &lt;br /&gt;
    AugeX1 = centerx - 17&lt;br /&gt;
    AugeY1 = centerx - koerper*0.875&lt;br /&gt;
    AugeX2 = centerx + 17&lt;br /&gt;
    AugeY2 = centerx - koerper*0.875&lt;br /&gt;
    &lt;br /&gt;
    #---Auge01---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX1, AugeY1, 1)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #---Auge02---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX2, AugeY2, -1)&lt;br /&gt;
    &lt;br /&gt;
    # Arm positions&lt;br /&gt;
    posLx = centerx - koerper / 2&lt;br /&gt;
    posLy = centery - koerper / 2&lt;br /&gt;
    posRx = centerx + koerper / 2&lt;br /&gt;
    posRy = centery - koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    # Bein positions&lt;br /&gt;
    posBLx = centerx - koerper / 2&lt;br /&gt;
    posBLy = centery + koerper / 2&lt;br /&gt;
    posBRx = centerx + koerper / 2&lt;br /&gt;
    posBRy = centery + koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    #---Left Arm---&lt;br /&gt;
    drawArm(posLx-30, posLy-15, 1, angle)&lt;br /&gt;
    &lt;br /&gt;
    #---Right Arm---&lt;br /&gt;
    drawArm(posRx+30, posRy-15, -1, angle) &lt;br /&gt;
    &lt;br /&gt;
    #---Bein Links---&lt;br /&gt;
    drawBein(posBLx, posBLy)&lt;br /&gt;
    &lt;br /&gt;
    #---Bein Rechts---&lt;br /&gt;
    drawBein(posBRx-40, posBRy)&lt;br /&gt;
  &lt;br /&gt;
      &lt;br /&gt;
#Eigene Funktionen&lt;br /&gt;
&lt;br /&gt;
def drawAuge (xpos, ypos, direction):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (80,80,100)&lt;br /&gt;
    stroke (40)&lt;br /&gt;
    strokeWeight(2) &lt;br /&gt;
    translate (xpos, ypos)  &lt;br /&gt;
    scale(direction,1) &lt;br /&gt;
    ellipse (0,0,auge,auge)  &lt;br /&gt;
    popStyle()           &lt;br /&gt;
    popMatrix()&lt;br /&gt;
&lt;br /&gt;
def drawArm (xpos, ypos, direction, angle):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    scale(direction,1)&lt;br /&gt;
    rotate(angle)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,30,130)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    &lt;br /&gt;
def drawBein (xpos, ypos):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill(10,10,40)&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,40,90)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    saveFrame(&amp;quot;robot_const_###.png&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Midtermbot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
midtermbot.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
###Import###&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor&lt;br /&gt;
import tweepy&lt;br /&gt;
import time&lt;br /&gt;
import random&lt;br /&gt;
import requests&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from twitterkeys import *&lt;br /&gt;
from textposts import text&lt;br /&gt;
from imagefuncs import blur, emboss, edges, invert, transpose&lt;br /&gt;
&lt;br /&gt;
##############&lt;br /&gt;
###Programm###&lt;br /&gt;
##############&lt;br /&gt;
&lt;br /&gt;
###Twitter connect###&lt;br /&gt;
&lt;br /&gt;
#TwitterPassVariable for Test without posting on Twitter&lt;br /&gt;
#True = Post on Twitter / False = just open Image and show text local&lt;br /&gt;
check = False&lt;br /&gt;
&lt;br /&gt;
#Define TwitterKeys to variables&lt;br /&gt;
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)&lt;br /&gt;
auth.secure = True&lt;br /&gt;
auth.set_access_token(access_token, access_token_secret)&lt;br /&gt;
api = tweepy.API(auth)&lt;br /&gt;
&lt;br /&gt;
#Find Images and URL in Account on Twitter&lt;br /&gt;
timeline = api.user_timeline(screen_name = &amp;quot;C64_Bot&amp;quot;) &lt;br /&gt;
for tweet in timeline: &lt;br /&gt;
   for media in tweet.entities.get(&amp;quot;media&amp;quot;,[{}]):&lt;br /&gt;
    if media.get(&amp;quot;type&amp;quot;,None) == &amp;quot;photo&amp;quot;:&lt;br /&gt;
        url = media[&amp;quot;media_url&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
###Load Image from URL###&lt;br /&gt;
#&amp;quot;http://maui.hawaii.edu/tlc/wp-content/uploads/sites/53/2013/11/testing.jpg&amp;quot;&lt;br /&gt;
response = requests.get(url)&lt;br /&gt;
image = Image.open(BytesIO(response.content))&lt;br /&gt;
&lt;br /&gt;
#Test Bild laden&lt;br /&gt;
#image = Image.open(&amp;quot;test.png&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
#Liste der verschiedenen Funktionen erstellen&lt;br /&gt;
functions_list = [blur, emboss, edges, invert, transpose]&lt;br /&gt;
&lt;br /&gt;
#Mainfunction&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:    &lt;br /&gt;
    &lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    #2.Runde Random Filter anwenden&lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    if check == True:&lt;br /&gt;
        filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
        image.save(filename)&lt;br /&gt;
        api.update_with_media(filename,text)  &lt;br /&gt;
    &lt;br /&gt;
    else:&lt;br /&gt;
        image.show()&lt;br /&gt;
        print(text)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
#Bild blur&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Verschiedene Texte die gepostet werden können&lt;br /&gt;
a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
b=&amp;quot;I&#039;am an artist.What you think about?&amp;quot;&lt;br /&gt;
c=&amp;quot;Uh, which great Effekt&amp;quot;&lt;br /&gt;
d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
f=&amp;quot;Mhmmm, what you mean? Is this art?&amp;quot;&lt;br /&gt;
g=&amp;quot;Yes I post&amp;quot;&lt;br /&gt;
h=&amp;quot;I should do an exhibition whith this works.&amp;quot;&lt;br /&gt;
i=&amp;quot;Tell me what you think about.&amp;quot;&lt;br /&gt;
j=&amp;quot;This is my job! Post Pictures...&amp;quot;&lt;br /&gt;
k=&amp;quot;Funky...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Liste mit allen Textinhalten erstellen&lt;br /&gt;
text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Zufällige auswahl eines Inhalts&lt;br /&gt;
text = random.choice(text_list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=72701</id>
		<title>GMU:Bots &#039;n&#039; Plots/Constantin Oestreich</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=72701"/>
		<updated>2015-06-16T06:40:12Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: Midtermbot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Page of Constantin Oestreich ====&lt;br /&gt;
&lt;br /&gt;
Twitter: [https://twitter.com/ConstOest @ConstOest]&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_const.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Animated Robot ====&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_Const.gif]]&lt;br /&gt;
&lt;br /&gt;
Thumb doesnt work - find it here:&lt;br /&gt;
&lt;br /&gt;
Animated Robot: [https://www.uni-weimar.de/medien/wiki/images/Robot_Const.gif]&lt;br /&gt;
&lt;br /&gt;
==== Robot Code ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My Animated Robot&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Variablen&lt;br /&gt;
&lt;br /&gt;
widthBox = 400&lt;br /&gt;
heightBox = widthBox&lt;br /&gt;
centerx = widthBox / 2&lt;br /&gt;
centery = heightBox / 2&lt;br /&gt;
koerper = widthBox / 3&lt;br /&gt;
kopf = koerper / 1.5&lt;br /&gt;
auge = kopf / 6&lt;br /&gt;
blauKopf = 0&lt;br /&gt;
gruenKopf = 90&lt;br /&gt;
rotKopf = 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Ausgabe&lt;br /&gt;
&lt;br /&gt;
def setup():&lt;br /&gt;
    size (widthBox,heightBox)&lt;br /&gt;
    colorMode (RGB, 100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def draw():&lt;br /&gt;
    &lt;br /&gt;
    #Moving per Frame&lt;br /&gt;
    frameRate (25)&lt;br /&gt;
    angle = PI/8 * sin(frameCount * 0.1)&lt;br /&gt;
    &lt;br /&gt;
    #Growing Up&lt;br /&gt;
    &lt;br /&gt;
    global auge&lt;br /&gt;
    if auge&amp;lt;30:&lt;br /&gt;
        auge=auge+2&lt;br /&gt;
    else:&lt;br /&gt;
        auge=10&lt;br /&gt;
        &lt;br /&gt;
    global kopf&lt;br /&gt;
    if kopf&amp;lt;140:&lt;br /&gt;
        kopf=kopf+2&lt;br /&gt;
    else:&lt;br /&gt;
        kopf = koerper / 1.5&lt;br /&gt;
        &lt;br /&gt;
    global blauKopf&lt;br /&gt;
    global gruenKopf&lt;br /&gt;
    global rotKopf    &lt;br /&gt;
    if kopf&amp;gt;koerper / 1.5 and kopf&amp;lt;130:&lt;br /&gt;
        blauKopf = blauKopf + 5&lt;br /&gt;
        gruenKopf = gruenKopf -2&lt;br /&gt;
        rotKopf = rotKopf -2&lt;br /&gt;
    &lt;br /&gt;
    elif kopf &amp;gt; 130 and kopf &amp;lt; 140:&lt;br /&gt;
        blauKopf = 0&lt;br /&gt;
        gruenKopf = 0&lt;br /&gt;
        rotKopf = 100&lt;br /&gt;
        &lt;br /&gt;
    else:&lt;br /&gt;
        blauKopf=0&lt;br /&gt;
        gruenKopf = 90&lt;br /&gt;
        rotKopf = 100   &lt;br /&gt;
    &lt;br /&gt;
    #Variablen BG&lt;br /&gt;
    R = random(30,60)&lt;br /&gt;
    G = random(50,80)&lt;br /&gt;
    B = random(70,90) &lt;br /&gt;
    &lt;br /&gt;
    #Variablen Fill&lt;br /&gt;
    RF = random(20,50)&lt;br /&gt;
    GF = random(0,30)&lt;br /&gt;
    BF = random(10,40)&lt;br /&gt;
    &lt;br /&gt;
    #define&lt;br /&gt;
    background(R,G,B)&lt;br /&gt;
    rectMode(CENTER)&lt;br /&gt;
    fill (RF,GF,BF)&lt;br /&gt;
    stroke (90)&lt;br /&gt;
    strokeWeight(5)    &lt;br /&gt;
&lt;br /&gt;
    #---Körper---&lt;br /&gt;
    rect (centerx, centery, koerper, koerper)&lt;br /&gt;
&lt;br /&gt;
    #---Kopf---&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (rotKopf, gruenKopf, blauKopf)&lt;br /&gt;
    ellipse (centerx, centery-koerper+(kopf*0.25), kopf, kopf)&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    # Variablen Auge&lt;br /&gt;
    &lt;br /&gt;
    AugeX1 = centerx - 17&lt;br /&gt;
    AugeY1 = centerx - koerper*0.875&lt;br /&gt;
    AugeX2 = centerx + 17&lt;br /&gt;
    AugeY2 = centerx - koerper*0.875&lt;br /&gt;
    &lt;br /&gt;
    #---Auge01---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX1, AugeY1, 1)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #---Auge02---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX2, AugeY2, -1)&lt;br /&gt;
    &lt;br /&gt;
    # Arm positions&lt;br /&gt;
    posLx = centerx - koerper / 2&lt;br /&gt;
    posLy = centery - koerper / 2&lt;br /&gt;
    posRx = centerx + koerper / 2&lt;br /&gt;
    posRy = centery - koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    # Bein positions&lt;br /&gt;
    posBLx = centerx - koerper / 2&lt;br /&gt;
    posBLy = centery + koerper / 2&lt;br /&gt;
    posBRx = centerx + koerper / 2&lt;br /&gt;
    posBRy = centery + koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    #---Left Arm---&lt;br /&gt;
    drawArm(posLx-30, posLy-15, 1, angle)&lt;br /&gt;
    &lt;br /&gt;
    #---Right Arm---&lt;br /&gt;
    drawArm(posRx+30, posRy-15, -1, angle) &lt;br /&gt;
    &lt;br /&gt;
    #---Bein Links---&lt;br /&gt;
    drawBein(posBLx, posBLy)&lt;br /&gt;
    &lt;br /&gt;
    #---Bein Rechts---&lt;br /&gt;
    drawBein(posBRx-40, posBRy)&lt;br /&gt;
  &lt;br /&gt;
      &lt;br /&gt;
#Eigene Funktionen&lt;br /&gt;
&lt;br /&gt;
def drawAuge (xpos, ypos, direction):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (80,80,100)&lt;br /&gt;
    stroke (40)&lt;br /&gt;
    strokeWeight(2) &lt;br /&gt;
    translate (xpos, ypos)  &lt;br /&gt;
    scale(direction,1) &lt;br /&gt;
    ellipse (0,0,auge,auge)  &lt;br /&gt;
    popStyle()           &lt;br /&gt;
    popMatrix()&lt;br /&gt;
&lt;br /&gt;
def drawArm (xpos, ypos, direction, angle):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    scale(direction,1)&lt;br /&gt;
    rotate(angle)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,30,130)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    &lt;br /&gt;
def drawBein (xpos, ypos):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill(10,10,40)&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,40,90)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    saveFrame(&amp;quot;robot_const_###.png&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Midtermbot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
midtermbot.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
###Import###&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor&lt;br /&gt;
import tweepy&lt;br /&gt;
import time&lt;br /&gt;
import random&lt;br /&gt;
import requests&lt;br /&gt;
from io import BytesIO&lt;br /&gt;
&lt;br /&gt;
#Import aus Dateien&lt;br /&gt;
from twitterkeys import *&lt;br /&gt;
from textposts import text&lt;br /&gt;
from imagefuncs import blur, emboss, edges, invert, transpose&lt;br /&gt;
&lt;br /&gt;
##############&lt;br /&gt;
###Programm###&lt;br /&gt;
##############&lt;br /&gt;
&lt;br /&gt;
###Twitter connect###&lt;br /&gt;
&lt;br /&gt;
#TwitterPassVariable for Test without posting on Twitter&lt;br /&gt;
#True = Post on Twitter / False = just open Image and show text local&lt;br /&gt;
check = False&lt;br /&gt;
&lt;br /&gt;
#Define TwitterKeys to variables&lt;br /&gt;
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)&lt;br /&gt;
auth.secure = True&lt;br /&gt;
auth.set_access_token(access_token, access_token_secret)&lt;br /&gt;
api = tweepy.API(auth)&lt;br /&gt;
&lt;br /&gt;
#Find Images and URL in Account on Twitter&lt;br /&gt;
timeline = api.user_timeline(screen_name = &amp;quot;C64_Bot&amp;quot;) &lt;br /&gt;
for tweet in timeline: &lt;br /&gt;
   for media in tweet.entities.get(&amp;quot;media&amp;quot;,[{}]):&lt;br /&gt;
    if media.get(&amp;quot;type&amp;quot;,None) == &amp;quot;photo&amp;quot;:&lt;br /&gt;
        url = media[&amp;quot;media_url&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
###Load Image from URL###&lt;br /&gt;
#&amp;quot;http://maui.hawaii.edu/tlc/wp-content/uploads/sites/53/2013/11/testing.jpg&amp;quot;&lt;br /&gt;
response = requests.get(url)&lt;br /&gt;
image = Image.open(BytesIO(response.content))&lt;br /&gt;
&lt;br /&gt;
#Test Bild laden&lt;br /&gt;
#image = Image.open(&amp;quot;test.png&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
#Liste der verschiedenen Funktionen erstellen&lt;br /&gt;
functions_list = [blur, emboss, edges, invert, transpose]&lt;br /&gt;
&lt;br /&gt;
#Mainfunction&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:    &lt;br /&gt;
    &lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    #2.Runde Random Filter anwenden&lt;br /&gt;
    #Random eine Funktion aufrufen&lt;br /&gt;
    imagefunc = random.choice(functions_list)&lt;br /&gt;
    #Random Funktion anwenden&lt;br /&gt;
    image = imagefunc(image)&lt;br /&gt;
    &lt;br /&gt;
    if check == True:&lt;br /&gt;
        filename = &amp;quot;final.png&amp;quot;&lt;br /&gt;
        image.save(filename)&lt;br /&gt;
        api.update_with_media(filename,text)  &lt;br /&gt;
    &lt;br /&gt;
    else:&lt;br /&gt;
        image.show()&lt;br /&gt;
        print(text)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imagefuncs.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageColor, ImageEnhance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#verschiedene Bildbearbeitungfunktionen&lt;br /&gt;
&lt;br /&gt;
#Bild blur&lt;br /&gt;
def blur (image):&lt;br /&gt;
    return image.filter(ImageFilter.BLUR)&lt;br /&gt;
&lt;br /&gt;
def emboss (image):&lt;br /&gt;
    return image.filter(ImageFilter.EMBOSS)&lt;br /&gt;
&lt;br /&gt;
def edges (image):&lt;br /&gt;
    return image.filter(ImageFilter.FIND_EDGES)&lt;br /&gt;
&lt;br /&gt;
def transpose(image):&lt;br /&gt;
    return image.transpose(Image.FLIP_LEFT_RIGHT)&lt;br /&gt;
&lt;br /&gt;
def invert(image):&lt;br /&gt;
    return image.point(lambda x: 255-x)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
textposts.py&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Import Modules for Project&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Verschiedene Texte die gepostet werden können&lt;br /&gt;
a=&amp;quot;Yeah, a new Image is Ready&amp;quot;&lt;br /&gt;
b=&amp;quot;I&#039;am an artist.What you think about?&amp;quot;&lt;br /&gt;
c=&amp;quot;Uh, which great Effekt&amp;quot;&lt;br /&gt;
d=&amp;quot;Nice&amp;quot;&lt;br /&gt;
e=&amp;quot;Thats what I do&amp;quot;&lt;br /&gt;
f=&amp;quot;Mhmmm, what you mean? Is this art?&amp;quot;&lt;br /&gt;
g=&amp;quot;Yes I post&amp;quot;&lt;br /&gt;
h=&amp;quot;I should do an exhibition whith this works.&amp;quot;&lt;br /&gt;
i=&amp;quot;Tell me what you think about.&amp;quot;&lt;br /&gt;
j=&amp;quot;This is my job! Post Pictures...&amp;quot;&lt;br /&gt;
k=&amp;quot;Funky...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Liste mit allen Textinhalten erstellen&lt;br /&gt;
text_list = [a, b, c, d, e, f, g, h, i, j, k]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Zufällige auswahl eines Inhalts&lt;br /&gt;
text = random.choice(text_list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=71847</id>
		<title>GMU:Bots &#039;n&#039; Plots/Constantin Oestreich</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Constantin_Oestreich&amp;diff=71847"/>
		<updated>2015-04-29T14:38:59Z</updated>

		<summary type="html">&lt;p&gt;ConstOest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Page of Constantin Oestreich ====&lt;br /&gt;
&lt;br /&gt;
Twitter: [https://twitter.com/ConstOest @ConstOest]&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_const.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Animated Robot ====&lt;br /&gt;
&lt;br /&gt;
[[File:Robot_Const.gif]]&lt;br /&gt;
&lt;br /&gt;
Thumb doesnt work - find it here:&lt;br /&gt;
&lt;br /&gt;
Animated Robot: [https://www.uni-weimar.de/medien/wiki/images/Robot_Const.gif]&lt;br /&gt;
&lt;br /&gt;
==== Robot Code ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My Animated Robot&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Variablen&lt;br /&gt;
&lt;br /&gt;
widthBox = 400&lt;br /&gt;
heightBox = widthBox&lt;br /&gt;
centerx = widthBox / 2&lt;br /&gt;
centery = heightBox / 2&lt;br /&gt;
koerper = widthBox / 3&lt;br /&gt;
kopf = koerper / 1.5&lt;br /&gt;
auge = kopf / 6&lt;br /&gt;
blauKopf = 0&lt;br /&gt;
gruenKopf = 90&lt;br /&gt;
rotKopf = 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Ausgabe&lt;br /&gt;
&lt;br /&gt;
def setup():&lt;br /&gt;
    size (widthBox,heightBox)&lt;br /&gt;
    colorMode (RGB, 100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def draw():&lt;br /&gt;
    &lt;br /&gt;
    #Moving per Frame&lt;br /&gt;
    frameRate (25)&lt;br /&gt;
    angle = PI/8 * sin(frameCount * 0.1)&lt;br /&gt;
    &lt;br /&gt;
    #Growing Up&lt;br /&gt;
    &lt;br /&gt;
    global auge&lt;br /&gt;
    if auge&amp;lt;30:&lt;br /&gt;
        auge=auge+2&lt;br /&gt;
    else:&lt;br /&gt;
        auge=10&lt;br /&gt;
        &lt;br /&gt;
    global kopf&lt;br /&gt;
    if kopf&amp;lt;140:&lt;br /&gt;
        kopf=kopf+2&lt;br /&gt;
    else:&lt;br /&gt;
        kopf = koerper / 1.5&lt;br /&gt;
        &lt;br /&gt;
    global blauKopf&lt;br /&gt;
    global gruenKopf&lt;br /&gt;
    global rotKopf    &lt;br /&gt;
    if kopf&amp;gt;koerper / 1.5 and kopf&amp;lt;130:&lt;br /&gt;
        blauKopf = blauKopf + 5&lt;br /&gt;
        gruenKopf = gruenKopf -2&lt;br /&gt;
        rotKopf = rotKopf -2&lt;br /&gt;
    &lt;br /&gt;
    elif kopf &amp;gt; 130 and kopf &amp;lt; 140:&lt;br /&gt;
        blauKopf = 0&lt;br /&gt;
        gruenKopf = 0&lt;br /&gt;
        rotKopf = 100&lt;br /&gt;
        &lt;br /&gt;
    else:&lt;br /&gt;
        blauKopf=0&lt;br /&gt;
        gruenKopf = 90&lt;br /&gt;
        rotKopf = 100   &lt;br /&gt;
    &lt;br /&gt;
    #Variablen BG&lt;br /&gt;
    R = random(30,60)&lt;br /&gt;
    G = random(50,80)&lt;br /&gt;
    B = random(70,90) &lt;br /&gt;
    &lt;br /&gt;
    #Variablen Fill&lt;br /&gt;
    RF = random(20,50)&lt;br /&gt;
    GF = random(0,30)&lt;br /&gt;
    BF = random(10,40)&lt;br /&gt;
    &lt;br /&gt;
    #define&lt;br /&gt;
    background(R,G,B)&lt;br /&gt;
    rectMode(CENTER)&lt;br /&gt;
    fill (RF,GF,BF)&lt;br /&gt;
    stroke (90)&lt;br /&gt;
    strokeWeight(5)    &lt;br /&gt;
&lt;br /&gt;
    #---Körper---&lt;br /&gt;
    rect (centerx, centery, koerper, koerper)&lt;br /&gt;
&lt;br /&gt;
    #---Kopf---&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (rotKopf, gruenKopf, blauKopf)&lt;br /&gt;
    ellipse (centerx, centery-koerper+(kopf*0.25), kopf, kopf)&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    # Variablen Auge&lt;br /&gt;
    &lt;br /&gt;
    AugeX1 = centerx - 17&lt;br /&gt;
    AugeY1 = centerx - koerper*0.875&lt;br /&gt;
    AugeX2 = centerx + 17&lt;br /&gt;
    AugeY2 = centerx - koerper*0.875&lt;br /&gt;
    &lt;br /&gt;
    #---Auge01---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX1, AugeY1, 1)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #---Auge02---&lt;br /&gt;
    &lt;br /&gt;
    drawAuge(AugeX2, AugeY2, -1)&lt;br /&gt;
    &lt;br /&gt;
    # Arm positions&lt;br /&gt;
    posLx = centerx - koerper / 2&lt;br /&gt;
    posLy = centery - koerper / 2&lt;br /&gt;
    posRx = centerx + koerper / 2&lt;br /&gt;
    posRy = centery - koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    # Bein positions&lt;br /&gt;
    posBLx = centerx - koerper / 2&lt;br /&gt;
    posBLy = centery + koerper / 2&lt;br /&gt;
    posBRx = centerx + koerper / 2&lt;br /&gt;
    posBRy = centery + koerper / 2&lt;br /&gt;
    &lt;br /&gt;
    #---Left Arm---&lt;br /&gt;
    drawArm(posLx-30, posLy-15, 1, angle)&lt;br /&gt;
    &lt;br /&gt;
    #---Right Arm---&lt;br /&gt;
    drawArm(posRx+30, posRy-15, -1, angle) &lt;br /&gt;
    &lt;br /&gt;
    #---Bein Links---&lt;br /&gt;
    drawBein(posBLx, posBLy)&lt;br /&gt;
    &lt;br /&gt;
    #---Bein Rechts---&lt;br /&gt;
    drawBein(posBRx-40, posBRy)&lt;br /&gt;
  &lt;br /&gt;
      &lt;br /&gt;
#Eigene Funktionen&lt;br /&gt;
&lt;br /&gt;
def drawAuge (xpos, ypos, direction):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill (80,80,100)&lt;br /&gt;
    stroke (40)&lt;br /&gt;
    strokeWeight(2) &lt;br /&gt;
    translate (xpos, ypos)  &lt;br /&gt;
    scale(direction,1) &lt;br /&gt;
    ellipse (0,0,auge,auge)  &lt;br /&gt;
    popStyle()           &lt;br /&gt;
    popMatrix()&lt;br /&gt;
&lt;br /&gt;
def drawArm (xpos, ypos, direction, angle):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    scale(direction,1)&lt;br /&gt;
    rotate(angle)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,30,130)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    &lt;br /&gt;
def drawBein (xpos, ypos):&lt;br /&gt;
    pushMatrix()&lt;br /&gt;
    pushStyle()&lt;br /&gt;
    fill(10,10,40)&lt;br /&gt;
    translate(xpos,ypos)&lt;br /&gt;
    rectMode(CORNER)&lt;br /&gt;
    rect(0,0,40,90)&lt;br /&gt;
    popMatrix()&lt;br /&gt;
    popStyle()&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    saveFrame(&amp;quot;robot_const_###.png&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>ConstOest</name></author>
	</entry>
</feed>