c语言作曲线图指令,c语言绘制函数曲线

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

我这种方法为什么图形只能显示一下就不见了,这是为什么?能不能用在双曲线上??能的话改哪里??

#include#includefloat a,b,c,xmin,xmax,max; void menu(){printf("\n*****welcome*****\n");

printf("\n 1.input coefficient");

printf("\n 2.input extent");

printf("\n 3.draw function curve");

printf("\n 4.quit");

printf("\n*****************\n");}

void fun1()

{ printf("input a,b,c\n");

scanf("%f,%f,%f",&a,&b,&c);

}void fun2()

{ printf("input xmin,xmax\n"); scanf("%f,%f",&xmin,&xmax);}

void funmax()

{ float m,n; if(xmin<0) m=-xmin; else m=xmin; if(xmax<0) n=-xmax; else n=xmax; if(m>=n) max=m; else max=n;}

float funx(float max_x)

{ return(max_x/2/max);}float funy(float max_y)

{float d; d=max_y/2/(a*max*max+b*max+c); if(d>0.6) d=0.6; if(d<0.0026) d=0.0026; return(d);}

void fun3()

{ int max_x,max_y; int graphdriver=DETECT,graphmode;

float x1,y1,x2,y2,x,coe_x,coe_y; initgraph(&graphdriver,&graphmode,"");

cleardevice(); max_x=getmaxx(); max_y=getmaxy();

funmax();

coe_x=funx(max_x); coe_y=funy(max_y); line(0,240,640,240); line(320,0,320,480); line(640,240,635,235); line(640,240,635,245); line(320,0,315,5); line(320,0,325,5); outtextxy(320,240,"(0,0)");

outtextxy(620,240,"x"); outtextxy(320,10,"y");

x1=max_x/2+xmin*coe_x,y1=max_y/2-(a*xmin*coe_x*xmin*coe_x+b*xmin*coe_x+c)*coe_y;

moveto((int)x1,(int)y1); for(x=xmin*coe_x;x<=xmax*coe_x;x++)

{ x2=max_x/2+x,y2=max_y/2-(a*x*x+b*x+c)*coe_y;

lineto((int)x2,(int)y2); }void getch();closegraph(); }

void main()

{ int n; menu(); while(1)

{ scanf("%d",&n); switch(n)

{ case 1:fun1();break;

case 2:fun2();break;

case 3:fun3();break;

case 4:exit(0);

default:printf("\n error \n"); } }}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值