1

delaunay3()こんにちは、オクターブの関数の出力で四面体を視覚化する方法を知っている人はいますか?

http://www.obihiro.ac.jp/~suzukim/masuda/octave/html3/octave_151.html

MATLAB では、この可視化は関数で行われtetramesh()ますが、Octave にはこの関数が組み込まれていません!

リンクにはtriplotおよびtrimesh関数が記載されていますが、それらは三角形のみを作成し、四面体は作成しません。

4

1 に答える 1

0

残念ながら、私はこれについて考えるのに十分な知識がありません。しかし、あなたが前にそれを見たことがない場合に備えて、私は以下に言及したいと思います. 以前にテトラメッシュに関する議論がありました。簡単な解決策が次のように書かれていmartin_helmます。

function tetramesh( T, X, C)
  if nargin < 3
     C = mod((1:size(T, 1))'-1, size(colormap(), 1) + 1);
  endif
  triang = [T(:, 1) T(:, 2) T(:, 3); ...
            T(:, 2) T(:, 3) T(:, 4); ...
            T(:, 3) T(:, 4) T(:, 1); ...
            T(:, 4) T(:, 1) T(:, 2)];
  patch("Faces", triang, "Vertices", X, "FaceVertexCData", [C; C; C; C])
endfunction 

いくつかの使用例とともに:

backend("fltk") % backend("gnuplot") could also be used
d = [-1 1];
[x,y,z] = meshgrid(d,d,d);
x = [x(:);0];
y = [y(:);0];
z = [z(:);0];

tetra = delaunay3(x,y,z);
X = [x(:) y(:) z(:)];
tetramesh(tetra, X)
view(30,30) 
于 2011-10-26T22:21:12.880 に答える