algorithmとmathに関するdotsargのブックマーク (3)

  • @programming

  • 数値演算のアルゴリズム

    3Dの計算処理では、「正確性よりも速度を求める」という場合がよくあります(特にリアルタイム)。 そのあたりで使えそうな、数値演算のアルゴリズムをまとめてみました。 sqrt:平方根を求める C言語では"math.h"の「sqrt」で平方根を計算します。 これと同等の機能をするプログラムは以下のようになります。 浮動小数点での平方根の計算 double mySqrt(double x) { double s,last; if(x<=0.0) return 0.0; if (x > 1) s = x; else s = 1; do { last = s; s = (x / s + s) * 0.5; } while (s < last); return last; } 整数での平方根の計算 int myISqrt(int x) { int s, t; if (x <= 0) return 0;

    dotsarg
    dotsarg 2016/09/29
    平方根、距離計算、余り計算を高速に行う方法が記載されている。
  • 第4回 図形のクリックを検出しよう─JavaScriptで外積の計算 | gihyo.jp

    以前gihyo.jpの特集で、Nゲージのエディタを取り上げたことがあります。このエディタでは、レールをドラッグ操作で動かせるようにしました。 レールの始点または終点から、x, y共に±3以内だったら端点と見なすことで、端点をドラッグすると変形になる処理が実現できます。これは簡単ですね。ifの条件で書くと ((sx - 4 < x)&&(x < sx + 4)&&(sy - 4 < y)&&(y < sy + 4)) のようになります。 では、レールの上をドラッグしたら移動になる、という処理はどう書けばよいでしょうか。レールは直線ですが、水平や垂直ではなく斜めにもなります。もちろん、1ドット幅を正確にクリックしないといけないのでは実用になりませんから、ある程度の幅を持たせる必要があります。高校で「点と直線の距離」を習った記憶がありますが、ルートが出てくるなど計算が複雑なため、たくさんの線があ

    第4回 図形のクリックを検出しよう─JavaScriptで外積の計算 | gihyo.jp
  • 1