📄 surf2line.m
字号:
%数据分线
clc;
clear;
clc;
[FileName,PathName]= uigetfile('*.*','select data file');
if FileName==0;
return;
end
outfilename=[PathName,'outlist.txt'];
surf=load([PathName,FileName]);
[FileName,PathName]= uigetfile('*.*','select Setup file');
if FileName==0;
return;
end
setup=load([PathName,FileName]);
% customangle=80;
% distant=5;
customangle=setup(1);
distant=setup(2);
AddScrip='E.txt';
[np,xyz]=size(surf);
if np<3;
return;
end
xyp1=surf(1,1)+surf(1,2)*i;
xyp2=surf(2,1)+surf(2,2)*i;
plot([xyp1,xyp2],'b');
grid on;
hold on;
plot([xyp1,xyp2],'g*','LineWidth',2);
List=zeros(np,2);
List(:,1)=[1:np]';
LineID=1;
List(1,2)=LineID;
List(2,2)=LineID;
xyp1old=xyp1;
ii=3;
while ii<=np;
xyp1=surf(ii-2,1)+surf(ii-2,2)*i;
xyp2=surf(ii-1,1)+surf(ii-1,2)*i;
if xyp2==xyp1
xyp1=xyp1old;
else
xyp1old=xyp1;
end
xyp3=surf(ii,1)+surf(ii,2)*i;
line1=xyp2-xyp1;
line2=xyp3-xyp2;
if xyp2==xyp3
xyp1old=xyp1;
disp([num2str(ii),'is true']);
plot([xyp2,xyp3],'b','LineWidth',2);
grid on;
hold on;
plot([xyp2,xyp3],'g*');
List(ii,2)=LineID;
ii=ii+1;
xyp2=surf(ii-1,1)+surf(ii-1,2)*i;
xyp3=surf(ii,1)+surf(ii,2)*i;
end
angleline=angle(line2/line1)*180/pi;
if angleline>customangle | angleline<-customangle | abs(line2)>distant
disp([num2str(ii),'is fault']);
plot([xyp2,xyp3],'k');
grid on;
hold on;
plot([xyp2,xyp3],'r*','MarkerSize',10);
List(ii,2)=LineID+1;
LineID=LineID+1;
ii=ii+1
xyp2=surf(ii-1,1)+surf(ii-1,2)*i;
xyp3=surf(ii,1)+surf(ii,2)*i;
disp([num2str(ii),'is true']);
plot([xyp2,xyp3],'b','LineWidth',1);
grid on;
hold on;
plot(xyp3,'g*','MarkerSize',5);
List(ii,2)=LineID;
ii=ii+1;
else
disp([num2str(ii),'is true']);
plot([xyp2,xyp3],'b','LineWidth',1);
grid on;
hold on;
plot([xyp2,xyp3],'g*','MarkerSize',5);
List(ii,2)=LineID;
ii=ii+1;
end
end
disp(['Total Line:',num2str(List(end,2))])
save(outfilename,'-ascii','List');
save List.mat List;
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
%******************************* EOF **************************************
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -