📜  使用计算机图形学创建哆啦A梦卡通字符的程序

📅  最后修改于: 2022-05-13 01:57:39.606000             🧑  作者: Mango

使用计算机图形学创建哆啦A梦卡通字符的程序

计算机图形学是提高编码技能的重要学科。许多事情可以使用计算机图形来实现。例如 - 汽车动画、卡通字符等等。在本文中,卡通字符哆啦A梦是使用计算机图形创建的。

用 C 实现

在 C 中, graphics.h函数用于绘制不同的形状(如圆形、矩形等),以不同的格式(不同的字体和颜色)显示文本(任何消息)。通过使用 graphics.h,可以制作程序、动画和游戏。这些对初学者很有用。

使用的功能:

  • setcolor(n) : graphics.h 头文件中的一个函数,用于设置指针(光标)的颜色。
  • line(int x1, int y1, int x2, int y2) : Line函数用于从点 (x1, y1) 到点 (x2, y2) 即 (x1, y1) 和 (x2, y2) 绘制一条线) 是线的端点。下面给出的代码画了一条线。
  • setfillstyle(pattern, color) 头文件 graphics.h 包含setfillstyle()函数,它设置当前的填充图案和填充颜色。
  • floodfill(pattern, color) 函数用于填充封闭区域。当前的填充图案和填充颜色用于填充该区域。

下面是用 C 语言绘制卡通字符哆啦A梦的实现:

C
// C program to implement
// the above approach
#include 
#include 
#include 
  
// 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 Horizental 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 Horizental
    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 Horizental
    line(430, 298, 570, 298);
  
    // Bell Pad Lower Horizental
    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;
}


输出: