>>1484385I solved it but u didn't specify how you wanted the result. Here's the matlab script I wrote. The only computationally intense part is if you set the FaceAlpha parameter less than 1.
[code:lit]
close all;
% Input data goes here
p = [
-3.78655680, 0.72872321, 0.25764256;
...
3.78655680, -0.72872321, 3.86463836;
];
p_x = p(:, 1);
p_y = p(:, 2);
p_z = p(:, 3);
[v, c] = voronoin(p);
% Assumption: v(1) is (Inf, Inf, Inf) and v has no Inf anywhere else
figure(1);
hold on;
xlabel('X');
ylabel('Y');
zlabel('Z');
view(-37.5, 30);
% Plot input data
scatter3(p_x, p_y, p_z, 100, 'filled', 'k');
for i = 1:length(c)
ci = cell2mat(c(i));
% Skip cells that would extend out to Inf
if(any(ci == 1))
continue
end
vi = v(ci, :);
vi_x = vi(:, 1);
vi_y = vi(:, 2);
vi_z = vi(:, 3);
k = convhull(vi, 'Simplify', true);
color = rand([3, 1]);
trimesh(k, vi_x, vi_y, vi_z, 'FaceAlpha',0.8, 'EdgeColor','k', 'FaceColor',color, 'LineWidth',2);
end
[/code:lit]