1. 程式人生 > 實用技巧 >三維建模obj檔案

三維建模obj檔案

本系統設計所用的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檔案下的程式碼包。

二、模擬結果

其顯示效果如下所示:

注意,全檢視立體顯示,你需要點選上面圖中的紅色部分,作為調整視角的操作,來看其餘不同角度的三維視覺效果。