2010-12-07 8 views
2

私は基本的な[R G B]マトリックスで表される基本色を持っています。matlabで明るい色を作成するには?

そして、基本的には角度(0〜90度)である私の定数に基づいて、より明るいか暗いバージョンの色を作りたいと思います。

そして、私はアルゴリズムを探して、その角度に基づいて明るくまたは暗い色を作成する方法を知りました。

明るい色のエンドポイントは白で、暗い色は黒です。

愚か例:

Green -> Lime -> White 

Blue -> Navy -> Black 

function [result] = GetColor(baseColor, angleValue) 

    value = round(angleValue); 

    endcolor = [1 1 1]; 

    r = linspace(basecolor(1,1), endcolor(1,1), 90); 
    g = linspace(basecolor(1,2), endcolor(1,2), 90); 
    b = linspace(basecolor(1,3), endcolor(1,3), 90); 

    result = [r(value) g(value) b(value)]; 

end 

答えて

3

あなたの色をしたいどのようなそれは最軽量/暗いですか?

colormap = [linspace(r1, r2, 91)' linspace(g1, g2, 91)' linspace(b1, b2, 91)'] 

91色のセットを定義するために、角度に対応する色を選択:0に対応し、90は、次に使用するエンドポイント[r1 g1 b1][r2 g2 b2]を定義します。

0

次のように簡単に、このためのJavaを使用することができます。

jColor = java.awt.Color(0.12,0.34,0.67); % R,G,B fractions of 255 = [31,87,171] 
lightColor = jColor.brighter.getRGBComponents([])'*255; % => [44,124,244,255] (4th component is alpha transparency) 
darkColor = jColor.darker.getRGBComponents([])'*255; % => [21,60,119,255] 

Javaはあなたがシームレスに上記の例のように、MATLABで使用できる他のサポート関数/クラスがあります。

関連する問題