Project

General

Profile

« Previous | Next » 

Revision 387b6326

Added by Leszek Koltunski over 2 years ago

Make the Kilo and Megaminxes standard size (dodecahedron size=3,5, i.e. equal to numLayers so that DIST2D and DIST3D are standard)

View differences:

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