1

出力でフィドルを開くと、画像が表示され、ペンを選択して画像に落書きし、テキストを追加できます(このようにいくつかの機能を実行します)。次に、回転を使用してグループを回転させますボタンをクリックしてから落書きしてみてください。何が問題なのかを正確に理解できます。

私の見解では問題は、ステージがあり、レイヤーがステージに追加され、グループがレイヤーに追加され、行テキストなどのさまざまな要素がグループに追加されることです。次に、グループが回転します。ステージのマウスの位置に基づいて線を引こうとしています。しかし、グループが x と y を回転させられているため、線を引くために取っているのはステージからのものです。必要です。ステージからではなく、グループから x と y を取得するのは彼らのやり方です。理解できない場合は、私に尋ねるか、返信を投稿してください。

4

1 に答える 1

0

これでかなり近づくはずです:http://jsfiddle.net/k4qB8/24/

// This rotates that added active line along with your group.
// This makes the draw direction correct
activeline.setRotationDeg(0-rootGroup.getRotationDeg());

// Here you'll have to figure a way to calculate how much to move the 
// line over so the draw is on the correct spot
// This is as close as I got it
     if(Math.abs(rootGroup.getRotationDeg()%360)==0)
           activeline.move(rootGroup.getX()-375, rootGroup.getY()-175);
     if(Math.abs(rootGroup.getRotationDeg()%360)==90)
           activeline.move(rootGroup.getX()-175, rootGroup.getY()+375);
     if(Math.abs(rootGroup.getRotationDeg()%360)==180)
           activeline.move(rootGroup.getX()+375, rootGroup.getY()+175);
     if(Math.abs(rootGroup.getRotationDeg()%360)==270)
           activeline.move(rootGroup.getX()+175, rootGroup.getY()-375);

また、100%動作しないため、反時計回りに回転するロジックを追加します。

本当の解決策は、次のように、回転ごとに別々のレイヤーを描画することだと思います。

 if (rotation is 90) : draw on lineLayer1;
 if (rotation is 180) : draw on lineLayer2;
 if (rotation is 270) : draw on lineLayer3;
 if (rotation is 360 || 0) : draw on lineLayer4;

このようにして、描画されていないレイヤーを回転させるだけで、回転の感触をシミュレートできます。

于 2013-01-04T15:30:30.477 に答える