2

私はこの問題について多くのことを検索してきましたが、適切な答えを実際に見つけることができませんでした。
特定の点 (0,0,0 など) を中心に円柱を回転させる必要がありますが、円柱のピボットは既定で指定されています。どうすればそれを変更できますか?

私はこのトピックを見つけました。それは私がやりたいことですが、Javaでそれを行う方法がわかりません。

私がやりたいことをよりよく説明するために、3 つの画像を示します。(v)

imageshack.us/photo/my-images/259/aintgood.jpg

imageshack.us/photo/my-images/840/whatineed.jpg

imageshack.us/photo/my-images/705/nogoodn.jpg

したがって、最初の画像は私の基本的な問題を示しています。円柱は、端が球の中心にあるように配置する必要があります。たとえば、(0,0,0) とします。ユーザーは 2 つの角度を指定します。1 つ目は rotX コマンド用で、2 つ目は rotZ コマンド用です。円柱のピボットはその中心にあるため、画像 3 に示すように、円柱を平行移動してその端が球の中心にあったとしても、回転すると全体が台無しになります。

イメージ 2 は、与えられた角度に関係なく、円柱と球のグループがどのように見えるかを示しています。画像はアルゴリズムに基づいて取得されるのではなく、微積分に基づいて取得され、マウス回転されます。

4

1 に答える 1

3

任意の点Pを中心に回転する一般的な手順は次のとおりです。

  1. -Pで変換(したがって、Pは(0、0、0)にあります)
  2. 原点を中心に回転します
  3. Pで移動(原点をPの元の位置に戻すため)

これを行う最も簡単な方法は、すべてを同次座標で表現し、平行移動と回転を行列で表現することです。上記の3つの変換(変換-回転-変換)の構成は、行列の乗算によって行われます。回転が2つ以上のより単純な回転で構成されている場合、回転行列自体は、より単純な回転の行列の積になります。

于 2012-10-30T17:01:11.613 に答える