kreisförmige Flugbahn(2D)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Dottakopf

Betreff: kreisförmige Flugbahn(2D)

BeitragFr, März 23, 2007 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hio Blitzer !!

Wie es der Titel schon sagt gehts um ne kreisfürmige flugbahn eines 2D punktes...

In 3D ist das mit pointentity,moveentity,entityparent recht leicht zu lösen aber in 2D nicht... Ok was soll es überhaupt mal werden : Ne art Bildschirmschoner, in der mitte befindet sich eine Kugel, welche nach geregelten intervalen kleinere kugeln erstellt. Diese bewegen sich dan kreisförmig von der "Mutter-kugel" nach außenhin weg. Wie so ein hypnosedingens... Very Happy

Gibts da bestimte befehle bzw. lösungsweg für ?..

Ich bin natürlich ned untätig gewesen und hab des selber mal probiert, naja seht selbst Confused (des kann man als oval gelten lassen ^^)

Code: [AUSKLAPPEN]

Graphics 800,600,32
SetBuffer BackBuffer()

Global x#= 400,y# = 300
Global wert# = 5,wert2# = 5
Global l = 1, l2 = 1         ;richtung l= 1 : links  l= 0  : rechts



Repeat
Cls


lala()

Text 0,0, "wert2# : " + wert2#
Text 0,20,"l2     : "     + l2

Text 0,40,"wert# : " +wert#
Text 0,60,"l     : "    +l


Flip
Until KeyHit(1)




Function lala()
           
            ;rechts - links
            If l = 1 Then wert# = wert# -0.08 x# = x# - wert#           
            If l = 0 Then wert# = wert# -0.08 x# = x# + wert#   
           

               If l = 1 And wert# <= - 5 Then wert# = 5 l = 0
               If l = 0 And wert# <= - 5 Then wert# = 5 l = 1


            ;rauf runter
            If l2 = 1 Then wert2# = wert2# -0.1 y# = y# - wert2#           
            If l2 = 0 Then wert2# = wert2# -0.1 y# = y# + wert2#   
           

               If l2 = 1 And wert2# <= - 5 Then wert2# = 5 l2 = 0
               If l2 = 0 And wert2# <= - 5 Then wert2# = 5 l2 = 1





            Oval x#,y#, 2,2


End Function


mfg Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

the FR3AK

BeitragFr, März 23, 2007 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Sin und Cos Cool

Dottakopf

BeitragFr, März 23, 2007 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
mist ich dachte ich könnte des umgehen ^^

kanst du mir kurz n crash kurs geben wie ich ihn anwende... muss die berechnung dan ja auch noch in nen type für jeden pachen Embarassed


~Edit~ sry sry ich habs scho
Rechtschreibfehler gelten der allgemeinen Belustigung!

Justus

BeitragFr, März 23, 2007 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast eine Zählervariable, die du von 0 bis 360 inkrementierst und du positionierst deinen Pixel/deine Grafik immer an der Position Cos(zählervariable),Sin(zählervariable). Die Maße des Kreises kannst du bestimmen, indem du die Cos/Sin-Werte mit Zahlen multiplizierst. Also sind auch Ellipsen möglich.

Beispiel:
Code: [AUSKLAPPEN]
For i=0 to 360
    plot Cos(i)*50,Sin(i)*50
next

pixelshooter

BeitragFr, März 23, 2007 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
also, ich erklär auch noch, was die machen, dann verstehst du den code Wink
in einem rechtwinkligen dreieck berechnen die beiden das verhältnis der längen von hypotenuse zu kathete zu einem bestimmten winkel an der hypotenuse. beispielsweise käme bei 90° für Sin 1 raus, was heißt, dass die gegenkathete zu dem winkel (die gegenüberliegende seite) 1 mal so lang ist, wie die hypotenuse. Cos beschreibt die anliegende kathete, ist also dann 0.

für den kreis heißt das: Alle winkel durchzählen (also 0 - 360 für vollkreis, abstand = unterteilung) und dann immer x=Sin(winkel):y=Cos(Winkel)

verstanden= wenn nicht frag ruhig, ist ja keine schande, sondern eher wie ich erkläre^^

-edit- mist, da war einer schneller^^. aber jetz verstest du hoffentlich, wozu die da sind...manchmal ganz praktisch
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

Dottakopf

BeitragFr, März 23, 2007 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
jow danke für eure schnellen Antworten !

Sin cos tan ... nehmen wir gerade in der Schule durch... daher bin ich da noch nicht alzu helle Rolling Eyes könnte dazu aber noch meinen MA Lehrer ausquetschen...
Ich glaub des mit sin un cos bekomm ich scho gebacken, was auch recht schön erklärt wurde. Außerdem gibts n beispiel in der OH was ich eigentlich selbst sehen hätte müssen .... Embarassed

Also nochmal danke und bei rückfragen melde ich mich nochmal !

mfg Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, März 23, 2007 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Das was du in der Schule im Bezug auf Sinus und Cosinus lernst, kannst sogut wie zu Null in einer Programmiersprache anwenden. Um es sich ganz einfach zu machen:

Stelle dir eine analoge Uhr vor deren Zeiger auf 3 Uhr den Startwert entspricht. Jede weitere 3 Stunden sind dann mit +90° zu bewerten.

Also ist:
3 Uhr = 0°
6 Uhr = 90°
9 Uhr = 180°
12 Uhr = 270°
3 Uhr = 360° oder 0° (was identisch ist)

Man positioniert den Mittelpunkt per X/Y -Koordinaten und kann mit Cos und Sin einen 'Kreis' um dem Mittelpunkt zeichnen. Der Radius wird gewöhnlich in Pixel angegeben. als Beispiel:
X=XPositionMitte+ ql:Cos (Winkel)*Radius
Y=YPositionMitte+ ql:Sin (Winkel)*Radius

Wenn man die Variable 'Winkel' nun hoch zählt, kreist der Pixel um den Mittelpunkt mit dem Abstand von Radius.

Um eine Umkehrfunktion zu berechnen, kann man das sehr vereinfachte ql:Atan2 von BB anwenden.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
  • Zuletzt bearbeitet von hectic am Fr, März 23, 2007 21:01, insgesamt einmal bearbeitet
 

Dreamora

BeitragFr, März 23, 2007 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist eigentlich das was du in der Mittelschule lernen solltest, sonst hattest du nen komischen Lehrer Smile

sin: Länge der Y Projektion des Radius im Einheitskreis mit Radius 1
cos: Länge der X Projektion des Radius im Einheiteskreis mit Radius 1


wenn man sich das Bild im Kopf behält, wird man nie Probleme haben, sich das vorzustellen und zu wissen wie und wo Cos und Sin sind und wie man mit ihnen programmiert Smile (in dem Bild könnte man auch Tan und Cot noch darstellen indem man die Senkrechten an den Punkten 0,+-1 und +-1,0 zieht an den Radius. Die Vertikale is Tangens, die Horizontale Cotangens)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group