I am not expert but I suggest not to use sin() or cos() or any trigonometry if your program heavily calls them. Instead check this forum from AngelDaniel about non-floating point circle. Generally, all of these come from Bresenham algorithm. Search for Bresenham and you will find lots of good info how to avoid trigonometry or floating point operation that are expensive for CPU.
http://www.blitz
basic.com/Community/posts.php?topic=51749&hl=bresenhamo
http://www.blitz
basic.com/Community/posts.php?topic=51749&hl=bresenhamo