Computer Graphics is an important subject to improve coding skills. Many things can be implemented using computer graphics. For example- car animation, cartoon characters, and many more things. In this article, the cartoon character Doraemon is created using computer graphics.
Implementation in C
In C, the graphics.h functions are used to draw different shapes(like a circle, rectangle, etc), display text(any message) in different formats (different fonts and colors). By using graphics.h it is possible to make programs, animations and also games. These can be useful for beginners.
Functions Used:
- setcolor(n): A function from graphics.h header file which sets the color of the pointer(cursor).
- line(int x1, int y1, int x2, int y2): Line function is used to draw a line from a point(x1, y1) to a point(x2, y2) i.e. (x1, y1) and (x2, y2) are endpoints of the line.The code given below draws a line.
- setfillstyle(pattern, color): The header file graphics.h contains setfillstyle() function which sets the current fill pattern and fills color.
- floodfill(pattern, color): function is used to fill an enclosed area. The current fill pattern and fill color are used to fill the area.
Below is the implementation of drawing the cartoon character Doraemon using graphics in C:
// C program to implement // the above approach #include <conio.h> #include <graphics.h> #include <stdio.h> // Driver code int main()
{ int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\turboc3\\bgi" );
setfillstyle(SOLID_FILL, CYAN);
// Head Outer Circle
circle(500, 200, 100);
// Head Inner Circle
circle(500, 212, 88);
floodfill(502, 102, 15);
setfillstyle(SOLID_FILL, CYAN);
// Body Outer Circle
circle(500, 400, 100);
// Body Inner Circle
circle(500, 388, 88);
floodfill(502, 498, 15);
setfillstyle(SOLID_FILL, RED);
// NOSE
circle(502, 214, 10);
floodfill(504, 216, 15);
// Left Eye
circle(460, 170, 15);
// Right Eye
circle(540, 170, 15);
// Left Mustache Middle
// Line
line(430, 214, 380, 214);
// Left Mustache Upper
// Line
line(430, 214, 380, 196);
// Left Mustache Lower
// Line
line(430, 214, 380, 234);
// Right Mustache Middle
// Line
line(570, 214, 620, 214);
// Right Mustache Upper
// Line
line(570, 214, 620, 196);
// Right Mustache Lower
// Line
line(570, 214, 620, 234);
// Nose-Mouth Connector
line(502, 224, 502, 240);
// Mouth Horizontal Line
line(465, 240, 535, 240);
// Mouth Tangent Line
line(465, 240, 502, 260);
// Mouth Tangent Line
line(502, 260, 535, 240);
setfillstyle(SOLID_FILL, CYAN);
// Right Up Hand
line(500, 300, 650, 320);
// Right Low Hand
line(500, 300, 650, 340);
// Right Hand Joining
line(650, 320, 650, 340);
floodfill(645, 332, 15);
setfillstyle(SOLID_FILL, CYAN);
// Left Up Hand
line(500, 300, 350, 320);
// Left Down Hand
line(500, 300, 350, 340);
// Left Hand Join
line(350, 320, 350, 340);
floodfill(355, 332, 15);
circle(665, 331, 15);
circle(335, 331, 15);
// Pocket Horizontal
line(445, 380, 555, 380);
// Pocket Tangent
line(445, 380, 500, 420);
// Pocket Tangent
line(500, 420, 555, 380);
setfillstyle(SOLID_FILL, RED);
// Bell Pad Upper Horizontal
line(430, 298, 570, 298);
// Bell Pad Lower Horizontal
line(430, 308, 570, 308);
// Bell Pad Left Join
line(430, 298, 430, 308);
// Bell Pad Right Join
line(570, 298, 570, 308);
floodfill(432, 302, 15);
floodfill(568, 302, 15);
floodfill(500, 307, 15);
setfillstyle(SOLID_FILL,
YELLOW);
// Bell
circle(500, 323, 15);
floodfill(502, 325, 15);
setcolor(BLACK);
// Inner Bell Upper Line
line(485, 323, 515, 323);
// Inner Bell Upper Line
line(485, 328, 515, 328);
setcolor(WHITE);
// Left Leg Left Line
line(450, 480, 450, 550);
// Left Leg Right Line
line(470, 490, 470, 550);
// Right Leg Right Line
line(550, 480, 550, 550);
// Right Leg Left Line
line(530, 490, 530, 550);
// Left Leg Pad
rectangle(440, 550, 480, 570);
// Right Leg Pad
rectangle(520, 550, 560, 570);
// Left Leg Color
setfillstyle(SOLID_FILL, CYAN);
floodfill(460, 500, 15);
// Right Leg Color
setfillstyle(SOLID_FILL, CYAN);
floodfill(540, 500, 15);
getch();
closegraph();
return 0;
} |
Output: