Plot 3D cylindrical voxels filled or empty (boolean)
46 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Diego Mesa
el 23 de Mayo de 2020
Comentada: darova
el 25 de Mayo de 2020
Hi,
I have a matrix called h of size 9x36x20 [r, theta, z], containing 1's and 0's. Each number represent a voxel in a cylindrical figure. I would like to be able to plot in a 3d figure those with a 1 with some filled color, while leaving those with a zero transparent (could be with borders though, to make them look like a grid).
I would like to obtain something like this (drawn in inkscape, the matlab figure would be the whole cylinder with some red voxels).
Is it possible? I have already plotted some horizontal slices using patch to show the data at different heights, but this way is more representative
1 comentario
Respuesta aceptada
darova
el 24 de Mayo de 2020
I draw your data
clc,clear
cla
load example.mat
[m,n,k] = size(diff);
[r,t,z] = ndgrid(1:m,1:n,1:k);
[x,y] = pol2cart(t,r);
ix = logical(diff);
plot3(x(ix),y(ix),z(ix),'.r')
axis vis3d
Here is the result. It's hard to see anything. Can you explain more?
6 comentarios
darova
el 25 de Mayo de 2020
Easy way to add walls
t = (-15:15)*pi/180; % angle
t = [t(1) t t(end)];
[x1,y1] = pol2cart(t,1); % small arc
[x2,y2] = pol2cart(t,2); % large arc
x2([1 end]) = x1([1 end]);
y2([1 end]) = y1([1 end]);
Más respuestas (1)
Ver también
Categorías
Más información sobre Lighting, Transparency, and Shading en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!