アカウント名:
パスワード:
おもしろいですね.
この行列で繰り返しベクトルを変換し続けるとベクトルは回転するだけじゃなくてだんだんその長さも変化していくと思います.画像だと回転しつつだんだんその大きさも変化していくとはずです.
この点はなにか対策をとられたのでしょうか?良い対処方法をご存じでしたら是非おしえてください.
190回で1%ほどベクトルが長くなるのですけど、特に対処してなかったと思うのです。私(安岡孝一)の今日の日記 [srad.jp]にちょっとだけ書いてみたので、よければ御覧ください。
例えばx,y座標のどちらかが本来の半径を(例えば16/15倍)超えた時に両辺を縮小(15/16倍)すればいいのでは?数字は適宜調整。おおざっぱな方法だけど二乗和が不要で、その内x,y軸近くを通過するはず。
あるいは単純に一定回数毎なり定数を掛けるという方法でも対処できる。何倍大きくなるかはわかっているわけだし。
掛け算ができないからビットシフトで代用ってのはプログラマブルシェーダーでも見かけた記憶があります。あと、PS3のCellプログラミングでも記事で読んだような。計算量が段違いなので今でも似たような手法は使える場面はあるはずです。
> 例えばx,y座標のどちらかが本来の半径を(例えば16/15倍)超えた時に両辺を縮小(15/16倍)すればいいのでは?
ブレゼンハムのアルゴリズムを使えば整数演算だけで実現できそうですね
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家
計算誤差の対処法はありますか? (スコア:1)
おもしろいですね.
この行列で繰り返しベクトルを変換し続けると
ベクトルは回転するだけじゃなくて
だんだんその長さも変化していくと思います.
画像だと回転しつつ
だんだんその大きさも変化していくとはずです.
この点はなにか対策をとられたのでしょうか?
良い対処方法をご存じでしたら是非おしえてください.
Re:計算誤差の対処法はありますか? (スコア:2)
190回で1%ほどベクトルが長くなるのですけど、特に対処してなかったと思うのです。私(安岡孝一)の今日の日記 [srad.jp]にちょっとだけ書いてみたので、よければ御覧ください。
Re:計算誤差の対処法はありますか? (スコア:1)
例えばx,y座標のどちらかが本来の半径を(例えば16/15倍)超えた時に両辺を縮小(15/16倍)すればいいのでは?
数字は適宜調整。
おおざっぱな方法だけど二乗和が不要で、その内x,y軸近くを通過するはず。
あるいは単純に一定回数毎なり定数を掛けるという方法でも対処できる。
何倍大きくなるかはわかっているわけだし。
掛け算ができないからビットシフトで代用ってのはプログラマブルシェーダーでも見かけた記憶があります。
あと、PS3のCellプログラミングでも記事で読んだような。
計算量が段違いなので今でも似たような手法は使える場面はあるはずです。
Re:計算誤差の対処法はありますか? (スコア:1)
> 例えばx,y座標のどちらかが本来の半径を(例えば16/15倍)超えた時に両辺を縮小(15/16倍)すればいいのでは?
ブレゼンハムのアルゴリズムを使えば整数演算だけで実現できそうですね