0

最初に言っておきますが、これは非常にばかげた質問に思えるかもしれませんが、SVG はしばしば過小評価される傾向があります (たとえば、Z/ClosePath コマンド @ Mozilla dev サイトの説明を参照し、 SVG Rec. 1.1と比較してください)。

SVG Recによると。1.1 :

「moveto」コマンド ( Mまたはm ) は、新しい現在のポイントを確立します。その効果は、あたかも「ペン」が持ち上げられて新しい場所に移動したかのようです。

つまり、 「現在のポイント」はMまたはmです。

ここには次のように書かれています。

"closepath" (Z または z) は、現在のサブパスを終了し、現在のポイントから現在のサブパス始点まで自動直線を描画します。

では、「初期ポイント」が現在のサブパスが開始されたポイントであると仮定しても、私は正しいでしょうか? ただし、実行中の作業が現在のサブパスで実行され、「現在のポイント」が ==Mまたはである場合、「初期ポイント」もまたはmに等しい必要があります。これはどのように可能であり、私がここに来ていないのですか?Mm


Robert Longson のおかげで、「現在のポイント」と「初期のポイント」とは何かが説明されています。私の論理の誤りは、「The "moveto" コマンド ( Mまたはm )は新しい現在のポイントを確立します。その効果は、まるで "ペン" が持ち上げられて新しい場所に移動したかのようです." つまり、この「変数」は処理の開始時にのみ設定されます。Mm

たとえば、次のようなパス データを想像してください。

m1 c11 c12 c13 z1 m2 c21 c22 c23 z2

その中で、変数m1current_point設定し、 new も設定しinitial_pointます。その後、次の描画コマンドに処理が移ると、current_pointがそのコマンドの終点になります。例 (Vは現在の処理状態へのポインタです):

V
m1 c11 c12 c13 z1 m2 c21 c22 c23 z2
initial_point = current_point = m1
    V
m1 c11 c12 c13 z1 m2 c21 c22 c23 z2
current_point = c11.last_point
        V
m1 c11 c12 c13 z1 m2 c21 c22 c23 z2
current_point = c12.last_point
...
                  V
m1 c11 c12 c13 z1 m2 c21 c22 c23 z2
initial_point = current_point = m2
4

1 に答える 1

1

はい、そういう意味です。最初のポイントは、最初の(必須の)移動のポイントです。

于 2013-08-30T14:51:22.523 に答える