Revision 387b6326
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objects/TwistyMegaminx.java | ||
---|---|---|
70 | 70 |
|
71 | 71 |
float getScreenRatio() |
72 | 72 |
{ |
73 |
return 1.07f;
|
|
73 |
return 0.356f;
|
|
74 | 74 |
} |
75 | 75 |
|
76 | 76 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
121 | 121 |
{ |
122 | 122 |
if( mCenterCoords==null ) initializeCenterCoords(); |
123 | 123 |
float[] coords = mCenterCoords[center]; |
124 |
float A = numLayers/3.0f;
|
|
124 |
float A = 0.33f*numLayers;
|
|
125 | 125 |
|
126 | 126 |
return new float[] { A*coords[0], A*coords[1], A*coords[2] }; |
127 | 127 |
} |
... | ... | |
215 | 215 |
float vY = D*center[1] - y; |
216 | 216 |
float vZ = D*center[2] - z; |
217 | 217 |
|
218 |
float A = mult*D*(0.5f-MEGA_D)*COS18/((numLayers-1)*0.5f); |
|
218 |
float A = 3*mult*D*(0.5f-MEGA_D)*COS18/((numLayers-1)*0.5f);
|
|
219 | 219 |
A /= (float)Math.sqrt(vX*vX+vY*vY+vZ*vZ); |
220 | 220 |
|
221 | 221 |
return new float[] { x+A*vX, y+A*vY, z+A*vZ }; |
... | ... | |
291 | 291 |
|
292 | 292 |
if( variant==0 ) |
293 | 293 |
{ |
294 |
float width = (numLayers/3.0f)*(0.5f-MEGA_D)/(0.5f*(numLayers-1));
|
|
294 |
float width = numLayers*(0.5f-MEGA_D)/(0.5f*(numLayers-1));
|
|
295 | 295 |
float A = (2*SQ3/3)*SIN54; |
296 | 296 |
float B = 0.4f; |
297 | 297 |
double X = width*COS18*SIN_HALFD; |
... | ... | |
340 | 340 |
int numCubitsPerCorner = numCubitsPerCorner(numLayers); |
341 | 341 |
int numCubitsPerEdge = numCubitsPerEdge(numLayers); |
342 | 342 |
int type = computeEdgeType(cubit,numCubitsPerCorner,numCubitsPerEdge); |
343 |
float height= (numLayers/3.0f)*(0.5f-MEGA_D)*COS18/((numLayers-1)*0.5f);
|
|
344 |
float width = (numLayers/3.0f)*2*MEGA_D + 2*type*height*SIN18/COS18;
|
|
343 |
float height= numLayers*(0.5f-MEGA_D)*COS18/((numLayers-1)*0.5f);
|
|
344 |
float width = numLayers*2*MEGA_D + 2*type*height*SIN18/COS18;
|
|
345 | 345 |
|
346 | 346 |
double W = width/2; |
347 | 347 |
double X = height*SIN_HALFD; |
... | ... | |
387 | 387 |
} |
388 | 388 |
else |
389 | 389 |
{ |
390 |
float width = 2 * (numLayers/3.0f) * (MEGA_D+(0.5f-MEGA_D)*SIN18);
|
|
390 |
float width = 2*numLayers*(MEGA_D+(0.5f-MEGA_D)*SIN18);
|
|
391 | 391 |
final double V = 0.83; // ?? |
392 | 392 |
final double ANGLE = V*Math.PI; |
393 | 393 |
final double cosA = Math.cos(ANGLE); |
Also available in: Unified diff
Make the Kilo and Megaminxes standard size (dodecahedron size=3,5, i.e. equal to numLayers so that DIST2D and DIST3D are standard)