A Quad has four vertices and two triangles, one more of each than is needed for a triangle. On its own not a big deal but if you have a lot of them for e.g. a particle system it might add up, in memory and rendering cost, as it’s double the number of triangles you need.
Also the phantom vertex which lies half way along an edge in your code might make it tricky to colour the triangle: depending how it’s triangulated you might be able to ignore it, or you might have to work out the colour for it.
My code as written leaks a bit more memory, as it creates a Polygon each time. I would fix that by making the Polygon a static class variable, so it is re-used again and again each time you create a triangle.