2016-12-24 4 views
0

Ich versuche, eine Möglichkeit zu finden, Zeichenfolgen auf einen bestimmten Punkt (X, Y) und einen Drehwinkel zu zeichnen. Das hört sich einfach an, aber ich habe wirklich Schwierigkeiten, meinen Kopf herumzukriegen.Programmatisch Text hinzufügen, um auf Formular mit Drehung zu zeigen

Ich habe versucht, herauszufinden, wie man Kordelzug, dies zu tun, aber während ich es geschafft habe, um den Text anzuzeigen, wenn ich den Drehwinkel ändern die Position ändert sich auch trotz der Position ich erzähle es Zeichnen beim Bleiben gleich.

Ich habe mich schon eine Weile damit beschäftigt und fragte mich, ob jemand erklären könnte, wie der Tunnelzug funktioniert? Bitte gib mir nicht nur ein Stück Code, ich möchte wirklich verstehen, was los ist.

Antwort

1

Wie Sie bereits den Text ziehen Ich gehe davon aus, dass Sie das tun, in der OnPaint-Handler:

So:

// Copy Graphics object from EventArgs 
Graphics g = e.Graphics; 
// Save the current Matrix of the Graphics object 
var currentMatrix = g.Save(); 
// Reset the Matrix to Identity matrix 
g.Reset(); 
// Move the text Position to 0/0 
g.TranslateTransform(-textPosition.X, -textPosition.Y); 
// Torsten in origin 
g.RotateTransform(angle); 
// Move Back the drawing point 
g.TranslateTransform(textPosition.X, textPosition.Y); 
// Draw text 
g.DrawString(..); 
// restore saved Matrix. 
G.Restore(currentMatrix); 

Bewahre diese Pseudo-Code, der von Ihnen verbessert werden müssen. (Ich bin gerade auf meinem Handy). Ich hoffe, ich bin kein Fehler mit der Reihenfolge der Anweisungen.

Merry X-Mas

+0

Hallo danke für die schnelle Antwort. Ich habe es mit Ihrem Pseudocode funktioniert. Ich musste die zwei Zeilen tauschen "g.TranslateTransform (-textPosition.X, -textPosition.Y);" und "g.TranslateTransform (textPosition.X, textPosition.Y);" "nur für irgendjemanden, der das in der Zukunft liest. Ich habe es jetzt ein bisschen mehr durcheinander gebracht und ich denke ich verstehe es. Die Matrix ist wie eine Oberfläche Sie rendern den Text auf das Formular, und das ist, was Sie drehen, anstatt den Text. Ist das korrekt? – Dan

Verwandte Themen