1

small basic 内でいくつかのことを試して、線をマウスに追従させ、線全体を動かさないようにした後、最近問題に遭遇しました。もともと、グラフィックウィンドウをクリアし、右下からマウスまでの線を再描画することにより、ある点からマウスの位置に接続されたままになるように、常に線を更新しようとしていました。これは機能せず、リソースを集中的に使用していました。しかし、今では Shape.addline と shape.move に出会いました。しかし、それらがどのように機能するかについてはよくわかりません。私の理解では、次のようにして形状に独自の名前を付けることができます。

[Shapename] = Shapes.addline(positions)

そして、その形状は次を使用して移動できます。

Shapes.move(Shapename,Coordinates)

私の場合は次のとおりです。

L1 = Shapes.AddLine(0,GraphicsWindow.Height,GraphicsWindow.MouseX,GraphicsWindow.MouseY)

(左下隅からマウスの位置まで線を引きます)

Shapes.Move(L1,GraphicsWindow.MouseX,GraphicsWindow.MouseY)

唯一の問題は、Shapes.Move が次の 3 つの引数しかサポートしないことです。

  • 形状名

  • バツ

ただし、線 (Shapes.AddLine) を描画するときは、次の 4 つの引数を使用します。

  • X1

  • Y1

  • X2

  • Y2

つまり、この 2 つの位置しか制御できません。では、残りの 2 つをどのように制御しますか? X1 と Y1 しか変更できない場合、少なくとも shape.move メソッドに似たものを引き続き使用しながら、他の X2 と Y2 の位置を制御できる方法はありますか? 主に、実際にはX2とY2の位置のみを変更したいと思います.1つの点から線を作成してそこに留まらせ、反対の点を変更してマウスに追従させ、形状全体を移動させないようにします. これが不可能な場合、画面全体をクリアすることなく、線の X2 座標と Y2 座標のみを移動/変更する既知の方法はありますか?

4

2 に答える 2

1

私は、プログラムの最後を変更して、math.cos(mouseangle) が 200 を 0 に変更し、他の 200 を一番下に変更すると推測しています。それで、私が何を理解しようとしているか、コルテシアン平面の第1象限にのみ線を投影しようとしているのなら、そうですか?

于 2016-01-02T16:23:13.160 に答える