The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!
|
|
Mandelbulb Plant | ||||||
Previous Image | Next Image | ||||||
Description: My first spirals in a power 2 Mandelbulb variant.
Stats: Total Favorities: 0 View Who Favorited Filesize: 246kB Height: 1092 Width: 1200 Discussion Topic: View Topic Keywords: Mandelbulb Gestaltlupe Posted by: trafassel February 29, 2016, 10:48:10 PM Rating: by 4 members. Image Linking Codes
|
||||||
0 Members and 1 Guest are viewing this picture. | ||||||
Related Images | ||||||
|
|
Comments (4) | |
KRAFTWERK | March 01, 2016, 08:36:36 PM WOW, spirals upon spirals , never seen anything like this. Great find Trafassel! |
Tater | March 01, 2016, 06:14:30 AM Thanks a lot. Looking forward to seeing improvements. |
trafassel | March 01, 2016, 12:05:27 AM Yes no problem, but i dont't think, that the formula is 'ready'. The overview of the 3D Mandelbrot form has still some ugly areas. The formula is a power 2 Sinus Mandebulb variant. Short form: Number of iterations: _cycles=256 Bailout: gr=20 br,bi,bj are the (x,y,z) components of the 3d point to test. for (int n=1;n < _cycles; n++) { double phi=Math.Atan2(y,x); double x1=x; x=Math.Cos(-phi)* x-Math.Sin(-phi)* y; y=0; theta=Math.Atan2(-z,-x); if(spin) { theta=theta+Math.PI; } theta=(_power-1)*theta; double x2=x; re=Math.Cos(theta ); im=Math.Sin(theta ); a=re * x-im * z; z=re * z+im * x; x=a; if(x2*x<0)spin=!spin; re=Math.Cos(_power*phi); im=Math.Sin(_power*phi); a=re * x-im * y; y=re * y+im * x; x=a; xx=x * x; yy=y * y; zz=z * z; r=xx+yy+zz; r=Math.Pow(r,(_power-1)/2); x *=r; y *=r; z *=r; y+=bj; x+=br; z+=bi; if (r > gr)return false; } return (true); The compressed formula (for Gestaltupe 3.2 available at www.gestaltlupe.com). You have to paste it in the formula tab. int gr=20;double _power=2;bool _sinusVariant=false;bool _bulbVariant=false;public override void Init(){base.Init();if(GetString("intern.Formula.TempUpdateVal")!="57b771cfb8c1c0ed8f5782be552073a4"){SetParameterBulk("Formula.Parameters: BulbVariant=0 Power=2 SinusVariant=0 Formula.Static: Cycles=256 Julia=0 jx=0 jy=0 jz=0 Scene: CenterX=0.278416265799056 CenterY=9.50816239684936E-05 CenterZ=0.0103610297255821 Radius=0.00018314136519529 Transformation.Camera: AngleX=-161.234448298483 AngleY=-9.47833617990776 AngleZ=-176.797675777867 IsometricProjection=0 Position=1 intern.Formula: TempUpdateVal=57b771cfb8c1c0ed8f5782be552073a4");}_power=GetOrSetDouble("Power",2,"Mandelbulb Power.");if(!Fractrace.Basic.ParameterDict.Current.Exists("Formula.Parameters.SinusVariant")){Fractrace.Basic.ParameterDict.Current["Formula.Parameters.SinusVariant"]="0";}_sinusVariant=Fractrace.Basic.ParameterDict.Current.GetBool ("Formula.Parameters.SinusVariant");if(!Fractrace.Basic.ParameterDict.Current.Exists("Formula.Parameters.BulbVariant")){Fractrace.Basic.ParameterDict.Current["Formula.Parameters.BulbVariant"]="0";}_bulbVariant=Fractrace.Basic.ParameterDict.Current.GetBool ("Formula.Parameters.BulbVariant");Fractrace.Basic.ParameterDict.Current["Formula.Parameters.SinusVariant.PARAMETERINFO.Datatype"]="Bool";Fractrace.Basic.ParameterDict.Current["Formula.Parameters.BulbVariant.PARAMETERINFO.Datatype"]="Bool";}public override bool GetBool(double x,double y,double z){double br,bi,bj;if (_isJulia){br=_jx;bi=_jy;bj=_jz;}else{br=x;bi=y;bj=z;x=_jx;y=_jy;z=_jz;}double xx=x * x;double yy=y * y;double zz=z * z;double r=0;double re=0,im=0,a=0;double theta=0;bool spin=false;for (int n=1;n < _cycles;n++){double phi=Math.Atan2(y,x);double x1=x;x=Math.Cos(-phi)* x-Math.Sin(-phi)* y;y=0;if(_sinusVariant)theta=Math.Atan2(z,x);else theta=Math.Atan2(-z,-x);if(_bulbVariant && n==2 )theta=Math.PI-theta;if(spin){theta=theta+Math.PI;}theta=(_power-1)*theta;double x2=x;re=Math.Cos(theta );im=Math.Sin(theta );a=re * x-im * z;z=re * z+im * x;x=a;if(x2*x<0)spin=!spin;re=Math.Cos(_power*phi);im=Math.Sin(_power*phi);a=re * x-im * y;y=re * y+im * x;x=a;xx=x * x;yy=y * y;zz=z * z;r=xx+yy+zz;r=Math.Pow(r,(_power-1)/2);x *=r;y *=r;z *=r;y+=bj;x+=br;z+=bi;if (r > gr)return false;if (n > _cycles/ 3 && n < _cycles/ 1.2){additionalPointInfo.red+=xx / r;additionalPointInfo.green+=yy / r;additionalPointInfo.blue+=zz / r;}}return (true);} |
Tater | February 29, 2016, 11:19:33 PM Interesting. Can you share the code? |
Powered by SMF Gallery Pro