Open In App

Program to print 2D shapes

Improve
Improve
Like Article
Like
Save
Share
Report

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
?>


Javascript




// Function to print a circle
function circle(radius) {
for (let i = 0; i <= 2 * radius; i++) {
let row = '';
for (let j = 0; j <= 2 * radius; j++) {
const distance = Math.sqrt((i - radius) ** 2 + (j - radius) ** 2);
if (distance > radius - 0.5 && distance < radius + 0.5) {
row += '*';
} else {
row += ' ';
}
}
console.log(row);
}
}
 
// Function to print a square or a rectangle
function rectangle(length, breadth) {
for (let i = 1; i <= length; i++) {
let row = '';
for (let j = 1; j <= breadth; j++) {
if (i === 1 || i === length || j === 1 || j === breadth) {
row += '*';
} else {
row += ' ';
}
}
console.log(row);
}
}
 
// Function to print triangle
function triangle(side) {
for (let i = 1; i <= side; i++) {
let row = '';
for (let j = i; j < side; j++) {
row += ' ';
}
for (let j = 1; j <= 2 * i - 1; j++) {
if (i === side || j === 1 || j === 2 * i - 1) {
row += '*';
} else {
row += ' ';
}
}
console.log(row);
}
}
 
// Function to print hexagon
function hexagon(length) {
for (let i = 1, k = length, l = 2 * length - 1; i < length; i++, k--, l++) {
let row = '';
for (let j = 0; j < 3 * length; j++) {
if (j >= k && j <= l) {
row += '';
} else {
row += ' ';
}
}
console.log(row);
}
for (let i = 0, k = 1, l = 3 * length - 2; i < length; i++, k++, l--) {
let row = '';
for (let j = 0; j < 3 * length; j++) {
if (j >= k && j <= l) {
row += '';
} else {
row += ' ';
}
}
console.log(row);
}
}
 
// Function takes user choice
function printPattern(choice) {
let 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.log('Wrong choice');
}
}
 
// Driver Program to test above function
const choice = 3;
printPattern(choice);


Output :

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


Last Updated : 02 Mar, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads