1. Oktober 2013
Eine Linie, zwischen zwei Punkten, zu setzten auf welcher sich ein Ball hin und her beweget, war die Aufgabe. Dabei war das Ziel PVectoren näher kennenzulernen. Mein Lieblings-Geometrie-Thema war es sicher nicht! Gerne hätte ich das Thema noch etwas intensiver angeschaut, vor allem weil es eine wichtige Rolle spielt beim Programmieren in Processing. <code>//code PVector startPos = new PVector(); PVector endPos = new PVector(); int curTime = 0; int animSpeed = 50; int animTime = 2000; boolean drawFlag=false; int click_number = 0; void setup() { size(640, 480); smooth(); } void draw() { background(51); curTime += animSpeed; // Definition der aktuellen Position float normTime = curTime * 1.0 / animTime; if(drawFlag) { stroke(255); line(startPos.x,startPos.y, endPos.x,endPos.y); PVector dir = PVector.sub(endPos,startPos); // calculate the position of the circle on the line PVector pos = PVector.add( startPos , PVector.mult(dir,(sin(normTime)+1)/2)); ellipse(pos.x,pos.y, 20,20); } } void mouseClicked() { click_number += 1; if (drawFlag = true &amp;amp;amp;&amp;amp;amp; click_number % 2 == 1) // falls Klickrate ungerade { println(&amp;amp;quot;start&amp;amp;quot;); curTime = 0; startPos.set(mouseX,mouseY); endPos = startPos.get(); } else if (drawFlag = true &amp;amp;amp;&amp;amp;amp; click_number % 2 == 0) // falls Klickrate gerade { println(&amp;amp;quot;end&amp;amp;quot;); curTime = 1; //endPos = startPos.get(); endPos.set(mouseX,mouseY); } } &amp;amp;lt;/code&amp;amp;gt; &amp;amp;amp;nbsp;</code>