- ベストアンサー
タイルの色と文字の表示に関するアルゴリズムについて
- タイルの色や文字の表示に関するアルゴリズムについて教えてください。
- 同系色のタイルの境界を解りやすくするための方法はありますか?
- 背景色に対して目立つ文字色を選ぶ方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その様な案件に取り組む場合、私なら色を「HSL色空間」で管理して、 タイルの色は「隣接する色から、色相が60度以上離れている」ことで対応します。 色相H = 隣接色の色相 + 乱数(60~300)度 彩度S = 隣接色の彩度 輝度L = 隣接色の輝度 文字色なら簡単に「背景色の色相に180度を加えた色」、つまり補色を使います。 色相H = 背景色の色相 + 180度 彩度S = 背景色の彩度 輝度L = 背景色の輝度 彩度や輝度での差別化は少々ややこしいアルゴリズムになりそうですので、まずは色相だけで試してみてはいかがでしょうか。 ただし RGB色空間しか使えない環境の場合は、RGBとHSLの変換アルゴリズムを用意する必要があります。
その他の回答 (1)
- OrangeCup150
- ベストアンサー率62% (109/174)
テキスト色については、テレビなどで使われている中抜き装飾(Microsoft Wordのフォント設定の文字飾りの中抜き)のような感じにするといいと思います。 テキストのサイズが小さい場合には、背景色に応じて白色または黒色にします。白色のときには影を付けるといい感じになります。 質問の主旨と異なりますが、タイル(背景色)に応じて色を変えるというのは実用的ではありません。 色というのは、一種の記号で情報伝達を担っているのでランダムに変えるのは実用性が無いです。たとえば、ブラウザでは青の文字はリンクを意味する、道路交通標識の色による意味の違いなどです。 それよりも重要度が高いのですが一般に理解されていない問題として、人間の視覚処理能力というのは個人差があって色を区別する能力に秀でている人もいれば、病気などが原因で色を区別する能力が劣る人もいます。健常者は区別できても、視覚障碍(がい)者、高齢者は区別できない結果になることも考えられます。 公共サービス機関のサイトでは問題になるため、このような色をチェックするツールがあります。(富士通がWEBアクセシビリティのチェックツールとして提供しています) まあ、ゲームなどだったら気にする必要はないことですが。 実用性を考えると、背景色と文字色のペアを事前に検証して最低2セット用意しておき、それらをタイル状に並べる方法が有効と思います。タイル状に配置するので背景色は最小で2色あれば十分です。市松模様になります。 アルゴリズムというよりもデザインによる解決ですが。 アルゴリズムで解決するとなると、少なくともRGB表現ではなくHSV表現を使って、色の距離を求める方法が有効と思います。RGB表現はあくまでも機械の都合なので人間的要素との親和性がありません。 変換式は Wikipedia にそれっぽいのがあります。 http://ja.wikipedia.org/wiki/HSV色空間
お礼
回答ありがとうございます。 HSVは知りませんでした。大変有益な情報ありがとうございます。
お礼
>隣接する色から、色相が60度以上離れている」ことで対応 >色相だけで試す >RGBとHSLの変換アルゴリズム この辺りで挑戦してみます。 糸口が全くなかったので具体的に教えて頂き助かります。