DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal -like the tip of it
|
|
« on: November 30, 2012, 07:06:34 PM » |
|
Looks a promising fractal. http://alt-fractals.blogspot.it/2011/08/jerusalem-cube.htmlI can see that it does not have an uniform scale btw, so I guess it's impossible to convert it in simple KIFS, without breaking strict continuity of space? Thanks for deep thoughts
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
M Benesi
|
|
« Reply #1 on: December 01, 2012, 12:02:23 AM » |
|
I've seen something similar while messing with Menger Cubes or Koch Cubes... not sure about the specifics of the formula I used. Did a quick try, and didn't find it.
All right. I've gotta convert it (the Menger) to a NON DE formula to make the render sharper, but for now, use the Menger KIFS in Fragmentarium. Rotation angle= 45 , rotate around 1,0,0 (the x axis, I suppose). You have cut outs, however, where the Menger holes are rotated to. Need to move the rotation...
|
|
« Last Edit: December 01, 2012, 12:40:16 AM by M Benesi »
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #2 on: December 01, 2012, 12:04:37 AM » |
|
why is it using non rational numbers ?! because the cube is divided by 5 instead of 3 ?!
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
M Benesi
|
|
« Reply #3 on: December 01, 2012, 12:41:05 AM » |
|
Nah.. Cube, with side length 1 has a diagonal of . In fact, all diagonals of a square are side length * ....
|
|
« Last Edit: December 01, 2012, 12:43:48 AM by M Benesi »
|
Logged
|
|
|
|
kram1032
|
|
« Reply #4 on: December 01, 2012, 02:38:45 AM » |
|
That's pretty
|
|
|
Logged
|
|
|
|
DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal -like the tip of it
|
|
« Reply #5 on: December 01, 2012, 10:57:28 AM » |
|
why is it using non rational numbers ?! because the cube is divided by 5 instead of 3 ?!
The holes and cubes of a menger sponge are equal in size, BUT! look carefully the JCube... Some cubes are smaller some bigger (just in the in the 1st iter!), that means that you can not multiply all components by a scaling factor like in normal fractals (3 or 2 usually). When this happens normally you need some cuts and this is bad whenever you try to add rotations somewhere!
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
|
David Makin
|
|
« Reply #7 on: December 01, 2012, 11:06:36 AM » |
|
Just work out the smallest sub-cube that the Jcube can be made from correctly and use as many plain transforms with that scale as necessary. e.g. if it had 2 uniform holes (with all solid cubes the same size) at the 1st level then it would be the same as the standard Menger but with 5*5*5 transforms with scale 1/5, if 3 at the first level then 7*7*7 with scale 1/7 etc. - obviously with uneven sizes of holes and/or solids much smaller sub-cubes may be necessary although perhaps this could be avoided with adjustment of scale of the transforms maybe based on depth in the tree....
|
|
|
Logged
|
|
|
|
DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal -like the tip of it
|
|
« Reply #8 on: December 01, 2012, 11:12:57 AM » |
|
Just work out the smallest sub-cube that the Jcube can be made from correctly and use as many plain transforms with that scale as necessary. e.g. if it had 2 uniform holes (with all solid cubes the same size) at the 1st level then it would be the same as the standard Menger but with 5*5*5 transforms with scale 1/5, if 3 at the first level then 7*7*7 with scale 1/7 etc. - obviously with uneven sizes of holes and/or solids much smaller sub-cubes may be necessary although perhaps this could be avoided with adjustment of scale of the transforms maybe based on depth in the tree....
But KIFS just use "simple" transforms like in this Menger sponge idk about "tree depth" for(i=0;i<MI && r<bailout;i++){ rotate1(x,y,z);
x=abs(x);y=abs(y);z=abs(z); if(x-y<0){x1=y;y=x;x=x1;} if(x-z<0){x1=z;z=x;x=x1;} if(y-z<0){y1=z;z=y;y=y1;}
rotate2(x,y,z); x=scale*x-CX*(scale-1); y=scale*y-CY*(scale-1); z=scale*z; if(z>0.5*CZ*(scale-1)) z-=CZ*(scale-1); r=x*x+y*y+z*z; }
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
David Makin
|
|
« Reply #9 on: December 01, 2012, 11:14:06 AM » |
|
Tree depth==iteration count in KIFS However I just realised that even KFS could use different scales based on location.... Personally I'm interested to see if anyone can come up with a fast way to render a finite-level "not" the Menger Sponge say "not" a level 4 Menger for instance
|
|
« Last Edit: December 01, 2012, 11:19:36 AM by David Makin »
|
Logged
|
|
|
|
DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal -like the tip of it
|
|
« Reply #10 on: December 01, 2012, 11:16:18 AM » |
|
Tree depth==iteration count in KIFS Things may become hard to handle in hybrids? Itercount can not tell you the truth
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
David Makin
|
|
« Reply #11 on: December 01, 2012, 12:48:13 PM » |
|
Things may become hard to handle in hybrids? Itercount can not tell you the truth Depends on the type of hybrid If not every iteration of the entire hybrid includes the "sponge" then a separate count would be required just to count iterations for which the "sponge" is used.
|
|
|
Logged
|
|
|
|
knighty
Fractal Iambus
Posts: 819
|
|
« Reply #12 on: December 02, 2012, 08:22:21 PM » |
|
I can't get a KIFS too! Here is what I get: static scl=1/(sqrt(2)-1) /*=1+sqrt(2)*/, a=1-2*(sqrt(2)-1); JC3(x,y,z){ r=x*x+y*y+z*z;dd=1; for(i=0;i<MI && r<100;i++){ x=abs(x);y=abs(y);z=abs(z); if(x<y){t=x;x=y;y=t;} if(z<x){t=z;z=x;x=t;} if(x<y){t=x;x=y;y=t;} if(y<a && x>1-2*a+y-a){ x-=1;z-=1; x*=scl*scl;y*=scl*scl;z*=scl*scl;dd*=scl*scl; x+=1;z+=1; }else{ x-=1;y-=1;z-=1; x*=scl;y*=scl;z*=scl;dd*=scl; x+=1;y+=1;z+=1; } r=x*x+y*y+z*z; } (sqrt(r)-1.75)/dd }
(BTW, in reply #6 picture, if the big square size is 1 we have: Scale2=Scale1^2. that means that: Scale1^2+2*Scale1-1=0. the correct value is: Scale1=sqrt(2)-1. which is the positive solution the the equation above. )
|
|
|
|
Alef
|
|
« Reply #13 on: December 03, 2012, 08:05:59 AM » |
|
Wov, a Vaticane Cube. This is one of the interesting new fractal ever. Probably it don't offers much variants, but this shape have deep cultural and religious background what makes it attractive. Maybe two sierpinsky triangles making this would be pretty interesting thing.
|
|
|
Logged
|
fractal catalisator
|
|
|
DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal -like the tip of it
|
|
« Reply #14 on: December 03, 2012, 10:15:10 AM » |
|
I can't get a KIFS too! Here is what I get: static scl=1/(sqrt(2)-1) /*=1+sqrt(2)*/, a=1-2*(sqrt(2)-1); JC3(x,y,z){ r=x*x+y*y+z*z;dd=1; for(i=0;i<MI && r<100;i++){ x=abs(x);y=abs(y);z=abs(z); if(x<y){t=x;x=y;y=t;} if(z<x){t=z;z=x;x=t;} if(x<y){t=x;x=y;y=t;} if(y<a && x>1-2*a+y-a){ x-=1;z-=1; x*=scl*scl;y*=scl*scl;z*=scl*scl;dd*=scl*scl; x+=1;z+=1; }else{ x-=1;y-=1;z-=1; x*=scl;y*=scl;z*=scl;dd*=scl; x+=1;y+=1;z+=1; } r=x*x+y*y+z*z; } (sqrt(r)-1.75)/dd }
(BTW, in reply #6 picture, if the big square size is 1 we have: Scale2=Scale1^2. that means that: Scale1^2+2*Scale1-1=0. the correct value is: Scale1=sqrt(2)-1. which is the positive solution the the equation above. ) KNIGHTY!!! How in the world you are always able to solve all problems! Your brain is a treasure chest! I adore it! I am envioussss! I wonder if you are also able to make a "general" version that calculate the limit, and the other scale, so that Scale1 is a user parameter. Other possible params are of course Cx, Cy, Cz like the other Menger. Even if it will not support rotates it will be surely appreciated from the MB3D folks!!! In other words; a = function(scl) and scl2 = function(scl) instead of a fixed value
|
|
« Last Edit: December 03, 2012, 10:16:58 AM by DarkBeam »
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
|