Demo von Cos() und Sin()

Übersicht BlitzBasic Codearchiv

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

TheProgrammer

Betreff: Demo von Cos() und Sin()

BeitragSa, Jun 05, 2004 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Für die Leute, die das mit dem
Cos() und Sin() immernoch nicht verstanden
haben:

BlitzBasic: [AUSKLAPPEN]
Graphics 640,480,32,2
SetBuffer BackBuffer()
AppTitle "Cos() und Sin()"

Origin 320,240

While Not KeyHit(1)
Cls

Color 255,255,255
Rect -320,0,640,1
Rect 0,-240,1,480

For I = 0 To 359
Color 255,0,0
Rect I-180,Cos(I)*100,1,1
Color 0,0,255
Rect I-180,Sin(I)*100,1,1
Color 0,255,0
Rect Cos(I)*100,Sin(I)*100,1,1
Next

Color 255,0,0
Text -320,-240,"Cosinus"
Color 0,0,255
Text -320,-220,"Sinus"
Color 0,255,0
Text -320,-200,"beide verbunden"

Flip
Wend
End
aktuelles Projekt: The last day of human being
 

judos

BeitragMi, Jul 14, 2004 11:43
Antworten mit Zitat
Benutzer-Profile anzeigen
vielleicht noch ein leichteres beispiel:
BlitzBasic: [AUSKLAPPEN]

Graphics 640,480,32,1
SetBuffer BackBuffer()

Repeat
Cls
winkel=winkel+1
positionx=50*Cos(winkel)
positiony=50*Sin(winkel)

Color 255,255,255
Oval positionx+100,positiony+100,25,25,1

Flip
Until KeyHit(1)=1
End

Jan_

Ehemaliger Admin

BeitragMi, Jul 14, 2004 11:56
Antworten mit Zitat
Benutzer-Profile anzeigen
oder man erklärt es einfach für alle verständlich, die keinen dunst von Mathe haben!

Wenn ihr einen Kanten Punkt von einen Kreis finden wollt, dann braucht ihr Sin und COS

Sin ist für X und Cos für Y

Das sieht dann so aus:
X#=Sin(Grad)
Y#=Cos(Grad)

wie ihr seht, geben die Functionen Floats zurück!

Aber, wenn ihr das jetzt Zeichnet oder ein Bild dort hinsetzt, wird es sich nur auf einer fläsche von 5 Pixeln bewegen!

--> wir brauchen noch einen Durch messer! Sonst ist er immer 1!

X#=Sin(Grad)*Durchmesser#
Y#=Cos(Grad)*Durchmesser#

Viel Spaß damit!
between angels and insects

sbrog

BeitragMi, Jul 14, 2004 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Jan_ hat Folgendes geschrieben:


Sin ist für X und Cos für Y




bei einfachen kreisbahnen kann man das aber auch vertauschen, dann ändert sich die Drehrichtung
 

Dreamora

BeitragMi, Jul 14, 2004 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Du meinst Cos für X und Sin für Y wenn man davon ausgeht das 0° auf der +X Achse liegt ( wo es eigentlich gemäss mathematischer Definition immer liegt ) und +Drehrichtung im Gegenuhrzeigersinn
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Edlothiol

BeitragMi, Jul 14, 2004 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Übrigens sollte man nicht mit dem Durchmesser, sondern mit dem Radius multiplizieren...

Holzchopf

Meisterpacker

BeitragMi, Jul 14, 2004 23:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry für den Folgenden Spam!

LOL ich amüsier mich grad prächtig Laughing

Einer bringt was, weil ers gut meint - kommt einer, der fügt was an - worauf schon der Nächste kommt und alles korrigiert.
Und dann kommen noch 3, welche die Korrekturen richtig stellen Razz

[/SPAM] Wink

Sinus und Cosinus sind übrigens trigonometrische Funktionen, die man in der Berechnung von rechtwinkligen Dreiecken benötigt. Ein Dreieck ist eine geometrische figur mit schätzungsweise Wink 3 ( DREI ) Ecken (daher der Name Dreieck), diese haben die Namen A, B und C (gross geschrieben). Im Normalfall (zB wenn man in Formelbüchern nachschlägt) ist die untere linke Ecke die Ecke A, rechts davon ist Ecke B - zu dieser Ecke gehört dann Winkel Beta 'β', welcher rechtwinklig ist - die Ecke darüber ist Ecke C.
"Grundsatz 1": Die Ecken der rechtwinkligen Dreiecken sind gegen den Uhrzeigersinn beschriftet.

Jetzt kommts: Vis à vis (dt: Gegenüber) von Ecke A ist Seite a (kleingeschrieben!), bei B b, bei C c. Und genau diese 3 Seiten, a,b und c haben auch noch werterige Bezeichnungen, nämlich die Gegenkathete (Seite a), Ankathete (Seite b) und die Hypotenuse (Seite c). Die Hypotenuse ist die Seite, die nie dem rechten Winkel direkt anliegt Exclamation
"Grundsatz 2": Jetzt solltet ihr wissen was ein Dreieck ist und desen Bezeichnungswesen intus haben Wink UND; dass die Ankathete eines rechtwinkligen Dreiecks stets waagrecht steht.

Zum Thema: Sinus α ist das Verhältnis von Gegenkathete über Hypotenuse, Cosinus β ist das Verhältnis von Ankathete über Hypotenuse.
Stellt man dies nun algebraisch um, erhält man (irgendwie) die Formeln:
BlitzBasic: [AUSKLAPPEN]
Gegenkathete = Sinus α * Hypotenuse
Ankathete = Cosinus β * Hypotenuse

Mit ein wenig Phantasie lässt sich nun behaupten (auch wenn die Behauptung stimmen mag und es so eigentlich eine Feststellung ist) die Hypotenuse wäre der Radius, die Ankathete läge parallel zur X-Achse und die Gegenkathete läge parallel zur Y-Achse.
Will man nun ein Objekt mittels Winkel und Bewegungsgeschwindigkeit (Radius) bewegen, kommt man dank den oben genannten Formeln schnell und einfach auf die Werte, um die X- und Y-Position abgeändert werden müssen.
"Grundsatz 3": Wer noch Fragen hat möge den Text noch ein paar mal lesen und/oder Google konsultieren Rolling Eyes

Punkt, Ende, Schluss, Aus!

Ps: Mal guckn wie viele jetzt kommen und mich korrigieren Twisted Evil *Schrotflintestreichel*
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

BladeRunner

Moderator

BeitragDo, Jul 15, 2004 1:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hähä.... Twisted Evil
und wer wissen will wie man denn eigentlich nen Sinus berechnen kann:
Das hier wäre die Formel dazu:

user posted image

Intressant ist hierbei der Teil vor dem 2.Gleichheitszeichen, das ist die mathematische Beschreibung einer Taylor-Reihe welche den Sinus dann durch Annäherung beschreibt.

Allgemein sollte bei sieben oder 8 Iterationen ein aussreichend genauer Wert erzielt sein, es sind der Genauigkeit jedoch (abgesehen von der Kapazität des Rechners) kaum Grenzen gesetzt....
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

TheProgrammer

BeitragDo, Jul 15, 2004 9:39
Antworten mit Zitat
Benutzer-Profile anzeigen
boah... Shocked
aktuelles Projekt: The last day of human being

Jan_

Ehemaliger Admin

BeitragDo, Jul 15, 2004 9:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, BladeRunner, Matheboard leser, wie ich?
between angels and insects

sbrog

BeitragDo, Jul 15, 2004 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
Hähä.... Twisted Evil
user posted image


Dann erklär das ganze mal Very Happy

Jan_

Ehemaliger Admin

BeitragDo, Jul 15, 2004 14:07
Antworten mit Zitat
Benutzer-Profile anzeigen
sin(x) = Das ist eine Unendliche berechnung!

So zusagen einigt man sich auf eine bestimmte genauigkeit!

3! = alle Zahlen bis zu dieser Multipliziert! --> 1*2*3=6
5! --> 1*2*3*4*5= 120

Sin(x) = x-(x^3/6)+(x^5/120)-(x^7/5040)+(x^9/362880)-...

ok?
between angels and insects

sbrog

BeitragDo, Jul 15, 2004 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
sin(10) = 0.173



sin(10) = 10 -(10^3/6) +( 10^5/120)-10^7/5040) + (10^9/362880)

sin(10) = 10 - 1000/6 + 100000/120 - 10000000/5040 + 1000000000/362880

sin(10) =10 - 166,666 + 833,333 - 1984,126 + 2755,731

sin(10) = 1448,272 ??

BladeRunner

Moderator

BeitragDo, Jul 15, 2004 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, prinzipiell läuft das genauso.
Der Fehler bei dir sbrog liegt daran dass diese Funktion nicht mit Winkel sondern mit Bogenmass arbeitet Wink

Also Bogenmass= Pi*Winkel(in °)/180

Dann stimmen auch die Ergebnisse.

Und wie Jan_ schon bemerkt hat, ist diese Taylorreihe eine stets feiner werdende Annäherung.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

sbrog

BeitragDo, Jul 15, 2004 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn das mit bogenmaß arbeitet, was nützt dann das ganze bei Blitzbasic ?

BladeRunner

Moderator

BeitragDo, Jul 15, 2004 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmmmm.. wenn ich mich nicht irre *nachguck- nein ich irre nicht* hab ich in meinem letzten Post die Formel zum umrechnen von Bogenmass auf Winkel (bzw. umgekehrt) geschrieben.

Du könntest Dir also theoretisch deine eigene Sinus-Funktion schreiben (wenn du es denn wolltest).

Mir ging es ja nur mal (für die Interessierten) darum zu zeigen wie denn so ein Sinus zu stande kommt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

sbrog

BeitragDo, Jul 15, 2004 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
natürlich könnte ich mir eine Funktion schreiben.

auswendigcode

BlitzBasic: [AUSKLAPPEN]

Function sinus(winkel)
Return Pi*winkel/180
End Function


aber wenn ich irgendwie auf die kompliziertere variante zurückgreifen könnte, wäre vielleicht speed rauszuholen, indem man die Iterationsmenge verringert.
 

Edlothiol

BeitragDo, Jul 15, 2004 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
BlitzBasic: [AUSKLAPPEN]
Function sinus(winkel)
Return Pi*winkel/180
End Function
Soll das dann auch Sinus - Werte zurückgeben? Glaube kaum dass du soden Sinus berechnen kannst.

sbrog

BeitragDo, Jul 15, 2004 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Auswendigcode hat irgendwie nicht geklappt

Das sollte aber meine Vermutung zeigen :

BlitzBasic: [AUSKLAPPEN]

For x = 0 To 10

Print "Manuell errechneter Wert"
Print Pi*x/180
Print "Mit Sin() errechneter Wert
Print Sin(x)

WaitKey

Next

BladeRunner

Moderator

BeitragDo, Jul 15, 2004 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du auch nur ansatzweise Ahnung was du da verzapfst?
Du benutzt die Blitzinterne Sin()-Funktion welche natürlich mit Winkeln arbeitet.
das Bogenmass bräuchtest Du nur bei einer selbstgeschriebenen Sinus-Funktion welche nach der Tailorreihe arbeitet.
Sollte BB auch mit Tailorreihen arbeiten (es gibt auch andere Lösungsmöglichkeiten) so wird Mark Sibly die Umrechnung Winkel->Bogenmass schon eingearbeitet.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group