3

私はjavascriptとraphaelJSに非常に慣れていないので、コードが乱雑になって申し訳ありませんが、次のタスクを実行する必要があります。長方形を描画し、ドラッグアンドドロップしてサイズを変更する方法を作成する必要があります。そして、この方法はタブレットで機能する必要があります。下部と右側に2つの小さな円を描き、この長方形のサイズを変更したかったのですが、次のコードに問題があるため、数学に問題がありました:http: //jsfiddle.net/x5zHp/( 1つの円のみ)

長方形をドラッグすると、マウスと長方形が同時に移動せず、マウスの矢印が外れることがわかります。

私のエラーとおそらくいくつかの最良のコードソリューションを指摘していただけませんか。助けていただければ幸いです。free transformというプラグインを見つけましたが、このタスクを自分でやりたかったのです。最終的にはそれを使って何かを行う必要があり、このプラグインを操作するのが難しいためです(たとえば、円のサイズを変更します)。または、タブレットで簡単に動作する必要があるため、非表示の円を作成します。理由は、タブレットで指を使って円をキャッチするのが難しいためです)よろしくお願いします。英語をお詫びします。

アップデート

ついにhttp://jsfiddle.net/y5Jag/7/動作しました。また、目に見えない円を追加して、目に見える円を簡単に見つけられるようにしました(実際にはタブレットで使用します)。私が本当に嫌うのはコードだけです。それは非常に厄介です:

this.ox = this.attr('cx');
this.oy = this.attr('cy');
this.rox = Spectrum.resizer.attr('cx');
this.roy = Spectrum.resizer.attr('cy');
this.rwidth = Spectrum.rect.attr('width');
this.rheight = Spectrum.rect.attr('height');

これを美化する方法の提案...

4

1 に答える 1

1

私があなたの質問を正しく理解していれば、あなたはほとんどそこにいました、正方形は両側でスケーリングされているので、距離を2倍する必要があります...

this.scale = params.scale.y + dy*2 / rect.attr('height');

http://jsfiddle.net/y5Jag/

于 2012-06-19T01:57:49.303 に答える