<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>数学</title><link>http://blogs.wankuma.com/aoitan/category/2238.aspx</link><description>　数学の話題を扱ったカテゴリです。</description><managingEditor>長月 葵 -aoitan@wankuma.com</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>長月 葵 -aoitan@wankuma.com</dc:creator><title>わんくま勉強会東京#78の資料</title><link>http://blogs.wankuma.com/aoitan/archive/2013/01/21/312724.aspx</link><pubDate>Mon, 21 Jan 2013 10:35:00 GMT</pubDate><guid>http://blogs.wankuma.com/aoitan/archive/2013/01/21/312724.aspx</guid><wfw:comment>http://blogs.wankuma.com/aoitan/comments/312724.aspx</wfw:comment><comments>http://blogs.wankuma.com/aoitan/archive/2013/01/21/312724.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/aoitan/comments/commentRss/312724.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/aoitan/services/trackbacks/312724.aspx</trackback:ping><description>　おとといの資料置きました。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://blog.nagatsuki-do.net/archives/2013/01/78.php"&gt;http://blog.nagatsuki-do.net/archives/2013/01/78.php&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
　なんかセッションのリクエストあったらコメントどぞ。&lt;br /&gt;
＃ここでもリンク先ブログでもいいです。&lt;br /&gt;&lt;img src ="http://blogs.wankuma.com/aoitan/aggbug/312724.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>長月 葵 -aoitan@wankuma.com</dc:creator><title>論理のお話始めました</title><link>http://blogs.wankuma.com/aoitan/archive/2011/08/17/201604.aspx</link><pubDate>Wed, 17 Aug 2011 22:41:00 GMT</pubDate><guid>http://blogs.wankuma.com/aoitan/archive/2011/08/17/201604.aspx</guid><wfw:comment>http://blogs.wankuma.com/aoitan/comments/201604.aspx</wfw:comment><comments>http://blogs.wankuma.com/aoitan/archive/2011/08/17/201604.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/aoitan/comments/commentRss/201604.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/aoitan/services/trackbacks/201604.aspx</trackback:ping><description>&lt;p&gt;
　雑ブログの方で論理学を中心に長月が触れている数学に言及する記事始めました。&lt;br /&gt;
　基本的に長月はコンピュータ科学に絡んだ数学しかやってないのでわんくまに来る類の人なら興味持ってる人もいるのでは？　と思ってます。興味のある方はあおいろ日記のリンクを踏んでね！&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
　あ、記事には書き忘れたんですが、気が向いたら番外編的に誤り訂正の理論とか暗号理論とかも触るかも。数論好きな人はそういうのもリクエストしてみてね！
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.nagatsuki-do.net/"&gt;あおいろ日記&lt;/a&gt;
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/aoitan/aggbug/201604.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>長月 葵 -aoitan@wankuma.com</dc:creator><title>[iPhone][数学]三軸センサの値をロール・ピッチ・ヨー表現に変換する</title><link>http://blogs.wankuma.com/aoitan/archive/2010/10/06/193575.aspx</link><pubDate>Wed, 06 Oct 2010 17:52:00 GMT</pubDate><guid>http://blogs.wankuma.com/aoitan/archive/2010/10/06/193575.aspx</guid><wfw:comment>http://blogs.wankuma.com/aoitan/comments/193575.aspx</wfw:comment><comments>http://blogs.wankuma.com/aoitan/archive/2010/10/06/193575.aspx#Feedback</comments><slash:comments>173</slash:comments><wfw:commentRss>http://blogs.wankuma.com/aoitan/comments/commentRss/193575.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/aoitan/services/trackbacks/193575.aspx</trackback:ping><description>&lt;P&gt;　なんとなくblogシリーズ。&lt;/P&gt;
&lt;P&gt;　今日のメモは加速度センサの値からロール・ピッチ・ヨー表現の角度 (radien) を求める方法。&lt;BR&gt;　正直機能のlongitudeから距離を求める問題と同じ問題。&lt;BR&gt;＃またiPhoneな話です。&lt;/P&gt;
&lt;P&gt;　CMMotionManagerとかで姿勢とか見てるとせっかく三軸ジャイロついてるのに加速度センサだけで姿勢みるのもなーとなる。&lt;BR&gt;　そもそも加速度センサって加速度を測ってるから移動しながらとかだと静止状態の値とずれる。なのでジャイロがついているならジャイロで姿勢を見るべきなのだけど、今度はジャイロだけもせっかくの加速度センサがもったいない感じがする。じゃあ値を合成すれば良いですよねということで平均値を取ってみる。&lt;BR&gt;　そのうち加速度センサの値が動いてる的な加速度なら重みを減らす的な工夫もしてみると良いかも？&lt;BR&gt;　で、とりあえず個人的にラディアンなロール・ピッチ・ヨーが取れたほうがありがたいので加速度センサ側の値をロール・ピッチ・ヨーに変換して三軸ジャイロにあわせることを考える。&lt;/P&gt;
&lt;P&gt;・加速度センサの値&lt;BR&gt;　加速度センサの値は加速度を示していて、静止状態で重力方向に1.0Gになるようになっている。詰まり三次元のベクトル。ぴったり良い姿勢になったとき以下のような値をとる。&lt;BR&gt;&lt;/P&gt;
&lt;TABLE class=style_table border=0 cellSpacing=1&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TD align=middle&gt;姿勢&lt;/TD&gt;
&lt;TD align=middle&gt;x&lt;/TD&gt;
&lt;TD align=middle&gt;y&lt;/TD&gt;
&lt;TD align=middle&gt;z&lt;/TD&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;縦持ち正方向&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;-1.0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;縦持ち逆方向&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;1.0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;横もち右側上方向&lt;/TD&gt;
&lt;TD&gt;1.0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;横もち左側上方向&lt;/TD&gt;
&lt;TD&gt;-1.0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;平置き仰向け&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;-1.0&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;平置きうつ伏せ&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;1.0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;BR&gt;　と言うことは縦持ち正方向で持ったとき左右方向をx軸、上下方向をy軸、前後方向をz軸として、縦持ち正方向からx軸中心に縦持ち逆方向に回転させたときの値の変化は以下の値になるはず。&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;TABLE class=style_table border=0 cellSpacing=1&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TD align=middle&gt;傾き&lt;/TD&gt;
&lt;TD align=middle&gt;x&lt;/TD&gt;
&lt;TD align=middle&gt;y&lt;/TD&gt;
&lt;TD align=middle&gt;z&lt;/TD&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;-1.0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;-√3/2&lt;/TD&gt;
&lt;TD&gt;-0.5&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;45&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;-1/√2&lt;/TD&gt;
&lt;TD&gt;-1/√2&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;60&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;-0.5&lt;/TD&gt;
&lt;TD&gt;-√3/2&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;-1.0&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;180&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;
&lt;TD&gt;1.0&lt;/TD&gt;
&lt;TD&gt;0.0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;BR&gt;　x=軸なので変化しない&lt;BR&gt;　y=sin(θ)&lt;BR&gt;　z=cos(θ)&lt;BR&gt;　と言うことね。これがそれぞれの軸に対して言える。&lt;/P&gt;
&lt;P&gt;・成分の値から角度を求めるお話&lt;BR&gt;　ならばここからは座標から角度を求めるときのいつもの話。&lt;BR&gt;　tan(θ)=sin(θ)/cos(θ)=y/zでθ=atan(tan(θ))なのでatan(y/z)。これを三軸に対してやればよし。&lt;/P&gt;
&lt;P&gt;　で、ジャイロから取れる値がx軸を左右、y軸を上下、z軸を前後の軸として以下の感じ。&lt;BR&gt;&lt;/P&gt;
&lt;TABLE class=style_table border=0 cellSpacing=1&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TD align=middle&gt;&lt;BR&gt;プロパティ&lt;/TD&gt;
&lt;TD align=middle&gt;意味&lt;/TD&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;pitch&lt;/TD&gt;
&lt;TD&gt;x軸中心の回転角&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;roll&lt;/TD&gt;
&lt;TD&gt;y軸中心の回転角&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;yaw&lt;/TD&gt;
&lt;TD&gt;z軸中心の回転角&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;BR&gt;　なので&lt;BR&gt;　pitch = atan(y/z);&lt;BR&gt;　roll &amp;nbsp;= atan(z/x);&lt;BR&gt;　yaw&amp;nbsp; &amp;nbsp;= atan(y/x);&lt;BR&gt;　となると。&lt;BR&gt;　実際動かして測定してみてどうなるかはそのうちまた別エントリで。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;＃これって数学堪能な人なら4x4の行列掛けてやればよくね？　とかそういう話な気がする。。。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/aoitan/aggbug/193575.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>長月 葵 -aoitan@wankuma.com</dc:creator><title>[iPhone][数学]二点の緯度経度から距離への変換</title><link>http://blogs.wankuma.com/aoitan/archive/2010/10/05/193550.aspx</link><pubDate>Tue, 05 Oct 2010 20:01:00 GMT</pubDate><guid>http://blogs.wankuma.com/aoitan/archive/2010/10/05/193550.aspx</guid><wfw:comment>http://blogs.wankuma.com/aoitan/comments/193550.aspx</wfw:comment><comments>http://blogs.wankuma.com/aoitan/archive/2010/10/05/193550.aspx#Feedback</comments><slash:comments>813</slash:comments><wfw:commentRss>http://blogs.wankuma.com/aoitan/comments/commentRss/193550.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/aoitan/services/trackbacks/193550.aspx</trackback:ping><description>&lt;P&gt;　最近blogやってないなーとか思ったので思いつきでメモ代わりにするテスト。&lt;BR&gt;　今回はGPSで位置情報とかもにょるときによくやるアレ。なんかがんばって考えたけどきっと車輪の再発明。&lt;BR&gt;　著作権もへったくれもない内容とコードなのでまるパクリOK。なんかCocoa的なクラス名があったりObjective-C的な文法の部分があるのは適当になんとかしてね☆&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;・二点間の緯度から距離への変換&lt;BR&gt;　ぼくのちきゅうはまんまるです。&lt;BR&gt;　ぼくのちきゅうはえんしゅうよんまんめーとるちょうどです。&lt;BR&gt;　都合でunsigned intにしてるけどdoubleのままとかいっそCLLocationDegreeとかで良い。&lt;BR&gt;&lt;/P&gt;&lt;CODE&gt;&lt;PRE&gt;/**
 *  @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));
}
&lt;/PRE&gt;
&lt;P&gt;&lt;/CODE&gt;?&lt;/P&gt;
&lt;P&gt;・二点間の経度から距離への変換&lt;BR&gt;　緯度は適当にもらったのの平均で計算。緯度差大きいときとかは考えない。いっそ地球が平面ならいいのに。&lt;BR&gt;&lt;/P&gt;&lt;CODE&gt;&lt;PRE&gt;/**
 *  @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));
}
&lt;/PRE&gt;&lt;/CODE&gt;&lt;img src ="http://blogs.wankuma.com/aoitan/aggbug/193550.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>