Find surface triangles from tetrahedral mesh
Find surface triangles from tetrahedral mesh typically obtained
with delaunayn
.
surf.tri(p, t)
p |
An |
t |
Matrix with 4 columns, interpreted as output of
|
surf.tri
and convhulln
serve a similar purpose in 3D,
but surf.tri
also works for non-convex meshes obtained e.g. with
distmeshnd
. It also does not produce currently unavoidable
diagnostic output on the console as convhulln
does at the Rterm
console–i.e., surf.tri
is silent.
An m
-by-3
index matrix of which each row defines a
triangle. The indices refer to the rows in p
.
surf.tri
was based on Matlab code for mesh of Per-Olof Persson
(http://persson.berkeley.edu/distmesh/).
Raoul Grasman
## Not run: # more extensive example of surf.tri # url's of publically available data: data1.url = "http://neuroimage.usc.edu/USCPhantom/mesh_data.bin" data2.url = "http://neuroimage.usc.edu/USCPhantom/CT_PCS_trans.bin" meshdata = R.matlab::readMat(url(data1.url)) elec = R.matlab::readMat(url(data2.url))$eeg.ct2pcs/1000 brain = meshdata$mesh.brain[,c(1,3,2)] scalp = meshdata$mesh.scalp[,c(1,3,2)] skull = meshdata$mesh.skull[,c(1,3,2)] tbr = t(surf.tri(brain, delaunayn(brain))) tsk = t(surf.tri(skull, delaunayn(skull))) tsc = t(surf.tri(scalp, delaunayn(scalp))) rgl::rgl.triangles(brain[tbr,1], brain[tbr,2], brain[tbr,3],col="gray") rgl::rgl.triangles(skull[tsk,1], skull[tsk,2], skull[tsk,3],col="white", alpha=0.3) rgl::rgl.triangles(scalp[tsc,1], scalp[tsc,2], scalp[tsc,3],col="#a53900", alpha=0.6) rgl::rgl.viewpoint(-40,30,.4,zoom=.03) lx = c(-.025,.025); ly = -c(.02,.02); rgl::rgl.spheres(elec[,1],elec[,3],elec[,2],radius=.0025,col='gray') rgl::rgl.spheres( lx, ly,.11,radius=.015,col="white") rgl::rgl.spheres( lx, ly,.116,radius=.015*.7,col="brown") rgl::rgl.spheres( lx, ly,.124,radius=.015*.25,col="black") ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.