Comment convertir un rectanglef en pointf [] pour le dessin?
-
29-10-2019 - |
Question
Je ne sais pas si la question est trop triviale mais j'ai besoin d'utiliser le Suivant surcharge de la méthode Graphics.DrawImage
:
public void DrawImage(
Image image,
PointF[] destPoints,
RectangleF srcRect,
GraphicsUnit srcUnit,
ImageAttributes imageAttr
)
j'ai un RectangleF
Comme rectangle de destination, j'ai donc besoin de convertir le RectangleF
à PointF[]
mais le Exemple dans le MSDN M'a confondu un peu car il n'utilise que trois points pour définir un parallélogramme.
Comment pourrais-je le faire?
Merci d'avance
La solution 2
Ok, je l'ai trouvé dans le MSDN:
Le paramètre destpoint spécifie trois points d'un parallélogramme. Les trois structures PointF représentent le en haut à gauche, En haut à droite, et en bas à gauche coins du parallélogramme. Le quatrième point est extrapolé des trois premiers pour former un parallélogramme.
Vous pouvez donc construire votre tableau de points de la manière suivante:
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)
};
}
Autres conseils
Ne pourriez-vous pas le créer en construisant simplement le tableau?
(Depuis la mémoire) où d est la destination rectanglef:
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) };