0

そこにコードが表示されます: http://jsfiddle.net/jocose/CkL5F/901/ (ボックスをダブルクリックしてマウスを動かします)

注: これは、大規模なシステムの一部である単純化された例です。私の最終的な目標は、パスの個々の頂点を操作することです。

更新: 数値を計算したところ、実際に数学が正しいようです。私がやりたいことは、各ポイントからマウスまでのオフセットを計算し、そのポイントをマウスの位置 + オフセットに移動することです。したがって、224 のマウスを使用している場合、224-103 = 121 を追加します: 121+224=345 これらは、私が見ている浮き沈みのサイクルを作成します。なぜこれらが私をひどく困惑させているのかわかりません。どんな助けでも大歓迎です。

Raphael パス要素を手動で更新する必要があります。

これを行うには、Raphael の優れた組み込み関数「parsePathString」を使用して、絶対パスを配列に変換します。

次に、その配列をループして、マウスの位置に基づいて値を変更します。

更新は X 値のみに対して行われ、リアルタイムで行われます。マウスが動くたびに呼び出されます。

要素が移動すると、正しい位置と異常な位置の間を行ったり来たりします。

なぜこれを行うのかわかりません。私はこれを理解しようとしてほぼ5時間費やしましたが、公式には立ち往生しています。

以下は、値が飛び回っているのを確認できる結果のサンプルです。

MOUSE224 
M,103.676287 
MOUSE225 
M,346.323713 
MOUSE227 
M,107.676287 
MOUSE228 
M,348.323713 12
MOUSE228 
M,107.676287 
MOUSE229 
M,350.323713
MOUSE231 
M,111.67S287 
MOUSE232 
M,3S2.323713
MOUSE233 
M,113.676287
MOUSE233 
M,3S2.323713
4

1 に答える 1

1

これは、あなたが必要だと思うことを行うために修正された私のバージョンのフィドルです。少なくとも、うまくいくようです。これは、ここでRaphael 2 の変換のために修正しなければならなかったのと同じタイプの問題です。

基本的に、あなたの mousemove で、mx を変更して、マウスが現在ある場所と最後に mousemove が呼び出された場所との間のオフセットの計算にしました。move() 関数は、この値を x 座標に追加するだけで済みます。

これがあなたの助けになることを願っています

于 2012-05-20T21:19:05.910 に答える