_NK47: There’s only a single buffer, so there’s no need to swap.

First, the standard C sin and cos functions take radians, so you need to change your loops from 0-360 to 0-2pi in the oval function, but I think you got it in the Epicycloid.

Also, you have an othographic volume in the init function, but on reshape it changes to perspective; you probably want that to be consistent.

The problem is the depth of the vertices. The viewing volume is from 0.5 to 20 deep, and coordinates specified using glVertex2f are at 0, so you need to either translate the points or use glVertex3f.

You have the clippling planes noted in the your comments, and you specified the depth of the vertices of the triangle, so it seems that you were already onto it.