Asymptote: Wie kann ich zwei Farben mischen

Asymptote: Wie kann ich zwei Farben mischen

In Latex kann ich zwei Farben wie folgt mischen RoyalBlue!25!white. In Asymptote möchte ich dieselbe Farbe verwenden. Wie mache ich das?

MWE, wo ich die königsblaue Farbe des Materials durch die obige ersetzen möchte:

size(700);
import solids;
import texcolors;
import three;

currentprojection=orthographic (
    camera=(8,4,4),
    up=(0,0,1),
    target=(2,2,2),
    zoom=1.0
);

// save predefined 2D orientation vectors
pair NN=N;
pair SS=S;
pair EE=E;
pair WW=W;

triple Atom1 = (-1.1547, -2., 3.26599);

material m  = material(gray(0.5), black, RoyalBlue, black);

draw(surface(sphere(Atom1,0.5)),m);

Antwort1

Verwenden Sie den Binäroperator, *um die Farben/Stifte zu skalieren, und den Binäroperator, +um Farben/Stifte zu addieren.

Daher sollte das Ersetzen RoyalBluedurch RoyalBlue*0.25 + white*0.75(25 % Royalblau gemischt mit 75 % Weiß) das gewünschte Ergebnis liefern.

size(700);
import solids;
import texcolors;
import three;

currentprojection=orthographic (
    camera=(8,4,4),
    up=(0,0,1),
    target=(2,2,2),
    zoom=1.0
);

// save predefined 2D orientation vectors
pair NN=N;
pair SS=S;
pair EE=E;
pair WW=W;

triple Atom1 = (-1.1547, -2., 3.26599);

material m  = material(gray(0.5), black, RoyalBlue*0.25 + white*0.75, black);

draw(surface(sphere(Atom1,0.5)),m);

Dies ergibt die Ausgabe Ausgabe

Antwort2

Sie können Farben wie im folgenden Beispiel kombinieren.

unitsize(3inch);
for (real fred = 0.0; fred <= 1.0; fred += 0.1) {
    for (real fblue = 0.0; fblue <= 1.0; fblue += 0.1) {
        fill(shift(fred,fblue)*scale(0.1)*unitsquare, fred*red+fblue*blue);
    }
}

Bildbeschreibung hier eingeben

verwandte Informationen