のみまくし日記

毎日が文化祭の前日、そんな環境っていいですよね。この日記は未来の自分へのメッセージです。

2003年12月28日 ()

我、エンジン不調。

って、5時間もネットにつながらなかった。どうなってんだよ。まじ、勘弁してほしい。

やっぱり、自宅サーバやめようかな。。

こことり posted by takefumi | この日記へリンク | コメント(0) | トラックバック(0)

位置情報と私2004(2)

位置情報(度、分、秒)を計算しやすくするために1/100 秒を 1 の位とし、整数で扱うことにしました。

よって、

秒 * 100、分 * 600、度 * 36000 として扱っています。

Math::MapDatum というモジュールを作りました。ドキュメント書くのめんどくさい。英語でかきたくない。。。

ドキュメント書いて CPAN に乗せたいともいます。

位置情報 posted by takefumi | この日記へリンク | コメント(0) | トラックバック(0)

テニス

大会があるのは知っていたんだけど、夜ならあいているかなーと思ったら、いっぱいでした。

新宿中央公園にも壁打ち出来る壁があるらしいので、探してみたら見つかったのですが、暗すぎてちょっと壁打ちはできないかんじ。しょうがないので、左手鍛えるためにリフティングを左手で30分ぐらいやって帰りました。

テニス posted by takefumi | この日記へリンク | コメント(0) | トラックバック(0)

位置情報と私2004(3)

ある地点から近いポイント探す仕組みを模索中です。

片 a, b, c、角 A, B, C からなる三角形で C の角度が 90度。Cに隣接する辺 a, b の長さから c の長さを求めるやり方をどうしても思い出せなくて、Pen先生に泣き寝入り。

  • KIM: どうしても思い出せないので、教えてほしいことがあるのですが。お暇ならおしえてくださーい。
  • KIM: こんな三角形があって a と b の長さは知っています。Cは90度。
  • KIM: で、cの長さを求めたいのだけど、どーするんだっけ(恥)
  • Pen: 。。。
  • Pen: sqrt(a * a + b * b)
  • Pen: a * a + b * b = c * c というのがピタゴラスの定理なのにゃ
  • KIM: おー。
  • KIM: そうでした。
  • Pen: Cの角度がほかの場合も三角関数をつかえば求められまする
  • KIM: さんくす。
  • KIM: ちなみに、やりたいことは
  • KIM:
    xy
    890760045147600
    887940044890800
    882300044740800
    ::
  • KIM: という表があって、ある地点たとえば (x=8813452, y = 44491134)からもっとも近いレコードをとりだしたい。
  • KIM: とりあえず、ざっくりとした範囲で複数レコードを抽出して、それぞれの長さを測って……
  • KIM: としようとしているのだけど、もっと効率の良い方法あるかな?
  • Pen: もっとも近い点をさがしたいなら二乗のまま比べてもいいね
  • Pen: 平方根の計算は高いから
  • KIM: なるほど。
  • KIM: う、INTの限界こえちゃうな。。。
  • Pen: あとは、x軸の差(の二乗)が、いままでのもっとも短い距離(の二乗)より長かったらy軸の差は計算せず捨てられるかな。この判定のコストが上回っちゃう可能性もあるけど。
  • KIM: 抽出した値をもっと小さくなるように、それぞれの値から同じ数だけ引けば良いのかな<INTの限界
  • Pen: ある地点の座標をひけばいいんじゃ?
  • KIM: あ、そっか。
  • Pen: 「ある地点」の座標をpx, py、レコードからとりだしたのをrx1, ry2 とすると
  • Pen: d1 = (rx1 - px) ^2 + (ry1 - py) ^2
  • Pen: 二乗するから正負判定もいらね
  • KIM: なるるるる。
  • Pen: んで d2 = (rx2 - px) ^2 + (ry2 - py) ^2 で
  • Pen: d1 > d2 なら d2 が近い
  • Pen: いまいったのは、 (rx2 - px) ^2 がすでに d1よりでかかったら捨てられる、という話
  • Pen: だけど一気に計算しちゃうほうが速いかもしれず。
  • KIM: ふむふむ。

(雑談)

  • KIM: よく考えたら、二乗すらしなくてもいんじゃね?
  • Pen: ん?
  • KIM: b1 = abs(rx1 - px) + abs(ry1 - py)
  • KIM: だとだめ?
  • Pen: さっきの三角の図でさ aとbが同じ長さだったとするじゃん
  • KIM: うん
  • Pen: そうすると、c上のどの地点も
  • Pen: キムの計算だと、C地点から等距離にある、ってことになるよね
  • KIM: あ、そっか。
  • Pen: そういう距離の定義も目的によってはアリだけどね。
  • Pen: トルネコなんかはななめに動くと得な距離の定義だし
  • KIM: でも、
  • KIM: 距離がほしいわけではなく、他の値と比べて近いかどうかを比べたいだけでも、論理が破綻してる?
  • Pen: C地点を中心に、半径aの円をかくと
  • Pen: BからAに1/4の弧が描かれるよね(a=bのとき)それと、直線ABで囲まれた、みかづき型っぽい形があるじゃん。
  • Pen: その内側の点とCとの距離は、じっさいにはaより短いよね
  • Pen: でも、キムの距離の定義では、aより長いことになるよね
  • KIM: あー、なるほど。。。
  • Pen: おれのいうことを鵜呑みしないのは良いことだな。だが、まだまだじゃの
  • KIM: うぐ。しつれいしました。

ちょっと計算してみれば、実際には違う距離でも同じになってしまう場合があることがわかるです。

xy二乗版キム定義
34257
24206
25277
33186

位置情報 写真 posted by takefumi | この日記へリンク | コメント(0) | トラックバック(0)