Given a radius of a circle, draw the circle without using floating point arithmetic.
Following program uses a simple concept. Let the radius of the circle be r. Consider a square of size (2r+1)*(2r+1) around the circle to be drawn. Now walk through every point inside the square. For every every point (x,y), if (x, y) lies inside the circle (or x^2+ y^2 < r^2), then print it, otherwise print space.
C++
// C++ program to draw a circle without // floating point arithmetic #include <stdio.h> void drawCircle( int r) { // Consider a rectangle of size N*N int N = 2*r+1; int x, y; // Coordinates inside the rectangle // Draw a square of size N*N. for ( int i = 0; i < N; i++) { for ( int j = 0; j < N; j++) { // Start from the left most corner point x = i-r; y = j-r; // If this point is inside the circle, print it if (x*x + y*y <= r*r+1 ) printf ( "." ); else // If outside the circle, print space printf ( " " ); printf ( " " ); } printf ( "
" ); } } // Driver Program to test above function int main() { drawCircle(8); return 0; } |
Java
// Java program to draw a circle without // floating point arithmetic import java.io.*; class GFG { static void drawCircle( int r) { // Consider a rectangle of size N*N int N = ( 2 *r+ 1 ); int x, y; // Coordinates inside the rectangle // Draw a square of size N*N. for ( int i = 0 ; i < N; i++) { for ( int j = 0 ; j < N; j++) { // Start from the left most corner point x = i-r; y = j-r; // If this point is inside the circle, print it if (x*x + y*y <= r*r+ 1 ) System.out.print( "." ); else // If outside the circle, print space System.out.print( " " ); System.out.print( " " ); } System.out.println(); } } // Driver Program to test above function public static void main (String[] args) { drawCircle( 8 ); } //This code is contributed by ajit. } |
C#
// C# program to draw a circle without // floating point arithmetic using System; public class GFG{ static void drawCircle( int r) { // Consider a rectangle of size N*N int N = (2*r+1); int x, y; // Coordinates inside the rectangle // Draw a square of size N*N. for ( int i = 0; i < N; i++) { for ( int j = 0; j < N; j++) { // Start from the left most corner point x = i-r; y = j-r; // If this point is inside the circle, print it if (x*x + y*y <= r*r+1 ) Console.Write( "." ); else // If outside the circle, print space Console.Write( " " ); Console.Write( " " ); } Console.WriteLine(); } } // Driver Program to test above function static public void Main (){ drawCircle(8); } //This code is contributed by Sachin. } |
PHP
<?php // PHP program to draw a circle without // floating point arithmetic function drawCircle( $r ) { // Consider a rectangle // of size N*N $N = 2 * $r + 1; // Coordinates inside // the rectangle $x ; $y ; // Draw a square of size N*N. for ( $i = 0; $i < $N ; $i ++) { for ( $j = 0; $j < $N ; $j ++) { // Start from the left // most corner point $x = $i - $r ; $y = $j - $r ; // If this point is inside // the circle, print it if ( $x * $x + $y * $y <= $r * $r + 1 ) echo "." ; // If outside the circle, // print space else echo " " ; echo " " ; } echo "
" ; } } // Driver Code drawCircle(8); // This code is contributed by aj_36 ?> |
Output :

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
leave a comment
0 Comments