《圆弧插补C语言程序.doc》由会员分享,可在线阅读,更多相关《圆弧插补C语言程序.doc(3页珍藏版)》请在三一文库上搜索。
1、圆弧插补c语言源代码专业 2008-11-24 20:50:26 阅读253评论0 字号:大中小 订阅#include <stdio.h>#include <math.h>int ArcXY(double dfx0,double dfy0,double dfrx, double dfry,int angle);int symbol(double number);main()ArcXY(0,0,-3,5,360);getch();int ArcXY(double dfx0,double dfy0,double dfrx, double dfry,int angle)FIL
2、E *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 - df
3、rx;j = dfy0 - dfry;x = dfx0 ;y = dfy0 ;step = ang = 180 * 2 * asin(f/(2*dfr)/3.1415926;if(dfxO > 0) && (dfyO > 0) | (dfxO < 0) && (dfyO < 0)flag = direction;if(dfx0 < 0) && (dfyO > 0) | (dfx0 > 0) && (dfyO < 0)flag = -direction;f1= fopen("
4、c:c.txt","w+");if(statex =1)x = x - 1;if(statey =1)y = y - 1;fprintf(f1,"%f,",x);fprintf(f1,"%fn",y);while(ang < angle)dx = f * (j + flag*(f * i)/(2 * dfr)/dfr;dy = f * (i - flag*(f * j)/(2 * dfr)/dfr;tempx = symbol(x);tempy = symbol(y);x = x + dx;y = y + dy;fprintf(f1,"%f,",x);fprintf(f1,"%fn",y);if( (tempx 匸symbol(x) |(tempy != symbol(y)flag = -flag;i = i - dx;j = j + dy;ang = ang + step;return 0;int symbol(double number)if(number > 0)return 1;elsereturn -1;