Entwickler-Ecke

Multimedia / Grafik - Parabeln zeichnen


Millo - Sa 05.04.03 20:06
Titel: Parabeln zeichnen
Moin Moin,

Ich glaub ich werd noch verrückt. Ich schaffe es nicht eine parabel dazustellen.
Ich hab x und y werte vorgegeben aber ich weiß net so genau wie ich die jetzt in das Canvas objekt übertragen soll.


mimi - Sa 05.04.03 21:23

was ist denn eine parabel ? kenne ich ja garnicht.....
Sonst könnte ich dir helfen :D


fcg - Sa 05.04.03 21:45

@mimi

parabeln sind meißt so quadratische funktionen... :wink: (ich hasse geometrie)

http://www.google.de/search?hl=de&ie=UTF-8&oe=UTF-8&q=delphi+parabeln+zeichnen&meta=google


mimi - Sa 05.04.03 21:52

du willst also so ein Quadart erstellen oder wie ?
das ist einfach....

(Wie musst du selbst herrausfinden;))


fcg - Sa 05.04.03 22:04

nein *schrei* quadratische funktionen.

das hier zum beispiel ist ne parabel:
http://www.apollon.uio.no/2000_english/pictures/parabel.gif

fcg


mimi - Sa 05.04.03 22:08

hups;) falsch verstanden......


Segelflieger - Sa 05.04.03 23:44

Das geht am besten mit Canvas.MoveTo(x,y) und Canvas.LineTo(x,y).
MoveTo bewegt den Pen deiner Canvas an eine bestimmte Stelle und LineTo zeichnet eine Linie von der aktuellen Position zu einer bestimmten Stelle.
Du nimmst also am besten, wenn du den ersten Punkt deiner Parabel zeichnest, MoveTo(x,y) und für jeden weiteren Punkt LineTo(x,y) das machst du am besten in einer Schleife, die z.B For x := -10 to 10 läuft.
Aber denkt daran, das der Punkt (0|0) bei TCanvas in der linken oberen Ecke der Zeichenfläche liegt. Außerdem wirst du deine Parabel noch etwas vergrößern müssen, Bsp:

Quelltext
1:
 LineTo(trunc(x*10), trunc(y*10));                    

Irgendwas verstanden? :roll: Frag einfach!


mimi - Sa 05.04.03 23:47

Nur gut das ich die Frage nicht gestellt habe(ich habe nichts verstanden, muss ich ja auch nicht).... Ein Beispiel währe nicht schlecht.....
(Ein Ausfüreliches;))


ripper8472 - Mi 09.04.03 00:43

wenn du mit "parabel" ne fest implementierte kurve meinst, dann ist das einfach:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var x,y:double;

x:=-3;
while (x<3) do begin
x:=x+0.1;
//hier die quad gleichg.
y:=pow(x,2); // ~ x^2
image1.canvas.lineto(((x+3)/6)*image1.width,image1.height-(y/10)*image1.height);
end;


das dürfte ne kurve von -3 bis +3 zeichnen im wertebereich 0-10
ist dirty code, aber da haste immerhin schon was

Moderiert von user profile iconUGrohne: Code-Tags hinzugefügt