Skip to content
Related Articles

Related Articles

Improve Article
Program to print 2D shapes
  • Last Updated : 26 Jul, 2018

Take the user choice and print 2D shapes based on the choice.

A shape with only two dimensions (such as width and height) and no thickness. Squares, Circles, Triangles etc are two dimensional objects. These shapes mostly contain mathematical figures such are a line, square, triangle, rectangle and hexagon.

The shapes are given below :

Circle :  Radius = 4

  *****  
 **   ** 
**     **
*       *
*       *
*       *
**     **
 **   ** 
  *****  

Square :  Side = 4

****
*  *
*  *
****

Rectangle : Length = 3, Breadth = 8

********
*      *
********

Triangle : Side = 4

   *
  * *
 *   *
*******

Hexagon : Side = 4

    ****    
   ******   
  ********  
 ********** 
  ********  
   ******   
    ****    

Follow the code below to print the different 2D shapes :

C++




// C++ implementation of menu driven
// programme to print solid 2D shapes
#include <bits/stdc++.h>
using namespace std;
  
// Function to print a circle
void circle(int radius)
{
  
    for (int i = 0; i <= 2 * radius; i++)
    {
        for (int j = 0; j <= 2 * radius; j++)
        {
            double distance = sqrt((double)(i - radius)
                        * (i - radius) + (j - radius)
                        * (j - radius));
  
            if (distance > radius - 0.5 &&
                distance < radius + 0.5)
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
}
  
// Function to print a square or a rectangle
void rectangle(int l, int b)
{
  
    int i, j;
    for (i = 1; i <= l; i++)
    {
        for (j = 1; j <= b; j++)
            if (i == 1 || i == l || j == 1 || j == b)
                printf("*");
            else
                printf(" ");
        printf("\n");
    }
}
  
// Function to print triangle
void triangle(int side)
{
    int i, j;
    for (i = 1; i <= side; i++)
    {
        for (j = i; j < side; j++)
            printf(" ");
  
        for (j = 1; j <= (2 * i - 1); j++)
        {
            if (i == side || j == 1 || j == (2 * i - 1))
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
}
  
// Function to print hexagon
void hexagon(int length)
{
    int l, j, i, k;
    for (i = 1, k = length, l = 2 * length - 1;
            i < length; i++, k--, l++)
    {
        for (j = 0; j < 3 * length; j++)
            if (j >= k && j <= l)
                printf("*");
            else
                printf(" ");
        printf("\n");
    }
    for (i = 0, k = 1, l = 3 * length - 2;
            i < length; i++, k++, l--)
    {
        for (j = 0; j < 3 * length; j++)
            if (j >= k && j <= l)
                printf("*");
            else
                printf(" ");
        printf("\n");
    }
}
  
// Function takes user choice
void printPattern(int choice)
{
  
    int radius, length, breadth, side;
    switch (choice)
    {
    // For Circle
    case 1:
        radius = 4;
        circle(radius);
        break;
  
    // For rectangle/square
    case 2:
        length = 3, breadth = 8;
        rectangle(length, breadth);
        break;
  
    // For triangle
    case 3:
        side = 6;
        triangle(side);
        break;
  
    // For hexagon
    case 4:
        side = 4;
        hexagon(side);
        break;
    default:
        printf("Wrong choice\n");
    }
}
  
// Driver Function
int main()
{
    int choice = 3;
    printPattern(choice);
    return 0;
}

Java




// Java implementation of menu driven
// programme to print solid 2D shapes
class GFG
{
    // Function to print a circle
    static void circle(int radius)
    {
      
    for (int i = 0; i <= 2 * radius; i++)
        {
            for (int j = 0; j <= 2 * radius; j++)
            {
                double distance =
                   Math.sqrt((double)(i - radius)
                        * (i - radius) + (j - radius)
                                        * (j - radius));
      
                if (distance > radius - 0.5 &&
                        distance < radius + 0.5)
                  
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
              
            System.out.println();
        }
    }
      
    // Function to print a square or a rectangle
    static void rectangle(int l, int b)
    {
      
        int i, j;
          
        for (i = 1; i <= l; i++)
        {
            for (j = 1; j <= b; j++)
                if (i == 1 || i == l || j == 1 || j == b)
                    System.out.print("*");
                else
                    System.out.print(" ");
          
            System.out.println();
        }
    }
      
    // Function to print triangle
    static void triangle(int side)
    {
        int i, j;
          
        for (i = 1; i <= side; i++)
        {
            for (j = i; j < side; j++)
                   System.out.print(" ");
      
            for (j = 1; j <= (2 * i - 1); j++)
            {
                if (i == side || j == 1 ||
                                j == (2 * i - 1))
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
            System.out.println();
        }
    }
      
    // Function to print hexagon
    static void hexagon(int length)
    {
        int l, j, i, k;
        for (i = 1, k = length, l = 2 * length - 1;
                            i < length; i++, k--, l++)
        {
            for (j = 0; j < 3 * length; j++)
                if (j >= k && j <= l)
                    System.out.print("*");
                else
                    System.out.print(" ");
            System.out.println();
        }
        for (i = 0, k = 1, l = 3 * length - 2;
                i < length; i++, k++, l--)
        {
            for (j = 0; j < 3 * length; j++)
                if (j >= k && j <= l)
                    System.out.print("*");
                else
                    System.out.print(" ");
            System.out.println();
        }
    }
      
    // Function takes user choice
    static void printPattern(int choice)
    {
      
        int radius, length, breadth, side;
          
        switch (choice)
        {
          
        // For Circle
        case 1:
            radius = 4;
            circle(radius);
            break;
      
        // For rectangle/square
        case 2:
            length = 3; breadth = 8;
            rectangle(length, breadth);
            break;
      
        // For triangle
        case 3:
            side = 6;
            triangle(side);
            break;
      
        // For hexagon
        case 4:
            side = 4;
            hexagon(side);
            break;
        default:
            System.out.print("Wrong choice\n");
        }
    }
  
// Driver Program to test above function
public static void main(String arg[])
{
    int choice = 3;
    printPattern(choice);
}
}
  
// This code is contributed by Anant Agarwal.

Python3




# Python implementation to 
# print solid 2D shapes
import math
  
# def to print a circle
def circle(radius) :
  
    for i in range(0, 2 * 
                   radius + 1) :
      
        for j in range(0, 2 * 
                       radius + 1) :
          
            distance = math.sqrt((i - radius) *
                                 (i - radius) +
                                 (j - radius) *
                                 (j - radius))
  
            if (distance > radius - 0.5 and
                distance < radius + 0.5) :
                print ("*", end = "")
              
            else :
                print (" ", end = "") 
          
        print ()
  
# def to print a 
# square or a rectangle
def rectangle(l, b) :
  
    for i in range(1, l + 1) :
      
        for j in range(1, b + 1) :
            if (i == 1 or i == l or
                j == 1 or j == b) :
                print ("*", end = "")
              
            else :
                print (" ", end = "")
        print ()
      
# def to print triangle
def triangle(side) :
  
    for i in range(1, side + 1) :
      
        for j in range(i, side) :
            print (" ", end = "")
  
        for j in range(1, 2 * i) :
          
            if (i == side or j == 1 or
                j == (2 * i - 1)) :
                print ("*", end = "")
          
            else :
                print (" ", end = "")
          
        print ()
  
# def to print hexagon
def hexagon(length) :
  
    k = length
    l = 2 * length - 1
    for i in range(1, length) :
      
        for j in range(0, 3 * length) :
            if (j >= k and j <= l) :
                print ("*", end = "")
              
            else :
                print (" ", end = "")
        print ()
        k = k - 1
        l = l + 1
      
    k = 1
    l = 3 * length - 2
    for i in range(0, length) :
  
        for j in range(0, 3 * length) :
            if (j >= k and j <= l) :
                print ("*", end = "")
            else :
                print (" ", end = "")
        print ()
        k = k + 1
        l = l - 1
  
# def takes user choice
def printPattern(choice) :
      
    # For Circle
    if(choice == 1) :
        circle(4)
      
    # For rectangle/square
    elif(choice == 2) :
        rectangle(3, 8)
      
    # For triangle 
    elif(choice == 3) :
        triangle(6)
      
    # For hexagon
    elif(choice == 4) :
        hexagon(4)
  
# Driver Code
choice = 3
printPattern(choice)
  
# This code is contributed by
# Manish Shaw(manishshaw1)

C#




// C# implementation of menu driven
// programme to print solid 2D shapes
using System;
class GFG
{
    // Function to print a circle
    static void circle(int radius)
    {
      
    for (int i = 0; i <= 2 * radius; i++)
        {
            for (int j = 0; j <= 2 * radius; j++)
            {
                double distance =
                Math.Sqrt((double)(i - radius)
                        * (i - radius) + (j - radius)
                                        * (j - radius));
      
                if (distance > radius - 0.5 &&
                        distance < radius + 0.5)
                  
                    Console.Write("*");
                else
                    Console.Write(" ");
            }
              
            Console.WriteLine();
        }
    }
      
    // Function to print a square or a rectangle
    static void rectangle(int l, int b)
    {
      
        int i, j;
          
        for (i = 1; i <= l; i++)
        {
            for (j = 1; j <= b; j++)
                if (i == 1 || i == l || j == 1 || j == b)
                    Console.Write("*");
                else
                    Console.Write(" ");
          
                    Console.WriteLine();
        }
    }
      
    // Function to print triangle
    static void triangle(int side)
    {
        int i, j;
          
        for (i = 1; i <= side; i++)
        {
            for (j = i; j < side; j++)
                Console.Write(" ");
      
            for (j = 1; j <= (2 * i - 1); j++)
            {
                if (i == side || j == 1 ||
                                j == (2 * i - 1))
                    Console.Write("*");
                else
                    Console.Write(" ");
            }
                  Console.WriteLine();
        }
    }
      
    // Function to print hexagon
    static void hexagon(int length)
    {
        int l, j, i, k;
        for (i = 1, k = length, l = 2 * length - 1;
                            i < length; i++, k--, l++)
        {
            for (j = 0; j < 3 * length; j++)
                if (j >= k && j <= l)
                    Console.Write("*");
                else
                    Console.Write(" ");
                    Console.WriteLine();
        }
        for (i = 0, k = 1, l = 3 * length - 2;
                i < length; i++, k++, l--)
        {
            for (j = 0; j < 3 * length; j++)
                if (j >= k && j <= l)
                    Console.Write("*");
                else
                    Console.Write(" ");
                    Console.WriteLine();
        }
    }
      
    // Function takes user choice
    static void printPattern(int choice)
    {
      
        int radius, length, breadth, side;
          
        switch (choice)
        {
          
        // For Circle
        case 1:
            radius = 4;
            circle(radius);
            break;
      
        // For rectangle/square
        case 2:
            length = 3; breadth = 8;
            rectangle(length, breadth);
            break;
      
        // For triangle
        case 3:
            side = 6;
            triangle(side);
            break;
      
        // For hexagon
        case 4:
            side = 4;
            hexagon(side);
            break;
        default:
        Console.Write("Wrong choice");
        break;
        }
    }
  
// Driver Program to test above function
public static void Main()
{
    int choice = 3;
    printPattern(choice);
}
}
  
// This code is contributed by vt_m.

PHP




<?php
// PHP implementation to 
// print solid 2D shapes
  
// Function to print a circle
function circle($radius)
{
    for ($i = 0; $i <= 2 * $radius; $i++)
    {
        for ($j = 0; $j <= 2 * $radius; $j++)
        {
            $distance = sqrt(($i - $radius) * 
                             ($i - $radius) + 
                             ($j - $radius) * 
                             ($j - $radius));
  
            if ($distance > $radius - 0.5 &&
                $distance < $radius + 0.5)
                echo "*";
              
            else
                echo " ";
        }
        echo "\n";
    }
}
  
// Function to print a 
// square or a rectangle
function rectangle($l, $b)
{
  
    for ($i = 1; $i <= $l; $i++)
    {
        for ($j = 1; $j <= $b; $j++)
            if ($i == 1 || $i == $l || 
                $j == 1 || $j == $b)
                echo "*";
              
            else
                echo " ";
        echo "\n";
    }
}
  
// Function to print triangle
function triangle($side)
{
    for ($i = 1; $i <= $side; $i++)
    {
        for ($j = $i; $j < $side; $j++)
            echo " ";
  
        for ($j = 1; $j <= (2 * $i - 1); 
                                  $j++)
        {
            if ($i == $side || $j == 1 || 
                $j == (2 * $i - 1))
                echo "*";
          
            else
                echo " ";
        }
        echo "\n";
    }
}
  
// Function to print hexagon
function hexagon($length)
{
  
    for ($i = 1, $k = $length
         $l = 2 * $length - 1; 
         i < $length; $i++, $k--, $l++)
    {
        for ($j = 0; $j < 3 * $length; $j++)
            if ($j >= $k && $j <= $l)
                echo "*";
              
            else
                echo " ";
        echo "\n";
    }
    for ($i = 0, $k = 1, $l = 3 * $length - 2;
               $i < $length; $i++, $k++, $l--)
    {
        for ($j = 0; $j < 3 * $length; $j++)
            if ($j >= $k && $j <= $l)
                echo "*";
            else
                echo " ";
        echo "\n";
    }
}
  
// Function takes user choice
function printPattern($choice)
{
    switch ($choice)
    {
          
    // For Circle
    case 1:
        $radius = 4;
        circle($radius);
        break;
  
    // For rectangle/square
    case 2:
        $length = 3;
        $breadth = 8;
        rectangle($length, $breadth);
        break;
  
    // For triangle
    case 3:
        $side = 6;
        triangle($side);
        break;
  
    // For hexagon
    case 4:
        $side = 4;
        hexagon($side);
        break;
      
    default:
        echo "Wrong choice\n";
    }
}
  
// Driver Code
$choice = 3;
printPattern($choice);
  
// This code is contributed by Mithun Kumar
?>

Output :

     *
    * *
   *   *
  *     *
 *       *
***********



My Personal Notes arrow_drop_up
Recommended Articles
Page :