6月 « 2011 « MISCELLANEUOS DATA STORAGE

2011 年 6 月 のアーカイブ

[Maxima] 数式処理ソフトウエア Maxima

2011 年 6 月 28 日 火曜日

難解な数式を簡略化したり、方程式の解を導出したりといった数式の計算をするソフトウエアが数式処理システムです。

MaximaGPL の元で配布されている数式処理システムで、Lite & Seen Lite でも紹介されています。

試しに、直線の一般式 ax + by +c = 0 に対して座標(x1,y1)-(x2,y2) を通る場合の a, b, c を計算してみます。

solve([式],[解変数])

と入力して[Ctrl]+[Enter] を入力すると、解が表示されます。 この解のうち、%r4%r[数字])は任意定数です。 ax+by+c=0なので、任意定数の逆数と分母数を掛けて、

[a' = y2-y1, b'=x1-x2, c'=x2y1-x1y2]

も成立します。

次に、原点を中心とした円と任意の直線の交点を求めてみます。 円と直線の方程式は、

x2+y2=r2

ax + by +c = 0

で表せます。 solve コマンドで連立方程式を解くと解が2つ表示されますので、平方根の部分が虚数かどうかを判断すると交点の座標が計算できます。

http://ja.wikipedia.org/wiki/Maxima

[Firefox] 数式入力Add-on FireMath

2011 年 6 月 27 日 月曜日

Web に数式を記載する際、GIF などの画像に変換してもよいのですが、ブラウザが FireFox の場合、MathML が表示できます。
MathML は、記述がやや冗長なので入力に視覚的なエディタがあると便利です。 OpenOffice.org の Math なども MathML を出力できるようですが、WordPress の投稿に埋め込む場合の相性がいまいちのようです。

FireFox のアドオンの FireMath を使用すると、クリップボード経由でMathML を送信できます。 また、WordPress との相性も比較的良いようです。

Word PressMathML を貼り付けるときには、Edit(D) > Copy MathML(Ctrl-Alt-C) を実行して、[Inline equation] にチェックを入れます。

一度、テキストエディタを経由して改行を消去して、投稿フォームに貼り付けます。

改行が残ったままだと、HTML フォームで入力しても、余分なタグが挿入されてしまうようです。

また、ビジュアルフォームに切り替えて編集すると、MathML のタグが飛んでしまうので、注意が必要です。

[Algorithm] 円と線分の交差判定

2011 年 6 月 26 日 日曜日


円と有限線分の交差判定のアルゴリズムです。
実装はこちらのサイトを参考にしました。
  

線分ABの始点から終点に向かうベクトルを
v

、線分の短点から円の中心に向かうベクトルをそれぞれ
c、 b

 とします。 円の半径を r とすると、円と直線の交差する条件は以下のようになります。

 

(1)   v c < 0    かつ    c < 0    ならば交差

(2)   v c 0    のとき:

  (2-1)   v c > v 2    かつ    b <    ならば交差

  (2-2)   v c 0    かつ    c 2 - v c 2 v 2 < r 2    のとき:

    (2-2-1)   c > r    または    b > r    ならば交差

 
 
最後の (2-2-1) は、線分の両端が円の内部にある条件です。
前述のサイトには、この条件が含まれていなかったため追記しました。
 
 
※ この記事には MathML を使用しています。 Internet Explorer を使用している方は、MathPlayer、Chrome では MathML2CSS などをインストールする必要があるそうです。