#include<iostream>
using namespace std;
#include<string>
#include<math.h>
#include<graphics.h>
#define NUM 500 //画线时分的步骤数
//慢速画直线函数,参数包括起始、终点坐标和每步骤间隔时间
void LINE(int x1,int y1,int x2,int y2,int SLEEP)
{
int x_;
int y_;
for(int i=0;i<=NUM;i++)
{
x_=(float)x2*i/500;//float是关键,否则在i值较小时,坐标值都是0,线段无动作
//如果显示的是曲线的话此处计算要复杂一些
y_=(float)y2*i/500;
//cout<<"X2="<<X2<<"-----"<<"X2="<<Y2<<endl; 调试过程可以看一下坐标数据
line(x1,y1,x_,y_);
Sleep(SLEEP);
}
}
int main()
{
initgraph(1024,780,1); //初始化一个1024*780的窗口
setorigin((int)getwidth()/2,(int)getheight()/2); //将窗口中心确定为原点并将Y轴方向调整为向上
setaspectratio(1,-1); //并将Y轴方向调整为向上
//慢速画线LINE(int x1,int y1,int x2,int y2,int SLEEP)
setlinecolor(YELLOW); //坐标轴线颜色设定微黄
setlinestyle(0,3); //坐标轴线型为实线,线宽3个像素
line(0,0,0,getheight()/2*0.75); //以窗口高度一半的75%为长度画出Y轴
for(int i=0;i<(getheight()/2*0.75)/30;i++) //在Y轴上每隔30个像素画一刻度线
{line(0,i*30,10,i*30);};
line(0,0,(getwidth()/2)*0.75,0);//以窗口高度一半的75%为长度画出X轴
for(int i=0;i<(getwidth()/2*0.75)/30;i++) //画轴刻度线
{line(i*30,0,i*30,10);};
settextcolor(YELLOW);//将文字颜色设置同坐标轴颜色
setaspectratio(1,1);//自定义的Y轴方向显示文字是反的,先调整回来,y值也要加-号
outtextxy(0,-(getheight()/2*0.75+20),L"Y");//字符串前加L或选多字符集,否则报错
setaspectratio(1,-1);//重新设置回去
outtextxy(getwidth()/2*0.75+15,0,L"X");
setlinecolor(RED);//将画线颜色调整为红色
LINE(0,0,300,250,50);//调用慢画线函数画一条斜线
//初始坐标0,0 终点坐标300,250、间隔毫秒数50
system("pause");//防止闪退
closegraph();
return 0;
}