大家好,有人知道如何在Octave中可视化delaunay3()函数的输出中的四面体吗?
http://www.obihiro.ac.jp/~suzukim/masuda/octave/html3/octave_151.html
在MATLAB中,这种可视化是通过tetramesh()函数完成的,但是Octave没有内置这个函数!
该链接确实提到了triplot和trimesh函数,但它们只创建三角形,而不是四面体。
发布于 2011-10-27 06:21:13
不幸的是,我对此知之甚少,无法给出任何想法。但是,如果你以前没有见过它,我想提一下。已经有了discussions on tetramesh before。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) https://stackoverflow.com/questions/7613877
复制相似问题