Cody

# Problem 1785. Dilate a 3d object sampled on a regular grid

Solution 301913

Submitted on 12 Aug 2013 by Alfonso Nieto-Castanon
• Size: 31
• This is the leading solution.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
%% m = [0 0 0]; res = 1; y_correct = [-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]; assert(isequal(dilate3d(m,res),y_correct))

2   Pass
%% m = [100 -100 0.5; ... 100 -90 0.5; ... 90 -90 0.5; ... 110 -90 0.5; ... 100 -80 0.5]; res = 10; y_correct = [80.0000 -100.0000 0.5000; ... 80.0000 -90.0000 -9.5000; ... 80.0000 -90.0000 0.5000; ... 80.0000 -90.0000 10.5000; ... 80.0000 -80.0000 0.5000; ... 90.0000 -110.0000 0.5000; ... 90.0000 -100.0000 -9.5000; ... 90.0000 -100.0000 0.5000; ... 90.0000 -100.0000 10.5000; ... 90.0000 -90.0000 -9.5000; ... 90.0000 -90.0000 0.5000; ... 90.0000 -90.0000 10.5000; ... 90.0000 -80.0000 -9.5000; ... 90.0000 -80.0000 0.5000; ... 90.0000 -80.0000 10.5000; ... 90.0000 -70.0000 0.5000; ... 100.0000 -110.0000 -9.5000; ... 100.0000 -110.0000 0.5000; ... 100.0000 -110.0000 10.5000; ... 100.0000 -100.0000 -9.5000; ... 100.0000 -100.0000 0.5000; ... 100.0000 -100.0000 10.5000; ... 100.0000 -90.0000 -9.5000; ... 100.0000 -90.0000 0.5000; ... 100.0000 -90.0000 10.5000; ... 100.0000 -80.0000 -9.5000; ... 100.0000 -80.0000 0.5000; ... 100.0000 -80.0000 10.5000; ... 100.0000 -70.0000 -9.5000; ... 100.0000 -70.0000 0.5000; ... 100.0000 -70.0000 10.5000; ... 110.0000 -110.0000 0.5000; ... 110.0000 -100.0000 -9.5000; ... 110.0000 -100.0000 0.5000; ... 110.0000 -100.0000 10.5000; ... 110.0000 -90.0000 -9.5000; ... 110.0000 -90.0000 0.5000; ... 110.0000 -90.0000 10.5000; ... 110.0000 -80.0000 -9.5000; ... 110.0000 -80.0000 0.5000; ... 110.0000 -80.0000 10.5000; ... 110.0000 -70.0000 0.5000; ... 120.0000 -100.0000 0.5000; ... 120.0000 -90.0000 -9.5000; ... 120.0000 -90.0000 0.5000; ... 120.0000 -90.0000 10.5000; ... 120.0000 -80.0000 0.5000]; assert(isequal(dilate3d(m,res),y_correct))

3   Pass
%% m = [-5 -5 0; ... -5 -5 -0.5; ... -5 -4.5 -0.5; ... -5 -4 -0.5; ... 0 5 4; ... 0.5 5.5 4]; res = 0.5; y_correct = [-5.5000 -5.5000 -0.5000; ... -5.5000 -5.5000 0; ... -5.5000 -5.0000 -1.0000; ... -5.5000 -5.0000 -0.5000; ... -5.5000 -5.0000 0; ... -5.5000 -5.0000 0.5000; ... -5.5000 -4.5000 -1.0000; ... -5.5000 -4.5000 -0.5000; ... -5.5000 -4.5000 0; ... -5.5000 -4.0000 -1.0000; ... -5.5000 -4.0000 -0.5000; ... -5.5000 -4.0000 0; ... -5.5000 -3.5000 -0.5000; ... -5.0000 -5.5000 -1.0000; ... -5.0000 -5.5000 -0.5000; ... -5.0000 -5.5000 0; ... -5.0000 -5.5000 0.5000; ... -5.0000 -5.0000 -1.0000; ... -5.0000 -5.0000 -0.5000; ... -5.0000 -5.0000 0; ... -5.0000 -5.0000 0.5000; ... -5.0000 -4.5000 -1.0000; ... -5.0000 -4.5000 -0.5000; ... -5.0000 -4.5000 0; ... -5.0000 -4.5000 0.5000; ... -5.0000 -4.0000 -1.0000; ... -5.0000 -4.0000 -0.5000; ... -5.0000 -4.0000 0; ... -5.0000 -3.5000 -1.0000; ... -5.0000 -3.5000 -0.5000; ... -5.0000 -3.5000 0; ... -4.5000 -5.5000 -0.5000; ... -4.5000 -5.5000 0; ... -4.5000 -5.0000 -1.0000; ... -4.5000 -5.0000 -0.5000; ... -4.5000 -5.0000 0; ... -4.5000 -5.0000 0.5000; ... -4.5000 -4.5000 -1.0000; ... -4.5000 -4.5000 -0.5000; ... -4.5000 -4.5000 0; ... -4.5000 -4.0000 -1.0000; ... -4.5000 -4.0000 -0.5000; ... -4.5000 -4.0000 0; ... -4.5000 -3.5000 -0.5000; ... -0.5000 4.5000 4.0000; ... -0.5000 5.0000 3.5000; ... -0.5000 5.0000 4.0000; ... -0.5000 5.0000 4.5000; ... -0.5000 5.5000 4.0000; ... 0 4.5000 3.5000; ... 0 4.5000 4.0000; ... 0 4.5000 4.5000; ... 0 5.0000 3.5000; ... 0 5.0000 4.0000; ... 0 5.0000 4.5000; ... 0 5.5000 3.5000; ... 0 5.5000 4.0000; ... 0 5.5000 4.5000; ... 0 6.0000 4.0000; ... 0.5000 4.5000 4.0000; ... 0.5000 5.0000 3.5000; ... 0.5000 5.0000 4.0000; ... 0.5000 5.0000 4.5000; ... 0.5000 5.5000 3.5000; ... 0.5000 5.5000 4.0000; ... 0.5000 5.5000 4.5000; ... 0.5000 6.0000 3.5000; ... 0.5000 6.0000 4.0000; ... 0.5000 6.0000 4.5000; ... 1.0000 5.0000 4.0000; ... 1.0000 5.5000 3.5000; ... 1.0000 5.5000 4.0000; ... 1.0000 5.5000 4.5000; ... 1.0000 6.0000 4.0000]; assert(isequal(dilate3d(m,res),y_correct))