A
Hallo,
mein Problem ist eigentlich nicht spezifisch für wxWidgets aber da ich es damit programmiere habe ich es mal hier reingestellt. Ich hoffe ich kann es verständlich beschreiben.
Folgendes Problem.
Ich habe eine Skala (Uhr, Kompass) mit Markern am Rand für die Beschriftung (1-12, 0-360).
Beim Erstellen der Skala beschrifte ich die einzelnen Marker direkt mit dem zugehörigen Text. Da bei einem Statictext die Positionen der Label auf die untere Ecke bezogen ist unterscheide ich in welchem Winkel die Beschriftung erfolgt und dementsprechend wird eine neue Position für den Text errechnet.
Solange wie die Skala statisch ist funktioniert die Beschriftung und es sieht vernünftig aus. Zum besseren Verständnis nachfolgend ein kurzer Ausschnitt aus dem Code:
dc->GetTextExtent(wxString::Format("%d", value).c_str(),
&width, &height, 0, 0, &font);
if((tmp_angle > 0) && (tmp_angle < 90))
{
TextPoint[0].x = points[0].x - width;
TextPoint[0].y = points[0].y;
}
else if((tmp_angle > 90) && (tmp_angle < 180))
{
TextPoint[0].x = points[0].x - width;
TextPoint[0].y = points[0].y - height;
}
else if((tmp_angle > 180) && (tmp_angle < 270))
{
TextPoint[0].x = points[0].x;
TextPoint[0].y = points[0].y - height;
}
Sobald ich die Skala jetzt aber einige Grad drehe verschiebt sich die gesamte Beschriftung gegenüber den Markern. Ich muss also die Beschriftung in Abhängigkeit der Marker positionieren.
Kennt jemand hierfür einen Algorithmus oder wie kann ich das sonst anstellen.
Bin für jeden Tipp dankbar.
Andreas