¿Por qué se produce un ángulo cuadrado al dibujar una elipse en C#?
La razón por la que hago esta pregunta se muestra en la siguiente imagen:
Por alguna razón, al dibujar una elipse utilizando System.Drawing, se produce un ángulo cuadrado. A continuación, puedes ver cómo lo he dibujado. No he encontrado la solución PERO en un video (cómo hacer un editor gráfico simple), aparece un ángulo cuadrado durante el dibujo de una elipse y luego desaparece. Código completo: https://pastebin.com/465eD7Zf. Probado en NET Framework 4.7.2 y .NET 5. FillRectangle funciona.
private void paintBox_MouseMove(object sender, MouseEventArgs e)
{
if (draw)
{
Graphics g = paintBox.CreateGraphics();
Item currItem = (Item)choice.SelectedItem;
switch (currItem)
{
case Item.Rectangle:
g.FillRectangle(new SolidBrush(showColor.BackColor), x, y, e.X - x, e.Y - y);
break;
case Item.Ellipse:
g.FillEllipse(new SolidBrush(showColor.BackColor), x, y, e.X - x, e.Y - y); // ???
break;
}
g.Dispose();
}
}
davy.ai
Solución al problema de dibujo de elipses en C
El problema de que se produzca un ángulo cuadrado durante el dibujo de una elipse utilizando System.Drawing en C# se puede resolver modificando el código para dibujar la elipse. En lugar de utilizar el método
FillEllipse
, se puede utilizar el métodoDrawEllipse
junto con la configuración de la propiedadPen.Width
a 1. Esto eliminará el problema del ángulo cuadrado al dibujar la elipse.Código modificado:
Además, se recomienda utilizar la declaración
using
para eliminar el objetoPen
después de su uso y evitar fugas de memoria.