直线插补C语言程序.docVIP

  • 299
  • 0
  • 约6.56千字
  • 约 8页
  • 2017-12-22 发布于河南
  • 举报
直线插补C语言程序

直线插补C语言程序 #include conio.h #include graphics.h #include process.h #define Ni_circle 0 #define Shun_circle 1 void init_graph(); void draw_Base_circle(); void draw_cabu_circle(); void close_graph(); void acrroods(); static float x0,y0; void line_cabu(), draw_line(),draw_line_cabu(); void line_cabu() /*此函数控制直线插步两次*/ { int i; init_graph(); sleep(1); for(i=0;i2;i++) { line(0,120,300,120); outtextxy(310,120,Z); line(100,10,100,300); outtextxy(110,300,X); outtextxy(90,130,O); draw_line(); if(i==0) draw_line_cabu(6); else draw_line_cabu(2); gotoxy(50,5); getch(); cleardevice(); setcolor(WHITE); } } void draw_line()/*画直线*/ { line(100,120,600,450); textcolor(YELLOW); directvideo=0; gotoxy(45,5); cprintf(Line from:X0 Y0 Z0 ); gotoxy(45,6); cprintf(Line to :X500 Y0 Z330); gotoxy(45,7); cprintf(Units :Pixel); gotoxy(45,8); cprintf(Line now:); } void draw_line_cabu(int step)/*关键的直线插补函数*/ { int Xe=600,Ye=450; float Fm,Xm=100,Ym=120; setcolor(RED); moveto(Xm,Ym); while(Xm=XeYm=Ye) { Fm=(Ym-120)*(Xe-100)-(Xm-100)*(Ye-120); if(Fm=0) Xm=Xm+step; else Ym=Ym+step; lineto(Xm,Ym); gotoxy(55,8); printf(X%3.0f Y0 Z%3.0f,Xm-100,Ym-120); delay(1100); } } /* 圆插补部分的函数区*/ void init_graph() /*图形系统初始化*/ { int gdrive=DETECT,gmode; initgraph(gdrive,gmode,); cleardevice(); } void acrroods() /*屏幕中心坐标*/ { x0=getmaxx()/2; y0=getmaxy()/2; } void draw_Base_circle() /*画圆及写参数*/ { line(x0-200,y0,x0+200,y0); outtextxy(x0+220,y0,Z); line(x0,y0-180,x0,y0+180); outtext

文档评论(0)

1亿VIP精品文档

相关文档