Project

General

Profile

« Previous | Next » 

Revision 720b26cd

Added by Leszek Koltunski about 1 year ago

Coin Tetrahedron: progress

View differences:

src/main/java/org/distorted/objectlib/objects/TwistyCoinTetrahedron.java
72 72
    {
73 73
    if( mCuts==null )
74 74
      {
75
      float[] cut = new float[] {-0.95f*(SQ6/4),0};
75
      float[] cut = new float[] {-0.95f*(SQ6/4),SQ6/6};
76 76
      mCuts = new float[][] { cut,cut,cut,cut };
77 77
      }
78 78

  
......
107 107
    {
108 108
    return new int[][][]
109 109
      {
110
         {{0},{0},{0},{1},{3},{2}},
111
         {{1},{1},{1},{0},{2},{3}},
110
         {{0},{0},{0},{1},{2},{3}},
111
         {{1},{1},{1},{0},{3},{2}},
112 112
         {{2},{2},{2},{3},{1},{0}},
113 113
         {{3},{3},{3},{2},{0},{1}}
114 114
      };
......
253 253
    {
254 254
    float[][] ret = new float[5 + 3*(N+1) +3][];
255 255

  
256
    ret[0] = new float[] { 0.00f, 0.0f     , 0.00f };
257
    ret[1] = new float[] { 0.00f, 0.0f     ,-1.50f };
258
    ret[2] = new float[] { 0.75f, 0.75f*SQ2,-0.75f };
259
    ret[3] = new float[] {-0.75f, 0.75f*SQ2,-0.75f };
260
    ret[4] = new float[] { 0.00f, 0.75f*SQ2,-1.50f };
256
    float C = 0.85f;
257
    ret[0] = new float[] { 0.00f,   0.0f     ,   0.00f };
258
    ret[1] = new float[] { 0.00f,   0.0f     ,  -1.50f };
259
    ret[2] = new float[] { 0.75f,   0.75f*SQ2,  -0.75f };
260
    ret[3] = new float[] {-0.75f,   0.75f*SQ2,  -0.75f };
261
    ret[4] = new float[] { 0.00f, C*0.75f*SQ2,C*-1.50f };
261 262

  
262 263
    float[] vect1 = new float[4];
263 264
    float[] vect2 = new float[4];
......
599 600
  @Override
600 601
  public void adjustStickerCoords()
601 602
    {
602
    float B = 0.06422593f;
603
    float C = 0.43301257f;
603
    float L = 0.02f;
604
    float Z = 0.06422593f - L;
605
    float X = 0.5f - L;
606

  
607
    float K = 0.95f;
608
    float A = K*0.50f;
609
    float B = K*0.25f;
610
    float C = K*0.43301257f;
611

  
604 612
    float D = 0.3580885f;
605 613
    float E = 0.12022744f;
606 614
    float F = 0.32227963f - 0.015f;
......
609 617
    mStickerCoords = new float[][]
610 618
          {
611 619
            { -D, E, 0.0f, -0.5f, D, E, F, G, -F, G },
612
            { -C, -0.25f, 0.0f, 0.5f, C, -0.25f },
613
            { -0.5f, B, 0.5f, B }
620
            { -C, -B, 0.0f, A, C, -B },
621
            { -X, Z, X, Z }
614 622
          };
615 623
    }
616 624

  
......
619 627
  public float[][] getStickerAngles()
620 628
    {
621 629
    float D1 = (float)(Math.PI/3);
622
    float D2 = (float)(Math.PI/8);  // really 6, but with 8 it looks better
630
    float D2 = (float)(Math.PI/6);  // really 6, but with 8 it looks better
623 631
    return new float[][] { { 0,0,0,-D1,0 },{-D2,-D2,-D2},{D1,D2} };
624 632
    }
625 633

  

Also available in: Unified diff