1

固定軸をヒンジとして長方形を回転させる数学的またはアルゴリズム的な計算を楽しみにしています。下の写真でわかるように。

長方形の頂点の4つのポイントの位置(x、y)があり、原点は長方形の中心であるため、目的のアルゴリズムは元の形状の頂点を目的の形状の頂点に投影します。(下の画像をご覧ください)

3Dライブラリで簡単に実行できることは知っていますが、.NetやJAVAなどの高水準プログラミング言語の2Dグラフィックス、または3Dライブラリや補完ライブラリがないもので実行する必要があります。

すべてのソースコードやアルゴリズムよりも優れたアイデアやリファレンスを手伝ってください。

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

質の高い時間をよろしくお願いします。

4

2 に答える 2

4

上記の私のコメントを要約すると:

于 2012-05-28T00:23:50.760 に答える
2

私の経験から、2 次元で作業する場合、プロセッシングと呼ばれる素晴らしいツールで大きな成功を収めました。. Processing は Java プログラミング言語の拡張であり、特にデータ構造から威圧的な物理シミュレーションに至るまで、あらゆるものを視覚化することを目的としています。あなたが提示した役立つグラフィックスから、私はあなたがいつでも点または軸を中心に1つの構造を回転させたいと思っていると思います. 機能が豊富な API リファレンスを見て、オファーを処理します (私は新しいユーザーです。残念ながら 2 つ以上のアイテムをリンクすることはできません。下に API リファレンスへのリンクを配置します)。ポイントを中心に回転および変換するための独自の機能があります。ただし、そのポイントを中心に構造を回転させるのではなく、画面全体とそこに含まれるすべてのものをポイントを中心に回転させます。たとえば、原点 (0,0) を中心にすべてを 45 度回転させたい場合は、次のように簡単です。

void setup()
{
  size(200, 200); // Set the size of the screen to 200 x 200 pixels
  background(255); // Set the background to white
  smooth(); // Smooth the edges of the rectangles
  fill(192); // Fill the rectangle with a light gray
  noStroke(); // No black border on rectangle
  rect(40, 40, 40, 40); // Create an equilateral rectangle (square) that is 40 x 40 pixels at the point (40,40)

  pushMatrix(); //Let the compiler know that you will be modifying the Matrix
  rotate(radians(45)); // Rotate the screen about the origin (by default) 45 degrees clockwise
  fill(0); // Color the following rectangle black
  rect(40, 40, 40, 40); // Draw an equivalent rectangle as the last one, only at the new modified screen coordinates
  popMatrix(); // Let the compiler know you are done modifying the matrix
}

上記のコードは、2 つの同一の正方形を作成します。1 つは点 (40,40) にあり、もう 1 つは原点を中心に時計回りに 45 度です。

ここにある非常に詳細なチュートリアルがあり、すべてをより詳細に説明しています。これが役立つことを本当に願っています。ではごきげんよう!API リファレンス: processing.org/reference/

于 2012-05-25T20:15:42.727 に答える