重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我又试了一下 还是可以运行,输入a,b,c 也可以的 。 运行后,屏幕左上角不是有三个值输入输出的显示吗
万州网站建设公司成都创新互联公司,万州网站设计制作,有大型网站制作公司丰富经验。已为万州上1000+提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的万州做网站的公司定做!
你所说的“无法输入a b c的值”能不能说的再具体一些。
#includegraphics.h
#define BKC 9
#define COLOR 8 /* 抛物线颜色*/
main()
{int gd=DETECT,gm,p=1,i;
double a,b,c,x,y,x1,y1,t;
char ch;
initgraph(gd,gm,"");
while(p==1) /*主循环体*/
{
setbkcolor(BKC);
setcolor(14);
setlinestyle(0,0,1);
rectangle(0,0,639,479); /*画边框*/
line(20,460,639,460); /*画横坐标*/
line(20,0,20,460); /*画纵坐标*/
/* outtextxy(8,467,"-180");*/
setlinestyle(1,0,1);
setcolor(15);
for(i=20;i640;i+=20)line(i,460,i,0);
for(i=460;i0;i-=20)line(20,i,640,i);
setcolor(12);
setlinestyle(SOLID_LINE,0,3);
line(300,460,300,0);
line(0,360,640,360);
setcolor(15);
gotoxy(1,1);
printf("Please Enter a:" );
scanf("%lf",a);
printf("Please Enter b:" );
scanf("%lf",b);
printf("Please Enter c:" );
scanf("%lf",c);
gotoxy(300,440);
printf("y= %5.2f *x^2 + %5.2f *x + %5.2f ",a,b,c);
setlinestyle(SOLID_LINE,0,1);
moveto(200,460-(a*(0-100)*(0-100)+b*(0-100)+c+100));
for(t=0.0;;t+=0.0002)
{
x=t+200;
y=a*(t-100)*(t-100)+b*(t-100)+c+100;
x1=x; /*画笔定位在用户坐标原点 (200,460) */
y1=460-y;
if(x1640.0||x10||x640) break;
if(y1=480.0 y=480) lineto(x1,y1);
}
setcolor(12);
outtextxy(250,8,"Finished! Continue(Y/N)?");
p=-1;
while(p==-1)
{
ch=getch();
if(ch=='y'||ch=='Y') { cleardevice();p=1;}
else if(ch=='n'||ch=='N') p=0;
else outtextxy(220,200,"ERROR! Please Press 'Y' or 'N'_" );
}
}
closegraph();
}
需要一个二元函数。然后随着x变量的不断增加而不断改变y坐标点,就可以在画板上画出线啦。
由于已知坐标点,那x坐标范围就已知咯。
楼上的观珠仔很久不见啦(挺挂念那段时光的)!想不到路过此地看到你,这是高科技呀?你还这么老班牙啊,大考小考把你弄糊涂了,高考顺利呀!别忘了我这位老兄了,C语言略懂 ~~~~~~杰
1.绘制余弦曲线
*程序说明与注释
#includestdio.h
#includemath.h
void main()
{
double y;
int x,m;
for(y=1;y=-1;y-=0.1) /*y为列方向,值从1到-1,步长为0.1*/
{
m=acos(y)*10; /*计算出y对应的弧度m,乘以10为图形放大倍数*/
for(x=1;xm;x++) printf(" ");
printf("*"); /*控制打印左侧的 * 号*/
for(;x62-m;x++)printf(" ");
printf("*\n"); /*控制打印同一行中对称的右侧*号*/
}
}
*运行结果
2.绘制正弦曲线
在屏幕上用“*”显示0-360度的余弦函数sin(x)曲线。
1.
/**//*
sin() line.
62 of line width
*/
#include stdio.h
#include math.h
int main(void)
...{
int j ,k,d,h;
double i ;
for(i=1.0 ; i 0.0; i-=0.1)
...{
k = (int)(asin(i)*10) ;
for(j=0; j k ; j++) /**//*print the left */
printf(\" \");
printf(\"*\");
for( ; j 31-k ; j++)
printf(\" \");
c语言中表达n次方可以用pow函数。
函数原型:double
pow(double
x,
double
y)
功
能:计算x^y的值
返
回
值:计算结果
举例:
double
a;a
=
pow(3.14,
2);
//
计算3.14的平方,并将结果保存在变量a中
注:使用pow函数必须将头文件#include包含进源文件中
你看看这个是不是你要求的-------------------------------------------------------#includestdio.h
main()
{
while(1){
double a,b,c,a1,b1,c1,x,x2;
printf("请输入参数:");
scanf("%lf,%lf,%lf,%lf,%lf,%lf",a,b,c,a1,b1,c1);
if((a1*b-a*b1)!=0)
{
x=(c1*a-c*a1)/(a1*b-a*b1);//求交点的纵坐标
x2=-(b*x+c)/a;//求交点的横坐标
printf("曲线交点是:(%lf,%lf)",x2,x);//打印交点
break;
}//endif
}//endwhile
}----------------------------------------
在c的标准库中有graphic.h头文件,实现了很多画图函数 比如 lineto, moveto, arc,(函数名可能记错,好久没用了-.-!)
直线:起点加终点就行。
二次曲线,比如抛物线,那就以定长拆分成小直线。双曲线同理。
抛物线,和双曲线用定长拆分,估计很难计算。要是精度要求不高就根据情况改成定x,或者定y偏移的拆分,要是精度要求高那就去找直线拟合曲线的算法或者双圆弧拟合曲线的算法。