|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object vmm.core.Exhibit vmm.core3D.Exhibit3D vmm.surface.Surface vmm.surface.parametric.SurfaceParametric vmm.surface.parametric.WeierstrassMinimalSurface vmm.surface.parametric.ChenGackstatter
public class ChenGackstatter
The Chen-Gackstatter surface posed surprising numerical difficulties, which increased with exponent. 1.) One cannot integrate the Weierstrass Data close enough into the three saddles to close gaping holes, starting at exponent = 5. 2.) For putting the pieces together one has to find the intersection of the symmetry planes. Only after experimentation did I find points on these symmetry lines that allowed to compute the intersection with sufficient accuracy. This then worked also in the Lopez-Ros morph. 3.) Finally, the period-closing Lopez-Ros value had to be found. One only has to solve a linear equation with coefficients depending on the minimal surface. For reasons that I could not find this worked only for symmetry parameters 2,3,4,5 and then developed visible inaccuracies. These went away after repeating the determination of the Lopez-Ros parameter three times. This indicates that the linear equation has inaccurately defined coefficients, but I do not see a reason for that. 4.) For esthetic reasons the big holes had to be closed. For the top and bottom symmetry points this worked satisfactorily. The middle symmetry point still has gaps for exponent > 5. H. Karcher
Nested Class Summary |
---|
Nested classes/interfaces inherited from class vmm.surface.parametric.WeierstrassMinimalSurface |
---|
WeierstrassMinimalSurface.WMSView |
Field Summary | |
---|---|
protected int |
Ex
|
protected int |
iP
|
protected double |
LRP
|
protected double |
r1
|
protected int |
um
|
protected int |
vm
|
Fields inherited from class vmm.surface.parametric.WeierstrassMinimalSurface |
---|
afp, AFP, canShowConjugateSurface, del, distFrom0, du, dv, flag0, flag05, halfPeriod, helperArray, I__C, I_C, I1_C, I2_C, I3_C, I4_C, iBeginMiddleInHelper, iFirstInHelper, inAssociateMorph, IP__C, IP_C, LRPclosed, multipleCopyOptions, needsPeriodClosed, needsValueArray, ONE__C, ONE_C, ucount, vcount, wantsToSeeDomain, wantsToSeeGaussImage, ZERO_C |
Fields inherited from class vmm.surface.parametric.SurfaceParametric |
---|
COLOR_GAUSS_CURVATURE, COLOR_MEAN_CURVATURE, COLOR_TWO_SIDED_DEFAULT, COLOR_TWO_SIDED_USER, COLOR_USER, COLOR_USER_FUNCTION_HSB, COLOR_USER_FUNCTION_RGB, COLOR_WHITE, umax, umin, vmax, vmin |
Fields inherited from class vmm.surface.Surface |
---|
data, uPatchCount, vPatchCount |
Fields inherited from class vmm.core3D.Exhibit3D |
---|
defaultViewpoint, defaultViewUp, previousTransform3D |
Fields inherited from class vmm.core.Exhibit |
---|
decorations, exhibitNeedsRedraw, isMorphing, morphingView, parameters, previousTransform |
Constructor Summary | |
---|---|
ChenGackstatter()
|
Method Summary | |
---|---|
protected double |
closingLopezRos()
|
protected void |
createData()
Overrides createData from SurfaceParametric with the goal of recomputing all constants that go into the Weierstrass Data, and then do the helperArray. |
protected void |
doClosingJob()
Dummy function. |
protected Complex |
domainGrid(double u,
double v)
Override the default Cartesian Grid. |
protected Complex |
gauss(Complex z)
The following two functions are the Weierstrass data that define this surface. |
protected ComplexVector3D |
getCenter()
We want to center the surface already at the helper Level. |
View |
getDefaultView()
Returns a default view of this exhibit, a View of type SurfaceView . |
protected Complex |
hPrime(Complex z)
|
protected static double |
myRad(double u,
int e)
Strictly monotone function with critical points of order e at (-1,0) and (0,1). |
protected void |
p_Index()
Last index of grid point before symmetry line switches to straight line. |
void |
parameterChanged(Parameter param,
java.lang.Object oldValue,
java.lang.Object newValue)
This method will be called automatically when a parameter that has been added to this Exhibit is changed. |
protected void |
redoConstants()
redoConstants is called in createData above, before any other computations start. |
Vector3D |
surfacePoint(double u,
double v)
Override surfacePoint to close the hole around the center saddle. |
Methods inherited from class vmm.surface.parametric.WeierstrassMinimalSurface |
---|
ComplexVectorFunction, ComplexVectorIntegrator, ComplexVectorOneStepIntegrator, component3, computeHalfPeriod, createHelperArray, gaussInverseTimesHPrime, gaussTimesHPrime, getAdditionalAnimationsForView, getNumberOfPieces, helperToMinimal, intersectLines, minimalToHelper, monotonPow, setNumberOfPieces, surfaceNormal |
Methods inherited from class vmm.surface.parametric.SurfaceParametric |
---|
addExtraXML, deriv_u, deriv_v, gaussMap, getActionsForView, readExtraXML, removeView |
Methods inherited from class vmm.surface.Surface |
---|
computeDrawData3D, doDraw3D, getBuildAnimation, getDefaultOrientation, setDefaultOrientation |
Methods inherited from class vmm.core3D.Exhibit3D |
---|
computeDrawDataHook, doDrawHook, getDefaultTransform, getDefaultViewpoint, getDefaultViewUp, setDefaultViewpoint, setDefaultViewUp |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected int Ex
protected int iP
protected int um
protected int vm
protected double r1
protected double LRP
Constructor Detail |
---|
public ChenGackstatter()
Method Detail |
---|
public View getDefaultView()
Surface
SurfaceView
.
(Note: If a Surface is displayed in a plain View3D, it will always appear as a wireframe.)
getDefaultView
in class WeierstrassMinimalSurface
public void parameterChanged(Parameter param, java.lang.Object oldValue, java.lang.Object newValue)
Exhibit
forceRedraw
. This method is defined in the <@link Parameterizable} interface.
parameterChanged
in interface Parameterizable
parameterChanged
in class WeierstrassMinimalSurface
param
- The Parmeter whose value has been set.oldValue
- The previous value of the parameter.newValue
- The new, current value of the parameter. This is not
necessarily guaranteed to be different from the old value (although it
is for parameters definedin the VMM core).Exhibit.forceRedraw()
protected void createData()
WeierstrassMinimalSurface
createData
in class WeierstrassMinimalSurface
protected Complex domainGrid(double u, double v)
domainGrid
in class WeierstrassMinimalSurface
protected void p_Index()
protected static double myRad(double u, int e)
protected Complex gauss(Complex z)
gauss
in class WeierstrassMinimalSurface
protected Complex hPrime(Complex z)
hPrime
in class WeierstrassMinimalSurface
protected double closingLopezRos()
protected void doClosingJob()
WeierstrassMinimalSurface
doClosingJob
in class WeierstrassMinimalSurface
protected void redoConstants()
WeierstrassMinimalSurface
redoConstants
in class WeierstrassMinimalSurface
protected ComplexVector3D getCenter()
getCenter
in class WeierstrassMinimalSurface
public Vector3D surfacePoint(double u, double v)
surfacePoint
in class WeierstrassMinimalSurface
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |