zudo-panel-designer docs
GitHub リポジトリ

検索したい単語を入力

いつでも検索バーを開ける

整列と分布

Align パネルの 6 つの整列操作 + 2 つの分布操作と、selection|panel の基準トグル。

サイドバーの Align & Distribute パネル(components/align-panel.tsx。Layers と Properties の間にあります——インターフェース → 右サイドバーを参照)は、現在の複数選択を整列させたり、等間隔に配置したりします。計算ロジックは align-ops.ts にあり、パネルのボタンとコマンドパレットの Align コマンドの両方が、そのまま同じロジックを共有しています——ボタンを押すのとコマンドを実行するのは、手作業で同期させる 2 つの経路ではなく、1 つのコードパスです。

整列と分布

6 つの整列ボタン(左/水平中央/右/上/垂直中央/下)と、2 つの分布ボタン(水平/垂直)があります。それぞれアイコンボタンで、ホバーすると操作名を示すツールチップが出ます(例: "Align Left"、"Distribute Horizontally")。分布は、選択したレイヤーそれぞれの中心だけでなく、実際のバウンディングボックスを使って、対象レイヤーを選んだ軸に沿って等間隔に配置します。

Align to: Selection と Panel

ボタン群の下にあるセレクト——ラベルは Align to ——が、整列/分布のクリックごとに使う基準を切り替えます。デフォルトは Selection です。

  • Selection — レイヤー自身の合成バウンディングボックスを基準に整列/分布させます。

  • Panel — パネル自体の矩形(0,0 から panelWidthMm × panelHeightMm)を基準に、各レイヤーを整列/分布させます。単一のレイヤーをパネルの中央や端に揃えられます。

必要な適用可能レイヤーの最小数は、基準によって異なります。Selection 基準の整列/分布には、選択の 内側 に整列させる対象が必要だからです。

操作Selection 基準Panel 基準
整列2 レイヤー以上1 レイヤー以上
分布3 レイヤー以上(2 レイヤーでは内側の間隔が存在しない)1 レイヤー以上

現在の選択が、アクティブな基準に必要な数を下回ると、両方のボタングループ(とすべてのアイコンボタン)が無効化され、薄く表示されます。

適用可否

整列/分布の対象は、Select ツールのレイヤー適用可否がグループ操作からすでにパターンを除外しているのと同じ方法で計算されます。

  • パターンレイヤーは除外されますpattern レイヤーは移動可能な xysize の正方形です(ツール → 選択ツール → パターンの正方形を参照)が、そのデフォルトのカバー配置は合成バウンディングボックスを支配し、実際のコンテンツをそちらへ引き寄せてしまいます——ほかの箇所のマーキー/すべて選択の除外と同じ理由です。参加せず、最小数にもカウントされません。移動やサイズ変更は、ドラッグ、ナッジ、またはインスペクタから行ってください。

  • 実質的なジオメトリを持たない path レイヤー(点がなく、空でない extraSubpaths もない)も除外されます——core のパスの bbox 計算は、空のパスに対してもとにかく何らかの矩形(原点にある 0×0 の矩形)を返すため、それを本物の対象としてカウントすると、合成バウンディングボックスが黙って (0, 0) へ引っ張られてしまいます。

  • 回転した shape は、軸に沿ったバウンディングボックスrotatedRectAABB)で整列/分布します——レンダラーや Select ツールの複数選択のクロムが使っているのと同じ、回転を考慮した bbox です。選択されて見えているものと、操作が測定する対象が、正確に一致します。

  • path レイヤーの点(とベジェハンドル)は translatePathLayer によって一体として移動します。それ以外のすべてのレイヤー型は xy のパッチで移動します。

履歴

整列/分布のクリックはそれぞれ 1 つの undo エントリ です——ただし、すでに整列/分布済みの場合(計算されたすべてのデルタがゼロ)は、コミット自体が発生しません。同一のドキュメントをコミットすると、見た目の変化がゼロなのに redo スタックを破棄してしまいます。そのため、本物の no-op はまるごとスキップされ、幽霊のような履歴エントリを書き込むことはありません。

コマンドパレットからも実行できる

整列と分布には、それ自体のキーボードショートカットがありません——意図的に chordless(キーなし)、パレット専用 のコマンドです(カテゴリは Align)。コマンドパレットAlign LeftAlign Center (Horizontal)Align RightAlign TopAlign Middle (Vertical)Align BottomDistribute HorizontallyDistribute Vertically)から実行できます。パレット経由で実行した整列は、常に Selection 基準を使います——パネルが起動時に持つデフォルトと同じです。パレットのコマンドには、参照する目に見える基準トグルがないためです。