投稿
虹色のグラデーションを画面に表示する方法を誰か教えて下さい! お絵描きツール的な物で色指定しようと思ってます。
1そうだね
プレイ済み
返信[1]
親投稿
けい kei0baisoku
発売1ヶ月記念でこんなのを投稿したのですが、参考になりそうでしょうか? 公開キー【NRA513ED】です。 (少ししたら消します)
1そうだね
プレイ済み
返信[2]
親投稿
仕組みは全くわからないですけど、 とにかく頑張ってみます!
0そうだね
プレイ済み
返信[3]
親投稿
けい kei0baisoku
頑張って下さい!(^O^) 自分で作ったものなので、プログラムで聞きたいこととかありましたら気軽に聞いてください(´ω`)
0そうだね
プレイ済み
返信[4]
親投稿
じゃあ、どう言う処理をしているのか 教えて下さい!
0そうだね
プレイ済み
返信[5]
親投稿
けい kei0baisoku
おkです! 知りたくて分からなかったのは、具体的にプログラムのどの部分ですか?
0そうだね
プレイ済み
返信[6]
親投稿
なぜ「H*6」にする必要があるのか、とか、 1から教えて下さい!
0そうだね
プレイ済み
返信[7]
親投稿
「0から」と言うべきですねw うぃーあーぷろぐらまーず。
0そうだね
プレイ済み
返信[8]
親投稿
けい kei0baisoku
ラジャーです!(`・ω・´)\ RBW_COL()を呼ぶところはOKで、その関数の中の仕組みの所ですね。具体的な数値の説明の前に、何をやってるかを図で説明します!
0そうだね
プレイ済み
返信[9]
親投稿
けい kei0baisoku
0そうだね
プレイ済み
返信[10]
親投稿
けい kei0baisoku
すみません、いきなり間違えました(`・ω・´) 紫が0側で、赤が配列の6でした。 引数のPMAXとPは、紫から赤までの距離を「PMAX」とした時に「P」の値の時の色を返す………という役割の引数です。 たとえばPMAX=60なら、 P=0なら紫、30なら緑、60なら赤です。
0そうだね
プレイ済み
返信[11]
親投稿
けい kei0baisoku
0そうだね
プレイ済み
返信[12]
親投稿
けい kei0baisoku
ちょうど赤とか緑とか、Pがキリのいい値だったときは虹の色をそのまま返します。 色と色の中間の値だったときは、隣同士の色の中間を計算して返します。 例えば(実際は違いますが)、赤(255,0,0)の隣が青(0,0,255)で、Pがちょうどその半分の位置を指してたら、返す色は(127,0,127)です。
0そうだね
プレイ済み
返信[13]
親投稿
けい kei0baisoku
一応、プログラムの関数部分。
0そうだね
プレイ済み
返信[14]
親投稿
けい kei0baisoku
94から97行目が、Pがどの色とどの色の間にいるかを計算してる部分です。 I0が、Pを挟んでいる色のうち、小さい方(紫に近い方)で、I1が大きい方(赤に近い方)です。 99から101行目が、I0の色とI1の色の中間の色を計算してる部分です。 自作した汎用関数のHOKAN()を使っているのでややこしく見えますが、やってることはさっきの「色の中間を計算」してるだけです。
0そうだね
プレイ済み
返信[15]
親投稿
けい kei0baisoku
H*7でなくて6になってる理由は、上の紫から赤までの図を見ると分かると思いますが、最初の赤から橙までをHにすると、反対側の紫まではH*7でなくH*6になるからです! とこんな感じですが、だいたい分かりましたでしょうか? 色の計算でビット演算を使っていて、分かりづらく申し訳ないっす(´ω`) 私が楽に書くために使ってるだけなので、馴染みのあるRGB関数とかを使うのと全く同じです。
0そうだね
プレイ済み
返信[16]
親投稿
なるほど! ありがとうございます! と、言うことで、早速使わせていただきます! スタッフロールにも「けい」さんの名前入れておきます! ほんとありがとうございますぅ(´^ω^`)
0そうだね
プレイ済み
返信[17]
親投稿
けい kei0baisoku
おお、いけそうで良かったですー(´∀`) 理解したら色々応用したり、またはプログラムの考え方だけ全然別の所でも利用できると思います。 いろいろ頑張ってみて下さいー(^ω^)/
1そうだね
プレイ済み
返信[18]
親投稿
組み込めましたー^^
1そうだね
プレイ済み