端で止まる横送りをやめる
状況
筒の内側に作品を並べた画面で、縦の回転には端が無く回り続けるのに、横の送りだけは端で止まっていた。軸の方向はもともと開口部のある有限の筒で、端まで送ると開口部の外の暗がりが覗く。覗かせないために、余白をどれだけ取れば足りるかを画面の画素を読んで確かめ、その値で送りを制限していた。
選択肢
- 全体を一括で横へ滑らせ、端に近づいたら止める却下
- 各面の位置を筒の全長ぶんの周期で折り返し、画面の外へ送り直す採用
選んだもの
全体をひとまとまりで滑らせるのをやめ、面ごとに位置を折り返した。折り返しの境目は視野の外にあるので、送り直しは画面に映らない。
却下した理由
- 全体を一括で横へ滑らせ、端に近づいたら止める
- この方式では端が残る。しかも外側の列ほど視線が浅く当たるぶん開口部を覆いきれず、暗がりが中心の行から計算した値よりも内側で出てしまうので、余白は実際に画面を見て広げるしかなかった。止まる位置がある以上、どの列も画面の中央へ持ってくることはできない。
後で分かったこと
端が消えたので、覆いきれない開口部のために足していた余白そのものが要らなくなった。副次効果として、どの列も画面の中央へ持って来られるようになり、キーボードだけで全部の列に届く操作のほうも堅くなった。一方で、奥行きの計算は親の変換だけでは足りなくなり、面ごとの変換を読む形へ直した。送り量を大きく離れた値へ跳ばして確かめても、暗がりは出なかった。1