直线插补与圆弧插补程序设计
9页1、直线插补与圆弧插补程序设计一直线插补1.直线插补程序流程图置 FM=0输入 XE、YE、XOY、NXYFM0?XOR=1 或 4?XOR=1 或 2?ZF=1ZF=2ZF=3ZF=4FM=FM-YEFM=FM+YE调用走步控制程序NXY=NXY-1NXY=0?开始结束YNYNY NYN直线插补程序流程图 2.直线插补程序设计#include #include #include void cb_line(int x1, int y1, int x2, int y2) int dx, dy, n, k, i, f; int x, y; dx = abs(x2-x1); dy = abs(y2-y1); n = dx + dy; if (x2 = x1) k = y2 = y1 ? 1: 4; x = x1; y = y1; else k = y2 = y1 ? 2: 3; x = x2; y = y2; putpixel(x, y, 1); for (i = 0, f = 0; i = 0) switch (k) case 1: putpixel(x+, y, 1); f -= dy; b
2、reak; case 2: putpixel(x, y+, 1); f -= dx; break; case 3: putpixel(x-, y, 1); f -= dy; break; case 4: putpixel(x, y-, 1); f -= dx; break; else switch (k) case 1: putpixel(x, y+, 1); f += dx; break; case 2: putpixel(x-, y, 1); f += dy; break; case 3: putpixel(x, y-, 1); f += dx; break; case 4: putpixel(x+, y, 1); f += dy; break; int main() cb_line(0,0,15,20); /* #include int ArcXY(double dfx0,double dfy0,double dfrx, double dfry,int angle); int symbol(double number);RNS=1,6?RNS=2,5?ZF=4ZF=4main()
3、 ArcXY(0,0,-3,5,360); getch(); int ArcXY(double dfx0,double dfy0,double dfrx, double dfry,int angle) FILE *f1;double i,j,dx,dy,dfr,x,y,ang,step,f = 0.01;int flag,tempx,tempy,statex,statey,direction = 1;dfr = sqrt(dfrx - dfx0) * (dfrx - dfx0) + (dfry - dfy0) * (dfry - dfy0);if(dfx0 = 0)dfx0 = 1;dfrx = dfrx + 1;statex =1;if(dfy0 = 0)dfy0 = 1;dfry = dfry + 1;statey =1;dfrx = 2 * dfx0 - dfrx;i = dfx0 - dfrx;j = dfy0 - dfry;x = dfx0 ;y = dfy0 ;step = ang = 180 * 2 * asin(f/(2*dfr)/3.1415926;if(dfx0 0) elsereturn -1;
《直线插补与圆弧插补程序设计》由会员wm****3分享,可在线阅读,更多相关《直线插补与圆弧插补程序设计》请在金锄头文库上搜索。
2023-08-15 5页
2023-07-18 2页
2023-04-07 5页
2023-04-06 4页
2023-04-06 3页
2023-04-06 4页
2023-04-06 3页
2023-04-06 3页
2023-04-06 2页
2023-04-06 2页