Hi!
Thank you very much puntopunto.
To Knighty:
It's not obvious to me either to do spherical trigonometry on the 3-sphere, so I'm still wondering how you put it together in 4D.
As far as I can see you took 4 hyperplanes that form the fundamental domain (also known as the Goursat tetrahedron): a, b, nc and nd being their normals.
You took a to be <1,0,0,0> and b=<0,1,0,0>.
The angles between the planes give 5 equations for 6 unknowns, but one component of a vector can be chosen freely.
As far as I can see you took the angles between planes to be:
a-b: pi/2, a-c: pi/5, a-d: pi/2, b-c: pi/3, b-d: pi/3, c-d:pi/2.
...and I'm puzzled at why this should be so! I have a hard time visualizing what the angles between the 4D hyperplanes should be!
Anyway, choosing the fourth coordinate of nd to be zero, I arrive at your expressions for nc and nd.
The angle between two hyperplanes is given by the normals to thos e hyperplane. It's 2D whatever the dimension of the hyperplane is. the two normal vectors define a 2D plane (obviousely this plane is perpendicular to the hyperplanes and in our case it goes through the origin) which intersection with the two hyperplanes gives two lines. The angle between these two lines is exactly the angle between the two hyperplanes.
The general method I use is as follow:
- I require the hyperplanes to have normals pointing inside the fundamental domain. having 4 hyperplanes, they divide the 4D space into 2^4=16 sectors. Only one sector is such that the normal vectors to the hyperplanes all point inside the sector.
- A consequance of the first requirement is that the half lines of the fundamental domain are on the positive side of the opposit hyperplane.
- I also require that the positive part of the w axis be the intersection of hyperplanes a,b and c. It will be on the positive side of the hyperplane d.
- because the angles between our hyperplanes are always <=PI/2, the fundamental domain is small enough to fit inside the first 1/16 sector where all coordinates are positive
. (this is the same as the first octant in 3D or the first quadrant in 2D). That is why i take the (componenet wise) absolute value of the vector product to get the vertices. That way I haven't to worry about the order of the vectors as they appear in the vector product.
Let the planes a:(a0,a1,a2,a3); b:(b0,b1,b2,b3); c:(c0,c1,c2,c3) and d:(d0,d1,d2,d3) be the normal vectors to the hyperplanes. We have a total of 16 unknowns. There are 6 angles (that are deduced from the coxeter diagram including those that are equal to pi/2). Those angles give 6 linear equations (such that a.b=-cos(angle(a,b))). We also want the normal vectors to be noralized which give a set of 4 nonlinear equations. We will need a mean to fix the 6 remaining degrees of freedom (which correspond to the set of orthonormal matrices in 4D). The simplest method I could think of is to set some of the components to 0 like this:
a:(a0,0,0,0); b:(b0,b1,0,0); c:(c0,c1,c2,0) and d:(d0,d1,d2,d3).
Then solve the system of equations.
Because of the 4 nonlinear equations, one have to be careful abou the signs in order to keep the fundamental plane inside the first 1/16 sector. In the case of polychora: a0=1; b0<=0; b1>0; c0,c1<=0; c2>0; d0,d1,d2<=0 and d3>0. (in the hyperbolic case one can verify that d3 must be <0 also).
In practice and in order to simplify the calculation (made by hand) I always group the perpendicular hyperplanes to be processed first. for example, if there is a angle of pi/2 I choose it to be the angle between a and b so their components will be (1,0,0,0) and (0,1,0,0). And so on... a-c then b-c then a-d ...etc.
The points on the sphere can be derived from the cross products in four dimensions, which requires three vectors.
What I do not understand is why your four points, pabc, pbdc etc. stem from the cross products abc, bdc, cda, dba and not something else like acb, cdb or dcb..the choice is endless!!
That is the part where i was lost
. In fact given three vectors a,b and c, their dot products *(a,b,c), *(b,c,a) and *(c,a,b) are equal. those are even permutations. The other permutations of a,b,c which are odd give a vector with same magnitude but opposit direction.
The requirements I did, garantee that all the vertices have only positive coordinates. This way I don't have to worry about the right order for the cross products. I just take the absolute value.