先日、PythonistaというiOSアプリを紹介しました。
iPhoneをグラフ関数電卓っぽく使うのに割と適した方法はSympyを使うことだと思います。中でもgeometryというモジュールがあって、そのモジュールを使うと点や直線、多角形を作ることができ、円の外周長さや面積の計算、図形の交差判定などが可能です。
今日は2直線の交点を求めてみます。
下のプログラムでは点(1, 1)と点(5, 4)を通る直線1と、点(1, 3)と点(5, 2)を通る直線2の交点を求めます。
まずは紙の上で計算してみます。
直線1と直線2の式を作り、交点を求めるために連立方程式を解きます。このまま関数電卓の連立方程式モードで解けばいいと思います。今回は行列を作って、計算してみました。もちろん、手計算でも問題なく解けると思います。この場合、yの係数が4と-4なので、暗算でも解けますね。
次の画像はPythonistaでのプログラムです。
sympy.geometryは2直線の交点を求めることは可能ですが、それを図示するにはmatplotlibを使って、作図してあげる必要があります。
交点の座標を書き込むとか、軸のラベルを付けるとか、色々装飾を施すことは可能ですが、プログラムが煩雑になるので骨組みのところだけを示します。
これを実行すると以下のような結果が得られます。
2つの直線が描画されているのと、交点の座標が求められていることがわかると思います。
私はプログラムを上手に教えられる程の知識がないので、内容までは解説しませんが、そのまま打ち込めば実行可能です。