漸近線: 2つの色を混ぜるにはどうすればいいか

漸近線: 2つの色を混ぜるにはどうすればいいか

ラテックスでは、 のように 2 つの色を混ぜることができますRoyalBlue!25!white。asymptote では同じ色を使いたいのですが、どうすればいいでしょうか?

MWE で、マテリアルの RoyalBlue 色を上記の色に置き換えます。

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

答え1

バイナリ演算子を使用して*色/ペンを拡大縮小し、バイナリ演算子を+使用して色/ペンを追加します。

したがって、 (25 % の RoyalBlue と 75 % の白を混合)RoyalBlueに置き換えるとRoyalBlue*0.25 + white*0.75、必要な出力が得られるはずです。

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

出力は次のようになる 出力

答え2

次の例のように色を組み合わせることができます。

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

ここに画像の説明を入力してください

関連情報