Example #1
0
  public void drawApp() {
    p.background(255);

    float percentComplete = ((float) (p.frameCount % _frames) / _frames);
    float easedPercent = Penner.easeInOutSine(percentComplete, 0, 1, 1);
    // float easedPercentHard = Penner.easeInOutQuad(percentComplete, 0, 1, 1);

    // texture feedback
    float feedback = 10f; // * P.sin(percentComplete * P.TWO_PI);
    _texture.copy(
        _texture,
        0,
        0,
        _texture.width,
        _texture.height,
        P.round(-feedback / 2f),
        P.round(-feedback / 2f),
        P.round(_texture.width + feedback),
        P.round(_texture.height + feedback));

    // start texture drawing
    _texture.beginDraw();
    DrawUtil.setDrawCenter(_texture);
    _texture.noStroke();

    // fade out
    _texture.fill(255, 15f);
    _texture.translate(p.width / 2f, p.height / 2f);
    _texture.rect(0, 0, p.width, p.height);

    // rotating circles
    float arms = 260;
    float circleInc = P.TWO_PI / arms;
    float radius = width / 6f;

    for (int i = 0; i < arms; i++) {
      float curRads = circleInc * i;
      float moreRads = curRads + easedPercent * P.TWO_PI;
      float radiuz = radius + radius / 2f * P.sin(moreRads + percentComplete * 1f * P.TWO_PI);
      _texture.pushMatrix();
      _texture.translate(P.sin(moreRads) * radiuz, P.cos(moreRads) * radiuz);
      _texture.rotate(moreRads);
      _texture.fill(
          60 + 50 * P.sin(moreRads), 127 + 80 * P.sin(curRads), 100 + 80 * P.sin(curRads), 200);
      _texture.ellipse(0, 0, 5, 5);
      _texture.popMatrix();
    }

    // finish drawing
    _texture.endDraw();

    // draw texture to stage
    DrawUtil.setColorForPImage(p);
    p.image(_texture, 0, 0);
  }
Example #2
0
  protected void drawGraphicsSunflow(PApplet pg) {
    p.noStroke();
    DrawUtil.setDrawCenter(p);

    _jw.jr.background(JoonsWrapper.BACKGROUND_AO);
    _jw.jr.background(0, 0, 0);

    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);

    setUpRoom();

    p.translate(0, p.height * 0.1f, -480);

    // white bg block
    //		p.pushMatrix();
    //		p.translate(0,0,-1500);
    //		DrawUtil.setDrawCenter(p);
    //		p.fill(255);
    //		_jw.jr.fill( JoonsWrapper.MATERIAL_SHINY, 255, 255, 255 );
    //		p.box(p.width*10, p.width*10, 2);
    //		p.popMatrix();

    p.rotateX(4.6f + P.sin(radiansComplete) * 0.01f);

    int numDiscs = 30;
    float spacing = p.width * 0.019f;
    p.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), 0.3f);
      p.fill(discColor);

      p.translate(0, 0, -spacing);
      _jw.jr.fill(
          JoonsWrapper.MATERIAL_SHINY,
          ColorHax.redFromColorInt(discColor),
          ColorHax.greenFromColorInt(discColor),
          ColorHax.blueFromColorInt(discColor));
      drawDisc3D(
          size,
          size * 0.9f - size * (P.sin(percentDone * P.TWO_PI) + 1) * 0.15f,
          spacing * 0.25f,
          140,
          discColor,
          discColor);
      //			drawDisc(size, size * 0.9f - size * (P.sin(percentDone * P.TWO_PI)+1) * 0.15f, 140);
    }
  }
Example #3
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();
  }
Example #4
0
  public static void drawDisc(float radius, float innerRadius, int numSegments) {
    p.pushMatrix();

    // draw triangles

    for (int i = 0; i < numSegments; i++) {
      p.beginShape(P.TRIANGLES);
      float segmentCircumference = (2f * P.PI) / numSegments;

      p.vertex(
          P.sin(i * segmentCircumference) * innerRadius,
          P.cos(i * segmentCircumference) * innerRadius,
          0);
      p.vertex(
          P.sin(i * segmentCircumference) * radius, P.cos(i * segmentCircumference) * radius, 0);
      p.vertex(
          P.sin((i + 1) * segmentCircumference) * radius,
          P.cos((i + 1) * segmentCircumference) * radius,
          0);

      p.vertex(
          P.sin(i * segmentCircumference) * innerRadius,
          P.cos(i * segmentCircumference) * innerRadius,
          0);
      p.vertex(
          P.sin((i + 1) * segmentCircumference) * innerRadius,
          P.cos((i + 1) * segmentCircumference) * innerRadius,
          0);
      p.vertex(
          P.sin((i + 1) * segmentCircumference) * radius,
          P.cos((i + 1) * segmentCircumference) * radius,
          0);
      p.endShape();
    }

    p.popMatrix();
  }
Example #5
0
  public static void drawDisc3D(
      float radius,
      float innerRadius,
      float cylinderHeight,
      int numSegments,
      int color,
      int wallcolor) {
    float segmentCircumference = (2f * P.PI) / numSegments;
    float halfHeight = cylinderHeight / 2;

    // top/bottom discs
    p.pushMatrix();
    p.translate(0, 0, halfHeight);
    drawDisc(radius, innerRadius, numSegments);
    p.popMatrix();

    p.pushMatrix();
    p.translate(0, 0, -halfHeight);
    drawDisc(radius, innerRadius, numSegments);
    p.popMatrix();

    p.beginShape(P.TRIANGLES);
    for (int i = 0; i < numSegments; i++) {
      //			if( wallcolor > 0 ) p.fill( wallcolor );
      // outer wall
      p.vertex(
          P.sin(i * segmentCircumference) * radius,
          P.cos(i * segmentCircumference) * radius,
          halfHeight);
      p.vertex(
          P.sin(i * segmentCircumference) * radius,
          P.cos(i * segmentCircumference) * radius,
          -halfHeight);
      p.vertex(
          P.sin((i + 1) * segmentCircumference) * radius,
          P.cos((i + 1) * segmentCircumference) * radius,
          halfHeight);

      p.vertex(
          P.sin(i * segmentCircumference) * radius,
          P.cos(i * segmentCircumference) * radius,
          -halfHeight);
      p.vertex(
          P.sin((i + 1) * segmentCircumference) * radius,
          P.cos((i + 1) * segmentCircumference) * radius,
          halfHeight);
      p.vertex(
          P.sin((i + 1) * segmentCircumference) * radius,
          P.cos((i + 1) * segmentCircumference) * radius,
          -halfHeight);

      // only draw inner radius if needed
      if (innerRadius > 0) {
        //				if( wallcolor > 0 ) p.fill(wallcolor);
        // inner wall
        p.vertex(
            P.sin(i * segmentCircumference) * innerRadius,
            P.cos(i * segmentCircumference) * innerRadius,
            halfHeight);
        p.vertex(
            P.sin(i * segmentCircumference) * innerRadius,
            P.cos(i * segmentCircumference) * innerRadius,
            -halfHeight);
        p.vertex(
            P.sin((i + 1) * segmentCircumference) * innerRadius,
            P.cos((i + 1) * segmentCircumference) * innerRadius,
            halfHeight);

        p.vertex(
            P.sin(i * segmentCircumference) * innerRadius,
            P.cos(i * segmentCircumference) * innerRadius,
            -halfHeight);
        p.vertex(
            P.sin((i + 1) * segmentCircumference) * innerRadius,
            P.cos((i + 1) * segmentCircumference) * innerRadius,
            halfHeight);
        p.vertex(
            P.sin((i + 1) * segmentCircumference) * innerRadius,
            P.cos((i + 1) * segmentCircumference) * innerRadius,
            -halfHeight);
      }
    }

    p.endShape();
  }