Come convertire un rettangolo in pointf [] per il disegno?
-
29-10-2019 - |
Domanda
Non sono sicuro che la domanda sia troppo banale ma, ho bisogno di usare il Seguente Sovraccarico del metodo Graphics.DrawImage
:
public void DrawImage(
Image image,
PointF[] destPoints,
RectangleF srcRect,
GraphicsUnit srcUnit,
ImageAttributes imageAttr
)
.
Ho un RectangleF
come rettangolo di destinazione, quindi ho bisogno di convertire il RectangleF
in generazione di PointF[]
ma il Esempio in MSDN mi ha confuso un po 'perché usa solo tre punti per definire un parallelogramma.
Come potrei farlo?
Grazie in anticipo
Soluzione 2
OK, l'ho trovato nel msdn : .
.Il parametro Despoint specifica tre punti di un parallelogramma.Le tre strutture Pointf rappresentano il in alto a sinistra , in alto a destra e in basso a sinistra angoli del parallelogramma.Il quarto punto è estrapolato dai primi tre per formare un parallelogramma.
Quindi puoi costruire il tuo array di punti nel modo seguente:
.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) }; }
Altri suggerimenti
Non potresti crearlo solo costruendo l'array?
(dalla memoria) dove D è il rettangolo di destinazione:
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) };
.