NISHIO Hirokazu[Translate]
Kozaneba開発日記2021-12-22
しばらく色々な需要にKozanebaを使った
この二つの発表を踏まえてKozanebaを使ってみる最初の一歩としては難解図書の理解を支援するツールがいいのでは?となった
なのでその目的の利用を試してみた


分量が多くなると重たくなる問題
そもそもその状態でさらに追加していっても人間のキャパシティを超えるので自分の言葉でアウトプットするフェーズに進むべきでは


高負荷時グループ消滅問題
選択状態からグループをドラッグした時に、ドラッグ開始後に選択状態解除の再描画が走ることが最初の原因
このバグによって「ドラッグ中のものはドロップ対象にならない」が壊れ「トップレベルのXをXにドロップしたので、トップレベルの描画リストからXを削除して、Xの子にXを追加」が発生する、これによって画面上から消える

リリースノート
選択がある状態で選択範囲外のグループ上でドラッグをした場合にグループが非表示になるバグを修正しました
選択がある状態での選択範囲外のドラッグは単に選択を解除するだけになりました
選択範囲に何も選択対象がなかった場合、選択を自動で解除するようになりました

長い二項関係を半透明にする



あー、なるほど。

そしてもっと激しく壊す方法を発見した

まず前半の問題に関しては線とボーダーの交点を計算する時にボーダー自体の太さやヘッダーの高さが考慮に入っていないことが原因
後半に関してはネストされたグループの中のこざねの位置が更新された時に、親の親のグループのなんらかの値が更新されてない
今回複雑な文章の構造化をした時にこざねのジャンプが起きるなと思っていたがおそらくこの更新漏れが原因だろう

後者の方が影響範囲や問題が大きいのでまず直す
前者に関してはそもそも線の描画コードがグループのヘッダの高さとか知る必要があるのはおかしいのでバウンダリボックスを取得してそこから計算するといいのではないか

水曜日に入れた線を半透明にする機能をまだデプロイしてなかった
これはすごく有益だということがわかった
「線が下のものにかぶって読めないから動かそう」と考えなくて良くなる
全部つながって、これはまだ「元の文章で近接していた」という関係を保持している=既存の構造を保っている
今のこの状態はバックアップしたので、ここから「元の構造を保たなくて良い」=「離れたところ繋ぐ矢印が近接するように、元の構造を破壊して移動する」をやれば「苦痛を伴うジャンプなしに新しい構造へ到達できる」
これ機械的にアシストできないかな…つまり近接が弱いバネ、矢印が強いバネで、矢印が適度な長さになるように物理演算をかければ…
「選択範囲の90度回転」が欲しい


"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]