3次元の情報を2次元の図で違和感なく表示する方法
▼ページ最下部
001 2024/01/19(金) 19:33:05 ID:6kW8YPER76
私はプログラマなのですが、数学的と思われるプログラミング上の悩みです。
ソフトウェアのGUIからユーザーに色を選択してもらうにあたり、
コンピュータで表示できるすべての色が塗られた平面の図を表示し、その一点をユーザーにクリックしてもらいたいのです。
そのために平面の図、つまり2次元の図にコンピュータで表示できるすべての色を表示させたいのです。
簡単にできると思われるかもしれません。
しかしこれは実際やってみるとなかなかできません。
すべての色を表示させることは容易ですが、
色のグラデーションを無視することになります。
例えば赤と青が混じっていく様子をキレイなグラデーションにしたいのです。いきなり違う色になることは避けたいのです。
なかなかできない理由を考えると、コンピュータの色の情報というのは
赤256種類、緑256種類、青256種類の3つの組み合わせによりできる3次元の情報だからなのかなんて思います。
このように考え、このような質問を考えました。
3次元の色の情報を2次元の図でグラデーションをつけて違和感なく表示する方法はありますか?
数学板にスレをたてた理由は
数学的な問題ではないかと思ったためです。
よろしくお願いします。
スレ画は囲碁の偉人、本因坊秀策です。
返信する
003 2024/01/19(金) 20:36:45 ID:Q2RN4XX/AA
2次元の図でも、3色からなりたつ液晶のピクセルの集合体だから、どうなんでしょうね?
8kモニターなら1677万色の倍の画素数なので、カラーピッカーを映して離れてみれば綺麗に見えるんじゃ無いのかな〜
返信する
004 2024/01/19(金) 20:45:05 ID:6kW8YPER76
質問がわかりにくいので質問を訂正します。
赤0,緑0,青0から赤255,緑255,青255までのすべての組み合わせの色、つまり256の3乗個の色の情報を2次元の図でグラデーションをつけて違和感なく表示する方法はありますか?
返信する
005 2024/01/19(金) 20:49:28 ID:6kW8YPER76
>>3 そうです、カラーピッカーです。
256の3乗の数の色、つまり普通のコンピュータで表示できるすべての種類の色を、ひとつのカラーピッカーに表示させたいのです
返信する
008 2024/01/19(金) 21:59:32 ID:6kW8YPER76
>>3 3次元てわかりにくかったですね、3次元配列に訂正します。
例えば仮に色が赤と青の2色つまり2次元配列だけの情報から出来ているとすれば
x座標を赤、y座標を青として、座標をそのまま色の情報と座標の位置情報してしまえば((0,0)から(255,255)のように)グラデーションで色が表示されると思います。
ここにもう一色、緑を加えると、3次元配列になり、とたんに2次元の図では表示できなくなります。
返信する
009 2024/01/20(土) 17:23:59 ID:Adgu951Wh.

それを実現できているソフトがあるのならそれを真似ればいい話だけど、企業秘密じゃないだろうか。
あとそれを教えた人が人生が変わるほどの利益を得ることはできますか?
おそらく教えた人は何も変わらないでしょう。私も過去に多くの人を的確な助言で助けた事があるが、金銭的な利益を得ることは一度もなかったし。
返信する
010 2024/01/22(月) 00:06:16 ID:Ytmi3azo2Q
>>9 1です。ホントその通りです。
甘かったですね。
私もこのスレを立てた結果、頭が整理されていくつか見えてきたものがあります。
おそらく正解を出すのに3ヶ月以上もしくはもっとかかるかもしれませんが
この問題を考えることを当分の間の楽しみにしたいと思います。
そんなわけで近日スレを消そうかなと思います。
しばらく残す理由はプログラミングの面白さを表現できているスレだなと思うためです。
返信する
014 2024/01/22(月) 00:56:03 ID:Ytmi3azo2Q
現状見えていることは2つです。
ひとつ目は、256x256の正方形のカードを用意し赤と緑の色を0から255まで変化させて色を描画します。さらにその正方形のカードを今度は青の色を0から255まで変化させて256枚作ります。
256枚のカードに256の3乗個の色すべてが描画されました。
そしてそのカード256枚を積み重ねます。
こうすることで擬似的に256x256x256の立方体ができます。
これらのカードをイメージしてなんとかならんかと考えました。そして完璧なグラデーションではありませんが思い浮かびました。
1枚目のカードの右端の色と、2枚目のカードの右端の色はほぼ同じです。この2枚をつなげることが出来ると思われます。
これを3枚目以降にも行いそして4枚目、、最後に256枚目まで行えば1枚につながります。
思考実験中です。プログラミングしてしまえばいいのですがまだしてません。
ひとつめの方法の発想は、
1枚目のカードの右端と2枚目のカードの右端、2枚目の左端と3枚目の左端、3枚目の右端と4枚目の右端をつなげる。。。ということを繰り返し、256枚のカードが1枚につながるという発想でした。
ふたつめの発想は左右に限らず上下左右にも繋げるという発想です。
立方体の展開図のようにつなげてゆき、1枚の図としてしまうという発送です。
展開図なので左右や上下で重複するカードもあるかもしれませんが面白そうです。
これでできるような気もしますが、思考実験中です。
以上です
返信する
015 2024/01/25(木) 23:51:31 ID:aJjli5uuBI
パッと思いついたのは
(パソコンであれば)マウスホイールを使うことですね
赤緑をマウスポインタで選択して、任意の点で青成分をマウスでいじるとか
直感的操作という点では疑問は残りますが
あと手っ取り早く画面を三次元にする方法としては動画(時間軸を足す)とかでしょうか
マウスホイールで巻き戻しができるようにする、なんていうのもありかなと思います
要は赤緑はポインタで選択、青成分が時間で変化、気になる色があったら一時停止、マウスホイールで巻き戻し、微調節ができるみたいな
返信する
016 2024/01/25(木) 23:55:48 ID:aJjli5uuBI
>>15 ホイールでいじるなら輝度の方がいいですね…HSL色空間とか使うのはどうでしょうか
返信する
017 2024/01/26(金) 12:06:01 ID:hOAMz5JR8c
虹色の横長の四角を描いてそこから上側を白で下を黒でグラデーションにすれば全色入りそうだけど
返信する
018 2024/01/26(金) 12:42:59 ID:oV5wxcFlGA
019 2024/01/26(金) 13:01:48 ID:oV5wxcFlGA

あー
でも
>>17さんのコメントで思いついたんですが、
こういうのはどうでしょうか
>>18で挙げたサイトさんの画像を転用しますが
白→黒 という方向にとらわれずに何度も折り返せばグラデーションになりますね
返信する
020 2024/01/26(金) 13:12:08 ID:oV5wxcFlGA

多分こんな感じで撫でるように描画していけば(もちろん実際はもっと細かく折り返すべきですが)、白→黒感も出ると思います
返信する
▲ページ最上部
ログサイズ:14 KB
有効レス数:14
削除レス数:6
不適切な書き込みやモラルに反する投稿を見つけた時は、書き込み右の マークをクリックしてサイト運営者までご連絡をお願いします。確認しだい削除いたします。
数学掲示板に戻る 全部
次100 最新50
スレッドタイトル:3次元の情報を2次元の図で違和感なく表示する方法
レス投稿