2012-12-14 15 views
5

私の目標は、サイズ変更と回転に使用できる4つのコントロールポイントを持つsvg:ellipseです。私のコードは、回転変換が楕円自体に適用されている場合はうまく動作しますが、回転をコンテナsvg:gに適用して、制御点がたくさんの余分なコードなしで同時に回転するようにします。グループに変換を適用すると、変換された座標を適切に考える必要がないため、回転が誤っていると思います。ドラッグしてSVGを回転させる:gグループ

はこちらをご覧ください:角度、回転の始めの近くに正と負の値の間で、マウスの2PI回転は形だけの1PIを回転させることちらつくことhttp://jsfiddle.net/PbKYn/3/

お知らせ。 (私は<ellipse>なく<g>に回転を適用した場合、回転が完璧であるため、私のangleBetweenPoints機能は、しかし間違っているとは思いません。)

を私が間違っているのか? Thanks-

+0

ハンドルの1つをクリックし、楕円全体を360°回転させようとすると、全体的には追従しません。これが欲しいですか? – philipp

+0

@philipp no、これはバグの1つで、0度の周りのちらつきに加えてです。クリックされたコントロールポイントはマウスの下に留まります。 – ZachB

答えて

11

http://jsfiddle.net/PbKYn/5/

修正がcurrentAngle + angleBetweenPoints(擬似)にangleBetweenPointsからの回転角度を変更しました。私は回転が適用された後、angleBetweenPointsthetaの代わりにdThetaを与えるように座標が変換されたことを意味すると思います。ル・シー。

+0

良い発見!あなた自身の答えを受け入れることができます。 – Wex

+0

@Wex、ありがとうございました。 – ZachB

関連する問題