ホームページ >バックエンド開発 >C++ >2D ポイントを別のポイントを中心に回転するにはどうすればよいですか?

2D ポイントを別のポイントを中心に回転するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-08 00:02:13228ブラウズ

How do I Rotate a 2D Point Around Another Point?

別の点を中心に点を回転する (2D)

衝突検出の形状を定義する点を決定するには、回転する必要があります。ピボットポイントの周りの点。この場合、ピボット ポイントはシェイプの中心です。

別の点 (cx、cy) を中心に点 p をラジアン単位の角度だけ回転するには、次の手順に従います。

  1. (cx, cy):

    p.x -= cx;
    p.y -= cy;
  2. 点を反時計回りに回転します:

    float xnew = p.x * cos(angle) - p.y * sin(angle);
    float ynew = p.x * sin(angle) + p.y * cos(angle);
  3. (cx, cy):

    p.x = xnew + cx;
    p.y = ynew + cy;

このメソッドを使用すると、任意の点を他の点を中心に回転させ、衝突検出用のオブジェクトの形状を決定できます。

以上が2D ポイントを別のポイントを中心に回転するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。