kleines mathematisches problem...
Übersicht

ImenarrabilisBetreff: kleines mathematisches problem... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
yo, das geht mit atan2
winkel = atan2(x1-x2,y1-y2) |
||
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] winkel# = (Atan2(y2-y1,x2-x1)mod360)/360
|
||
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK; |
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
wieso mod 360? atan2 soll ja ein wert zwischen 0 und 360 geben... | ||
Norweger...
Spreche aber verdammt gut 8086 |
Imenarrabilis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke!
habt mir sehr weitergeholfen! jetzt funktionierts! schönen abend noch... imenarrabilis |
||
D²O |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
D²O hat Folgendes geschrieben: Code: [AUSKLAPPEN]
winkel# = (Atan2(y2-y1,x2-x1)mod360)/360 Sorry, hatte da nen Blackout ![]() 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 ![]() ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group