1

マウスのすべての位置が(-1, 1)window spaceに変換されることをどのように判断できますか (これは使用するのに適切な用語ではありません)。OGL spaceこの場合、ユーザーはマウスを非常に速く動かします。これは、以前の位置がすべてOGL 座標に変換されていることを前提としています。私が言おうとしているのは...私のC++ OGL coordinates converter計算コストが非常に高い場合でも、一般的なCPUはそれを実行するのに十分な速度です(以前のすべてのイベントを追跡するため)? そこに非常に時間のかかるループを入れたとしましょう。または..非常に高速method()です。マウスを十分速く動かした場合に、OGL 座標がスキップされないようにするにはどうすればよいですか? ここで結論を急ぐつもりはありません。

編集:

私のプログラムのメインループは次のようなものです(疑似コード):

void Pollevents()
{
    for everyt_obj in this
    {
        if Not Collide()
        {

            Move(x, y) //

        }
    }
}

void MousePos()
{
    mouse.pos = To_OGL_Coord2f()
}

これらは実行される別々のスレッドです (しかし、実際には実際のスレッドではありません) 次に、新しいスレッドを (10, 10) にmouse.pos = (0, 0)するのに十分な速さでマウスを動かしたとします。mouse.posループの 1 回の実行で、マウスの位置が以前の位置から大きく変化しました。Bresenham's line algorithmさて、クリスチャン・ラウが述べたように、そのアルゴリズムによって生成された値(追跡されていない)がマウスによって交差されたことを実装することによって、プログラムにどのように伝えることができますか。それらすべての位置にステップするための別のループを追加しますか?

4

1 に答える 1