12. marts 2002 - 11:39
Der er
8 kommentarer og 1 løsning
Vinkel-funktion
Jeg har 2 punkter i et koordinatsystem, givet ved: Source(xPos, yPos) og Dest(xPos, yPos) Jeg skal bruge retningen fra Source til Dest (enten i radianer eller grader). Er der nogen der har en funtion liggende (eller måske bare en formelsamling ved hånden)???
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
12. marts 2002 - 11:45
#1
Man kan ikke angive en retning i grader...
12. marts 2002 - 11:46
#2
Du kan dog fx angive retningen i forhold til en af koordinatsystemets akser?
12. marts 2002 - 11:57
#3
0 grader == op, 90 grader == højre, 180 grader == ned osv. osv.
12. marts 2002 - 11:59
#4
Jeg skal bare kende vinklen i forhold til koordinatsysmets y-akse
12. marts 2002 - 12:05
#5
Det er en sprite (Source(xPos, yPos)) der skal roteres, så den peger imod Dest(xPos, yPos)...
12. marts 2002 - 12:06
#6
(Iøvrigt: Tak for din CSprite-klasse. Jeg har brugt den flittigt som base-klasse :-))
12. marts 2002 - 19:26
#8
OK, jeg fandt selv ud af det: double Azimuth(double xSrc, double ySrc, double xDest, double yDest) { double xDiff = xSrc - xDest; double yDiff = ySrc - yDest; double Azi = atan2(xDiff, yDiff); Azi = RadToDegree(Azi); if (Azi < 0) Azi += 360; return Azi; } double RadToDegree(int Rad) { return (Rad * 360) / TWOPI; } Det skal lige siges at ovenstående er counter-clockwise, dvs. 90 grader er lige til venstre...
13. marts 2002 - 16:04
#9
Hvis du ønsker at bruge vektorgeometri, kan du gøre således: double dAngle = (acos(y/sqrt(x*x+y*y))*360)/(2*PI); Hvor x og y er 2D-koordinaterne på det punkt du vil finde vinklen til i forhold til y-aksen og med (0,0) som udgangspunkt.
Kurser inden for grundlæggende programmering