Как преобразовать RectangleF в PointF[] для рисования?
-
29-10-2019 - |
Вопрос
Я не уверен, что вопрос слишком тривиален, но мне нужно использовать следующий перегрузка метода Graphics.DrawImage
:
public void DrawImage(
Image image,
PointF[] destPoints,
RectangleF srcRect,
GraphicsUnit srcUnit,
ImageAttributes imageAttr
)
у меня есть RectangleF
в качестве прямоугольника назначения, поэтому мне нужно преобразовать RectangleF
к PointF[]
но пример в MSDN меня немного смутило, потому что для определения параллелограмма используются только три точки.
Как я мог это сделать?
заранее спасибо
Решение 2
Хорошо, я нашел это в MSDN:
Параметр destPoints указывает три точки параллелограмма.Три структуры PointF представляют верхний левый, верхний правый, и нижний левый углы параллелограмма.Четвертая точка экстраполируется из первых трех и образует параллелограмм.
Таким образом, вы можете построить массив точек следующим образом:
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)
};
}
Другие советы
Не могли бы вы создать его, просто построив массив?
(Из памяти) Где d — пункт назначения 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) };