Skip to content

U0301 Geometrie von Schriftschnitten

Aufgabenstellung

Schreibe einen Processing Sketch, der für jeglichen Schriftschnitt, k-Linie, H-Linie, x-Linie, Grundlinie und p-Linie anzeigt.

Lernziel: Aneignung typografischer Geometrien verschiedener Schriftschnitte.

Umsetzung

text

Kommentare

Das „H“ berührt die Versalhöhe (in der Typografie der Abstand von der Grundlinie (Baseline) bis zur Oberkante der Versalien, also der Großbuchstaben ohne Oberlängen oder diakritische Zeichen.).
Das „x“ zeigt die Mittellänge.
Das „k“ reicht bis zur Oberlänge.
Das „p“ reicht hinunter zur Unterlänge.

Code

PFont pf;
String fontName = "Arial";
int fontSize = 200;
void setup() {
  size(1000, 500);
  pf = createFont(fontName, fontSize);
  textFont(pf);
  textSize(fontSize);
  noLoop();
}
void draw() {
  background(255);
  float xPos      = 50;
  float baselineY = height * 0.6;
  String sample  = "Hxkp";
  fill(0);
  text(sample, xPos, baselineY);

  java.awt.Font awtFont = ((PFont)pf).getFont();
  java.awt.font.FontRenderContext frc =
    new java.awt.font.FontRenderContext(null, true, true);

  java.awt.font.LineMetrics lmH = awtFont.getLineMetrics("H", frc);
  float yH = baselineY - lmH.getAscent();

  java.awt.font.LineMetrics lmx = awtFont.getLineMetrics("x", frc);
  float yx = baselineY - lmx.getAscent();

  java.awt.font.LineMetrics lmk = awtFont.getLineMetrics("k", frc);
  float yk = baselineY - lmk.getAscent();

  java.awt.font.LineMetrics lmp = awtFont.getLineMetrics("p", frc);
  float yp = baselineY + lmp.getDescent();

  strokeWeight(2);
  // ... (Linien genau wie oben) ...
}