|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Object common:Generic common:Formula common:ConvergentDivergentFormula Standard:Standard_Magnet2Mandelbrot
class
Object version of Magnet2Mandelbrot in Standard.ufm.
Magnetic Mandelbrot set type 2.
class Standard_Magnet2Mandelbrot(common.ulb:ConvergentDivergentFormula) { ; ; Object version of Magnet2Mandelbrot in Standard.ufm. ; Magnetic Mandelbrot set type 2. ; public: complex func Init(complex pz) fPixel = pz return @p1 endfunc complex func Iterate(complex pz) return sqr( (pz^3 + 3 * (fPixel-1) * pz + (fPixel-1) * (fPixel-2)) / \ (3 * pz^2 + 3 * (fPixel-2) * pz + (fPixel-1) * (fPixel-2) + 1) ) endfunc bool func IsBailedOut(complex pz) return |pz| >= @p_upperbailout || |pz - 1| <= @p_lowerbailout endfunc private: complex fPixel default: title = "Magnet 2 (Mandelbrot)" helpfile = "Uf*.chm" helptopic = "Html/formulas/standard/magnet.html" param p1 caption = "Perturbation" default = (0, 0) hint = "Starting value for each point. You can use this to \ 'perturb' the fractal. Use (0, 0) for the classic set." endparam param p_upperbailout ; Overrides p_upperbailout from ConvergentDivergentFormula caption = "Bailout value" default = 100.0 min = 1 exponential = true hint = "This parameter defines how soon an orbit bails out while \ iterating. Larger values give smoother outlines; smaller values \ generally produce more interesting shapes around the set." endparam param p_lowerbailout ; Overrides p_lowerbailout from ConvergentDivergentFormula caption = "Convergent bailout value" default = 0.00005 min = 0 exponential = true hint = "This parameter defines how soon a convergent orbit bails out while \ iterating. Smaller values give more precise results but usually \ require more iterations." endparam complex param p_power ; Hide p_power from Formula visible = false endparam }
Constructor Summary | |
---|---|
Standard_Magnet2Mandelbrot()
|
Method Summary | |
---|---|
complex |
Init(complex pz)
Set up for a sequence of values |
boolean |
IsBailedOut(complex pz)
Test whether the formula has bailed out (i.e. |
complex |
Iterate(complex pz)
Produce the next value in the sequence |
Methods inherited from class common:ConvergentDivergentFormula |
---|
GetLowerBailout, GetUpperBailout |
Methods inherited from class common:Formula |
---|
GetPrimaryExponent |
Methods inherited from class common:Generic |
---|
GetParent |
Methods inherited from class Object |
---|
|
Constructor Detail |
---|
public Standard_Magnet2Mandelbrot()
Method Detail |
---|
public complex Init(complex pz)
ConvergentDivergentFormula
This function will be called at the beginning of each sequence of values (e.g. at the beginning of each fractal orbit).
Init
in class ConvergentDivergentFormula
pz
- seed value for the sequence; for a normal fractal formula, this will be #pixel
public complex Iterate(complex pz)
ConvergentDivergentFormula
As long as the sequence has not bailed out, this function will be continually called to produce sequence values.
Iterate
in class ConvergentDivergentFormula
pz
- previous value in the sequence; corresponds to #z in a fractal formula. Note that you should always use this value for computing the next iteration, rather than a saved value, as the calling code may modify the returned value before passing it back to the next Iterate() call.
public boolean IsBailedOut(complex pz)
ConvergentDivergentFormula
Since this is a divergent fractal, the test is easy: if it's bigger than the bailout, the sequence is done.
IsBailedOut
in class ConvergentDivergentFormula
pz
- last sequence value to test; this should be the value returned from the previous Iterate() call. Note that it is acceptable to ignore pz and use m_BailedOut, but any code calling IsBailedOut() should pass in the correct pz for Formula classes which do not use m_BailedOut.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |