收藏 分享(赏)

matlab圆弧插补程序+郑国安.docx

上传人:无敌 文档编号:42321 上传时间:2018-03-05 格式:DOCX 页数:4 大小:72.78KB
下载 相关 举报
matlab圆弧插补程序+郑国安.docx_第1页
第1页 / 共4页
matlab圆弧插补程序+郑国安.docx_第2页
第2页 / 共4页
matlab圆弧插补程序+郑国安.docx_第3页
第3页 / 共4页
matlab圆弧插补程序+郑国安.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、Matlab 圆弧插补程序+郑国安 X0=input( 请输 入起 点横 轴 坐标 Xn X0 = ); Y0=input( 请输 入起 点纵 轴 坐标 Yn Y0 = ); Xe=input( 请 输入 终点 横轴 坐标 Xn Xe =); Ye=input( 请输 入终 点纵 轴 坐标 Yn Ye = ); R=input( 请 输入 圆弧 半径n R = ); NorF=input( 请 选择 圆心(1 代表靠 近原 点 2 代表 远 离原点):n ); SorN=input( 请 选择 补走 向(1 代 表顺 时针/2 代表 逆时 针):n ); h=input( 请输 入步 长n h

2、 = ); if(Xe=X0) y01 = 0; x02 = 2*Xe; y02 = 2*Ye; R = sqrt(Xe2+Ye2); mark = 0; else mark = 1; k1 = (Ye-Y0)/(Xe-X0); k2 = -1/k1; Xz=(X0+Xe)/2; Yz=(Y0+Ye)/2; % 两 点中 点坐 标 L1=sqrt(X0-Xe)2+(Y0-Ye)2)/2 ; % 两点 之间 距离 的一半 L2=sqrt(R2-L12); beta = atan(k2); x01 = Xz-L2*cos(beta); y01 = Yz-L2*sin(beta); % 靠 近 原点

3、的 圆心 x02 = Xz+L2*cos(beta); y02 = Yz+L2*sin(beta); % 远 离原点 的圆 心 end if(NorF=1) % 判 断 圆心位 置 if(x012+y012-x022-y022)h*h/2|(step=0 % 判 断 动点所 在象 限 end if(Xm-x0)0) XOY=2; end if(Xm-x0)=0 y1=Ym,Ym-h; else x1=Xm,Xm+h; y1=Ym,Ym; end else if(Fm=0) x1=Xm,Xm+h; y1=Ym,Ym; else x1=Xm,Xm; y1=Ym,Ym+h; end else if(

4、Fm0) x1=Xm,Xm; y1=Ym,Ym-h; else x1=Xm,Xm-h; y1=Ym,Ym; end end case 3 if(SorN=1) if(Fm=0) x1=Xm,Xm; y1=Ym,Ym+h; else x1=Xm,Xm-h; y1=Ym,Ym; end else if(Fm0) x1=Xm,Xm+h; y1=Ym,Ym; else x1=Xm,Xm; y1=Ym,Ym-h; end end case 4 if(SorN=1) if(Fm=0) x1=Xm,Xm-h; y1=Ym,Ym; else x1=Xm,Xm; y1=Ym,Ym-h; end else if(

5、Fm0) x1=Xm,Xm; y1=Ym,Ym+h; else x1=Xm,Xm+h; y1=Ym,Ym; end end end step=step+1; plot(x1,y1,r-); % 由 此点 和前 一点坐 标组 成 的 2 个向 量 画直线 Xm=x1(2); % 保 存此 点坐 标供 下 次作图 和比 较时 使用 Ym=y1(2); Fm = (Xm-x0)2+(Ym-y0)2-R2; hold on; text(x1(1)+x1(2)/2,(y1(1)+y1(2)/2,num2str(step) pause(0.5); % 延 时程 序形 参为每 走一 步所 用时 间 end xlabel(X) ylabel(Y) title( 四象限 圆弧 插补) hold off;

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报