Rasterize a triangle in 3-D space.

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

Do you have any attempts? Your data where is?

Sign in to comment.

 Accepted Answer

Matt J
Matt J on 11 Oct 2019
Edited: Matt J on 11 Oct 2019
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

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.

More Answers (0)

Categories

Asked:

on 11 Oct 2019

Commented:

on 17 Oct 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!