c语言直线插补程序,高手请进采纳后追加20分我用c语言写了一个直线插补程序,用来模拟数控机床的直线插补运动,但是在c-free软件中总是无法运行,提示头文件错误,那位高手帮忙解决一下,(在
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/09 04:37:37
c语言直线插补程序,高手请进采纳后追加20分我用c语言写了一个直线插补程序,用来模拟数控机床的直线插补运动,但是在c-free软件中总是无法运行,提示头文件错误,那位高手帮忙解决一下,(在
c语言直线插补程序,高手请进采纳后追加20分
我用c语言写了一个直线插补程序,用来模拟数控机床的直线插补运动,但是在c-free软件中总是无法运行,提示头文件错误,那位高手帮忙解决一下,(在我的基础上修改)请尽量详细说明,指导我把这个问题解决就算被采纳.具体程序如下:
#include
#include
#include "conio.h"
void main()
{float x1,y1,x2,y2,n1,n2,xe,ye,f,n;
printf("\n请输入直线的第一个点\n");
scanf("%f,%f",&x1,&y1);
printf("\n请输入直线的第二个点\n");
scanf("%f,%f",x2,y2);
/*判断需要走的步数*/
n1=(y2-y1)>=0?(y2-y1)*100:(y1-y2)*100;
n2=(x2-x1)>=0?(x2-x1)*100:(y2-y1)*100;
n=n1+n2;
/*第一象限内的直线*/
if((x2>=x1)&&(y2>=y1))
{int gdriver=DETECT,gmode;
int x,y;
initgraph(&gdriver,&gmode,"");
cleardevice();
xe=x2-x1;
ye=y2-y1;
moveto(x1,y1);
for(f=0;n>0;n--)
{if(f>=0)
{linerel(0.01,0);
f-=ye;
}
else
{linerel(0,0.01);
f+=xe;
}
}
/*第二象限内的直线*/
if((x2>=x1)&&(y2>=y1))
{int gdriver=DETECT,gmode;
int x,y;
initgraph(&gdriver,&gmode,"");
cleardevice();
xe=x2-x1;
ye=y2-y1;
moveto(x1,y1);
for(f=0;n>0;n--)
{if(f>=0)
{linerel(0.01,0);
f-=ye;
}
else
{linerel(0,0.01);
f+=xe;
}
}
/*第三象限内的直线*/
if((x2y1))
{int gdriver=DETECT,gmode;
int x,y;
initgraph(&gdriver,&gmode,"");
cleardevice();
xe=x2-x1;
ye=y2-y1;
moveto(x1,y1);
for(f=0;n>0;n--)
{if(f>=0)
{linerel(0.01,0);
f-=ye;
}
else
{linerel(0,-0.01);
f+=xe;
}
}
/*第四象限内的直线*/
if((x2=0)
{linerel(0.01,0);
f-=ye;
}
else
{linerel(0,0.01);
f+=xe;
}
}
printf("\n任务结束\n");
c语言直线插补程序,高手请进采纳后追加20分我用c语言写了一个直线插补程序,用来模拟数控机床的直线插补运动,但是在c-free软件中总是无法运行,提示头文件错误,那位高手帮忙解决一下,(在
程序问题是自己检查的,没有人会跟你看程序.
你只要说明方法或者是流程图.
你做的是直线逐点比较.
先砍掉插补程序,看能否画划线,在添加第一象限插补,最后全加上去.
确保每个步骤添加进去的代码没有问题.