龙空技术网

绘制奥特曼(C语言)

xjfwh 194

前言:

而今小伙伴们对“c语言中的x”大致比较着重,我们都想要剖析一些“c语言中的x”的相关内容。那么小编同时在网摘上搜集了一些关于“c语言中的x””的相关文章,希望你们能喜欢,姐妹们快快来学习一下吧!

使用C语言的绘图功能绘制奥特曼。

代码来源于:

运行效果图:

代码:

///////////////////////////////////////////////////

// 程序名称:绘制奥特曼

// 编译环境:Mictosoft Visual Studio 2013, EasyX_20200315(beta)

// 作  者:luoyh <2864292458@qq.com>

// 最后修改:2020-6-10

//

#include<conio.h>

#include<graphics.h>

#include<math.h>

#define PI acos(-1.0)

double th = PI / 180;

// 绘制斜的椭圆

void DrawEllipse(int x0, int y0, int a, int b, int k, int color);

// 绘制心形

void heart(int x0, int y0, int size, COLORREF C);

int main()

{

initgraph(640, 640);

setbkcolor(WHITE);//设置背景为白色

cleardevice();

// 设置线的宽度

setlinestyle(PS_SOLID, 5);

setlinecolor(BLACK);//设置为黑色

setfillcolor(RGB(238, 238, 238));

// 左耳朵

fillrectangle(175, 266, 190, 325);

fillrectangle(159, 281, 175, 315);

// 右耳朵

fillrectangle(393, 268, 410, 324);

fillrectangle(410, 286, 423, 311);

fillellipse(187, 196, 397, 402);

setfillcolor(WHITE);

fillroundrect(288, 146, 302, 242, 10, 20);

// 绘制左右眼睛

DrawEllipse(243, 297, 38, 30, -30, BLACK);

DrawEllipse(350, 297, 38, 30, 30, BLACK);

setfillcolor(RGB(248, 245, 143));

floodfill(243, 297, BLACK);

floodfill(350, 297, BLACK);

line(296, 422, 249, 394);

line(296, 422, 336, 394);

setfillcolor(RGB(235, 110, 69));

floodfill(295, 410, BLACK);

setfillcolor(RGB(137, 211, 211));

fillcircle(294, 432, 10);

// 绘制身体

arc(222, 399, 286, 591, 145.0 / 180 * PI, PI + 145.0 / 180 * PI);

arc(305, 413, 364, 591, PI + 35.0 / 180 * PI, 55.0 / 180 * PI);

line(224, 485, 359, 485);

line(224, 511, 278, 549);

line(278, 549, 312, 549);

line(312, 549, 360, 515);

setfillcolor(RGB(235, 110, 69));

floodfill(294, 517, BLACK);

setfillcolor(RGB(238, 238, 238));

floodfill(252, 554, BLACK);

floodfill(334, 559, BLACK);

// 绘制左边胳膊

arc(189, 387, 353, 647, 109.0 / 180 * PI, PI);

arc(189, 480, 223, 537, 10.0 / 180.0 * PI + PI, 0);

line(196, 471, 222, 491);

setfillcolor(RGB(235, 110, 69));

floodfill(207, 501, BLACK);

// 绘制右胳膊

arc(230, 319, 424, 455, 110.0 / 180 * PI + PI, 5.0 / 180 * PI);

arc(392, 360, 424, 395, -5.0 / 180 * PI, PI + PI / 2);

arc(310, 286, 402, 394, 70.0 / 180 * PI + PI, 150.0 / 180 * PI + PI);

line(372, 390, 394, 431);

setfillcolor(RGB(235, 110, 69));

floodfill(399, 402, BLACK);

// 给身体颜色

setfillcolor(RGB(238, 238, 238));

floodfill(296, 458, BLACK);

// 连接气球

line(463, 187, 422, 365);

heart(464, 67, 30, BLACK);

setfillcolor(RGB(235, 110, 69));

floodfill(464, 70, BLACK);

setfillcolor(RGB(255, 232, 201));

solidcircle(508, 70, 6);

_getch();

return 0;

}

void heart(int x0, int y0, int size, COLORREF C)

{

double m, n, x, y;

double i;

for (i = 0; i <= 2 * size; i = i + 0.01)

{

// 产生极坐标点

m = i;

n = -size * (((sin(i) * sqrt(fabs(cos(i)))) / (sin(i) + 1.4142)) - 2 * sin(i) + 2);

// 转换为笛卡尔坐标

x = n * cos(m) + x0;

y = n * sin(m) + y0;

setfillcolor(C);

solidcircle((int)x, (int)y, 2);

}

}

void DrawEllipse(int x0, int y0, int a, int b, int k, int color)

{

double i;

double x, y, tx, ty;

for (i = -180; i <= 180; i = i + 0.5)

{

x = a * cos(i * th);

y = b * sin(i * th);

tx = x;

ty = y;

x = tx * cos(k * th) - ty * sin(k * th) + x0;

y = y0 - (ty * cos(k * th) + tx * sin(k * th));

setfillcolor(color);

solidcircle((int)x, (int)y, 2);

}

}

标签: #c语言中的x #c语言画心形 #c语言如何做出图片 #c语言如何使用sin #c语言编写一个爱心