用C语言画一个Q版奥特曼

news/2024/10/30 15:20:37/

有一天原本平静的村庄突然受到不明寄生生命体的袭击!“快逃!”“可是……” 快找出怪兽玛格尼亚的弱点,欢迎收看迪迦奥特曼的下集大雾来了。

今天分享一个用C语言画Q版奥特曼的源码~

用到的是easyx图形库绘图功能,所以需要下载安装easyx图形库,直接官网搜索下载即可,devC++用不了,需要另外配置哦!适用于Visual C++与Visual Studio

要用到的头文件

#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);}
}

来看看效果图!

 其实有点像咸蛋超人,大家觉得呢

需要完整代码文件的可以点击下方链接领取哦!

点击链接+群领取代码~

拜拜,我们下期见

发文助手说我内容有点少,那附加一个爱心表白代码吧!

效果图

 颜色可以换哟~要想生活过得去。。

 源码在这

#include <stdio.h>
#include <Windows.h>int main()
{system("color 02");int  i, j, k, l, m;char c = 3;	//ASCII码里面 3 就是一个字符小爱心 for (i = 1; i <= 5; i++)				printf("\n");	//开头空出5行 for (i = 1; i <= 3; i++) {	//前3行中间有空隙分开来写 for (j = 1; j <= 32 - 2 * i; j++)		printf(" ");	//左边的空格,每下一行左边的空格比上一行少2个 //8*n-2*i for (k = 1; k <= 4 * i + 1; k++)		printf("%c", c);//输出左半部分字符小爱心 for (l = 1; l <= 13 - 4 * i; l++)		printf(" ");	//中间的空格,每下一行的空格比上一行少4个 for (m = 1; m <= 4 * i + 1; m++)		printf("%c", c);//输出右半部分字符小爱心printf("\n");		//每一行输出完毕换行 }for (i = 1; i <= 3; i++) {	//下3行中间没有空格 for (j = 1; j <= 24 + 1; j++)			printf(" ");	//左边的空格 //8*(n-1)+1for (k = 1; k <= 29; k++)			printf("%c", c);//输出字符小爱心printf("\n");		//每一行输出完毕换行}for (i = 7; i >= 1; i--) {	//下7行 for (j = 1; j <= 40 - 2 * i; j++)		printf(" ");	//左边的空格,每下一行左边的空格比上一行少2个//8*(n+1)-2*ifor (k = 1; k <= 4 * i - 1; k++)		printf("%c", c);//每下一行的字符小爱心比上一行少4个(这个循环是i--) printf("\n");		//每一行输出完毕换行}for (i = 1; i <= 39; i++)				printf(" ");	//最后一行左边的空格 printf("%c\n", c);		//最后一个字符小爱心 for (i = 1; i <= 5; i++)				printf("\n");	//最后空出5行 return 0;
}

感谢观看!


http://www.ppmy.cn/news/155020.html

相关文章

基于q_learning的flappy bird AI

基于q_learning的flappy bird AI 思路来自于这篇文章&#xff1a;机器学习玩转Flappy Bird全书&#xff1a;六大“流派”从原理到代码 有两种思路&#xff0c;一种是单步更新q values&#xff0c;一种是全局更新q values。单步更新就是最基础的q learning算法&#xff0c;在a…

华为HCIP RS题库221 171-180题

Q171 OSPF 划分区域的边界在路由器上。 A.TRUE B.FALSE Answer:A Q172 在 IS-IS 的广播网络中&#xff0c;Level-2 路由器使用哪个组播 MAC 地址作为发送 IIH 的目的地址&#xff1f; A.0180-c200-0014 B.0180-c200-0016 C.0180-C200-0015 D.0100-5E00-0002 Answer: C 解析&a…

BMP180气压传感器波动过大的解决方案

BMP180由于其价格原因&#xff0c;静止状态气压数值波动挺大的&#xff0c;就是用最高精度误差也是不小。针对这个误差大的问题&#xff0c;我一直倾向于使用数学方式来进行补偿。 个人的解决方案如下&#xff1a; 使用一阶卡尔曼滤波来对得到的数据进行滤波&#xff0c;以尽…

EQ均衡器中的G 、Q、FC与截止频率知识

最近在一个项目中&#xff0c;与客户的声学工程师关于EQ频响测试有过疑问&#xff0c;也顺便复习了一下关于EQ调试过程中一些参数的意义。 起因如下&#xff0c;一般在TV产品中&#xff0c;声学会调试两组PEQ参数应对不同的场景&#xff0c;桌面模式和壁挂模式&#xff0c;顾名…

RK3326 android10.0(Q) 横屏方案修改

开机logo横屏 U-boot logo 显示的两张图片是 kernel 根目录下的 logo.bmp 和 logo_kernel.bmp&#xff0c;如果 需要更换&#xff0c;用同名的**横屏 bmp **替换掉&#xff0c;重新编译 kernel 附&#xff1a;不一定要两张图片&#xff0c;可以只要一张&#xff0c;如果只有一…

【强化学习】噪声深度Q网络(Noisy DQN)求解倒立摆问题 + Pytorch代码实战

文章目录 一、倒立摆问题介绍二、噪声深度Q网络简介三、详细资料四、Python代码实战4.1 运行前配置4.2 主要代码4.3 运行结果展示4.4 关于可视化的设置 一、倒立摆问题介绍 Agent 必须在两个动作之间做出决定 - 向左或向右移动推车 - 以使连接到它的杆保持直立。 二、噪声深…

I \ Q信号、IFI \ IFQ信号、差分信号、单端信号知识总结

1. IQ信号&#xff1a; &#xff08;1&#xff09;IQ信号即同相正交信号&#xff0c;I为in-phase&#xff0c;Q为quadrature&#xff0c;与I的相位相差了90度。 &#xff08;2&#xff09;因为信号在传输的时候需要的是单一信道、单一频率&#xff0c;因此在最早的通讯技术中…

CARLA平台+Q-learning的尝试(gym-carla)

接触强化学习大概有半年了&#xff0c;也了解了一些算法&#xff0c;一些简单的算法在gym框架也实现了&#xff0c;那么结合仿真平台Carla该怎么用呢&#xff1f;由于比较熟悉gym框架&#xff0c;就偷个懒先从这个开始写代码。 项目地址&#xff1a;https://github.com/cjy1992…