資源簡介
用逐點添加的方法對散點建立delaunay三角網,適合教學用
代碼片段和文件信息
function?jieguo=delaunaytriangle
clear
clc
[filenamelpathnamel]=uigetfile(‘*.xyz‘‘pick?an?file?for?read‘);
fid1=fopen(strcat(pathnamelfilenamel)‘rt‘);
if(fid1==-1)
????msgbox(‘Input?file?of?path?is?not?correct!‘‘Warning‘‘warn‘);
????return;
end
data=textscan(fid1‘%f‘5000000);%讀取所有點
fclose(fid1);
n=length(data{11})/8;
dat=zeros(n12);%生成相應坐標矩陣9位為柱面坐標中的角度值,10位為柱面分割編號11位是之后的tempdat用來存點號的
pdat=zeros(n2);%二維delaunay用
cdat=zeros(n3);%三維delaunay用
for?i=1:1:n
????for?j=1:1:8
????????dat(ij)=data{11}((i-1)*8+j);
????end
end;%循環讀取點進入空矩陣
x=0;y=0;zmax=-1000;zmin=1000;%用來計算點的中軸坐標以及z的范圍
for?i=1:1:n?%計算點的中軸坐標
????x=dat(i3)/n+x;
????y=dat(i4)/n+y;
????zmax=max(zmaxdat(i5));
????zmin=min(zmindat(i5));
end
for?i=1:1:n?%坐標系平移到軸心,并算出每個點柱面坐標中的θ
????dat(i3)=dat
- 上一篇:鯨魚優化算法MATLAB程序
- 下一篇:黑莓App world3.1版
評論
共有 條評論