¿Cómo convertir un RectánguloF a PuntoF[] para dibujar?
-
29-10-2019 - |
Pregunta
No estoy seguro si la pregunta es demasiado trivial, pero necesito usar el siguiente sobrecarga del método Graphics.DrawImage
:
public void DrawImage(
Image image,
PointF[] destPoints,
RectangleF srcRect,
GraphicsUnit srcUnit,
ImageAttributes imageAttr
)
tengo un RectangleF
como rectángulo de destino, por lo que necesito convertir el RectangleF
a PointF[]
pero el ejemplo en MSDN Me confundió un poco porque solo usa tres puntos para definir un paralelogramo.
¿Cómo podría hacerlo?
gracias de antemano
Solución 2
Ok, lo encontré en el MSDN:
El parámetro destPoints especifica tres puntos de un paralelogramo.Las tres estructuras PointF representan la arriba a la izquierda, superior derecha, y abajo a la izquierda esquinas del paralelogramo.El cuarto punto se extrapola de los tres primeros para formar un paralelogramo.
Entonces puedes construir tu matriz de puntos de la siguiente manera:
private PointF[] GetPoints(RectangleF rectangle)
{
return new PointF[3]
{
new PointF(rectangle.Left, rectangle.Top),
new PointF(rectangle.Right, rectangle.Top),
new PointF(rectangle.Left, rectangle.Bottom)
};
}
Otros consejos
¿No podrías crearlo simplemente construyendo la matriz?
(De memoria) Donde d es el destino RectánguloF:
destPoints[] = new PointF[4] { new PointF(d.Left, d.Top), new PointF(d.Right, d.Top), new PointF(d.Right, d.Bottom), new PointF(d.Left, d.Bottom) };