Creative Technologies Lab | dokuWiki

Repository of academic adventures, experimental technology, accidental brilliance, and collaborative nerdery.

User Tools

Site Tools


code:p5js:subtraktive-farbmischung

Subtraktive Farbmischung – CMY (0–100 %)

Erklärung der subtraktiven Farbmischung

Die subtraktive Farbmischung beschreibt die Farberzeugung durch das Entziehen (Subtrahieren) von Licht. Sie ist das zentrale Prinzip bei der Arbeit mit Pigmenten, Tinten, Druckfarben und transparenten Farbschichten.

Im Gegensatz zur additiven Mischung, bei der Lichtquellen addiert werden, basiert die subtraktive Mischung auf reflektiertem Licht: Ein Körper erscheint farbig, weil bestimmte Wellenlängen vom Material absorbiert und andere reflektiert werden.

Primärfarben der subtraktiven Mischung (CMY-Modell):

  • Cyan
  • Magenta
  • Yellow

Sekundärfarben (durch Überlagerung):

  • Cyan + Magenta = Blau
  • Cyan + Yellow = Grün
  • Magenta + Yellow = Rot
  • Cyan + Magenta + Yellow = Schwarz (idealerweise, eher ein sehr dunkles braun)

Bei realen Materialien ergibt die vollständige Überlagerung meist ein dunkles Grau oder Braun, da Pigmente keine idealen Filter sind.

Diese Mischung wird im modernen Farbdruck (z. B. Inkjet, Offset) durch das CMYK-Modell ergänzt, wobei „K“ für den Schwarzkanal steht.

Beispiel p5.js Code (CMY in 0–100 %)

let cSlider, mSlider, ySlider, distanceSlider;

function setup() {
  createCanvas(600, 550);
  noStroke();

  distanceSlider = createSlider(0, 200, 100);
  distanceSlider.position(25, 20);
  distanceSlider.style("width", "550px");

  cSlider = createSlider(0, 100, 100);
  cSlider.position(20, height - 60);
  cSlider.style("width", "150px");

  mSlider = createSlider(0, 100, 100);
  mSlider.position(220, height - 60);
  mSlider.style("width", "150px");

  ySlider = createSlider(0, 100, 100);
  ySlider.position(420, height - 60);
  ySlider.style("width", "150px");
}

function draw() {
  background(255);

  let cPercent = cSlider.value();
  let mPercent = mSlider.value();
  let yPercent = ySlider.value();

  let c = map(cPercent, 0, 100, 255, 0);
  let m = map(mPercent, 0, 100, 255, 0);
  let y = map(yPercent, 0, 100, 255, 0);

  let d = 200 - distanceSlider.value();

  let radius = 200;
  let cx = width / 2;
  let cy = height / 2 - 30;

  let xC = cx;
  let yC = cy - d;

  let xM = cx - d * cos(PI / 6);
  let yM = cy + d * sin(PI / 6);

  let xY = cx + d * cos(PI / 6);
  let yY = cy + d * sin(PI / 6);

  blendMode(MULTIPLY);

  fill(c, 255, 255);
  ellipse(xC, yC, radius);

  fill(255, m, 255);
  ellipse(xM, yM, radius);

  fill(255, 255, y);
  ellipse(xY, yY, radius);

  blendMode(BLEND);

  fill(0);
  textSize(14);
  text("Überlagerung: " + distanceSlider.value() + " / 200", 20, 15);
  text("Cyan: " + cPercent + "%", 20, height - 10);
  text("Magenta: " + mPercent + "%", 220, height - 10);
  text("Yellow: " + yPercent + "%", 420, height - 10);
}
This website uses cookies. By using our website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website. Privacy Policy
/var/www/vhosts/ct-lab.info/wiki.ct-lab.info/data/pages/code/p5js/subtraktive-farbmischung.txt · Last modified: 2025/04/08 15:04 by Felix Hardmood Beck