y|
|
| . . . .
|
| .
|
|_____________________x
第一点(1,0.5) 第二点(2,1) 第三点(3,1)....到无穷 要光滑曲线连接 谢谢~~~~~
參考答案:#include "Conio.h"
#include "graphics.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
initgraph(&gd, &gm, "");
}
void DrawCoord();
void Drawstg();
void Drawcurve();
int main(void)
{
initgr(); /* BGI初始化 */
DrawCoord();
Drawstg();
Drawcurve();
getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
closegr(); /* 恢复TEXT屏幕模式 */
return 0;
}
void DrawCoord() /*画坐标系*/
{
line(50,40,50,400); /*y轴*/
line(50,400,600,400); /*x轴*/
line(50,40,45,50); /*箭头*/
line(50,40,55,50);
line(600,400,590,395);
line(600,400,590,405);
outtextxy(35,45,"y");
outtextxy(590,410,"x");
outtextxy(40,410,"O");
}
void Drawstg() /*画标尺*/
{
int x,y,i;
x=50,y=400;
for(i=0;i<17;i++)
{
line(x+5,y,x,y);
y-=20;
}
x=50,y=400;
for(i=0;i<26;i++)
{
line(x,y-5,x,y);
x+=20;
}
}
void Drawcurve()/*画图示例*/
{
line(50,400,500,400-250);
}
//以上只是一个示例,你没有说清楚这条曲线的具体情况,我只能做一个示例
//只是帮你画你出了坐标系.还有你要将离散的点拟合成一条曲线,直接画出
//是做不出平滑效果的,可以采用一些插值算法将中间的点拟合出来,再画.
//这样就可以做出平滑效果了,如果不懂的,可以去查一下科学计算的有关书
//籍.另外对于做这种图,个人推荐使用MatLab,它以自动帮你进行平滑.