いろいろ煮詰めているうちにめんどくさくなった。
ラジアン値をPiで割った剰余を求めるいい方法が見つからなかったのが原因として大きい。
周知の通り、ラジアンも円周率も実数だけど、DelphiにはCでいうfmodみたいな実数の剰余を求める方法が無いらしい?
function fmod(a, b: Extended): Extended;
begin
if a > 0 then
while a >= b do
a := a - b
else
if a < 0 then
while a <= b do
a := a + b
else
a := 0;
Result := a;
end;
みたいな方法でも求められるけど、速度的に心配……。
インラインアセンブラに期待してみたけど、FDIV命令はDIV命令のEDXみたいに剰余は求まらないみたい。
もう……ナナメ方向の移動速度が2倍でも良いかw
p. s.
よくよく考えてみたら、剰余とか求めなくても良いかもしれない。
算出したかったのは、上や下を向きながらナナメ移動した際のZ座標の変化。
でも、剰余を求めるよりもっと難しく考える必要がありそう。
正矢とか求めるの?よくわからん。
中学生レベルの脳みそには難しすぎる。