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 Kommentar

darova
darova am 11 Okt. 2019
Do you have any attempts? Your data where is?

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Matt J
Matt J am 11 Okt. 2019
Bearbeitet: Matt J am 11 Okt. 2019

0 Stimmen

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 Kommentar

Kenneth
Kenneth am 17 Okt. 2019
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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Surfaces, Volumes, and Polygons finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 11 Okt. 2019

Kommentiert:

am 17 Okt. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by