1

編集-みんなのすべての答えをありがとう。下の写真の正方形は長方形であるはずなので、誤って少し間違った方向に導いたと思います(ほとんどの人が正方形を参照しているので、私の生活がずっと楽になるようです)。また、x / y線は任意の方向に進む可能性があるため、赤い点が常に上部のy境界にあるとは限りません。私はもともとay=mx + bのソリューションを目指していましたが、xとyのどちらを接続するかをどのように知るかを理解しようとして立ち往生しました(明らかに、そのうちの1つを知っている必要があります)。

なんらかの理由で現在苦労している非常に簡単な質問があります(私は思います)。ゲーム内に、画面外の目的を指し示す、ビューの周囲にシンボルを表示する一種のミニマップを作成しようとしています。

とにかく、私は赤い点の値を見つけようとしています(黒い境界線と緑のすべてがわかっている間):

ここに画像の説明を入力してください

単純な三角法のように見えますが、どういうわけか頭を包むことができません。緑の点から赤の点までの「新しい」x値を見つける必要があります。そうすれば、基本的な数学を利用して赤の点を取得できますが、新しいxを見つける方法は私を困惑させます。

前もって感謝します!

4

3 に答える 3

4
scale = max(abs(x), abs(y))
x = x / scale
y = y / scale

これは (-1, -1) から (1, 1) までの正方形の単純なケースです。異なるサイズの正方形が必要な場合は、座標に を掛けsidelen / 2ます。

正方形ではなく長方形が必要な場合は、次の式を使用します。(これは、任意のサイズの正方形バージョンに対する別の解決策です)

scale = max(abs(x) / (width / 2), abs(y) / (height / 2))
x = x / scale
y = y / scale
于 2012-04-28T23:53:00.350 に答える
2

正方形の一辺の長さを としましょうl。直線の傾きは です-y/x。つまり、線に沿って移動しy、正方形の上部に向かって一定距離上昇するxと、左に一定距離移動します。しかし、緑色の点は正方形の中心にあるため、 しか上昇できませんl/2。これを比率として表すことができます。

    -y    -l /2
    ——— = ———
     ×     

d左に移動する距離はどこですか。を解くとd

    d = xl /2 y

したがって、緑の点が にある(0, 0)場合、赤の点は

( -1/2 , xl /2 y )
.

于 2012-04-28T23:53:02.957 に答える
1

必要なのは、正方形の角度と幅だけですw

緑のドットがにある場合(0,0)、角度はa = atan(y/x)、ドットのy座標はw/2、したがって、ドットのx座標はですtan(1/a) * (w/2)tan(1/a) == pi/2 - tan(a)、つまり、実際に接続したい角度tanは、ボックスの外側の角度であることに注意してください。

編集:はい、これはトリガーなしでも実行できます。必要なのは、線上のドットのx座標を補間することだけです。つまり、y座標はw/2、であり、x座標は(w/2) * x/yです。ただし、作業している正方形のどの象限に注意してください。その式は、に対してのみ有効です-y<x<y。それ以外の場合は、とを逆xにしyます。

于 2012-04-28T23:43:54.727 に答える