Red de conocimiento informático - Computadora portátil - Problema de gráficos en C#

Problema de gráficos en C#

1 Gráficos ¿Cómo rotar texto?

Establezca la matriz de transformación de gráficos de la siguiente manera:

En la antigua interfaz del dispositivo gráfico de Windows, hacer texto rotado era una tarea muy laboriosa, pero en .NET se ha convertido en muy sencillo.

por Bill Wagner

Figura 1. Rotación de texto en .NET

¿Recuerda un programa típico de Windows que utiliza GDI, una antigua API de dispositivo gráfico? ¿Qué tan problemático es? para rotar el texto en ? Primero, debe configurar las fuentes rotadas; esto solo es posible en algunas plataformas. Es aún más problemático cuando quieres centrar el texto, ya que las funciones que muestran el tamaño del párrafo no funcionan con fuentes rotadas. Tienes que colocar el texto horizontalmente, luego medir su tamaño, crear una nueva fuente rotada y finalmente dibujarlo.

Usar GDI+ simplificará enormemente este proceso. Microsoft ha creado un modelo de gráficos consistente en la implementación de su nueva interfaz de dispositivo gráfico, que se implementa a través de un conjunto de clases de C++.

Escribí un ejemplo sencillo para ilustrar lo fácil que es implementar la rotación de texto usando GDI+. En este ejemplo, dibujo el texto en el centro del formulario y puedo girarlo en cualquier ángulo. Dos características de GDI+ simplifican el proceso de dibujo: traducción y rotación de gráficos.

Para centrar el texto, simplemente transforma el sistema de coordenadas (coordenadas) para que el origen esté en el medio del formulario: Tamaño sz = MyWindow.Size

Punto Medio = new; Punto (sz .Width / 2,

sz.Height / 2

e.Graphics.TranslateTransform

(Middle.X, Middle.Y)

p>

Rotación simple continuando la transformación: e.Graphics.RotateTransform (_angle); e.Graphics.TranslateTransform (_angle); (_angle);

e.Graphics.TranslateTransform (_angle)

Después de ajustar la posición, puede dibujar el texto: StringFormat format = new StringFormat

( StringFormatFlags.NoClip);

formato.Alignment =

StringAlignment.Center;

formato.LineAlignment =

StringAlignment.Center;

e .Graphics.DrawString

("una cadena de texto simple", f,

Brushes.Black, 0, 0, formato);

Objeto StringFormat Controla la alineación de las cadenas. Aquí verifiqué la posición de centrado.

Ahora puedes rotar fuentes en cualquier ángulo. Cuando ejecute este código, notará que cuando se gira a un ángulo positivo de 45 grados, parece un ángulo negativo de 45 grados (consulte la Figura 1). Recuerde que el sistema de coordenadas estándar en GDI tiene la coordenada y hacia abajo, y en este sistema de coordenadas, una rotación en ángulo positivo es una rotación en el sentido de las agujas del reloj a lo largo del eje horizontal.

Como puede ver en este ejemplo, el uso de la API GDI+ de .NET puede hacer que el procesamiento de gráficos sea más fácil y consistente. Haga clic aquí para descargar el código fuente y modificar el ángulo de traducción. Descubrirás que podrás dibujar texto en cualquier ángulo en cualquier plataforma, y ​​lo mismo ocurre con rotar cualquier otra forma en cualquier ángulo.

2 ¿Cómo borrar las líneas dibujadas en la clase FORM? Extraviado - -!

Graphics.Clear(...);

¿Cómo borrar las líneas dibujadas en la clase FORM?