Como converter um RectangleF em PointF[] para desenho?
-
29-10-2019 - |
Pergunta
Não tenho certeza se a pergunta é muito trivial, mas preciso usar o seguindo sobrecarga do método Graphics.DrawImage
:
public void DrawImage(
Image image,
PointF[] destPoints,
RectangleF srcRect,
GraphicsUnit srcUnit,
ImageAttributes imageAttr
)
eu tenho um RectangleF
como retângulo de destino, então preciso converter o RectangleF
para PointF[]
mas o exemplo no MSDN me confundiu um pouco porque usa apenas três pontos para definir um paralelogramo.
Como eu poderia fazer isso?
desde já, obrigado
Solução 2
Ok, encontrei no MSDN:
O parâmetro destPoints especifica três pontos de um paralelogramo.As três estruturas PointF representam o canto superior esquerdo, canto superior direito, e canto inferior esquerdo cantos do paralelogramo.O quarto ponto é extrapolado dos três primeiros para formar um paralelogramo.
Portanto, você pode construir sua matriz de pontos da seguinte maneira:
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)
};
}
Outras dicas
Você não poderia criá-lo apenas construindo o array?
(Da memória) Onde d é o RectangleF de destino:
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) };