在 C/C++ 中使用计算机图形学的飞鸟
在计算机图形中,C++ 提供了graphics.h ,通过它可以创建对象,并使用该对象可以在 C++ 程序中创建飞鸟。
本程序用到的函数如下:
- line():line函数用于画线。
句法:
line(x1, y1, x2, y2);
where, (x1, y1) (x2, y2) are end points of the line.
- arc():arc函数用于绘制圆弧。
句法:
arc(x, y, start_angle, end_angle, r);
where, (x, y) are centre of the arc, start_angle is the starting angle, end_angle is the ending angle and r is the radius of angle.
- circle():circle函数用来画一个圆。
句法:
circle(x, y, r);
where, (x, y) is the centre points and r is the radius of the circle.
- delay():延迟函数用于停止屏幕一段时间,因为程序的执行速度非常快。
句法:
delay(n);
where, n is number of seconds you want to stop the screen.
- cleardevice():cleardevice函数用于清屏。
- closegraph():closegraph函数用于关闭图形。
下面是使用 graphics.h 实现飞鸟的 C++ 程序:
C++
// C++ program implementing flying bird using graphics.h
#include
#include
#include
#include
// Wings
void handDown(int i)
{
line(85 + i, 155, 45 + i, 185);
line(85 + i, 155, 115 + i, 195);
arc(90 + i, 130, 228, 292, 70);
}
void handUp(int i)
{
line(85 + i, 155, 125 + i, 115);
line(85 + i, 155, 55 + i, 118);
arc(90 + i, 177, 60, 122, 70);
}
// Driver code
void main()
{
int gd = DETECT, gm;
// Path of the BGI folder
initgraph(&gd, &gm, "C:\\TURBOC3\\BGI");
int i = 0;
for (i = 0; i < 400; i++) {
// Body
circle(150 + i, 150, 20);
arc(90 + i, 190, 50, 145, 60);
arc(87 + i, 117, 220, 320, 60);
// Beak
line(170 + i, 147, 180 + i, 153);
line(180 + i, 153, 170 + i, 156);
// Eye
circle(162 + i, 150, 2);
// Tail
line(10 + i, 155, 40 + i, 155);
line(10 + i, 145, 40 + i, 155);
line(10 + i, 165, 40 + i, 155);
// Move hands
if (i % 2 == 0)
handUp(i);
else
handDown(i);
// Stop the screen for 10 secs
delay(10);
// Clear the screen
}
cleardevice();
getch();
// Close the graph
closegraph();
}
输出: