MATLAB Answers

Kenneth
0

Rasterize a triangle in 3-D space.

Asked by Kenneth
on 11 Oct 2019
Latest activity Commented on by Kenneth
on 17 Oct 2019 at 22:16
I would like to rasterize a triangle in 3-D space... This is, if I have X,Y,Z generated by a meshgrid, I would like to mark all voxel centered on XYZ through which a triangle (specified by 3-D vertices) passes through. Are there any Matlab native methods to do this? It seems pretty basic, but I can't figure out what functions would be a straightforward path.

  1 Comment

darova
on 11 Oct 2019
Do you have any attempts? Your data where is?

Sign in to comment.

1 Answer

Answer by Matt J
on 11 Oct 2019
Edited by Matt J
on 11 Oct 2019
 Accepted Answer

One way is to use vert2lcon,
as follows,
tolerance1=1;
tolerance2=1.5;
V=[x1,y1,z1;... %triangle vertices
x2,y2,z2;
x3,y3,z3;]
[A,b,Aeq,beq]=vert2lcon(V);
C=[X(:).';Y(:).';Z(:).'];
intriangle = all( A*C<=b+tolerance1 & abs(Aeq*C-beq)<=tolerance2 ,1);
result=reshape(intriangle, size(X));

  1 Comment

Kenneth
on 17 Oct 2019 at 22:16
Thanks, it makes sense - I'm gettting the chance to look into it. I think this should work for my purposes. I'm just a little concerned it will be sensitive to the tolerance settings either leading to holes or too thick areas.

Sign in to comment.