Как мы уже рассуждали на прошлом уроке для показа любой фигуры она разбивается на треугольники. И этот же принцип действует и для квадрата - для его показа мы разобьем его на два треуголькника.
Начинаем писать код.
Для начала перепишем метод OnCreateVertexBuffer, в котором создается вершинный буфер (напомним, что вершинный буфер - это в первом приближении совокупность всех вершин нашей фигуры). На этот раз у нас будет два треугольника (мы просто делим наш квадрат по диагонали) и, соответстенно, 6 вершин:
Диагональ нашего квадрата будет идти из точки (50, 50) до точки (250, 250).
Теперь нам надо поменять параметр для вызываемого конструктора класса VertexBuffer в методе OnCreateDevice. А именно в нем надо указать новое количество вершин - 6 вместо 3:
PublicSub OnCreateDevice(ByVal sender As Object, ByVal e As EventArgs)
Dim dev As Device = CType(sender, Device)
'Создаем вершинный буфер из 6 вершин.
vertexBuffer = New VertexBuffer
(GetType(CustomVertex.TransformedColored), _
6, dev, 0, CustomVertex.TransformedColored.Format, Pool.Default)
...
И, наконец, шаг последний - мы должны в методе, который непосредственно занимается рисованием - т. е. в методе Render указать, что мы рисуем два треугольнига: