Gedrehten Text mittig ausrichten

Masterclavat

Erfahrenes Mitglied
Hallo,

meine Frage hat vielleicht nicht direkt mit dem Programmieren zu tun, aber ich wusste nicht, wo ich meine Frage sonst hätte posten können.

Also, ich möchte einen Text immer mittig ausrichten, egal wie lang er ist. Das Problem ist aber, dass er in einem Winkel ? gedreht wurde. Nun brauche ich dafür die Strecke vom oberen Rand bis zum untersten Punkt des Textes.
Länge, Winkel, Abstand, sowie die Maße des umschlingenden Rechteckes sind bekannt.
Ist es irgendwie möglich, den Wert mit den gegebenen Werten herauszubekommen? Denn ich stehe momentan ganz schön auf dem Schlauch.

Es wäre sehr nett, wenn ihr mir das erklären könntet. :)


Zur besseren Darstellung habe ich eine kleine Skizze angehängt.
Falls noch Fragen offen sind, dessen Antworten zur Lösung des Problems beiträglich sind, werde ich natürlich versuchen sie zu beantworten. :)

Grüße
Masterclavat
 

Anhänge

  • Untitled.png
    Untitled.png
    1,3 KB · Aufrufe: 12
Also, ich möchte einen Text immer mittig ausrichten, egal wie lang er ist. Das Problem ist aber, dass er in einem Winkel ? gedreht wurde. Nun brauche ich dafür die Strecke vom oberen Rand bis zum untersten Punkt des Textes.
Länge, Winkel, Abstand, sowie die Maße des umschlingenden Rechteckes sind bekannt.
Ist das „umschlingende Rechteck“ schon das gedrehte Rechteck? Was ist mit „Länge“ und „Abstand“ genau gemeint? Meinst du mit „mittig“ vertikal zentriert?
 
Ist das „umschlingende Rechteck“ schon das gedrehte Rechteck? Was ist mit „Länge“ und „Abstand“ genau gemeint? Meinst du mit „mittig“ vertikal zentriert?

Ok, ich habe mich vielleicht ein wenig falsch ausgedrückt. War schon spät. :p
Ich versuche es nochmal.


Also ich möchte einen Text schräg, in einem Winkel von ca 30°, so platzieren, dass er, egal wie lang er ist, jeweils den gleichen Abstand zum unteren und linken bzw. zum oberen und linken Rand hat. Sozusagen auf einer schrägen Linie zentrieren.

"Länge" ist die Länge des Textes in Pixeln und "Abstand" ist der Abstand des Textes zum linken Rand.

Ich hoffe ich habe mich diesmal klarer ausgedrückt. :)

Vielleicht sagt die folgende Skizze mehr aus.
 

Anhänge

  • Untitled1.png
    Untitled1.png
    6,8 KB · Aufrufe: 18
Wenn ich dich richtig verstehe brauchst du, nachdem du den Text gedreht hast, die neue Höhe und Breite des neuen Textes auf die du dann jeweils den Abstand nach oben/unten und links/rechts addierst, um dann den Text in die Mitte zu platzieren?

Ich hatte das Problem vor kurzem beim drehen von Bildern und könnte mit .net-Code dienen - wenn dir das weiterhilft: http://dirkgoldecker.spaces.live.com/blog/cns!B4B035EA4B1B8592!205.entry
 
Zuletzt bearbeitet:
Also du hast nur den Abstand, den Winkel und den Text gegeben?
Wenn lila immer gleich verläuft könntest du berechnen wo der Seitenabstand lila berührt, so kannst du dann die Strecke vom Eckpunkt des Rechtecks bis zur Oberkante berechnen. Wenn du dann also diese lila-Strecke gegeben hast, hast du ein rechtwinkliges Dreieck mit allen drei Winkelangaben + der Strecke lila. Jetzt kannst du den cos anwenden um die gewünschte Strecke zu errechnen.

Also so würde ich es lösen, bin mir jetzt aber nicht zu 100%ig sicher ob es so klappt, liegt schon alles ZUUU lang zurück :D
 
@M4st3r: Wenn ich dich und deinen Code richtig verstanden habe, ist es nicht das was ich suche, denn ich möchte ja nicht die Höhe des gedrehten Textes, sondern den Abstand vom oberen Rand zu dem am weitesten links gelegenen Pixels des Textes. Wenn ich bei deinem Code etwas übersehen habe, sag es bitte. :)

@just-click: Das hört sich ganz plausibel an, jedoch stehe ich gerade auf dem Schlauch, was mit "so kannst du dann die Strecke vom Eckpunkt des Rechtecks bis zur Oberkante berechnen" gemeint ist. Könntest du mir nochmal auf die Sprünge helfen? :)
 
Dazu bräuchtest du noch den Abstand zwischen der lila-Linie und dem linken Rand, Ober- und Unterkante, fällt mir grad ein.
Wenn du dies hast kannst du die Steigung berechnen und könntest dann auch zwischen Eckpunkt (kleines Rechteck) und Oberkante (großes Rechteck) die Streckenlänge berechnen.
Kann aber auch sein das ich in meiner Rechnung einen Denkfehler habe oder zu viel für gegeben halte
 
Ausgehend davon, dass du den gedrehten Text und seine Dimensionen hast, brauchst du eigentlich nur die x/y-Koordinaten an denen dein Text mittig sitzen soll.

Nehmen wir an, dein Bild, auf dem der String gezeichnet werden soll ist 200px hoch und 500px breit. Dein gedrehter Text hat nach dem drehen 70x40px. Der Punkt auf dem der Text zentriert werden soll liegt bei x=70 & y=100.
Die Mitte des Text-Bilds liegt bei 35x20

Abstand nach Links = 70 - 35
Abstand nach oben = 100 - 20

Ich befürchte, ich hab irgendwo einen Denkfehler drin, aber so ungefähr könnte das funktionieren....
 

Neue Beiträge

Zurück