I know this thread is a bit old, but since triangles are so common I thought I'd relay what I think is an important point...
You CAN draw solid-color triangles with any arbitrary 3 points as corners. You won't be able to draw them quickly though, and you'll need to do a lot of computation in B.Script.
Google/Bing/Search for "triangle rasterizer" and also maybe "Graphics Gems". There's even logic for triangle rasterization published in that Graphics Gems book (Maybe vol III...I don't remember) if you can find it.
Basically, you decide which side (left/top or right/bottom) will get it's end-points included, and then draw horizontal lines at the proper starting points and ending points moving from top to bottom. Think TV scan lines as the horizontal lines you're drawing where they "fit" the triangle.
This type of stuff was common in "the old days" before GPUs.
This can be extended to other shapes also...polygons and even circles. Convex shapes or concave shapes where no horizontal line crosses multiple start/end points. You basically do the computations for the edges of the "scan line overlap" (AKA rasterize the shape) and pass an array of points to a rasterizer-drawing routine that draws the horizontal lines in a given color.
It's slow in B.Script though. I wrote a simple one a year or two ago, but it wasn't fast enough for my needs so I abandoned it. Maybe you'll do better. Once you have the shape, you can always put it in a texture and blit it quickly...until you need to "reshape" it. Then you re-compute.