"sphere"
, c, r)"box"
, a, b)"half"
, p, n)Construct the level-set function for a basic geometric shape. The arguments XX and YY should be the coordinates where the level-set function should be evaluated. For a case that is not 2D, the respective number of arguments must be given.
shape specifies what shape should be constructed, the arguments following are shape-dependent. Possible shapes:
"sphere"
Construct a sphere or ellipsoid with centre c and radius r. Optionally, r can also be a vector giving the radii in each coordinate direction separately.
"box"
Construct a box spanned by the given two vertex coordinates.
"half"
Construct a half-space at one side of a hyperplane. The plane is specified by some point p on it, and the normal vector n pointing into the domain.
See also: ls_union, ls_intersect, ls_setdiff, meshgrid, ndgrid.
The following code
n = 200; x = linspace (-7, 7, n); [XX, YY] = meshgrid (x, x); phi1 = ls_genbasic (XX, YY, "box", [-5, -3], [3, 6]); phi2 = ls_genbasic (XX, YY, "sphere", [-1; 1], 2); phi3 = ls_genbasic (XX, YY, "sphere", [0; 0], [6, 1]); phi4 = ls_genbasic (XX, YY, "half", [3, -3], [1, -2]) / 8; phi = ls_union (ls_setdiff (phi1, phi2), phi3, phi4); figure (); hold ("on"); imagesc (x, x, phi); set (gca (), "ydir", "normal"); ls_sign_colourmap (); contour (XX, YY, phi, [0, 0], "k"); hold ("off"); axis ("equal");
Produces the following figure
Figure 1 |
---|
Package: level-set