예제 #1
0
  private void render_music_manuscript(Artist artist) {
    float lineSpacingMm = 2.0f;
    float staveHeight = 4 * lineSpacingMm;
    float staffTopMarginMm = 25.0f;
    float staffBottomMarginMm = 15.0f;
    float staffSideMarginMm = 15.0f;

    int staveCount = 12;
    if (aspectRatio.isPortrait()) staveCount = 12;
    else staveCount = 8;
    float staffTotal = staffTopMarginMm + staffBottomMarginMm + staveCount * staveHeight;
    float staffSpacing = staveHeight + (heightMm - staffTotal) / (staveCount - 1);

    float x0, x1, y;
    LineStyle line = new LineStyle();
    line.setColor(0f, 0f, 0f);

    line.setWidth(0);
    staffSpacing = staveHeight + (heightMm - staffTotal) / (staveCount - 1);

    x0 = staffSideMarginMm / heightMm;
    x1 = (widthMm - staffSideMarginMm) / heightMm;

    for (int i = 0; i < staveCount; i++) {
      for (int j = 0; j < 5; j++) {
        y = (staffTopMarginMm + i * staffSpacing + j * lineSpacingMm) / heightMm;
        artist.drawLine(x0, y, x1, y, line);
      }
    }
  }
예제 #2
0
  private void render_cornellnotes(Artist artist) {
    float x0, x1, y0, y1;
    final float MARGIN = 1.25f;
    LineStyle line = new LineStyle();
    line.setColor(0f, 0f, 0f);
    line.setWidth(0);

    // Cue Column
    x0 = (MARGIN * INCH_in_MM) / widthMm;
    x1 = x0;
    y0 = 0f;
    y1 = (heightMm - (MARGIN * INCH_in_MM)) / heightMm;
    artist.drawLine(x0, y0, x1, y1, line);

    // Summary area at base of page
    x0 = 0f;
    x1 = widthMm / heightMm;
    y0 = (heightMm - (MARGIN * INCH_in_MM)) / heightMm;
    y1 = y0;
    artist.drawLine(x0, y0, x1, y1, line);

    // Details
    float spacingMm = COLLEGERULED_SPACING;
    int n = (int) Math.floor((heightMm - (MARGIN * INCH_in_MM) - 2 * marginMm) / spacingMm);

    x0 = (MARGIN * INCH_in_MM) / widthMm + marginMm / heightMm;
    x1 = (widthMm - marginMm) / heightMm;

    for (int i = 1; i <= n; i++) {
      float y = ((heightMm - n * spacingMm - MARGIN * INCH_in_MM) / 2 + i * spacingMm) / heightMm;
      artist.drawLine(x0, y, x1, y, line);
    }
  }
예제 #3
0
  private void render_ruled(Artist artist, float lineSpacing, float margin) {
    float spacingMm = lineSpacing;
    float vertLineMm = margin;
    LineStyle line = new LineStyle();
    line.setColor(0f, 0f, 0f);
    line.setWidth(0);
    int n = (int) Math.floor((heightMm - 2 * marginMm) / spacingMm) - 2;
    float x0 = marginMm / heightMm;
    float x1 = (widthMm - marginMm) / heightMm;
    for (int i = 1; i <= n; i++) {
      float y = ((heightMm - n * spacingMm) / 2 + i * spacingMm) / heightMm;
      artist.drawLine(x0, y, x1, y, line);
    }

    // Paint margin
    if (margin > 0.0f) {
      line.setColor(1f, 0f, 0f);
      line.setWidth(0);
      float y0 = marginMm / heightMm;
      float y1 = (heightMm - marginMm) / heightMm;
      float x = vertLineMm / widthMm;
      artist.drawLine(x, y0, x, y1, line);
    }
  }
예제 #4
0
 private void render_quad(Artist artist) {
   float spacingMm = 5f;
   int nx, ny;
   float x, x0, x1, y, y0, y1;
   LineStyle line = new LineStyle();
   line.setColor(0f, 0f, 0f);
   line.setWidth(0);
   ny = (int) Math.floor((heightMm - 2 * marginMm) / spacingMm);
   nx = (int) Math.floor((widthMm - 2 * marginMm) / spacingMm);
   float marginXMm = (widthMm - nx * spacingMm) / 2;
   float marginYMm = (heightMm - ny * spacingMm) / 2;
   x0 = marginXMm / heightMm;
   x1 = (widthMm - marginXMm) / heightMm;
   y0 = marginYMm / heightMm;
   y1 = (heightMm - marginYMm) / heightMm;
   for (int i = 0; i <= ny; i++) {
     y = (marginYMm + i * spacingMm) / heightMm;
     artist.drawLine(x0, y, x1, y, line);
   }
   for (int i = 0; i <= nx; i++) {
     x = (marginXMm + i * spacingMm) / heightMm;
     artist.drawLine(x, y0, x, y1, line);
   }
 }