3d objects can be described by a set of points on a regular grid in Euclidean space. Given the n x 3 matrix m defining some number of objects on a grid with resolution res, return a matrix p that defines these objects after dilation by a single point on the grid in every direction.
Assume an "edge" connectivity scheme for dilation (i.e. each point in the grid has 18 neighbors, one for each surface of a cube and one for each edge of the cube). Any given point should appear in the output matrix once.
m = [0 0 0]; res = 1; >> p = dilate3d(m,res)
p =
-1 -1 0
-1 0 -1
-1 0 0
-1 0 1
-1 1 0
0 -1 -1
0 -1 0
0 -1 1
0 0 -1
0 0 0
0 0 1
0 1 -1
0 1 0
0 1 1
1 -1 0
1 0 -1
1 0 0
1 0 1
1 1 0
Solution Stats
Problem Comments
Solution Comments
Show commentsProblem Recent Solvers8
Suggested Problems
-
2372 Solvers
-
Who knows the last digit of pi?
691 Solvers
-
546 Solvers
-
Sum of diagonal of a square matrix
1637 Solvers
-
Tony's trick for duplicating an mx1 vector n times
58 Solvers
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!