アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、C++でOpenGLのプログラムを書いているのですが、
赤から青にグラデーションをする場合、中間色が紫になります。
カラーパレットとかにある、赤→黄色→緑→青のようにグラデーションしてもらいたいのですができません。
どうすれば、紫のところが黄色にできるのでしょうか?

OpenCVを使用しても構いませんので、中間色を指定するような方法を教えて頂けたらと思います。

A 回答 (2件)

R,G.Bで各0~1.0とすると


赤 1.0, 0.0, 0.0
青 0.0, 0.0, 1.0
で、赤→青へ徐々に変えていくと
0.9, 0.0. 0.1
0.8, 0.0. 0.2
0.7, 0.0. 0.3
0.6, 0.0. 0.4
0.5, 0.0. 0.5←ここが紫(マゼンダ)
0.4, 0.0. 0.6
0.3, 0.0. 0.7
0.2, 0.0. 0.8
0.1, 0.0. 0.9
0.0, 0.0. 1.0
ということで、紫を指定しているわけではありません。

点を増やさないのなら、そういうグラデーションのテクスチャを使うとか。

この回答への補足

ご回答ありがとうございます。
できればそのテクスチャの使い方を教示頂けたらと、、

補足日時:2012/01/20 17:30
    • good
    • 0

話がOpenGLなので、現在はポリゴンの頂点カラーを利用してグラデーションを描いている、という事でしょうか?


(頂点0を赤、頂点1を青にすると、中間地点は紫になる)

中間色をコントロールしたい場合、ポリゴン数を増やして頂点を追加することになります。
例えば「赤→黄→緑→青」なら、四角いポリゴンを3枚用意して(正確には三角形のポリゴンが6枚必要ですが説明上3枚として)、

1枚目のポリゴン: 頂点0→赤、頂点1→黄
2枚目のポリゴン: 頂点0→黄、頂点1→緑
3枚目のポリゴン: 頂点0→緑、頂点1→青

このポリゴンを横並びにすれば希望のグラデーションができます。

この回答への補足

ご回答ありがとうございます。
点の数を増やすのではなく、できれば点の数はそのままでできる方法はありませんか?
点の数を増やすと処理速度が遅くなってしまうのを避けたいので。
例えば、赤→青に行くときは中間色を黄色にする。みたいなパレットというか、定義ができたらと思っているのですが。(赤→青の場合に紫が入るようになっているところから中間色は変更できるのではとの推察をしまして)

なお、グラデーションの描き方はおっしゃる通りです。言葉足らずですいません。

よろしくお願い致します。

補足日時:2012/01/19 08:47
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!