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++ code to demonstrate to draw // 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 code to demonstrate to draw // circle without floating // point arithmetic 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 arg[]) { drawCircle( 8 ); } } // This code is contributed // by Anant Agarwal. |
Python3
# Python3 code to demonstrate to draw
# circle without floating
# point arithmetic
def drawCircle(r):
# Consider a rectangle of size N*N
N = 2 * r + 1
# Draw a square of size N*N.
for i in range(N):
for j in range(N):
# 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:
print(".", end = " ")
# If outside the circle, print space
else:
print(" ", end = " ")
print()
# Driver Code
if __name__ == "__main__":
drawCircle(8)
# This code is contributed
# by vibhu4agarwal
[tabby title="C#"]
// C# code to demonstrate to draw // 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 ajit. } |
PHP
<?php // PHP code to demonstrate to draw circle // without floating point arithmetic function drawCircle( $r ) { // Consider a rectangle of size N*N $N = 2 * $r + 1; $y ; // Coordinates inside the rectangle // 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 ( "." ); else // If outside the circle, // print space echo ( " " ); echo ( " " ); } echo "
" ; } } // Driver Code drawCircle(8); // This code is contributed by akt_mit ?> |
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