# 変形ダイアログ

このダイアログはフォントビュー、アウトラインビューおよびメトリックビューで使用可能です。フォントビューでは選択されたすべての点に変形が適用されます。アウトラインビューでは、何かが選択されていれば変形はそれに適用され、選択されていなければグリフ全体が変形の対象となります。

変形の中心は、グリフの原点・選択範囲の中心 (何も選択されていないときはグリフの中心)・マウスを最後にクリックした点のいずれかから選択することができます。

いくつかの異なる変換をいっぺんに指定することができます。

`何もしない`
  この上なく単純な変換です。
`移動...`
  選択範囲を、x 軸および y 軸方向に任意の距離だけ移動できます。
`回転...`
  選択範囲を任意の度数だけ回転できます。
`拡大・縮小...`
  両方の座標軸に沿って、異なる比率で拡大・縮小できます。
`一様に拡大・縮小...`
  2 つの座標軸を同じ比率で拡大・縮小できます (もちろん上の方法でもできますが、1 個の数値だけを指定するほうがわずかに簡単です)。
`反転...`
  水平または垂直に反転することができます
  注意: アウトラインを反転した場合、ほとんど確実に `エレメント(L)`→`アウトラインの向きを修正(C)` を適用する必要が生じるでしょう。
`傾き...`
  選択範囲を指定した度数だけ傾けることができます (例えば斜体フォントの作成に使えます)。
`3次元の回転...`
  グリフの 3 次元回転を X 軸または Y 軸に沿って行うことができます。この操作の後、結果は即座に XY 平面に射影されます (Z 軸の周りの回転は通常の回転です (だからここには含まれていません)。 回転の後に射影を行っても、その角度の正負によらず同じ結果が得られます (だから 時計回り/反時計回り のオプションはここにはありません)。
`ものさしを使って移動...`
  ものさしツールで最後に行った移動の x および y 方向のオフセットを移動量の欄に入力します。
`ものさしを使って回転...`
  ものさしツールで最後に行った移動の角度を回転角度の欄に入力します。
`ものさしを使って変形...`
  ものさしツールで最後に行った変形の角度を変形角度の欄に入力します。

フォントビューで作業中の場合、もし `コピー元の指定(F)` が `すべてのフォント(A)` に設定されているならば、変換操作はビットマップにも適用されます。全ての変換がビットマップに適用できるわけではありません (任意の角度の回転、拡大・縮小などは適用できません)。90 度単位の回転、反転、傾きと移動のみがビットマップグリフに近似的に適用されます。

フォントビューで操作を行った場合、ペア単位のカーニング情報のうち、最初のグリフが選択されているすべてのものが、変換行列に従って拡大・縮小されます (が平行移動はしません)。同様に、選択中のグリフに適用される単純位置指定機能も、変換行列に従って拡大・縮小されます (これも平行移動はしません)。カーニングクラスも同時に拡大・縮小するか選択することができます。

操作をフォントビューかアウトラインビューで行い、そのとき何も選択されていない (そして編集しているのが前面である) 場合、“[] 背景も一緒に変換する(B)”というチェックボックスが出てきます。この項目にチェックを入れると、背景のすべての物も前面と一緒に座標変換されます。

“`[] 整数値に変換(D)`”にチェックが入っていると、変更が適用された後にすべての座標値が整数値に丸められます。

アウトライングリフビューにおける変換はビットマップには一切適用されません (ビットマップウィンドウでの変換も、アウトラインには適用されません)。

## 非線形の変換

非線形の座標変換は X 座標の変換式と Y 座標の変換式の 2 個の数式を指定することにより定義されます。右の例は、以下のように定義されています。

> x' = 5·x2 + x + 3·sin(y)
> y' = y

数式を組み立てるのに使える演算子は、 C と同じ意味をもつ、以下の演算子 (“+”,“-”,“*”,“/”,“%”,“!”,“==”,“<”,“>”,“<=”,“>=”,“!=”,“&&”,“||" および“? :”) に加えて、 冪乗を表す“^”です。数式には、以下の標準関数を使用することもできます:“log”,“exp”,“sqrt”,“sin”,“cos”,“tan”,“atan2”,“abs”,“rint”,“floor”,“ceil”.

注意: 非線形の変換では、変換結果は正しい結果の近似でしかありません (線形変換は 3 次スプラインを別の 3 次スプラインに移しますが、非線形変換では不可能だからです)。

## 透視変換

これを説明するのは大変です。これには 3 個の異なる座標系が関連しています。グリフが描画される (2 次元) 座標系が存在します。それが埋め込まれている 3 次元座標系が存在し、最後に、投影の対象となるもう一つの 2 次元座標系あります。

あなたの目がこれら 3 番目の空間の原点にあると仮定して、Z 軸の上の方向に視線が向いているとしましょう。そしてグリフが描かれている平面が角度θだけ (3 番目の空間の XY 平面から) 傾いていて、Z 軸とその平面との交点は、Z 軸に沿って z だけ離れているとしましょう。投影面は XY 平面に平行で、Z 軸に沿って d だけ離れているとしましょう。

その時、我々が描画するグリフの各点に対し、(原点にある) あなたの目からその点に向けて直線を引きます。その線が投影面と交わる位置が、その点の変換後の位置です。この場合も、結果は近似でしかありません。

透視変換ダイアログは、上の説明よりも自由度が少し高くなっています。目の位置を (原点固定ではなく) 設定できますし、消失点がある方向を (y 軸方向固定ではなく) 指定することができます。

このダイアログは、入力値を変更するごとに消失点の位置を再計算します (注意: 「`選択領域の中心点`」のようなメタ情報は算出することはできず、その座標の 0 にあると単純に仮定しています)。

— 前 — 目次 — 次 —