Sinuskurve zeichnen

Patrick Kamin

Erfahrenes Mitglied
-

Hallo mordi!

Nimm dir ein TPaint-Objekt und zeichne dir mit Canvas ein Koordinaten-System.
Dann füllst du ein 2 dimensionales Array mit den Werten für x und y. Anschließend einfach nur dein Array ausgeben und richtig am Koordinaten-System ausrichten.

Feddich ;)
 

niTeZ

Mitglied
tja so hätte ich mir das auch gedacht! ist vielleicht eine blöde frage, aber ich habe in der schule nie gelernt was ein sinus und ein kosinus bzw. tangens ist, könnte mir diese begriffe eventuell näher erläutern??
 

eLorFiN

Erfahrenes Mitglied
aye... vergiss erstmal die tangensfunktion...das kann wehtun ;P


Also:
Eine Sinusfunktion wird in der Schule zuerst so beigebracht dass du ein rechtwinkliges Dreieck hast.
Wenn du also ausser dem rechten Winkel einen weiteren kennst, kennst du automatisch den dritten über den Innenwinkelsatz.
Nun Stellste dich im Dreieck auf den nicht rechten Winkel alpha und nimmt den sinus davon.
Da fällt dir NATÜRLICH (*g*) auf,dass sin(alpha)genauso viel ist wie die gegenüberliegende Seite geteilt durch die Hypotenuse(die gegenüber dem rechten Winkel).
Das nur so am Rande.

Alle regelmäßigen(harmonischen) Schwingungen, wie SchallWELLEN können mit der Sinusfunktion beschrieben werden.
(Physiker, verzeiht mir,dass ich die amplitudenabnahme nicht erwähne).
Okay...man kann sinusfunktionen im GROBEN anhand dieser Merkmale identifizieren:

Amplitude : der größte Abstand des Graphen von der X-Achse

Periodenlänge: Da die Sinusfunktion PERIODISCH(sich wiederholend) ist, kann man die Länge eines "Durchlaufs" messen.
Die bekannteste Periodenlänge beim Schall ist 440Hz, der Ton A.

Y-Achsenabschnitt...kennen wir von anderen Funktionen

X-Achsenabschnitt, das Selbe

Nuja, die Kosinusfunktion is das SELBE wie die Sinusfunktion jedoch um PI/2 verschoben (PI/ im Bogenmaß entsprechen 90° ->
Umrechnung : b = alpha/180 * PI )

Die Tangensfunktion ist auch relativ einfach, sieht nur BLÖD aus:

sin(alpha)/cos(alpha) = tan(alpha)

Hier die Graphen wie sie im Delphi aussehen sollten:
wfunk.gif

Grün: Kosinus,Rot: Sinus,Blau: Tangens

Das tool, mit dem ich das gemacht hab,ist ziemlich sicher mit delphi gebaut, halt dich ran :p

Hier nochmal zum herumexpeimentieren als DOWNLOAD:
http://free.pages.at/apach/misc/mathgraf.zip

Und zu Delphi, ich glaub dass du nicht sooo viel brauchst...
Ich würde es versuchen mit einer FOR-Schleife, die auf einer Fläche erstmal grob Punkte darstellt die du dann u.U. genauer machen kannst :D

grüße und viel Erfolg, eL
(und wenn du GAR NIX verstanden haben solltest, PM mich und ich erklärs dir zu ner besseren Zeit als 1 uhr MORGENS :S)
 

eLorFiN

Erfahrenes Mitglied
Nö, sorry, habs in der Schule bekommen...
Und zu dem topic:
Ich kann im Moment wenig helfen da ich Ferien hab und natürlich mein Delphi nachm formatieren auch net mehr draufhab... nuja...kann ma nix machen...
 

BaraMGB

Grünschnabel
Hallo, bin neu hier. Also nicht haun! :)

Sorry, dass ich dieses alte Topic nochmal auskrame, aber ich hab da ein Problem, dass vllt in diese Richtung geht, und wollte nicht gleich als Newbie ein Neues aufmachen.

Ich möchte unter TP einen Kreis(Ellipse) zeichnen. Ich hab da schon ne Lösung im Netz gefunden, die lässt sich aber für mein Problem nicht anwenden. Diese Lösung zeichnet:

1 Quadranten von Mitte Oben nach Links
2 Quadranten von Mitte Oben nach Rechst
und die anderen beiden von unten nach rechts ...

Was ich bräuchte (ja ich hab gegoogelt :mad: ) ist eine Formel, die mir, in einer Schleife, die x und y koordinaten nacheinaner liefert, sodass sich der Kreis von oben bis wieder oben schließt.

Warum ich das hier poste? Ich denke, es müsste auf jeden Fall etwas mit Sinus zutun haben, denn eine Sinuskurve ist doch auch nichts anderes als die 4 Quadranten eines Kreises (oder?).


Gruß Bara
 

eLorFiN

Erfahrenes Mitglied
Also... pascal war eine Weile lang Thema bei uns in der Schule und wir haben mit einer Teletubbie-Version der Graph/Graph 3 gearbeitet, sprich UTurtle.

dort ging ganz standardmäßig ein Kreis nicht anders als:

Code:
 for i:= 1 to 360 do
 begin
  vorwaerts(1);links(1);
 end;
Das müsstest du dann auf die Befehle der dir zur Verfügung stehenden Units anwenden.
Andererseits ist es auch nicht unbequem, die deutsche Uturtle zu nehmen.
 
Zuletzt bearbeitet:

BaraMGB

Grünschnabel
Code:
for Winkel := 1 to 360 do
   begin
     xMittelpunkt := 320; 
     yMittelpunkt := 240; 
     xRadius := 200;
     yRadius := 50;
     y := trunc(yRadius*sin(Winkel*2*pi/360)+yMittelpunkt);
     x := trunc(xRadius*cos(Winkel*2*pi/360)+xMittelpunkt);
     putpixel(x,y,white);
   end;

Ist doch ganz einfach, oder? ;-)


Gruß Bara