Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 12, 2025 09:19

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 23, 2006 16:21 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
naja ich finde mahte eigentlich toll, und wenn ich so programmier löse ich für mich das eine oder andre mahte problem z.b. das scrollen in einer eigenen map war für mich eine herrausforderung aber ich konnte die funktion schließlich doch zu einer formel bauen... dank meiner vorstellungskraft. Das macht das programmieren ja gerade intresant, problme sind dazu da um gelöst zu werden.... und ich denke das mit den openGl problem bekomme ich auch noch hin... auch wenn ich mir beim besten willen(und wenn ich noch zu viele tutors durchlese) das mit cin und cos nicht verstehe ich weiß nur das sie 0 bzw. 1 zurück geben(gerundet). aber ich würde auch sagen das ohne sin und cos nichts gehen würde, oder ?

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 23, 2006 16:41 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Ohne Sinus und Cosinus geht wirklich nichts, einfach weil es zur Winkelberechnung benutzt wird.
Vielleicht hilft dir das Bild von Wikipedia:
Bild
Der Sinus ist die horizontale gepunktete Linie, der Cosinus die vertikale gepunktete Linie.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 23, 2006 19:49 
Offline
DGL Member

Registriert: So Jun 18, 2006 13:36
Beiträge: 12
Stell dir vor du hast ein Koordinatensystem und malst um den Ursprung (0,0) einen Kreis mit Radius 1 (von Mathematikern auch oft der Einheitskreis genannt). Jetzt suchst du dir irgendeinen Punkt auf dem Kreis und willst wissen welche x-/y-Koordinate dieser Punkt im Koordinatensystem hat. Genau das sagt dir Sinus und Cosinus.

Bei einigen Punkten ist das relativ leicht, denn da wo der Kreis und eine der Achsen sich schneiden kann man das Ergebnis quasi ablesen. Alles was zwischendurch ist, ist allerdings so ohne weiteres nicht abzulesen. Bei der Koordinate (1,0) wo die X-Achse den Kreis schneidet beispielsweise sieht mans sofort. Wenn man diesen Punkt jetzt statdessen mit sin/cos ausrechnen will, dann zieht man zunächst mal einen Gerade von (0,0) zu dem Punkt den man wissen wil (also (1,0)) und muss dann rausfinden welchen Winkel diese Gerade mit der X-Achse (also der Strecke (0,0)->(1,0)) aufspannt. Dabei wichtig zu bedenken das Winkel gegen den Uhrzeigersinn gemessen werden.

Im Beispiel oben ist leicht zu erkennen das der Winkel zwischen (0,0)->(1,0) und (0,0)->(1,0) genau 0° beträgt, denn es sind ja genau die selben Geraden. Wenn man mit diesem Winkel jetzt den x- und y-Wert des Punktes auf dem Kreis den wir uns oben ausgesucht haben berechnen will, muss man nur wissen das (in einem Kreis mit Radius 1) gilt:

x = cos(a)
y = sin(a)

wobei a der Winkel zwischen der X-Achse und der Gerade zum Punkt ist.

Im Beispiel ist der Winkel ja 0°, schwingen wir also unseren Start->Programme->Zubehör->Taschenrechner stellen wir fest: cos(0) = 1 und sin(0) = 0. Demnach ist der Punkt auf dem Kreis der Punkt (1,0) (wie unerwartet ;)).

Machen wir jetzt das selbe für den Punkt (0,1) also quasi mit der Y-Achse, dann stellen wir mehrere Dinge fest:

1. Der Winkel beträgt 90° (das weiß das Geodreieck).
2. Cos(90) = 0 und Sin(90) = 1, der Punkt ist also (0,1)
3. Ein Mathematiker würde einen fragen ob man radial oder im Bogenmaß rechnet. Da muss es also einen Unterschied geben.
4. Was passiert am Ende des Kreises?
5. Wo ist eigentlich PI?

Während 1 und 2 relativ einleuchtet sind, bedarf 3-5 noch etwas Erklärung:

Aus dem Schulunterricht haben wir vergessen: Der Umfang eines Kreises ist 2*PI*r (da ist das PI ;)). Daraus können wir den Umfang des Einheitskreises (Radius r = 1) berechnen, der ist 2*PI. Ein halber Kreis ist demnach 2*PI / 2 also PI und ein viertel Kreis ist 2*PI / 4 also PI / 2. Das nennt man dann auch Bogenmaß des Kreises.

Sinus und Cosinus rechnen eigentlich mit dem Bogenmaß, aber weil 2*PI schwer vorzustellen ist, hat man sich überlegt ob man den Kreis nicht auch verständlicher einteilen könnte und hat einfach mal so gesagt: der Kreis hat 360°. Das heißt natürlich das 360° = 2*PI ist, denn sonst wäre der Kreis krumm. Nach 3-Satz kann man dann berechnen: 1° = 2*PI/360 und x° sind 2*PI/360 * x. Hier sehen sie die Umrechnungsformel Grad->Bogenmaß.

Da 90° ein viertel Kreis ist und PI/2 auch, ist logischerweise 90° = PI/2. Da Sinus/Cosinus wie oben erwähnt eigentlich im Bogenmaß rechnen, aber wir ja jetzt wissen wie man umrechnet, sollte ja sin(90°) = sin(PI/2) sein, ist ja beides ein viertel Kreis (ist auch so). Warum jetzt die Umrechnung Bogenmaß<->Grad? OpenGL rechnet intern mit dem Bogenmaß, der normale Mensch aber mit Grad (weils leichter vorzustellen ist). Freundlicherweise erlaubt OpenGL die Eingabe von Grad in den Rotationsfunktionen und rechnet dann intern um, so das wir uns damit nicht rumschlagen müssen, aber Delphi rechnet unglücklicherweise im Bogenmaß. Da wir aber jetzt wissen wie man umrechnet sollte das ja kein Problem mehr sein. Wollen wir in Delphi beispielsweise einen Winkel von 143° an die Sinus-Funktion übergeben, müssen wir nur eben umrechnen: 2*PI/360 * 143 ~ 2,5. Wie man zurück rechnet sollte auch klar sein, die Formel einfach umkehren. Kleiner Tipp: wenn man in die umgekehrte Formel 2,5 eingibt, sollte ~143 rauskommen, wenn nicht dann nochmal schnell den Fehler suchen. ;)

Wo hat der Kreis denn nun sein Ende? Ganz einfach: er hat keins. ;)
Was passiert also wenn ich sin(460°) ausrechnen will? Es gibt 2 Möglichkeiten: Die Rechnung verursacht einen Ausnahmefehler, die Welt stürzt ab und das Universum startet ordnungsgemäß neu, oder (was viel praktischer ist) die Sinus-Funktion berechnet den Wert trotzdem. 460° sind ja 360° + 100°. Also wenn wir uns einmal im Kreis drehen (360°) und dann noch 100° weiter (360°+100° = 460°), sind wir an dem Punkt den wir haben wollen. Man stellt also fest: 460° und 100° sind wohl das selbe, und genau so ist es. Fazit demnach: der Kreis hat kein Ende und Sinus auch nicht und Cosinus ebenfalls nicht.

So jetzt ist der Kaffee alle, ich mach Wochenende. ;)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]