我從快速繪製一個簡單的3D模型(從.dxf文件讀取)時遇到了問題。孔對象由點和它們之間的線來定義。如何在Matlab中繪製線段中的3D對象
我有一個座標矩陣。每一行都是一個獨特的點,每一列都是一個座標。
然後,我有一個尺寸爲Nx2
的索引矩陣,其中N
是模型中的行數,每行都有2個從座標矩陣索引的點,它們應該由一條直線連接。
所以數據的結構與三角測量後的數據非常相似,我需要一個類似於trimesh
或trisurf
的函數,雖然不是用於三角形,而是用於線。
我可以這樣做,讓for
循環遍歷整個索引矩陣並分別繪製每行,但與內置函數如trimesh
相比,它非常慢。
簡單的例子:
%Coordinate matrix
NODES=[
-12.76747 -13.63075 -6.41142
-12.76747 -8.63075 -6.41142
-8.76747 -13.63075 -6.41142
-16.76747 -13.63075 -6.41142
-11.76747 -7.63075 -2.41142
];
%index matrix
LINES=[
1 2
3 4
1 4
3 5
1 5
];
%The slow way of creating the figure
figure(1)
hold on
for k=1:length(LINES)
plot3(NODES(LINES(k,:), 1), NODES(LINES(k,:), 2), NODES(LINES(k,:), 3), '.-')
end
view(20, 20)
hold off
我想找到一個更好更快的方式來產生這個數字
請添加[mcve],以便我們可以查看問題並嘗試修復它。 – Adriaan
我添加一個簡單的例子 – nithiel