C语言模拟直线插补与圆弧插补程序的设计说明Word下载.docx

上传人:b****7 文档编号:22402782 上传时间:2023-02-03 格式:DOCX 页数:24 大小:86.38KB
下载 相关 举报
C语言模拟直线插补与圆弧插补程序的设计说明Word下载.docx_第1页
第1页 / 共24页
C语言模拟直线插补与圆弧插补程序的设计说明Word下载.docx_第2页
第2页 / 共24页
C语言模拟直线插补与圆弧插补程序的设计说明Word下载.docx_第3页
第3页 / 共24页
C语言模拟直线插补与圆弧插补程序的设计说明Word下载.docx_第4页
第4页 / 共24页
C语言模拟直线插补与圆弧插补程序的设计说明Word下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

C语言模拟直线插补与圆弧插补程序的设计说明Word下载.docx

《C语言模拟直线插补与圆弧插补程序的设计说明Word下载.docx》由会员分享,可在线阅读,更多相关《C语言模拟直线插补与圆弧插补程序的设计说明Word下载.docx(24页珍藏版)》请在冰豆网上搜索。

C语言模拟直线插补与圆弧插补程序的设计说明Word下载.docx

voidyi();

voider();

voidsan();

voidsi();

voidte();

voidshuchu();

m=menu();

a[0][0]=X0;

a[0][1]=Y0;

switch(m)

{

case1:

yi();

shuchu();

break;

case2:

er();

case3:

san();

case4:

si();

case5:

te();

default:

printf("

无法插补\n"

);

}

}

intmenu()

intt;

printf("

输入起点坐标\n"

scanf("

%d,%d"

&

X0,&

Y0);

输入终点坐标\n"

Xe,&

Ye);

if(Xe>

=X0&

&

Ye>

=Y0)

t=1;

elseif(Xe<

=Y0)

t=2;

Ye<

t=3;

elseif(Xe>

t=4;

elseif(Xe==X0&

((Ye>

Y0&

Y0>

=0)||(Ye<

Y<

=0)))

t=5;

else

t=6;

return(t);

voidyi()

F=0;

N=Xe-X0+Ye-Y0;

X=X0;

Y=Y0;

for(i=1;

i<

=N;

i++)

{if(F>

=0)

{X++;

a[i][0]=X;

a[i][1]=Y;

F-=Ye-Y0;

else

{Y++;

F+=Xe-X0;

}

voider()

N=X0-Xe+Ye-Y0;

{if(F>

{X--;

F+=X0-Xe;

voidsan()

N=X0-Xe+Y0-Ye;

{X--;

F-=Y0-Ye;

Y--;

voidsi()

N=Xe-X0+Y0-Ye;

{Y--;

voidte()

N=Ye-Y0;

if(Ye>

0)

{Y++;

a[i][0]=X;

elseif(Ye<

{Y--;

voidshuchu()

for(i=0;

{

printf("

%d"

i);

%d,%d\n"

a[i][0],a[i][1]);

3.程序结果

例如起点(0,0)终点(6,4)

步数坐标

11,0

21,1

32,1

42,2

53,2

64,2

74,3

85,3

96,3

106,4

二.圆弧插补

1.圆弧插补程序流程图

2.圆弧插补程序

math.h"

intX0,Y0,X1,Y1,X2,Y2,X3,Y3,X4,Y4;

inti=1,r,f,s;

voidyishun();

voidyini();

voidershun();

voiderni();

voidsanshun();

voidsanni();

voidsishun();

voidsini();

yishun();

yini();

ershun();

sanshun();

case6:

case7:

sishun();

case8:

intt;

输入原点坐标\n"

X3,&

Y3);

X4,&

Y4);

1:

顺时针圆弧\n"

2:

逆时针圆弧\n"

%d"

s);

X1=X3-X0;

Y1=Y3-Y0;

X2=X4-X0;

Y2=Y4-Y0;

r=X1*X1+Y1*Y1;

if(X1>

=0&

Y1>

0&

s==1)

elseif(X1>

s==2)

elseif(X1<

s==1)

t=3;

Y1<

s==2)

t=4;

t=6;

t=7;

t=8;

t=9;

voidyishun()

do

f=X1*X1+Y1*Y1-r;

if(f>

Y1--;

f-=2*Y1+1;

i++;

X1,Y1);

X1++;

f+=2*X1+1;

while(Y1!

(X1!

=X2||Y1!

=Y2));

if(Y1==0)

sishun();

voidyini()

X1--;

f-=2*X1+1;

Y1++;

f+=2*Y1+1;

while(X1!

if(X1==0)

voiderni();

erni();

voidershun()

f=X1*X1+Y1*Y1-r;

if(f>

X1++;

voidyishun();

yishun();

voiderni()

X1--;

sanni();

voidsanshun()

Y1++;

ershun();

voidsanni()

do

Y1--;

sini();

voidsishun()

sanshun();

voidsini()

yini();

3.程序结果

例如圆心(0,0)起点(4,3)终点(4,3)

步数坐标

14,3

23,3

33,4

42,4

52,5

61,5

70,5

80,4

9-1,4

10-2,4

11-3,4

12-3,3

13-4,3

14-4,2

15-5,2

16-5,1

17-5,0

18-4,0

19-4,-1

20-4,-2

21-4,-3

22-3,3

23-3,-4

24-2,-4

25-2,-5

26-1,-5

270,-5

280,-4

291,-4

302,-4

313,-4

323,-3

334,-3

344,-2

355,-2

365,-1

375,0

384,0

394,1

404,2

414,3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1