c语言画皮卡丘代码怎么写

1. 简介

皮卡丘,是游戏《宝可梦》中的一种虚构生物,长相可爱,且深受大众喜爱。通过使用C语言的图形库,我们可以通过代码实现画出一个可爱的皮卡丘。下面,我们就来学习如何使用C语言编写画皮卡丘的代码。

2. 环境配置

2.1. 需要的库

在C语言中使用图形库画图需要引入graphics.h库,该库是Turbo C++ IDE自带的库,所以在Windows平台下,我们需要安装Turbo C++编译器。

2.2. 安装Turbo C++

可以使用Turbo C++ IDE 3.2版或后续版本,这种IDE已经停止开发多年,但是它包含了一个非常好用的图形库graphics.h。我们可以从以下网址中下载到Turbo C++ IDE:

https://turboc.codeplex.com/

安装完成之后,我们就可以开始编写绘制皮卡丘的代码。

3. 画皮卡丘

我们可以将皮卡丘的绘制分为以下部分:耳朵、脸部、眼睛、嘴巴、手臂、腿部、尾巴。下面,我们按照这些部分逐一讲解绘制的过程和代码实现。

3.1. 耳朵

皮卡丘的耳朵是黄色的,上面有黑色的线条勾勒出轮廓。我们可以通过绘制一个圆的方式来制作耳朵,然后在圆的基础上通过画线条来勾勒出耳朵的轮廓。

// 画右耳朵

setfillstyle(SOLID_FILL, YELLOW); // 设置填充颜色

circle(325, 135, 40); // 画圆

floodfill(325, 135, WHITE); // 填充颜色

// 画右耳朵轮廓

setcolor(BLACK); // 设置画线条的颜色

arc(325, 135, 50, 140, 40); // 画圆弧

arc(345, 109, 315, 160, 35);

我们可以在画左耳朵的时候使用 symmetry function 将绘制左右耳朵的代码合并。

3.2. 脸部

皮卡丘的脸部是黄色的,下巴部分往下凸出,我们可以通过画圆来制作皮卡丘的脸部。

同时,脸的底部还需要加上两个圆弧勾勒出下巴的形状。

// 画脸

setfillstyle(SOLID_FILL, YELLOW); // 设置填充颜色

circle(325, 220, 70); // 画圆

floodfill(325, 220, WHITE); // 填充颜色

// 画下巴

setcolor(BLACK); // 设置画线条的颜色

arc(325, 230, 0, 180, 35); // 画圆弧

arc(325, 230, 180, 360, 35);

通过调整圆的半径,可以实现分别画大脸和小脸的效果。

3.3. 眼睛

这里我们需要绘制两个相同的眼睛,眼睛有黑色边框,中间填充成白色,接着在白色中间描绘出黑色的瞳孔。我们可以通过画圆和画线条的方式来完成绘制。

当然,如果你觉得眼睛不够可爱,可以为它加上眼皮和睫毛。

// 画眼睛

setcolor(BLACK); // 设置画线条的颜色

circle(276, 189, 7); // 画圆

circle(276, 189, 2);

setfillstyle(SOLID_FILL, WHITE); // 设置填充颜色

circle(276, 189, 6); // 画圆

floodfill(276, 189, BLACK); // 填充颜色

setcolor(BLACK);

circle(276, 189, 4);

// 画右眼

setcolor(BLACK);

circle(374, 189, 7);

circle(374, 189, 2);

setfillstyle(SOLID_FILL, WHITE);

circle(374, 189, 6);

floodfill(374, 189, BLACK);

setcolor(BLACK);

circle(374, 189, 4);

我们可以通过设置画布颜色,来给眼睛加上眼皮。

// 画眼皮

setfillstyle(SOLID_FILL,RGB(250, 195, 165));

pieslice(276, 208, 267, 293, 25); // 画上眼皮

pieslice(374, 208, 247, 272, 25);

setfillstyle(SOLID_FILL,BLACK);

pieslice(276, 215, 267, 293, 25); // 画下眼皮

pieslice(374, 215, 247, 272, 25);

3.4. 嘴巴

皮卡丘的嘴巴是粉红色的,嘴巴总体呈现为“∩ ”的形态,嘴唇勾勒出一个“M”的形状。我们可以通过画圆和画线条来完成嘴巴的绘制。

// 画嘴巴

setfillstyle(SOLID_FILL, RGB(248, 118, 91));

pieslice(325, 250, 0, 180, 32); // 画弧形

setcolor(BLACK);

arc(325, 250, 0, 180, 32);

// 画嘴唇

setfillstyle(SOLID_FILL, RGB(241, 65, 103));

pieslice(325, 250, 0, 90, 32);

pieslice(325, 250, 180, 270, 32);

3.5. 手臂

绘制皮卡丘的手臂需要绘制两只手臂,我们可以使用正弦函数和余弦函数来实现手臂的曲线,然后连接点画成曲线。

// 画左手臂

setcolor(BLACK);

moveto(250, 270);

for(int i = 0; i <= 90; i++) {

double angle = i * PI / 180.0;

int x = (int)(250 + 40 * cos(angle));

int y = (int)(270 + 30 * sin(angle));

lineto(x, y);

}

// 画右手臂

moveto(400, 270);

for(int i = 0; i <= 90; i++) {

double angle = i * PI / 180.0;

int x = (int)(400 + 40 * cos(angle));

int y = (int)(270 + 30 * sin(angle));

lineto(x, y);

}

// 连接左右手臂

moveto(250, 270);

lineto(400, 270);

3.6. 腿部

皮卡丘的腿有两只,我们可以参考手臂的绘制方式来绘制腿部。

// 画左腿

moveto(300, 340);

for(int i = 0; i <= 90; i++) {

double angle = i * PI / 180.0;

int x = (int)(300 + 20 * cos(angle));

int y = (int)(340 + 30 * sin(angle));

lineto(x, y);

}

// 画右腿

moveto(350, 340);

for(int i = 0; i <= 90; i++) {

double angle = i * PI / 180.0;

int x = (int)(350 + 20 * cos(angle));

int y = (int)(340 + 30 * sin(angle));

lineto(x, y);

}

// 连接左右腿

moveto(300, 340);

lineto(350, 340);

3.7. 尾巴

皮卡丘的尾巴是黄色的,尾巴末端呈现闪电状,我们可以通过画线条的方式来完成尾巴的绘制。

// 画尾巴

setcolor(BLACK);

moveto(150, 310);

lineto(180, 297);

lineto(190, 310);

lineto(190, 320);

lineto(180, 333);

lineto(150, 320);

4. 总代码

下面是完整的绘制皮卡丘的代码。

#include<graphics.h>

#include<math.h>

#define PI 3.141592654

int main() {

initwindow(600, 450); // 创建画布

// 画右耳朵

setfillstyle(SOLID_FILL, YELLOW);

circle(325, 135, 40);

floodfill(325, 135, WHITE);

// 画右耳朵轮廓

setcolor(BLACK);

arc(325, 135, 50, 140, 40);

arc(345, 109, 315, 160, 35);

// 画左耳朵

setfillstyle(SOLID_FILL, YELLOW);

circle(225, 135, 40);

floodfill(225, 135, WHITE);

// 画左耳朵轮廓

setcolor(BLACK);

arc(225, 135, 40, 130, 40);

arc(195, 109, 20, 50, 35);

// 画脸

setfillstyle(SOLID_FILL, YELLOW);

circle(325, 220, 70);

floodfill(325, 220, WHITE);

// 画下巴

setcolor(BLACK);

arc(325, 230, 0, 180, 35);

arc(325, 230, 180, 360, 35);

// 画左眼

setcolor(BLACK);

circle(276, 189, 7);

circle(276, 189, 2);

setfillstyle(SOLID_FILL, WHITE);

circle(276, 189, 6);

floodfill(276, 189, BLACK);

setcolor(BLACK);

circle(276, 189, 4);

// 画右眼

setcolor(BLACK);

circle(374, 189, 7);

circle(374, 189, 2);

setfillstyle(SOLID_FILL, WHITE);

circle(374, 189, 6);

floodfill(374, 189, BLACK);

setcolor(BLACK);

circle(374, 189, 4);

// 画眼皮

setfillstyle(SOLID_FILL,RGB(250, 195, 165));

pieslice(276, 208, 267, 293, 25);

pieslice(374, 208, 247, 272, 25);

setfillstyle(SOLID_FILL,BLACK);

pieslice(276, 215, 267, 293, 25);

pieslice(374, 215, 247, 272, 25);

// 画嘴巴

setfillstyle(SOLID_FILL, RGB(248, 118, 91));

pieslice(325, 250, 0, 180, 32);

setcolor(BLACK);

arc(325, 250, 0, 180, 32);

// 画嘴唇

setfillstyle(SOLID_FILL, RGB(241, 65, 103));

pieslice(325, 250, 0, 90, 32);

pieslice(325, 250, 180, 270, 32);

// 画左手臂

setcolor(BLACK);

moveto(250, 270);

for(int i = 0; i <= 90; i++) {

double angle = i * PI / 180.0;

int x = (int)(250 + 40 * cos(angle));

int y = (int)(270 + 30 * sin(angle));

lineto(x, y);

}

// 画右手臂

moveto(400, 270);

for(int i = 0; i <= 90; i++) {

double angle = i * PI / 180.0;

int x = (int)(400 + 40 * cos(angle));

int y = (int)(270 + 30 * sin(angle));

lineto(x, y);

}

// 连接左右手臂

moveto(250, 270);

lineto(400, 270);

// 画左腿

moveto(300, 340);

for(int i = 0; i <= 90; i++) {

double angle = i * PI / 180.0;

int x = (int)(300 + 20 * cos(angle));

int y = (int)(340 + 30 * sin(angle));

lineto(x, y);

}

// 画右腿

moveto(350, 340);

for(int i = 0; i <= 90; i++) {

double angle = i * PI / 180.0;

int x = (int)(350 + 20 * cos(angle));

int y = (int)(340 + 30 * sin(angle));

lineto(x, y);

}

// 连接左右腿

moveto(300, 340);

lineto(350, 340);

// 画尾巴

setcolor(BLACK);

moveto(150, 310);

lineto(180, 297);

lineto(190, 310);

lineto(190, 320);

lineto(180, 333);

lineto(150, 320);

getch();

closegraph(); // 关闭画布

return 0;

}

使用上述代码,就可以画出一个可爱的皮卡丘了!

5. 总结

通过使用C语言绘制皮卡丘,我们了解了C语言调用图形库进行图形

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。撸码网站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签