C语言/C++常见习题问答集锦之哆啦A梦

程序之美

在这里插入图片描述

前言

还记得儿时的哆啦A梦(机器猫)么?每逢周末,就会急匆匆的跑回家,赶紧写完作业吃完饭,坐在电视机旁等着看上两集机器猫,那应该是最美好的回忆和期盼了。
但是无论童年还是现在,哆啦A梦依旧带给我美好和感动。很庆幸我的童年里能有哆啦A梦。也很庆幸长大后哆啦A梦还能让我找回童年。
当然,作为一名码农,什么不都得实践一下不,下面我们就用代码的方法来表达我们心中的机器猫—哆啦A梦。

主体

运行效果

在这里插入图片描述

代码示例

// 程序名称:用绘图语句画机器猫(初学 C 语言的同学必看)
// 编译环境:Visual C++ 6.0 / 2010,EasyX_20210730
// 发布日期:2014-9-17
//
#include <graphics.h>
#include <conio.h>

const double PI = 3.1415926536;

// 主函数
int main()
{
	// 创建大小为 800 * 600 的绘图窗口
	initgraph(800, 600);

	// 设置原点 (0, 0) 为屏幕中央(Y轴默认向下为正)
	setorigin(400, 300);

	// 使用白色填充背景
	setbkcolor(WHITE);
	cleardevice();


	// 画脸
	setfillcolor(RGB(7, 190, 234));						// 头
	setlinecolor(BLACK);
	fillroundrect(-135, -206, 135, 54, 248, 248);

	setfillcolor(WHITE);								// 脸
	fillellipse(-115, -144, 115, 46);

	fillroundrect(-63, -169, 0, -95, 56, 56);			// 右眼
	fillroundrect(0, -169, 63, -95, 56, 56);			// 左眼

	setfillcolor(BLACK);
	solidcircle(-16, -116, 6);							// 右眼球
	solidcircle(16, -116, 6);							// 左眼球

	setfillcolor(RGB(201, 62, 0));						// 鼻子
	fillcircle(0, -92, 15);

	line(0, -77, 0, -4);								// 人中
	arc(-108, -220, 108, -4, PI * 5 / 4, PI * 7 / 4);	// 嘴

	line(-42, -73, -90, -91);							// 胡子
	line(42, -73, 90, -91);
	line(-41, -65, -92, -65);
	line(41, -65, 92, -65);
	line(-42, -57, -90, -39);
	line(42, -57, 90, -39);


	// 画身体
	line(-81, 32, -138, 72);					// 手臂(上)
	line(81, 32, 138, 72);
	line(-96, 96, -116, 110);					// 手臂(下)
	line(96, 96, 116, 110);

	line(-96, 85, -96, 178);					// 腿外侧
	line(96, 85, 96, 178);
	arc(-10, 168, 10, 188, 0, PI);				// 腿内侧

	setfillcolor(WHITE);						// 手
	fillcircle(-140, 99, 27);
	fillcircle(140, 99, 27);
	fillroundrect(-2, 178, -112, 205, 24, 24);	// 脚
	fillroundrect(2, 178, 112, 205, 24, 24);

	setfillcolor(RGB(7, 190, 234));				// 身体填充蓝色
	floodfill(0, 100, BLACK);

	setfillcolor(WHITE);						// 肚皮
	fillcircle(0, 81, 75);
	solidrectangle(-60, 4, 60, 24);				// 用白色矩形擦掉多余的肚皮

	pie(-58, 23, 58, 139, PI, 0);				// 口袋


	// 画铃铛
	setfillcolor(RGB(169, 38, 0));				// 绳子
	fillroundrect(-100, 23, 100, 42, 12, 12);

	setfillcolor(RGB(245, 237, 38));			// 铃铛外形
	fillcircle(0, 49, 19);

	setfillcolor(BLACK);						// 铃铛上的洞
	solidellipse(-4, 50, 4, 57);
	setlinestyle(PS_SOLID, 3);
	line(0, 57, 0, 68);

	setlinestyle(PS_SOLID, 1);					// 铃铛上的纹路
	line(-16, 40, 16, 40);
	line(-18, 44, 18, 44);


	// 按任意键退出
	_getch();
	closegraph();
	return 0;
}

逻辑分析

初始化

	// 创建大小为 800 * 600 的绘图窗口
	initgraph(800, 600);

	// 设置原点 (0, 0) 为屏幕中央(Y轴默认向下为正)
	setorigin(400, 300);

	// 使用白色填充背景
	setbkcolor(WHITE);
	cleardevice();

绘制流程

// 画脸
	setfillcolor(RGB(7, 190, 234));						// 头
	setlinecolor(BLACK);
	fillroundrect(-135, -206, 135, 54, 248, 248);

	setfillcolor(WHITE);								// 脸
	fillellipse(-115, -144, 115, 46);

	fillroundrect(-63, -169, 0, -95, 56, 56);			// 右眼
	fillroundrect(0, -169, 63, -95, 56, 56);			// 左眼

	setfillcolor(BLACK);
	solidcircle(-16, -116, 6);							// 右眼球
	solidcircle(16, -116, 6);							// 左眼球

	setfillcolor(RGB(201, 62, 0));						// 鼻子
	fillcircle(0, -92, 15);

	line(0, -77, 0, -4);								// 人中
	arc(-108, -220, 108, -4, PI * 5 / 4, PI * 7 / 4);	// 嘴

	line(-42, -73, -90, -91);							// 胡子
	line(42, -73, 90, -91);
	line(-41, -65, -92, -65);
	line(41, -65, 92, -65);
	line(-42, -57, -90, -39);
	line(42, -57, 90, -39);


	// 画身体
	line(-81, 32, -138, 72);					// 手臂(上)
	line(81, 32, 138, 72);
	line(-96, 96, -116, 110);					// 手臂(下)
	line(96, 96, 116, 110);

	line(-96, 85, -96, 178);					// 腿外侧
	line(96, 85, 96, 178);
	arc(-10, 168, 10, 188, 0, PI);				// 腿内侧

	setfillcolor(WHITE);						// 手
	fillcircle(-140, 99, 27);
	fillcircle(140, 99, 27);
	fillroundrect(-2, 178, -112, 205, 24, 24);	// 脚
	fillroundrect(2, 178, 112, 205, 24, 24);

	setfillcolor(RGB(7, 190, 234));				// 身体填充蓝色
	floodfill(0, 100, BLACK);

	setfillcolor(WHITE);						// 肚皮
	fillcircle(0, 81, 75);
	solidrectangle(-60, 4, 60, 24);				// 用白色矩形擦掉多余的肚皮

	pie(-58, 23, 58, 139, PI, 0);				// 口袋


	// 画铃铛
	setfillcolor(RGB(169, 38, 0));				// 绳子
	fillroundrect(-100, 23, 100, 42, 12, 12);

	setfillcolor(RGB(245, 237, 38));			// 铃铛外形
	fillcircle(0, 49, 19);

	setfillcolor(BLACK);						// 铃铛上的洞
	solidellipse(-4, 50, 4, 57);
	setlinestyle(PS_SOLID, 3);
	line(0, 57, 0, 68);

	setlinestyle(PS_SOLID, 1);					// 铃铛上的纹路
	line(-16, 40, 16, 40);
	line(-18, 44, 18, 44);

资源释放

	closegraph();

结束语

好了,今天就说这么多了,希望小伙伴们能从这篇文章中学到东西,也真心希望能够帮助正在苦学C语言的小伙伴们,你们的成长是我最大的幸福。很感谢您能够在百忙之中浏览我的文章。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五一编程

程序之路有我与你同行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值