kleines mathematisches problem...

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Imenarrabilis

Betreff: kleines mathematisches problem...

BeitragMo, Nov 08, 2004 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
also mein problem ist folgendes:

ich habe die x und y koordinatenvon 2 punkten
also punkt1=(x1/y1) und punkt2=(x2/y2)
beide punkte befinden sich in dem koordinatensystem wie es in blitz2d im grafikmodus zu finden ist.
nun möchte ich den winkel den die beiden punkte zueinander haben ausrechnen....nur wie mach ich das???
hoffe mir kann jemand helfen.....ne formel zur berechnung des winkels wär ganz toll!
hoffe ich hab mich verständlich ausgedrückt , wenn nicht fragt einfach nach......

bitte helft mir!

ghruß

imenarrabilis

sbrog

BeitragMo, Nov 08, 2004 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
yo, das geht mit atan2

winkel = atan2(x1-x2,y1-y2)

eXceptION

BeitragMo, Nov 08, 2004 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
atan2(y, x)
rechnet den winkel von 0, 0 nach x, y
Code: [AUSKLAPPEN]
atan2(y2 - y1, x2 - x1)
rechnet den winkel von x1, y1 nach x2, y2
Norweger...

Spreche aber verdammt gut 8086
 

D²O

BeitragMo, Nov 08, 2004 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
winkel# = (Atan2(y2-y1,x2-x1)mod360)/360
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

eXceptION

BeitragMo, Nov 08, 2004 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
wieso mod 360? atan2 soll ja ein wert zwischen 0 und 360 geben...
Norweger...

Spreche aber verdammt gut 8086
 

Imenarrabilis

BeitragMo, Nov 08, 2004 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
danke!
habt mir sehr weitergeholfen!
jetzt funktionierts!

schönen abend noch...
imenarrabilis
 

D²O

BeitragMo, Nov 08, 2004 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
D²O hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
winkel# = (Atan2(y2-y1,x2-x1)mod360)/360


Sorry, hatte da nen Blackout Embarassed

es muss so heisen

Code: [AUSKLAPPEN]
winkel1# = (ATan2 (y2-y1,x2-x1)+360) Mod 360


Ohne das "mod 360" und das "+360"
wird immer nur ein winkel bis 180° angegeben,
ich mein von 0° bis - 179° und dann von +180° bis 0°

Winkel sind auch nicht meine stärken Smile, und hatte es damals, 1859, auch als Tipp bekommen Smile

Hier noch ein beispiel:



Code: [AUSKLAPPEN]
Graphics 640,480,16,2
SetBuffer BackBuffer ()



While Not KeyHit(1)
mx = MouseX ()
my = MouseY ()

winkel1# = (ATan2 (my-100,mx-100)+360) Mod 360

winkel2# = ATan2(my-100,mx-100)

Rect 100,100,10,10,1

Line 100,100,mx,my

Text 10,10,"winkel1 = "+winkel1
Text 10,20,"winkel2 = "+winkel2

Flip : Cls
Wend : End
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

eXceptION

BeitragMo, Nov 08, 2004 22:21
Antworten mit Zitat
Benutzer-Profile anzeigen
hier noch ein beispiel:Code: [AUSKLAPPEN]
Graphics(640, 480, 32, 0)
SetBuffer(BackBuffer())

r# = 128

While Not KeyHit(1) ;[esc]
  x# = Cos(a#) * r#
  y# = Sin(a#) * r#
  a# = a# Mod 360 + 1

  Cls()
  Line(320, 240, x# + 320, y# + 240)
  Text(8, 8, "winkel1: " + a#)
  Text(8, 20, "winkel2: " + (ATan2(y#, x#) + 360) Mod 360)

  Flip()
Wend
Norweger...

Spreche aber verdammt gut 8086

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group