For this, all you would need to do is see if all 3 corners of the triangle are off the screen. But it gets complicated trying to figure out what the location of the corners are after rotation, scaling, etc. Luckily, there is a method for this: gluProject. But this can be slow with a lot of triangles, so we're back to math to figure out the points of the 3 vertexes after rotation and scaling.

Personally, I'd just check a bounding box (or circle), as you don't need perfect collision because you're just testing if off screen.

//all >= 0

int x1 = centerTriangleX;

int y1 = centerTriangleY;

int x2 = farthestTriangleXLength;

int y2 = farthestTriangleYLength;

if((x1 + x2) < 0 || (x1 - x2) > width ||

(y1 + y2) < 0 || (y1 - y2) > height) {

//off screen

}