HyperFun Gallery: Reconstruction

VRML 2.0 (0.9 Mb)

my_model(x[3], a[1])
{
-- 3D reconstruction from three cross-sections
-- with holes and disjoint components

-- Cross-section for z = 10 - union of three disjoint disks
disk1 = 9-(x[1]-7)^2-x[2]^2;
disk2 = 9-(x[1]+7)^2-x[2]^2;
disk3 = 9-x[1]^2-x[2]^2;
sect1 = disk1 | disk2 | disk3;

-- Cross-section for z=0 - disk with hole
-- Note the hole of the same radius and xy-position as disk3
disk4 = 25-(x[1])^2-(x[2])^2;
hole = 9-(x[1])^2-(x[2])^2;
sect3 = disk4 \ hole;

-- Cross-section for z=-10 - disk with two holes
disk6 = 64-(x[1])^2-(x[2])^2;
hole1 = 9-(x[1]+4)^2-x[2]^2;
hole2 = 9-(x[1]-4)^2-x[2]^2;
sect2 = (disk6 \ hole1) \ hole2;

if (x[3] > 0) then
    t=x[3]/10;
    model = sect1*t+sect3*(1-t);
else
    t=-x[3]/10;
    model = sect3*(1-t)+sect2*t;
    endif;

my_model = model;

-- Note that the object goes out of the bounding box in z direction
-- and the polygonized surface will be not closed
}

Back to HyperFun Gallery