Hi guys,
I'm a little confused about the term "rotation plane". What does it mean?=
If we have elementary twist in R^D, then there are two invariant spaces: F=
irst one is D-2 dimensional and vectors from it are not affected by the twi=
st (they are eigenvectors with eigenvalues 1), and the second is two-dimens=
ional and the twist rotates it like the regular 2D plane. In 4D they both h=
ave 2 dimensions. I think that the term "rotation plane" fits better to the=
second (2D) space, and "rotation multi-axis" I've used for the first space=
.
Let us have 4D body that is cut by a set of hyperplanes (yes, they are 3D=
, and we don't need anything more than normal direction and distance from t=
he center to define it). We have to decribe the set of axes (normals to hyp=
erplanes) and set of possible rotation planes perpendicular to each axis. A=
nd we don't want the complete list of them.
I see an algorithmic way of the enumeration.
We have from 1 to 4 families of axes for our puzzle. Take one axis from e=
ach family and some set of body movements - generators of the symmetry grou=
p. If we don't consider "alternated" bodies, then generators can be taken f=
rom mirror reflections - they have the simplest description (one vector).=20
For example, for the tesseract family we have
Axes=3D{(0,0,0,1),(0,0,1,1),(0,1,1,1),(1,1,1,1)}
Movements=3D{(1,0,0,0),(-1,1,0,0),(0,-1,1,0),(0,0,-1,1)}
They are edges and faces of the fundamental area, but I'm not sure that it =
will always be the case (we should check what happens for simplex, bitrunca=
ted simplex, bitruncated 24-cell and for duoprisms with n=3Dk and n!=3Dk).
To generate and enumerate the complete set of axes use the function:
int p=3D0,q=3DAxes.Length;
for(i=3D0;iwhile(p!=3Dq){
foreach(Movement M in Movements){
Vector V=3DM.ApplyTo(A[p]);
for(i=3D0;i if(i=3D=3Dq) A[q++]=3DV;
}
}
The same is for twists: for each axis we decribe generators of the set of p=
ossible rotational planes (give them as pairs of vectors, describing half o=
f the smallest twist - and we'll have the order of twists group for this pl=
ane for free). We don't need to decribe movements to generate complete twis=
ts set - rotation planes give it to themself.
So the complete description for tesseract family will be:
Movements: 1 0 0 0 ; -1 1 0 0 ; 0 -1 1 0 ; 0 0 -1 1
Vector: 1 0 0 0
Planes: 0 1 0 0 , 0 1 1 0 ; 0 1 -1 0 , 0 1 0 -1 ; 0 1 0 0 , 0 1 1 1
Vector: 1 1 0 0
Planes: 0 0 1 0 , 0 0 1 1 ; 1 -1 0 0 , 0 0 1 0 ; 1 -1 0 0 , 0 0 1 1
Vector: 1 1 1 0
Planes: 1 -1 0 0 , 1 0 -1 0 ; 0 0 0 1 , 1 -1 0 0=20
Vector: 1 1 1 1
Planes: 1 -1 0 0 , 1 0 -1 0 ; 1 -1 0 0 , 1 1 -1 -1
And if you add some more lines, you can get the complete description of the=
puzzle (assuming that the body is convex and the painting is "one color pe=
r one cell"):
Dimensions: 4
Movements: 1 0 0 0 ; -1 1 0 0 ; 0 -1 1 0 ; 0 0 -1 1
Vertices: 1 1 1 1
Alternated: No
Vector: 1 0 0 0
Planes: 0 1 0 0 , 0 1 1 0 ; 0 1 -1 0 , 0 1 0 -1 ; 0 1 0 0 , 0 1 1 1
Cuts: 0.333333 ; -0.333333
Vector: 1 1 1 1
Planes: 1 -1 0 0 , 1 0 -1 0 ; 1 -1 0 0 , 1 1 -1 -1
Cuts: 0
It's a cube 3^4 with 8 additional diagonal cuttings :)
Meaning of vectors:
When you apply the rotation defined by vectors A, B to the vector C, result=
will be:
Rot[A,B](C) =3D Symm[B](Symm[A](C)),
where Symm[A](C)=3D2*A*(A,C)/(A,A)-C .
Reflection of the vector in the plane
Refl[A](C)=3D-Symm[A](C) .
Now, when rotation plane description includes minimal twist angle, I think =
tat we may return to single number description of angle - write there one i=
nteger number.
Description of 5^7:
Dimensions: 7
Movements: 1 0 0 0 0 0 0 ; -1 1 0 0 0 0 0; 0 -1 1 0 0 0 0; 0 0 -1 1 0 0 0 ;=
0 0 0 -1 1 0 0 ; 0 0 0 0 -1 1 0 ; 0 0 0 0 0 -1 1
Vertices: 1 1 1 1 1 1 1
Alternated: No
Vector: 1 0 0 0 0 0 0
Planes: 0 1 0 0 0 0 0 , 0 1 1 0 0 0 0 ; 0 1 0 0 0 0 0 , 0 1 0 1 0 0 0 ; 0 1=
0 0 0 0 0 , 0 1 0 0 1 0 0 ; 0 1 0 0 0 0 0 , 0 1 0 0 0 1 0 ; 0 1 0 0 0 0 0 =
, 0 1 0 0 0 0 1
Cuts: 0.6 ; 0.2 ; -0.2 ; -0.6
Sticker-oriented programs (like MC4D) will have some way of finding corresp=
ondence between stickers and twists. To do that it may apply twist to all c=
ell centers (2D, 1D and 0D) and find the fixed point. If no fixed points is=
found then the twist can't be described as sticker-defined. If for some st=
icker there is no twists in the set, then something is wrong with our mathe=
matics :)
All this doesn't include Andy's "2D twists". But they may be described as=
intersections of layers with different cutting planes and same rotational =
planes. And we can write them in log like {5:3:8|1:4:1}:1 .
Numbers in braces are axis, rotation plane and mask for different direction=
s of cutting planes. Angle is the same. Direction of twist is defined by th=
e first group (different groups may give different orientations of the cano=
nical twist).
Andrey
Re: Twists description=20
http://groups.yahoo.com/group/4D_Cubing/photos/album/1184359940/pic/1892727=
590/view
Description of 3D 4-antiprism:
Dimensions: 3
Movements: 0 0 1 ; 1 0 0 ; 2.4142135 1 0
Vertices: 2.4142135 1 1
Alternated: Yes
Vector: 0 0 1
Planes: 1 0 0 , 1 1 0
Cuts: -0.4142135 ; 0.4142135
Vector: 1 0 0
Planes: 0 0 1 , 0 1 0
Cuts: -1.4142135 ; 1.4142135
--0016e6d9a1f52b7377049d6f2a6f
Content-Type: text/plain; charset=ISO-8859-1
Thank you Andrey,
I looked at Don's MC4D code last night to see that the cutting planes, being
hyperplanes of dimension 3, don't need any extra orientation information
(I'm sure I knew this in the past and forgot). It is confusing because we
are using the term "plane" in multiple ways, and for constructs of different
dimensions. But my mental image of "rotation plane" is the same as yours.
I take the term to refer to the 2D space of a simple rotation, and prefer
language like "rotates through the rotation plane" and "rotates about the
rotation multi-axis".
The examples you've made were the perfect response and don't look nearly as
scary as I imagined, so that's great. My only worry is requiring the axes
and rotation plane sets to be generated in a certain way, but that looks to
be the nature of the problem if we don't want to list them all out while
still caring about referencing them by an index. Your code block is part of
the spec though, and each program will have to implement it *exactly* the
same.
If I'm reading your example right, the orientation of the hypercube in the
3^4 puzzle description is determined by the "Vertices" entry in combination
with the generators. I guess it will be the same for other polytopes, and
more complicated uniform polytopes will have multiple vertices listed there
(e.g. the truncated
tesseract
have 3). (I'm unsure of everything in this paragraph.)
Though your examples were likely not intended as the final format, a
nitpicky comment is that I'd prefer the header to be a little more
structured, in that it didn't rely on spaces so much for formatting. Commas
between vector components would improve things. Maybe the subject should at
least be raised of whether XML might be good, though I think I'd vote to
keep things text.
Thanks again for figuring all this out.
Roice
On Tue, Mar 1, 2011 at 1:46 AM, Andrey
> Hi guys,
> I'm a little confused about the term "rotation plane". What does it mean?
> If we have elementary twist in R^D, then there are two invariant spaces:
> First one is D-2 dimensional and vectors from it are not affected by the
> twist (they are eigenvectors with eigenvalues 1), and the second is
> two-dimensional and the twist rotates it like the regular 2D plane. In 4D
> they both have 2 dimensions. I think that the term "rotation plane" fits
> better to the second (2D) space, and "rotation multi-axis" I've used for the
> first space.
> Let us have 4D body that is cut by a set of hyperplanes (yes, they are 3D,
> and we don't need anything more than normal direction and distance from the
> center to define it). We have to decribe the set of axes (normals to
> hyperplanes) and set of possible rotation planes perpendicular to each axis.
> And we don't want the complete list of them.
> I see an algorithmic way of the enumeration.
> We have from 1 to 4 families of axes for our puzzle. Take one axis from
> each family and some set of body movements - generators of the symmetry
> group. If we don't consider "alternated" bodies, then generators can be
> taken from mirror reflections - they have the simplest description (one
> vector).
> For example, for the tesseract family we have
> Axes={(0,0,0,1),(0,0,1,1),(0,1,1,1),(1,1,1,1)}
> Movements={(1,0,0,0),(-1,1,0,0),(0,-1,1,0),(0,0,-1,1)}
> They are edges and faces of the fundamental area, but I'm not sure that it
> will always be the case (we should check what happens for simplex,
> bitruncated simplex, bitruncated 24-cell and for duoprisms with n=k and
> n!=k).
> To generate and enumerate the complete set of axes use the function:
>
> int p=0,q=Axes.Length;
> for(i=0;i> while(p!=q){
> foreach(Movement M in Movements){
> Vector V=M.ApplyTo(A[p]);
> for(i=0;i> if(i==q) A[q++]=V;
> }
> }
>
> The same is for twists: for each axis we decribe generators of the set of
> possible rotational planes (give them as pairs of vectors, describing half
> of the smallest twist - and we'll have the order of twists group for this
> plane for free). We don't need to decribe movements to generate complete
> twists set - rotation planes give it to themself.
>
> So the complete description for tesseract family will be:
>
> Movements: 1 0 0 0 ; -1 1 0 0 ; 0 -1 1 0 ; 0 0 -1 1
> Vector: 1 0 0 0
> Planes: 0 1 0 0 , 0 1 1 0 ; 0 1 -1 0 , 0 1 0 -1 ; 0 1 0 0 , 0 1 1 1
> Vector: 1 1 0 0
> Planes: 0 0 1 0 , 0 0 1 1 ; 1 -1 0 0 , 0 0 1 0 ; 1 -1 0 0 , 0 0 1 1
> Vector: 1 1 1 0
> Planes: 1 -1 0 0 , 1 0 -1 0 ; 0 0 0 1 , 1 -1 0 0
> Vector: 1 1 1 1
> Planes: 1 -1 0 0 , 1 0 -1 0 ; 1 -1 0 0 , 1 1 -1 -1
>
> And if you add some more lines, you can get the complete description of the
> puzzle (assuming that the body is convex and the painting is "one color per
> one cell"):
>
> Dimensions: 4
> Movements: 1 0 0 0 ; -1 1 0 0 ; 0 -1 1 0 ; 0 0 -1 1
> Vertices: 1 1 1 1
> Alternated: No
> Vector: 1 0 0 0
> Planes: 0 1 0 0 , 0 1 1 0 ; 0 1 -1 0 , 0 1 0 -1 ; 0 1 0 0 , 0 1 1 1
> Cuts: 0.333333 ; -0.333333
> Vector: 1 1 1 1
> Planes: 1 -1 0 0 , 1 0 -1 0 ; 1 -1 0 0 , 1 1 -1 -1
> Cuts: 0
>
>
> It's a cube 3^4 with 8 additional diagonal cuttings :)
>
> Meaning of vectors:
>
> When you apply the rotation defined by vectors A, B to the vector C, result
> will be:
> Rot[A,B](C) = Symm[B](Symm[A](C)),
> where Symm[A](C)=2*A*(A,C)/(A,A)-C .
>
> Reflection of the vector in the plane
> Refl[A](C)=-Symm[A](C) .
>
> Now, when rotation plane description includes minimal twist angle, I think
> tat we may return to single number description of angle - write there one
> integer number.
>
> Description of 5^7:
>
> Dimensions: 7
> Movements: 1 0 0 0 0 0 0 ; -1 1 0 0 0 0 0; 0 -1 1 0 0 0 0; 0 0 -1 1 0 0 0 ;
> 0 0 0 -1 1 0 0 ; 0 0 0 0 -1 1 0 ; 0 0 0 0 0 -1 1
> Vertices: 1 1 1 1 1 1 1
> Alternated: No
> Vector: 1 0 0 0 0 0 0
> Planes: 0 1 0 0 0 0 0 , 0 1 1 0 0 0 0 ; 0 1 0 0 0 0 0 , 0 1 0 1 0 0 0 ; 0 1
> 0 0 0 0 0 , 0 1 0 0 1 0 0 ; 0 1 0 0 0 0 0 , 0 1 0 0 0 1 0 ; 0 1 0 0 0 0 0 ,
> 0 1 0 0 0 0 1
> Cuts: 0.6 ; 0.2 ; -0.2 ; -0.6
>
> Sticker-oriented programs (like MC4D) will have some way of finding
> correspondence between stickers and twists. To do that it may apply twist to
> all cell centers (2D, 1D and 0D) and find the fixed point. If no fixed
> points is found then the twist can't be described as sticker-defined. If for
> some sticker there is no twists in the set, then something is wrong with our
> mathematics :)
>
> All this doesn't include Andy's "2D twists". But they may be described as
> intersections of layers with different cutting planes and same rotational
> planes. And we can write them in log like {5:3:8|1:4:1}:1 .
> Numbers in braces are axis, rotation plane and mask for different
> directions of cutting planes. Angle is the same. Direction of twist is
> defined by the first group (different groups may give different orientations
> of the canonical twist).
>
> Andrey
>
>
--0016e6d9a1f52b7377049d6f2a6f
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
nes, being hyperplanes of dimension 3, don't need any extra orientation=
=A0information (I'm sure I knew this in the past and forgot).=A0 It is =
confusing because we are using the term "plane" in multiple ways,=
and for constructs of different dimensions.=A0 But my mental image of &quo=
t;rotation plane" is the same as yours.=A0 I=A0take the term to refer =
to the 2D space of a simple rotation, and prefer language like "rotate=
s through the rotation plane" and "rotates about the rotation mul=
ti-axis".
ook nearly as scary as I imagined, so that's great.=A0 My only worry is=
requiring the axes and rotation plane sets to be generated in a certain wa=
y, but that=A0looks to be=A0the nature of the problem if we don't want =
to list them all out while still caring=A0about referencing them by an inde=
x.=A0 Your code block is part of the spec though, and each program will hav=
e to implement it exactly the same.=A0
e in the 3^4 puzzle description is determined by the "Vertices" e=
ntry=A0in combination with the generators.=A0 I guess it will be the same f=
or other polytopes, and more complicated uniform polytopes will have multip=
le vertices listed there (e.g. the Truncated_tesseract">truncated tesseract=A0would have 3).=A0 (I'm u=
nsure of everything in this paragraph.)
itpicky comment is that I'd prefer the header to be a little more struc=
tured, in that it didn't rely on spaces so much for formatting.=A0 Comm=
as between vector components would improve things.=A0 Maybe the subject sho=
uld at least be raised of whether XML might be good, though I think I'd=
vote to keep things text.
oo.com> wrote:
; PADDING-LEFT: 1ex" class=3D"gmail_quote">Hi guys,
=A0I'm a little =
confused about the term "rotation plane". What does it mean? If w=
e have elementary twist in R^D, then there are two invariant spaces: First =
one is D-2 dimensional and vectors from it are not affected by the twist (t=
hey are eigenvectors with eigenvalues 1), and the second is two-dimensional=
and the twist rotates it like the regular 2D plane. In 4D they both have 2=
dimensions. I think that the term "rotation plane" fits better t=
o the second (2D) space, and "rotation multi-axis" I've used =
for the first space.
=A0Let us have 4D body that is cut by a set of hyperplanes (yes, they are 3=
D, and we don't need anything more than normal direction and distance f=
rom the center to define it). We have to decribe the set of axes (normals t=
o hyperplanes) and set of possible rotation planes perpendicular to each ax=
is. And we don't want the complete list of them.
=A0I see an algorithmic way of the enumeration.
=A0We have from 1 to 4 f=
amilies of axes for our puzzle. Take one axis from each family and some set=
of body movements - generators of the symmetry group. If we don't cons=
ider "alternated" bodies, then generators can be taken from mirro=
r reflections - they have the simplest description (one vector).
=A0For example, for the tesseract family we have
Axes=3D{(0,0,0,1),(0,0,=
1,1),(0,1,1,1),(1,1,1,1)}
Movements=3D{(1,0,0,0),(-1,1,0,0),(0,-1,1,0),(=
0,0,-1,1)}
They are edges and faces of the fundamental area, but I'm=
not sure that it will always be the case (we should check what happens for=
simplex, bitruncated simplex, bitruncated 24-cell and for duoprisms with n=
=3Dk and n!=3Dk).
To generate and enumerate the complete set of axes use the function:
>int p=3D0,q=3DAxes.Length;
for(i=3D0;i<q;i++) A[i]=3DAxes[i];
whi=
le(p!=3Dq){
=A0foreach(Movement M in Movements){
=A0 =A0Vector V=3DM.=
ApplyTo(A[p]);
=A0 =A0for(i=3D0;i<q;i++) if(AxesEqual(V,A[i])) break;
=A0 =A0if(i=3D=
=3Dq) A[q++]=3DV;
=A0}
}
The same is for twists: for each axis=
we decribe generators of the set of possible rotational planes (give them =
as pairs of vectors, describing half of the smallest twist - and we'll =
have the order of twists group for this plane for free). We don't need =
to decribe movements to generate complete twists set - rotation planes give=
it to themself.
So the complete description for tesseract family will be:
Moveme=
nts: 1 0 0 0 ; -1 1 0 0 ; 0 -1 1 0 ; 0 0 -1 1
Vector: 1 0 0 0
Planes:=
0 1 0 0 , 0 1 1 0 ; 0 1 -1 0 , 0 1 0 -1 ; 0 1 0 0 , 0 1 1 1
Vector: 1 1=
0 0
Planes: 0 0 1 0 , 0 0 1 1 ; 1 -1 0 0 , 0 0 1 0 ; 1 -1 0 0 , 0 0 1 1
Vect=
or: 1 1 1 0
Planes: 1 -1 0 0 , 1 0 -1 0 ; 0 0 0 1 , 1 -1 0 0
Vector: =
1 1 1 1
Planes: 1 -1 0 0 , 1 0 -1 0 ; 1 -1 0 0 , 1 1 -1 -1
And if=
you add some more lines, you can get the complete description of the puzzl=
e (assuming that the body is convex and the painting is "one color per=
one cell"):
Dimensions: 4
Movements: 1 0 0 0 ; -1 1 0 0 ; 0 -1 1 0 ; 0 0 -1 1
>Vertices: 1 1 1 1
Alternated: No
Vector: 1 0 0 0
Planes: 0 1 0 0 =
, 0 1 1 0 ; 0 1 -1 0 , 0 1 0 -1 ; 0 1 0 0 , 0 1 1 1
Cuts: 0.333333 ; -0.=
333333
Vector: 1 1 1 1
Planes: 1 -1 0 0 , 1 0 -1 0 ; 1 -1 0 0 , 1 1 -1 -1
Cu=
ts: 0
It's a cube 3^4 with 8 additional diagonal cuttings :)=
Meaning of vectors:
When you apply the rotation defined by v=
ectors A, B to the vector C, result will be:
Rot[A,B](C) =3D Symm[B](Symm[A](C)),
where Symm[A](C)=3D2*A*(A,C)/(A,A)-=
C .
Reflection of the vector in the plane
Refl[A](C)=3D-Symm[A](C=
) .
Now, when rotation plane description includes minimal twist angl=
e, I think tat we may return to single number description of angle - write =
there one integer number.
Description of 5^7:
Dimensions: 7
Movements: 1 0 0 0 0 0 0 ; =
-1 1 0 0 0 0 0; 0 -1 1 0 0 0 0; 0 0 -1 1 0 0 0 ; 0 0 0 -1 1 0 0 ; 0 0 0 0 -=
1 1 0 ; 0 0 0 0 0 -1 1
Vertices: 1 1 1 1 1 1 1
Alternated: No
Vector: 1 0 0 0 0 0 0
Planes: 0 1 0 0 0 0 0 , 0 1 1 0 0 0 0 ; 0 1 0 0 0 =
0 0 , 0 1 0 1 0 0 0 ; 0 1 0 0 0 0 0 , 0 1 0 0 1 0 0 ; 0 1 0 0 0 0 0 , 0 1 0=
0 0 1 0 ; 0 1 0 0 0 0 0 =A0, 0 1 0 0 0 0 1
Cuts: 0.6 ; 0.2 ; -0.2 ; -0.=
6
Sticker-oriented programs (like MC4D) will have some way of finding cor=
respondence between stickers and twists. To do that it may apply twist to a=
ll cell centers (2D, 1D and 0D) and find the fixed point. If no fixed point=
s is found then the twist can't be described as sticker-defined. If for=
some sticker there is no twists in the set, then something is wrong with o=
ur mathematics :)
=A0All this doesn't include Andy's "2D twists". But t=
hey may be described as intersections of layers with different cutting plan=
es and same rotational planes. And we can write them in log like {5:3:8|1:4=
:1}:1 .
Numbers in braces are axis, rotation plane and mask for different direction=
s of cutting planes. Angle is the same. Direction of twist is defined by th=
e first group (different groups may give different orientations of the cano=
nical twist).
Andrey
--0016e6d9a1f52b7377049d6f2a6f--
Roice,
Yes, generation method will be part of the log format description. You do=
n't need to use the same language to implement it. E.g. functions comparing=
rotation planes may have different code - but they must return the same re=
sult.
For the most uniform polytopes we will need only one vertex in the list! =
For truncated tesseract it will be (1,1,1,0.4142135), for omnitrancated - s=
omething like (1,0.73,0.46,0.19) and so on. You need just to apply all "mov=
ements" to it and calculate convex hull. Not very easy, but computation of =
stickers forms is much more difficult.
I don't like XML much and prefer text format, but it's easy to work with =
XML from C# so we may to consider this variant. I'm not sure that XML block=
as the part of text log file will be good idea. May be we'll need to keep =
puzzle description in one file, compiled puzzle structure (with all sticker=
coordinates) in another and log file will have reference to them.
Andrey
Small correction to the "alternated" concept.
Flag "Alternated" is not common for the whole puzzle. It can be applied to =
any movement. If puzzle description contains one or more "alternated" mirro=
r reflections, then valid movements are such that are compositions of an ev=
en number of alternated reflections and arbitary number of non-alternated r=
eflections. This is important for the generation of axes set and for the ge=
neration of verteces as well.
Otherwise it will be difficult to describe something like "antiprismatic pr=
isms".
I still wonder why there are no alternated douprisms [2n]x[2k] in the list =
of uniform polychora. If we take checkerboard pattern on verteces of doupri=
sm and throw away all white verteces, what will be the convex hull of the r=
emaining ones? Of cource, we must take different size of [2n] and [2k] poly=
gons, length of their smallest diagonals should be the same.
Andrey
--- In 4D_Cubing@yahoogroups.com, "Andrey"
>
> Re: Twists description=20
>=20
> http://groups.yahoo.com/group/4D_Cubing/photos/album/1184359940/pic/18927=
27590/view
>=20
> Description of 3D 4-antiprism:
>=20
> Dimensions: 3
> Movements: 0 0 1 ; 1 0 0 ; 2.4142135 1 0
> Vertices: 2.4142135 1 1
> Alternated: Yes
> Vector: 0 0 1
> Planes: 1 0 0 , 1 1 0
> Cuts: -0.4142135 ; 0.4142135
> Vector: 1 0 0
> Planes: 0 0 1 , 0 1 0
> Cuts: -1.4142135 ; 1.4142135
>
--0015175cd17ee98686049d79d8c4
Content-Type: text/plain; charset=ISO-8859-1
On Tue, Mar 1, 2011 at 11:51 PM, Andrey
>
> I still wonder why there are no alternated douprisms [2n]x[2k] in the list
> of uniform polychora. If we take checkerboard pattern on verteces of
> douprism and throw away all white verteces, what will be the convex hull of
> the remaining ones? Of cource, we must take different size of [2n] and [2k]
> polygons, length of their smallest diagonals should be the same.
I wouldn't be able to prove it myself, but Wikipedia says the following on
the duoprism
page...
Like the antiprisms as alternated prisms, there is a set of 4-dimensional
> duoantiprisms polychorons that can be created by an alternation operation
> applied to a duoprism. However most are not uniform. The alternated vertices
> create nonregular tetrahedral cells, except for the special case, the 4-4
> duoprism (tesseract) which creates the uniform (and regular) 16-cell. The
> 16-cell is the only convex uniform duoantiprism.
seeya,
Roice
--0015175cd17ee98686049d79d8c4
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
n@yahoo.com> wrote:"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I still wonder why there are no alternated douprisms [2n]x[2k] in the list =
of uniform polychora. If we take checkerboard pattern on verteces of doupri=
sm and throw away all white verteces, what will be the convex hull of the r=
emaining ones? Of cource, we must take different size of [2n] and [2k] poly=
gons, length of their smallest diagonals should be the same.
a says the following on the m#Polychoral_duoantiprisms">duoprism=A0page...
-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color=
: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">
Like the=A0antiprisms=A0as alternated=A0prisms, there is a set of 4-dimensi=
onal duoantiprisms=A0polychorons=A0that can be created by an=A0alternation=
=A0operation applied to a duoprism. However most are not uniform. The alter=
nated vertices create nonregular tetrahedral cells, except for the special =
case, the=A04-4 duoprism=A0(tesseract) which creates the uniform (and regul=
ar)=A016-cell. The 16-cell is the only convex uniform duoantiprism.=A0ckquote>
--0015175cd17ee98686049d79d8c4--
Hi Andrey,
I forgot both are planes of rotation in 4D. I'll used the words 'fixed'=
and 'moving.'
Does 'Movement:' =3D R1 vectors and=20
'Vector:' =3D R vector
from your previous email? They make the fixed multi-axis [R,R1]?=20=20
Consider an N-dimensional simplex (N>2). For any 120-degree rotation that =
can do a 3-cycle on 3 vertices (and the 2D triangle between them), the movi=
ng plane of rotation is determined as well as the fixed multi-axis. Orient=
the simplex so that the moving plane of rotation is an x-y rotation and mo=
ve the simplex so that the center of the simplex is at the origin. Then si=
nce the moving plane of rotation is orthogonal to the multi-axis, (1) the m=
ulti-axis is the restricted set x=3D0 and y=3D0. Also, since the remaining=
fixed vertices are equidistant from the moving verticies, (2) the x and y =
coordinates of the fixed vertices are restricted to 0. (1) and (2) imply th=
at a multi-axis for such a 120-degree rotation contains all fixed vertices.=
(It also contains the center of the moving triangle.) That help?
I assumed your multi-axis is everything spanned by whatever axes you list i=
n it.=20=20
--
Andy
----- Original Message -----
From: "Andrey"
To: "4D Cubing" <4D_Cubing@yahoogroups.com>
Sent: Tuesday, March 1, 2011 1:46:42 AM
Subject: [MC4D] Twists description
Hi guys,=20
I'm a little confused about the term "rotation plane". What does it mean? I=
f we have elementary twist in R^D, then there are two invariant spaces: Fir=
st one is D-2 dimensional and vectors from it are not affected by the twist=
(they are eigenvectors with eigenvalues 1), and the second is two-dimensio=
nal and the twist rotates it like the regular 2D plane. In 4D they both hav=
e 2 dimensions. I think that the term "rotation plane" fits better to the s=
econd (2D) space, and "rotation multi-axis" I've used for the first space.=
=20
Let us have 4D body that is cut by a set of hyperplanes (yes, they are 3D, =
and we don't need anything more than normal direction and distance from the=
center to define it). We have to decribe the set of axes (normals to hyper=
planes) and set of possible rotation planes perpendicular to each axis. And=
we don't want the complete list of them.=20
I see an algorithmic way of the enumeration.=20
We have from 1 to 4 families of axes for our puzzle. Take one axis from eac=
h family and some set of body movements - generators of the symmetry group.=
If we don't consider "alternated" bodies, then generators can be taken fro=
m mirror reflections - they have the simplest description (one vector).=20
For example, for the tesseract family we have=20
Axes=3D{(0,0,0,1),(0,0,1,1),(0,1,1,1),(1,1,1,1)}=20
Movements=3D{(1,0,0,0),(-1,1,0,0),(0,-1,1,0),(0,0,-1,1)}=20
They are edges and faces of the fundamental area, but I'm not sure that it =
will always be the case (we should check what happens for simplex, bitrunca=
ted simplex, bitruncated 24-cell and for duoprisms with n=3Dk and n!=3Dk).=
=20
To generate and enumerate the complete set of axes use the function:=20
int p=3D0,q=3DAxes.Length;=20
for(i=3D0;iwhile(p!=3Dq){=20
foreach(Movement M in Movements){=20
Vector V=3DM.ApplyTo(A[p]);=20
for(i=3D0;iif(i=3D=3Dq) A[q++]=3DV;=20
}=20
}=20
The same is for twists: for each axis we decribe generators of the set of p=
ossible rotational planes (give them as pairs of vectors, describing half o=
f the smallest twist - and we'll have the order of twists group for this pl=
ane for free). We don't need to decribe movements to generate complete twis=
ts set - rotation planes give it to themself.=20
So the complete description for tesseract family will be:=20
Movements: 1 0 0 0 ; -1 1 0 0 ; 0 -1 1 0 ; 0 0 -1 1=20
Vector: 1 0 0 0=20
Planes: 0 1 0 0 , 0 1 1 0 ; 0 1 -1 0 , 0 1 0 -1 ; 0 1 0 0 , 0 1 1 1=20
Vector: 1 1 0 0=20
Planes: 0 0 1 0 , 0 0 1 1 ; 1 -1 0 0 , 0 0 1 0 ; 1 -1 0 0 , 0 0 1 1=20
Vector: 1 1 1 0=20
Planes: 1 -1 0 0 , 1 0 -1 0 ; 0 0 0 1 , 1 -1 0 0=20
Vector: 1 1 1 1=20
Planes: 1 -1 0 0 , 1 0 -1 0 ; 1 -1 0 0 , 1 1 -1 -1=20
And if you add some more lines, you can get the complete description of the=
puzzle (assuming that the body is convex and the painting is "one color pe=
r one cell"):=20
Dimensions: 4=20
Movements: 1 0 0 0 ; -1 1 0 0 ; 0 -1 1 0 ; 0 0 -1 1=20
Vertices: 1 1 1 1=20
Alternated: No=20
Vector: 1 0 0 0=20
Planes: 0 1 0 0 , 0 1 1 0 ; 0 1 -1 0 , 0 1 0 -1 ; 0 1 0 0 , 0 1 1 1=20
Cuts: 0.333333 ; -0.333333=20
Vector: 1 1 1 1=20
Planes: 1 -1 0 0 , 1 0 -1 0 ; 1 -1 0 0 , 1 1 -1 -1=20
Cuts: 0=20
It's a cube 3^4 with 8 additional diagonal cuttings :)=20
Meaning of vectors:=20
When you apply the rotation defined by vectors A, B to the vector C, result=
will be:=20
Rot[A,B](C) =3D Symm[B](Symm[A](C)),=20
where Symm[A](C)=3D2*A*(A,C)/(A,A)-C .=20
Reflection of the vector in the plane=20
Refl[A](C)=3D-Symm[A](C) .=20
Now, when rotation plane description includes minimal twist angle, I think =
tat we may return to single number description of angle - write there one i=
nteger number.=20
Description of 5^7:=20
Dimensions: 7=20
Movements: 1 0 0 0 0 0 0 ; -1 1 0 0 0 0 0; 0 -1 1 0 0 0 0; 0 0 -1 1 0 0 0 ;=
0 0 0 -1 1 0 0 ; 0 0 0 0 -1 1 0 ; 0 0 0 0 0 -1 1=20
Vertices: 1 1 1 1 1 1 1=20
Alternated: No=20
Vector: 1 0 0 0 0 0 0=20
Planes: 0 1 0 0 0 0 0 , 0 1 1 0 0 0 0 ; 0 1 0 0 0 0 0 , 0 1 0 1 0 0 0 ; 0 1=
0 0 0 0 0 , 0 1 0 0 1 0 0 ; 0 1 0 0 0 0 0 , 0 1 0 0 0 1 0 ; 0 1 0 0 0 0 0 =
, 0 1 0 0 0 0 1=20
Cuts: 0.6 ; 0.2 ; -0.2 ; -0.6=20
Sticker-oriented programs (like MC4D) will have some way of finding corresp=
ondence between stickers and twists. To do that it may apply twist to all c=
ell centers (2D, 1D and 0D) and find the fixed point. If no fixed points is=
found then the twist can't be described as sticker-defined. If for some st=
icker there is no twists in the set, then something is wrong with our mathe=
matics :)=20
All this doesn't include Andy's "2D twists". But they may be described as i=
ntersections of layers with different cutting planes and same rotational pl=
anes. And we can write them in log like {5:3:8|1:4:1}:1 .=20
Numbers in braces are axis, rotation plane and mask for different direction=
s of cutting planes. Angle is the same. Direction of twist is defined by th=
e first group (different groups may give different orientations of the cano=
nical twist).=20
Andrey=20
Hi Andy,
"Movements:" give us description of the symmetry group of the puzzle body=
. Vectors from this set define reflections around their orthogonal hyperpla=
nes. Movements are used to define the set of axes and their order, but vect=
ors fr0om this set don't have to be vectors of multi-axes, or moving planes=
or so on (but usually they are).=20
"Vector:" is a part of description of the cutting hyperplane. It is ortho=
gonal to a set of parallel hyperplanes, and it always belongs to multi-axes=
of all twists of all layers cutting by these hyperplanes.
"Planes:" it's desription of moving planes of the layer orthogonal to "Ve=
ctor". Each moving plane is defined by a pair of vectors. Both of them are =
perpendicular to "Vector". Angle between vectors is a half of the minimal t=
wist angle (so we are able to define 180-deg twists by selecting of two per=
pendicular vectors).
"Cuts:" distances from the center to cutting hyperplanes (in the directio=
n of "Vector"). For the symmetrical bodies set of distances is usually symm=
etrical, but for simplex and some other bodies like (4,5)-duoprisms positiv=
e and negative directions of the axis are different.
And yes, multi-axis is (D-2)-dimensional space.=20
Andrey
--- In 4D_Cubing@yahoogroups.com, Andrew James Gould
>
> Hi Andrey,
> I forgot both are planes of rotation in 4D. I'll used the words 'fixe=
d' and 'moving.'
>=20
> Does 'Movement:' =3D R1 vectors and=20
> 'Vector:' =3D R vector
> from your previous email? They make the fixed multi-axis [R,R1]?=20=20
>=20
> Consider an N-dimensional simplex (N>2). For any 120-degree rotation tha=
t can do a 3-cycle on 3 vertices (and the 2D triangle between them), the mo=
ving plane of rotation is determined as well as the fixed multi-axis. Orie=
nt the simplex so that the moving plane of rotation is an x-y rotation and =
move the simplex so that the center of the simplex is at the origin. Then =
since the moving plane of rotation is orthogonal to the multi-axis, (1) the=
multi-axis is the restricted set x=3D0 and y=3D0. Also, since the remaini=
ng fixed vertices are equidistant from the moving verticies, (2) the x and =
y coordinates of the fixed vertices are restricted to 0. (1) and (2) imply =
that a multi-axis for such a 120-degree rotation contains all fixed vertice=
s. (It also contains the center of the moving triangle.) That help?
>=20
> I assumed your multi-axis is everything spanned by whatever axes you list=
in it.=20=20
>=20
> --
> Andy
>=20