Exemple #1
0
  protected void drawGraphicsNative(PGraphics pg) {
    DrawUtil.setDrawCenter(pg);
    pg.beginDraw();
    pg.clear();
    DrawUtil.setBasicLights(pg);

    float frameRadians = P.TWO_PI / _frames;
    float percentComplete = ((float) (p.frameCount % _frames) / _frames);
    float radiansComplete = P.TWO_PI * percentComplete;
    float easedPercent = Penner.easeInOutCubic(percentComplete, 0, 1, 1);
    float easedPercentHard = Penner.easeInOutQuad(percentComplete, 0, 1, 1);

    //		pg.background(0);
    pg.translate(p.width / 2, p.height / 2 + p.height * 0.04f);
    pg.blendMode(P.SCREEN);
    //		pg.blendMode(P.MULTIPLY);

    //		pg.rotateY(p.mouseX * 0.01f);
    //		pg.rotateX(p.mouseY * 0.01f);
    pg.rotateX(4.3f + 0.01f * P.sin(percentComplete * P.TWO_PI));
    //		pg.rotateX(4.3f);

    pg.noStroke();

    int numDiscs = 25;
    float spacing = p.width * 0.019f;
    pg.translate(0, 0, spacing * numDiscs * 0.3f);
    for (int i = 0; i < numDiscs; i++) {
      float percentDone = percentComplete + ((float) i / numDiscs);
      float size = p.width * 0.3f + p.width * 0.01f * P.sin(percentDone * P.TWO_PI);
      int discColor = p.color(200 + (i * 5), 100 + (i * 5), 170 - (i * 5), 60);
      pg.fill(discColor);

      pg.translate(0, 0, -spacing);
      //			Shapes.drawDisc3D(pg, size, size * 0.9f - size * (P.sin(percentDone * P.TWO_PI)+1) *
      // 0.15f, spacing, 40, discColor, discColor);
      Shapes.drawDisc(
          pg, size, size * 0.9f - size * (P.sin(percentDone * P.TWO_PI) + 1) * 0.15f, 6);
    }

    pg.endDraw();
  }