2011年9月21日

 The Interviewsに登録してみたので質問したい人質問ください。

http://theinterviews.jp/aoitan

posted @ 1:56 | Feedback (0)

2011年8月17日

 雑ブログの方で論理学を中心に長月が触れている数学に言及する記事始めました。
 基本的に長月はコンピュータ科学に絡んだ数学しかやってないのでわんくまに来る類の人なら興味持ってる人もいるのでは? と思ってます。興味のある方はあおいろ日記のリンクを踏んでね!

 あ、記事には書き忘れたんですが、気が向いたら番外編的に誤り訂正の理論とか暗号理論とかも触るかも。数論好きな人はそういうのもリクエストしてみてね!

あおいろ日記

posted @ 22:41 | Feedback (0)

2011年8月7日

 おいときます。

第一回

第二回

posted @ 8:51 | Feedback (0)

2010年10月8日

ってどうやればいいんだろう?
 とりあえず
1.全ての線分を含む長方形を作って
2.それをちょっとだけ四方に拡大して
3.原点からスキャンラインシードフィルとかかけて
4.塗りつぶされてないところが閉じた領域
 ってやってるけどもっとコストの安いアルゴリズムがありそう。
 なんか良い方法ないかな?

posted @ 10:55 | Feedback (5)

2010年10月7日

 オイラー角?

11:43追記:
 そもそもジャイロの値だと思ってたのは姿勢を計算した値だったっぽい (CMAttitudeというクラス名で気づきなさい)。
 ジャイロの値を直接表してる構造体 (CMRotationRate) の説明を見ると "The X-axis rotation rate in radians per second." だから角速度取ってる。
 まあどっちにしてもCMMotionManagerとかCMAttitudeとか使うのでこれまでと同じなんですが。
#だから結局CMMotionManagerがない環境用に加速度センサの値を変換しないといけないわけで。。。
#並進時の加速度から重力加速度を抽出するのどうすればいいんだろう? 他のセンサがなくてもできるものなのかな?

posted @ 11:12 | Feedback (1)

2010年10月6日

 なんとなくblogシリーズ。

 今日のメモは加速度センサの値からロール・ピッチ・ヨー表現の角度 (radien) を求める方法。
 正直機能のlongitudeから距離を求める問題と同じ問題。
#またiPhoneな話です。

 CMMotionManagerとかで姿勢とか見てるとせっかく三軸ジャイロついてるのに加速度センサだけで姿勢みるのもなーとなる。
 そもそも加速度センサって加速度を測ってるから移動しながらとかだと静止状態の値とずれる。なのでジャイロがついているならジャイロで姿勢を見るべきなのだけど、今度はジャイロだけもせっかくの加速度センサがもったいない感じがする。じゃあ値を合成すれば良いですよねということで平均値を取ってみる。
 そのうち加速度センサの値が動いてる的な加速度なら重みを減らす的な工夫もしてみると良いかも?
 で、とりあえず個人的にラディアンなロール・ピッチ・ヨーが取れたほうがありがたいので加速度センサ側の値をロール・ピッチ・ヨーに変換して三軸ジャイロにあわせることを考える。

・加速度センサの値
 加速度センサの値は加速度を示していて、静止状態で重力方向に1.0Gになるようになっている。詰まり三次元のベクトル。ぴったり良い姿勢になったとき以下のような値をとる。

姿勢 x y z
縦持ち正方向 0.0 -1.0 0.0
縦持ち逆方向 0.0 1.0 0.0
横もち右側上方向 1.0 0.0 0.0
横もち左側上方向 -1.0 0.0 0.0
平置き仰向け 0.0 0.0 -1.0
平置きうつ伏せ 0.0 0.0 1.0


 と言うことは縦持ち正方向で持ったとき左右方向をx軸、上下方向をy軸、前後方向をz軸として、縦持ち正方向からx軸中心に縦持ち逆方向に回転させたときの値の変化は以下の値になるはず。

傾き x y z
0 0.0 -1.0 0.0
30 0.0 -√3/2 -0.5
45 0.0 -1/√2 -1/√2
60 0.0 -0.5 -√3/2
90 0.0 0.0 -1.0
180 0.0 1.0 0.0


 x=軸なので変化しない
 y=sin(θ)
 z=cos(θ)
 と言うことね。これがそれぞれの軸に対して言える。

・成分の値から角度を求めるお話
 ならばここからは座標から角度を求めるときのいつもの話。
 tan(θ)=sin(θ)/cos(θ)=y/zでθ=atan(tan(θ))なのでatan(y/z)。これを三軸に対してやればよし。

 で、ジャイロから取れる値がx軸を左右、y軸を上下、z軸を前後の軸として以下の感じ。


プロパティ
意味
pitch x軸中心の回転角
roll y軸中心の回転角
yaw z軸中心の回転角


 なので
 pitch = atan(y/z);
 roll  = atan(z/x);
 yaw   = atan(y/x);
 となると。
 実際動かして測定してみてどうなるかはそのうちまた別エントリで。


#これって数学堪能な人なら4x4の行列掛けてやればよくね? とかそういう話な気がする。。。

 

posted @ 17:52 | Feedback (1)

2010年10月5日

 最近blogやってないなーとか思ったので思いつきでメモ代わりにするテスト。
 今回はGPSで位置情報とかもにょるときによくやるアレ。なんかがんばって考えたけどきっと車輪の再発明。
 著作権もへったくれもない内容とコードなのでまるパクリOK。なんかCocoa的なクラス名があったりObjective-C的な文法の部分があるのは適当になんとかしてね☆


・二点間の緯度から距離への変換
 ぼくのちきゅうはまんまるです。
 ぼくのちきゅうはえんしゅうよんまんめーとるちょうどです。
 都合でunsigned intにしてるけどdoubleのままとかいっそCLLocationDegreeとかで良い。

/**
 *  @brief  緯度差からメートル
 *  @param  CLLocation* location1 地点1
 *  @param  CLLocation* location2 地点2
 *  @par    詳細
 *          地点1と地点2の差を "角度" とおいた時以下の式でメートル単位の距離が求められる
 *          ここでは地球を球と仮定して求めている
 *          距離=赤道円周*(角度/360)
 */
unsigned int latitudeToMeter(CLLocation* location1, CLLocation* location2)
{
    double degree = fabs(location1.coordinate.latitude - location2.coordinate.latitude);
    return (unsigned int)(40000000.0 * (degree / 360.0));
}

?

・二点間の経度から距離への変換
 緯度は適当にもらったのの平均で計算。緯度差大きいときとかは考えない。いっそ地球が平面ならいいのに。

/**
 *  @brief  経度差からメートル
 *  @param  CLLocation* location1 地点1
 *  @param  CLLocation* location2 地点2
 *  @par    詳細
 *          地点1と地点2の差を "角度" とおいた時以下の式でメートル単位の距離が求められる
 *          ただし緯線に沿う方向の距離は緯度に応じて円周の距離が変わるため、事前に円周を求める
 *          円周=cos((緯度/180)*π)*赤道半径
 *          距離=円周*(角度/360)
 */
unsigned int longitudeToMeter(CLLocation* location1, CLLocation* location2)
{
    double latitude = location1.coordinate.latitude + location2.coordinate.latitude / 2;
    double r  = 40000000 / ( 2 * M_PI );              // 半径
    double r2 = cos( ( latitude / 180 ) * M_PI ) * r; // 目的の緯度の半径を求める
    double degree = fabs(location1.coordinate.longitude - location2.coordinate.longitude);
    return (unsigned int)(r2 * (degree / 360.0));
}

posted @ 20:01 | Feedback (0)

2010年7月3日

 Skype辺りでだべってるのでaoi_nagatsukiに話しかけてください。

posted @ 2:23 | Feedback (1)

2010年7月1日

あらすじ
あそびたーい! だれー? いつ?

 7/11大阪の会場は日本棋院関西総本部にします。
 梅田にあるので各自ぐぐるまっぷとかで確認しといてください。
 当日級認定大会をやっているようなので、出たい人は勝手に申し込んで勝手に出ておいてください(ちょw
 身内だけで打ちたいって人がいれば貸し卓頼みますので参加コメントに書いといてください。
 時間は13:00ぐらいで。お昼ご飯から一緒したいぜーとかあれば各自申し合わせて適当に集まってください。

まとめ
 日時:2010/07/11 13:00
 場所:日本棋院関西総本部
     大阪府大阪市北区角田町1?12 阪急ファイブアネックス 6F? TEL: 06-6364-5841
 参加費:入場料1200円
      日本棋院会員は1000円
      ※貸し卓を頼む場合追加1200円
      ※対局時計を借りる場合一台あたり300円を頭割り

参考URL
 日本棋院関西総本部
  http://www3.ocn.ne.jp/~osakaigo/index.html


 段級認定大会
  http://www3.ocn.ne.jp/~osakaigo/index/100711_mainichisagawa.pdf


 施設利用料など
  http://www3.ocn.ne.jp/~osakaigo/index.html
  http://www3.ocn.ne.jp/~osakaigo/kaikan/group.html

posted @ 4:17 | Feedback (7)

2010年6月28日

 あらすじ
 あそびたーい! だれー?
 
 とりあえず中さんが7/10に大阪に来るらしいので、翌日7/11に大阪で遊びましょう。
 その次は8月の中頃と終わり頃に東京にいるつもりなので8/12、8/27辺りに東京で遊びたいと思ってます。
 場所はまだ決めてないので希望があればコメントください。
 希望がなければ7/10大阪は北浜辺り (日本棋院関西総本部と関西棋院がある) にしたいと思います。つか日本棋院行きたい。
 東京はやっぱり市ヶ谷 (日本棋院がある) かな? いやまあ日本棋院じゃなくても良いんですけど。

 
 まずは身内から~とか意見があればポケット碁盤とか携帯ゲーム機とかなら用意出来ます。

 碁盤貸してくれるスペースとかご存じの方情報ください。
 
 もっと豪華にと言う意見があれば日程調整からに戻りますが旅館とかもアリかなーと思ってます。囲碁合宿とか豪華すぎるw

posted @ 23:59 | Feedback (8)