TedWalther
Guest
|
 |
« Reply #15 on: November 27, 2009, 03:04:26 AM » |
|
Thanks again, Mike. I think the first (mistaken) quaternion looks a lot better than the second (correct) quaternion. Observing the differences between the different pseudo-quaternion formulas, it looks like they only differ in the signedness of the terms. Since there are ten terms, there are 1024 different possibilities.
It would be interesting to iterate through all 1024 possibilities and see how they differ. One could just iterate from 0 to 1023 and treat the index as a bitmap, with 0 representing + and 1 representing -
Mike, what software are you using? Does it run on Linux? Are you generating voxels or following a ray outwards from the screen? I'd like to start rendering fly-arounds of each object.
Ted
|
|
« Last Edit: November 27, 2009, 03:10:46 AM by TedWalther »
|
Logged
|
|
|
|
TedWalther
Guest
|
 |
« Reply #16 on: November 27, 2009, 03:16:09 AM » |
|
Ted,
Here's your first one in 2nd order. The 8-th order looks like a typical 8th-order Mandelbulb. There's something about those Higher Powers...
That is beautiful. Reminds me and a co-worker of the female uterus lying on its side. Should we call it the Valentine's Mandelbulb? How does 3rd order look? I was expecting that order-2 might not be the best, just because order-2 worked for a 2 dimensional thing, and we are operating in 3d now. Ted
|
|
|
Logged
|
|
|
|
dougfractal
Guest
|
 |
« Reply #17 on: November 27, 2009, 03:26:58 AM » |
|
I've just published my code http://code.google.com/p/fractaldimension/The java code includes 4D and 5D functions but here is my original 3D algorithm i.j = -j j.i = i public int iterate3D(double rec,double imc, double jmc,int max) { double re,im,re2,im2,jm,jm2,ij,tmp; int itr=0; double mag=.0; im=re=jm=re2=im2=jm2=.0; do { ij=im*jm; tmp=re2-im2-jm2+rec; im=2.0f*im*re-ij+imc; jm=2.0f*jm*re+ij+jmc; re=tmp; re2=re*re; im2=im*im; jm2=jm*jm; itr++; if (itr>max) break; mag=re2+im2+jm2; } while (4.0f>mag ); return itr; }
|
|
|
Logged
|
|
|
|
TedWalther
Guest
|
 |
« Reply #18 on: November 27, 2009, 08:24:05 AM » |
|
Thank you for the code, Doug. Can you tell us a but more about how you derived that code? Any particular theory or reasoning behind how you decided on the particular relationship of j and i?
|
|
|
Logged
|
|
|
|
dougfractal
Guest
|
 |
« Reply #19 on: November 27, 2009, 06:33:36 PM » |
|
http://www.fractaldimension.org.uk/voldsitemirror/Different Complex NumbersWith the understanding that [imaginary number i] can be represented by rotation of 90° about the origin. I defined [imaginary number j] as a rotation of 90° about the origin and a rotation of 90° with respect to . So with this in mind I picked up a cube, to help me visualise the rotations, and then recorded the results.
 I rotated it upwards 90° , then following it by turning it a different 90° backwards [j], I defined the result:
i × j = -j
Then starting again
 I rotated 90° backwards [j], followed by 90° upwards . This gave me the result:
j × i = i
It is the use of these results when applied into the [Mandelbrot algorithm], that produce the [Bristor set]. Imaginary numbers in additional dimensions can be derived by substituting in the new number in the above equations.
|
|
|
Logged
|
|
|
|
TedWalther
Guest
|
 |
« Reply #20 on: November 27, 2009, 07:43:57 PM » |
|
Animation, 15 frames per second. The value of n in Z n starts at 0.11 and goes up to 9.00 in increments of 0.01. Thanks to Mike for the code to calculate and render the images that went into this video.
http://www.youtube.com/v/np4MPGtr7eU&rel=1&fs=1&hd=1
|
|
« Last Edit: November 27, 2009, 08:02:42 PM by TedWalther, Reason: giving credit to Mike »
|
Logged
|
|
|
|
JosLeys
|
 |
« Reply #21 on: November 27, 2009, 08:09:47 PM » |
|
Here is a picture of a degree 8 Bristorbrot
|
|
|
Logged
|
|
|
|
JosLeys
|
 |
« Reply #22 on: November 27, 2009, 10:09:12 PM » |
|
As far as I know, Doug Bristor's formula is the only one I've seen whereby a slice in both the xy and xz plane produces the familiar 2D Mandelbrot. It produces some interesting Julia's as well.This one is degree 3 :
|
|
|
Logged
|
|
|
|
|
JosLeys
|
 |
« Reply #24 on: November 27, 2009, 10:48:46 PM » |
|
OK David, sorry..
In one of your posts you propose
r i j r r i j i i -r -j j j -j -r
whereas Doug is using
r i j r r i j i i -r -j j j i -r (notice the 'i' in the last row)
|
|
|
Logged
|
|
|
|
David Makin
|
 |
« Reply #25 on: November 27, 2009, 11:42:06 PM » |
|
OK David, sorry..
In one of your posts you propose
r i j r r i j i i -r -j j j -j -r
whereas Doug is using
r i j r r i j i i -r -j j j i -r (notice the 'i' in the last row)
I ignored non-commutative forms simply because I'm averse to them (more than I'm averse to say more than one number without an inverse). Also I was trying for something that broke the "ring" rule but still worked in both cross-sections  Plus I was rather pleased with this idea: "i.e. here *i is a function that maps r to i (one dimension to another), *j is a function that maps r and i to j (two dimensions to a third), *k is a function that maps r, i and j to k (thrree dimensions to a fourth) etc." I found that using commutative -j for i*j worked best IMO for the 3D case, of course if you want the higher dimensions to collapse correctly when one imaginary dimension is removed then the corresponding 4D should look like this: r i j k r r i j k i i -r -j -k j j -j -r -k k k -k -k -r
|
|
« Last Edit: November 28, 2009, 12:13:04 AM by David Makin »
|
Logged
|
|
|
|
dougfractal
Guest
|
 |
« Reply #26 on: November 28, 2009, 03:17:45 AM » |
|
|
|
|
Logged
|
|
|
|
dougfractal
Guest
|
 |
« Reply #27 on: November 28, 2009, 04:36:37 AM » |
|
As far as I know, Doug Bristor's formula is the only one I've seen whereby a slice in both the xy and xz plane produces the familiar 2D Mandelbrot. Also the Bristorbrot is symmetrical along the ij plane creating the 2 opposite pairs. This symmetry is persevered on higher dimensional views.
|
|
|
Logged
|
|
|
|
JosLeys
|
 |
« Reply #28 on: November 28, 2009, 01:09:52 PM » |
|
Dave said: I ignored non-commutative forms simply because I'm averse to them Just this: we are playing with rotations of a point on a sphere, and those rotations are non-commutative by nature.. Just to clarify for those who doubt: Rotate the point <1,0,0> around the (vertical) y-axis 90° gives you <0,0,1>, then rotate 90° around the x-axis and you get <0,1,0> If we rotate first around the x-axis, the point does not move, and the subsequent rotation about the y-axis gets us <0,0,1>. Different order, different result.
|
|
|
Logged
|
|
|
|
David Makin
|
 |
« Reply #29 on: November 28, 2009, 01:33:14 PM » |
|
Dave said: I ignored non-commutative forms simply because I'm averse to them Just this: we are playing with rotations of a point on a sphere, and those rotations are non-commutative by nature.. Just to clarify for those who doubt: Rotate the point <1,0,0> around the (vertical) y-axis 90° gives you <0,0,1>, then rotate 90° around the x-axis and you get <0,1,0> If we rotate first around the x-axis, the point does not move, and the subsequent rotation about the y-axis gets us <0,0,1>. Different order, different result. I know, I just like things to be commutative  My latest attempt is not commutative though: http://www.fractalforums.com/3d-fractal-generation/truerer-true-3d-mandelbrot-fractal-(search-for-the-holy-grail-continues)/msg9235/#msg9235Edit: Aargh, I was mistaking commutivaty of the function with commutivaty of the rotations performed - obviously the rotations are not commutative but if the "multiply" function takes a similar form to that for the Mandelbulb then it is commutative 
|
|
« Last Edit: November 28, 2009, 10:45:42 PM by David Makin »
|
Logged
|
|
|
|
|