• 大小: 6KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-13
  • 语言: Matlab
  • 标签: matlab  

资源简介

程序非常详细,里面有很多注释,下点功夫是能够看懂的,非常好的作为并联机构工作空间研究的材料

资源截图

代码片段和文件信息

k=size(CIRset2);%k为圆数量
s_temp=0;%同一z坐标下的圆弧数量
for i=1:k
    %求圆i与其他圆的交点
    s=0;
    Pset_temp=[];
    for j=1:i-1
        Pset0=cirints(CIRset(1:2i)CIRset(3i)CIRset(1:2j)CIRset(3j));
        if(~(isnan(Pset0)))
            l=size(Pset02);
            Pset_temp(:s+1:s+l)=Pset0;
            s=s+l;            
        end
    end
    for j=i+1:k
        Pset0=cirints(CIRset(1:2i)CIRset(3i)CIRset(1:2j)CIRset(3j));
        if(~(isnan(Pset0)))
            l=size(Pset02);
            Pset_temp(:s+1:s+l)=Pset0;
            s=s+l;            
        end
    end
    %求出圆i与其他圆的交点,交点集合为Pset_temp交点个数为s
    %根据交点离散圆i
    if(isempty(Pset_temp))
        ARCset_temp=[CIRset(1:3i);-pi;pi];
        s=1;
    else
        angs=atan2(Pset_temp(2:)-CIRset(2i)*ones(1s)Pset_temp(1:)-CIRset(1i)*ones(1s));
        angs=sort(angs);
        ARCset_temp=[CIRset(1i)*ones(1s);CIRset(2i)*ones(1s);CIRset(3i)*ones(1s);angs;angs(2:s)angs(1)+2*pi];
    end
    %圆i离散为圆弧,圆i的圆弧集合为ARCset_temp圆弧数量为s
    %圆i的圆弧进行判断,保留圆弧交集边界的弧
    ARCset_utemp=ARCset_temp;
    for j=1:k
        for j_temp=1:s
            ta_temp=(ARCset_temp(4j_temp)+ARCset_temp(5j_temp))/2;
            r_temp=ARCset_temp(3j_temp);
            x_temp=ARCset_temp(1j_temp)+r_temp*cos(ta_temp);
            y_temp=ARCset_temp(2j_temp)+r_temp*sin(ta_temp);
            dlta_temp=(x_temp-CIRset(1j))^2+(y_temp-CIRset(2j))^2-(CIRset(3j))^2;
            if(CIRset(3j)==Rmax)
                if(~((dlta_temp<0)||(abs(dlta_temp)                    ARCset_utemp(:j_temp)=nan;
                end
            else
            
                if(~((dlta_temp>0)||(abs(dlta_temp)                    ARCset_utemp(:j_temp)=nan;
                end
            end
        end
    end
    ARCset_utemp(:any(isnan(ARCset_utemp)))=[ ];
    s=size(ARCset_utemp2);
    %保留下来的圆i上的交集边界弧集合,弧集为ARCset_utemp,弧数量为s
    %保留下来的圆弧放入同一z坐标下的弧集中
    ARCset(:s_temp+1:s_temp+s)=ARCset_utemp;
    s_temp=s_temp+s;
    %得到同一z坐标下的圆交集边界弧集合在圆i上的ARCset子集
end
%得到同一z坐标下的圆交集边界弧集合ARCset
clear s i j k ARCset_temp ARCset_utemp Pset_temp j_temp ta_temp r_temp x_temp y_temp dlta_temp Pset0 l angs s_temp;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-19 20:14  delta-workspace\
     文件         627  2009-10-23 16:56  delta-workspace\Trircir.m
     文件        1200  2009-10-23 17:06  delta-workspace\Trirspace.m
     文件        2404  2009-04-02 16:23  delta-workspace\arcsets.m
     文件         224  2009-03-26 15:59  delta-workspace\cirints.m
     文件         256  2009-03-26 15:59  delta-workspace\cirintsuv.m
     文件         601  2009-04-01 19:29  delta-workspace\cirsets.m
     文件         400  2009-03-26 17:02  delta-workspace\transuv.m
     文件         339  2009-03-26 17:02  delta-workspace\transxy.m
     文件        3941  2018-07-03 16:50  delta-workspace\workspace_main.m
     文件         596  2009-10-23 17:05  delta-workspace\yanzhen.m

评论

共有 条评论