ここまでで一旦閉じることにする

さて,いよいよ最後の課題に掛かることにしよう.縦数列のセグメントを半分に折ってそれぞれを着色するという課題だ.これを行えば,異なる数列で和が一致してしまう場合を分離することができる.また,副次効果として回文の見える化にも寄与するはずだ.かなり面倒な仕掛けだが,やってできないというほどのものではない.また,やるだけの価値はあるものと思われる.現行のstripeカラーはそのまま温存したいので,このカラーリングは追加ということになるが,問題は管理パネル上の余白が乏しくなっていることだ.

このカラーリングをとりあえずsegmentカラーリングと呼んでおく.ボタンを止めて,リスト化するという方法も考えられる.というか,それしかないのではないか?ボタンの方が素早く切り替えらえられるという利点はあるが,この機能は必要に応じて使われるような種類のものなので,許されるのではないだろうか?リストは以下のような構成になる.

  1. Color off
  2. Color on
  3. Color cycle
  4. Color stripe
  5. Color segment

最後のColor segmentというのが,これから実装しようとしているセグメントカラーリングだ.γの周期性に関わるパラメータX, Y, Zはこれまでchi, upsilon, zetaとしてきたが,間違い易い/書きづらいので,X, Y, Z に統一することにする.Xの値はLambdaFunctionが返す周期#の最大値である.⇒カラリングの切り替えをラジオボタンからコンボボックスに変更した.それほど違和感は感じない.

セグメントを細分割する際の手掛かりとして,異種文字数1の行というのを考えてみたが,どうもうまく割り切れるようには見えないので,当初予定通り単純に2分割するという方向で進めることにする.手順は下記のようなものになる.

  1. Yが奇数の場合は,最下行の0行を除外すると偶数になるので,2頭分して個別に色分けする
  2. Yが偶数の場合は,最下行を含めてそのまま2分割して色分けするか,ないし最下行と中央の行を除外して残りを色分け表示する

γ=18の場合,Y=6で偶数だが,ほとんど同色で塗りつぶされている.なぜか?{1,4,9,16,7}=37,{1,8,9,10,17}=45,{1,16,9,4,13}=43,{1,14,9,16,11}=51でそれぞれ値は異なるのにほぼ同じ色に見えてしまう.⇒色々調整してみたがなかなかうまくゆかない.異種文字数がまったく異なるのに同じ色になってしまうというのは納得ゆかない.むしろ,異種文字数を基準にした方がよいのではないか?

異種文字数は列に属する値でセグメントと1対1対応していないが,異種文字数の4倍を加算することで分離できるようになった.母数を大きくしないでオーバーフローしたときは360の剰余を取るようにしてかなり解像度は高くなったのではないかと思われる.

いろいろ検討してみたが,セグメントカラーリングは取りやめることにする.ある程度色で識別できるようになったので,しばらくはこのまま運用してみることにする.あとはマニュアルを書くだけだ.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA