У меня есть программа, в которой я пытаюсь сделать изображение в Direct2D на четырехугольник, используя SlimDX и VB.net.Рисование растровых изображений через BitmapBrush на геометрию SlimDX (VB.NET)
Программа получает массив из 4 точек от сервера, которые являются четырехугольными, где изображение должно быть отображено.
Точки (например):
points(0) = 20,10 <--Top left, where the geometry starts from
points(1) = 40,10 <-- Top right
points(2) = 40,40 <-- Bottom right
points(3) = 20,40 <-- Bottom left
... A BitmapBrush строится при загрузке и Bitmap может быть вынесено в порядке, но при попытке оказать на четырехугольник, я только получаю (это похоже ...) часть часть нижний правый угол.
Для справки: Вот изображение, которое я пытаюсь сделать: http://i.imgur.com/Dt3iHQ3.png
А вот код, который я пытаюсь использовать (для нанесения изображения). R - это список точек (см. Выше), а RenderBrush - это BitmapBrush, созданный из версии этого изображения 20x30.
Private Sub DrawPoly(R() As PointF, ByRef RenderBrush As SlimDX.Direct2D.BitmapBrush)
'Create the geometry
Dim Path As PathGeometry
Path = New PathGeometry(factoryD2D)
Console.Clear()
'Get a handle to the Geometry
Dim Geometry = Path.Open()
'Set UP Geometry
Geometry.BeginFigure(R(0), FigureBegin.Filled)
Geometry.AddLines(R)
Geometry.EndFigure(FigureEnd.Closed)
Geometry.Close()
'Render
D2DRenderTarget.FillGeometry(Path, RenderBrush)
'and GC
Geometry.Dispose()
Path.Dispose()
End Sub
Заранее благодарим за вашу помощь!
Я все еще не уверен, что кисть просто не рисует ... –