grafischer kompass: endpunkt berechnen (rotation?)
-
hallo, habe folgendes problem: ich habe einen kleinen gps-empfänger und möchte auf einem kleinem display unter anderem anzeigen, in welche richtung ich mich gerade bewege. im moment soll das ganze sehr simpel angezeigt werden. ein kreis und eine linie vom mittelpunkt zum rand des kreises, dazu müsste ich jedoch die endpunkte x und y der linie berechnen. habe gestern den ganzen tag geknobelt und den fehler gemacht, 4 stunden zu googeln, jetzt kapier ich gar nix mehr
hoffe mir kann jemand helfen.
gruss, marco
-
ich kenne die eingangsadaten nicht.
aber ich nehme mal an, du hast nen winkel.
rechne
x=mx+cos(winkel)*sx;
y=my+sin(winkel)*sy;
dabei sind my und my die koordinaten des mittelpunktes und sx und sy breite und höhe vom kompass (genitivvermeidung mit "vom", denn wie heißt der genitiv vom kompass?).
-
richtig, habe ja nur den winkel, fahre ich z.b. nach norden (0°/360°) bleibt x = mittelpunkt und y = mittelpunkt - radius (0,0 liegt oben links beim display)
ich verwende ansi-c unter linux, für sin() und cos() muss ich dann das bogenmaß verwenden, aber ich denke das wird trotzdem noch passen. bin noch auffer arbeit, werde es heute abend dann testen wenn ich zuhause bin.
gruss, marco
-
volkard schrieb:
x=mx+cos(winkel)*sx;
y=my+sin(winkel)*sy;Stimmt zwar, aber eben nur formalmathematisch. Denkt dran, dass im mathematischen Sinn 0° auf 3 Uhr bzw. im Osten liegt und die Winkel gegen den Uhrzeigersinn laufen, während auf dem Kompass 0° eben auf 12 Uhr bzw. im Norden liegt und die Winkel auf dem Kompass im Uhrzeigersinn laufen. Praktischerweise braucht man aber für 90° Drehung plus Spiegelung bei der o.a. Berechnung lediglich sin() und cos() vertauschen und schon passt's.
volkard schrieb:
genitivvermeidung mit "vom", denn wie heißt der genitiv vom kompass?
Wie wär's denn mit "des Kompanden"?