#2点間の距離と角度と座標の求め方
位置情報の座標の求め方はこっちを合わせて参照すれば緯度経度も出せるんじゃないでしょうか
一年の以上の時を経て変数渡しのミスがとれました!
デバイス・言語に限らずデフォルトのWidgetから自由になりたいとおもったら、
sin、cos、tanから逃げられないと25くらいで気がついて、
慌てて三角関数の本を買ったけど結局、読んでない無学なプログラマは僕だけはないと思う。
なぜ高校の授業中にこち亀を読んでしまったのかとか、
授業をすっぽかして、近所のファミブ(FamilyBookという大型レンタルビデオ・本・ゲーム等を扱う北関東とかにあるチェーン店)にいってしまったのかと嘆いてもしかたがない、親や先生の言う事は聞くべきですね。
ブログ等に昔メモったが、プログラミングで使うたびにQiitaに移していく。
Javaで記載しますので他言語は適時読み替えください。
Mathに当たるライブラリは一般的に商用でつかうような言語なら、まずありますので心配はいらないかと。
##2点間の距離
理屈はいい公式がわかれば。
いやいや理屈は他の優秀なブログ等に譲る。
protected int getDistance(double x, double y, double x2, double y2) {
double distance = Math.sqrt((x2 - x) * (x2 - x) + (y2 - y) * (y2 - y));
return (int) distance;
}
##2点間の角度
protected double getRadian(double x, double y, double x2, double y2) {
double radian = Math.atan2(y2 - y,x2 - x);
return radian;
}
//radianをdegreeに変換
double degree = arcLineMargineRadian * 180d / Math.PI;
##角度(θ)と距離が分かっている場合に座標Bを求める方法
/*
θ(degree)にMath.PI / 180を掛けているのはdegreeをradianに変換している
radiusは半径である、距離とは半径を求めているのと同じ
*/
double radian = degree * Math.PI / 180;
y2 = Math.sin(radian) * radius;
x2 = Math.cos(radian) * radius;
#番外
##起点までの距離がわかっている座標Aから、特定の角度(alpha)へ等距離で回転した場合の座標Bを求める方法
x2 = x1 * Math.cos(alpha) - y1 * Math.sin(alpha)
y2 = x1 * Math.sin(alpha) + y1 * Math.cos(alpha)
【http://www.kodama-lab.com/seminar/javalang/ex02/rotate2.html】
##最後に
たぶんあってる。間違っていたら編集リクエストくらはいm(__)m