de.jreality.tutorial.projects.ksurfaces
Class KSurfaces
java.lang.Object
de.jreality.tutorial.projects.ksurfaces.KSurfaces
public class KSurfaces
- extends Object
The algorithms to generate the Gauss map of a K-surface and the surface. The arrays are in xt--coordinates,
where the first index is time t and the second is the position x.
- Author:
- Ulrich Pinkall, adapted for the tutorial by G. Paul Peters, 24.07.2009
- See Also:
Pinkall: "Designing Cylinders with Constant Negative Curvature", in
Discrete Differential Geometry, pages 57-66. Springer 2008.
KSurfaces
public KSurfaces()
gaussMapFromInitialAnnulus
public static void gaussMapFromInitialAnnulus(double[][][] initialAnnulus,
double[][][] target)
- Computes the Gauss map of a K-surface from initial Cauchy data, i.e., two closed curves. Assums that the points of
the initial data lie on the 2-sphere this method generates more points so that the quadrilaterals
(i-1,j-1), (i-1,j), (i,j),(i-2,j-1) form spherical parallelograms.
- Parameters:
initialAnnulus
- the initial data, i.e., a double array double[2][n][3] containing 2 polygons with n vertices,
which are both interpreted as closed curves connecting that last and the first one.target
- a double array that will be filled with the result, i.e., an array double[m][n][3], where m>1 is the number of
time steps to be calculated.
kSurfaceFromGaussMap
public static void kSurfaceFromGaussMap(double[][][] gaussMap,
double[][][] target)
- Calculates the K-surface from the given Gauss map, assuming that the Gauss map consists
of spherical parallelograms as described in
gaussMapFromInitialAnnulus(double[][][], double[][][])
.
- Parameters:
gaussMap
- the given Gauss map.target
- a double array with enough space to hold the resulting surface. A quad mesh where the
quadrilaterals consist of (i-1,j-1), (i-1,j), (i,j),(i-2,j-1).