本系統設計所用的OFF檔案如下所示:
![]()
這里共提供了100個OFF檔案,用來驗證不同三維物體的效果.
整個系統分為兩個部分:off檔案的獲取以及不同視角的物體顯示和輪廓顯示,
其中OFF檔案的讀取如下所示:
%讀取模型中的第一條線條
header = fgetl(fid);
if ~strcmp(upper(header),'OFF'),
disp('Warning, wrong format, however, we will go on')
end;
%讀取維度數值
dimension = str2num(fgetl(fid));
%讀取頂點
vertices = -ones(dimension(1),3);
for I=1:dimension(1),
vertices(I,:) = str2num(fgetl(fid));
end;
%讀取面
faces = -ones(dimension(2),3);
for J=1:dimension(2),
face = str2num(fgetl(fid));
if length(face(2:end)) > size(faces,2),
faces = [faces -ones(size(faces,1),length(face)-1-size(faces,2))];
end
faces(J,:) = face(2:end)+1;
end;
faces(faces==-1)=NaN;
%讀取完畢,關閉檔案
fclose(fid);
%將資料保存到cell格式中保存
OFF_3D.dimension = dimension;
OFF_3D.vertices = vertices;
OFF_3D.faces = faces;
這里,讀取OFF檔案的思路就是根據OFF檔案的基本格式進行的,OFF檔案時三維格式的檔案,其中主要包括了點,線,面,因此,在這里,我們分別對幾個引數進行讀取,
其中影像的顯示代碼如下所示:
patch('vertices', OFF_3D.vertices, 'faces',OFF_3D.faces, 'facecolor',[0.5 0.5 0.5]);
view([0 0 1]);
主要使用了MATLAB中的patch函式,這個函式可以將MATLAB中的點線面進行三維顯示,然后通過VIEW函式實作不同視角的顯示,
以上就是整個系統的基本實作部分,具體的詳細代碼請看具體的工程檔案:

其中GUI檔案夾是最后帶GUI操作界面的程式,NO_GUI檔案夾是一般的測驗檔案,你最后使用的GUI檔案下的代碼包,
二、仿真結果

其顯示效果如下所示:






注意,全視圖立體顯示,你需要點擊上面圖中的紅色部分,作為調整視角的操作,來看其余不同角度的三維視覺效果,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/168169.html
標籤:其他
