ユーザーに色 (白、赤など) を入力してもらいましたが、ユーザーが指定した色で R、G、B の値を取得するにはどうすればよいですか?
ノードの色を設定する関数(float r、float g、float b)があります。したがって、ユーザーに必要な色の名前を入力させてから、その色の名前を変換して、関数の r、g、b 値を取得したいと考えています。
Color は、基本的な色を表す限られた数の列挙型を定義します。このコードの抜粋では、リフレクションを使用して名前から RGB 表現にマッピングしています。
それ以外には、色/RGB 値のマップ、または場合によってはシステム プロパティのセットを維持し、Color.getColor(String name)を使用する必要があります。
すべてのオプションの色を RGB 表現とともに文字列として含む Map を作成します (記録のために、Color は java.awt パッケージにあります)。
Map<String,Color> colorMap = new HashMap<String,Color>();
colorMap.put("white", new Color(255,255,255));
colorMap.put("red", new Color(255,0,0));
次に、ユーザーが入力したテキストを使用して、マップで色を検索します。
String userColor = <whereever you get your string from>;
Color result = colorMap.get(userColor.toLowerCase());
最後に、RGB の int 値を持つこの Color オブジェクトを使用して、必要な float 値を取得し、それらを関数に渡します。
yourFunction(Float.valueOf(result.getRed(),Float.valueOf(result.getGreen()),Float.valueOf(result.getBlue()));
可能であれば、RGB に float の代わりに整数を使用することをお勧めします。すべての場合ではないにしても、ほとんどの場合、整数で 0 から 255 の範囲になるためです。
RGB で必要なすべての色を入手するのに適した場所は、次の Web サイトです: http://cloford.com/resources/colours/500col.htm
色を文字列として持っている場合は、Color
これをマップで検索すると、赤、緑、青の値が得られます。