2つのベクトルで定義される面に対して垂直なベクトル - 外積 - cross
法線的な - 鏡の面の法線を外積として表す

鏡の法線と入射ベクトルの内積をとる。- 内積 - 仕事量 - スカラー値 - ベクトルではない

三次元反射ベクトル
ofVec3f v = -2*(light.dot(norm))*norm+light;


鏡の向き - 法線で表す - norm
鏡の向きはxとyとで回転(altitude, azimuth)
正面を向いている時(0, 0)

モーターを基準に考えると0, 0の時のベクトルは
ofVec3f(0, 1, 0)
unit vector


設定値としては
・ユニットの設置向き/場所
x, y, zで回転
latitude, longitude


テスト用にマウスの位置で回転

ミラー中央から太陽に向く光の線
ミラー中央からのミラー法線
ミラー中央からの反射光


画面ではユニットの回転
グローバルグリッドを表示

太陽の向きは北向き基準


時差


ofVec3f v = -2*(light.dot(norm))*norm+light;
単純にこれを逆算しようと思っても、dot(内積)がはいっているのでできないな。

考え方として
・光源
・反射した先
が決まっていて
・鏡の角度
がもとめるべき解


太陽から鏡
反射する先から鏡
の2つベクトルの成す角度の間がとれれば良い。

2次元で考えると、、、



座標系の混乱を整理してクリアにする。

世界を上方向から見た時
上が北
右が東
太陽は東から登って西に沈む


N-E-S-W
北-東-南-西
0-90-180-270


左手系の座標と右手系の座標
一般的な数学空間では右手系の座標
方位では
右手系では東を基準方位とし反時計回りを正の角度とする。左手系では北を基準方位とし時計回りを正の角度とする。
http://ja.wikipedia.org/wiki/%E6%96%B9%E4%BD%8D%E8%A7%92


今、拾ってきて使っているコードは左手系南基準
高さについても、左手系なので、右手系に変換
右手系東基準で行こう