3Dプログラミングでのカメラの回転について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kar
記事: 15
登録日時: 10年前

3Dプログラミングでのカメラの回転について

#1

投稿記事 by kar » 9年前

いつもお世話になっております。
今私は3Dプログラミングに興味を持ち、http://dixq.net/g/の3Dプログラミング入門から勉強を始めたのですが疑問に思った事があります

「カメラを回転してみよう」http://dixq.net/g/3d_02.htmlの座標の回転の所なのですが

コード:

// (x,y)の点を(mx,my)を中心にang角回転する
void rotate(float *x, float *y, const float ang, const float mx, const float my){
    const float ox = *x-mx, oy = *y-my;
    *x =  ox * cos(ang) + oy * sin(ang);
    *y = -ox * sin(ang) + oy * cos(ang);
    *x += mx;
    *y += my;
}
このプログラムがよく分かりません。同ページ内の解説サイトhttp://www.geisya.or.jp/~mwm48961/kou2/linear_ ... した後のx、y座標は
x=xcosθ-ysinθ
y=xsinθ+ycosθ
で求められると書いてあるのですが上記のプログラムでは符号が逆になっています。
これは何か意図して書かれているのでしょうか?それとも単純に私が何か勘違いをしてしまっているのでしょうか?
うまく理解することが出来なかったので質問させて頂きました。よろしくお願いします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 3Dプログラミングでのカメラの回転について

#2

投稿記事 by h2so5 » 9年前

回転方向を逆転させているだけです。パラメータの方を反転させればいいだけなので式としてはあんまり意味はないですね。

画像

kar
記事: 15
登録日時: 10年前

Re: 3Dプログラミングでのカメラの回転について

#3

投稿記事 by kar » 9年前

成る程そういう事だったんですか。詳しい説明ありがとうございました。

アバター
usao
記事: 1887
登録日時: 11年前

Re: 3Dプログラミングでのカメラの回転について

#4

投稿記事 by usao » 9年前

オフトピック
こういう関数を書いたときには
>// (x,y)の点を(mx,my)を中心にang角回転する
みたいな曖昧なコメント書くのは避けたいですね.個人的な感覚ですが,
・角度の単位は[rad]なのか[deg]なのか
・+の角度を指定したらどっち側に回転するのか
といったことくらいは書いとかないと使えないだろ…とか思う.

閉鎖

“C言語何でも質問掲示板” へ戻る