Parabel in Koordinatensystem programmieren?
Hallo, ich arbeite gerade an einem Programm, welches die Seiten des Processingfensters, ins Verhältnis eines Koordinatensystems nach eigen gewählten ausmaßen setzt. Jetzt möchte ich eine variable definieren in dem ein Funktionswert zb. f(x)=x*x eingegeben wird und dann die Parabel in diesem Verhältnis einzeichnet. Ich vermute das das eine schleife sein muss um alle x Werte durchzugehen, bin mir aber nicht sicher wie weiter.
Danke im Voraus!
1 Antwort
Wenn du jeden Punkt einzeln setzen möchtest, wäre eine Schleife praktisch, das ist richtig. Diese Schleife müsste die Werte für die x-Achse durchlaufen (also im Negativbereich starten und im Positivbereich aufhören) und innerhalb der Schleife wird der y-Wert anhand der Formel x² berechnet.
Um es dir einfacher zu machen, kannst du für den Zeichenvorgang den Koordinatenursprung temporär verschieben:
size(400, 400);
pushMatrix();
translate(width / 2f, height / 2f);
// draw ...
popMatrix();
Zusätzlich bräuchtest du trotzdem noch eine Umrechnung deiner Koordinate auf das tatsächliche Koordinatensystems des Programms. Das heißt, du müsstest ermitteln, in welchem Verhältnis bspw. der x-Wert 3 (dein maximaler x-Radius) zum tatsächlichen Feldradius 200 steht.
Dasselbe benötigst du natürlich ebenso für y.
Alle Punkte kannst du direkt miteinander verbinden, indem du eine Shape startest.
Beispiel:
beginShape();
fill(#ffffff, 0);
curveVertex(1, 2);
curveVertex(2, 4);
endShape();
Jeder Vertex stellt einen Punkt dar. Alle Vertices werden automatisch miteinander verbunden. Da es sich um Kurvenpunkte handelt, geht das Programm davon aus, dass die Vertices eine Kurve bilden sollen.
PS.: Die Achsen deines Koordinatensystems lassen sich viel einfacher zeichnen.
Beispiel für die horizontale Achse:
line(0, height / 2f, width, height / 2f);