#String から Word32 への変換ができないというアホな問題でつまっている
#Word8 にしてから、ビットずらして連結 or & をとるかなあ
#あにゃっ
#*.obf のフォーマットはこれはこれで変態なのか
#つくらにゃ
#しかしねむ
#おきた。
#一応起きた。
#おはよー
#昨日のは私のミスでした。> sakai
#おはよう
#おはようさんです。みなさん。
#みんな遅くまで起きてた割には結構早いね。
#a^3/P^2 = G(M+m)/4π^2
a = 軌道長半径、P = 公転周期、M = 主星の質量、m = 伴星の質量、G = 万有引力定数
らしい。
これで最遠点までの時間もわかる。
#5時寝たから6時間睡眠。
#また途中で昼寝するかも。
#ケプラーの法則、久しぶりに調べた。
#SDLでウィンドウは出たけど、なにやら固まる……
#表示に力をそそいでる?
#制御の仕組がいまだにわからないので一噴射するだけでいいからなんか制御するコード書いてくれないすか。
#表示できるまでは座標値を追いますので。
#寝る前に書いたんだけどバグいれちまった
#darcsは使えないんだっけ? > [1..100]>>=pen
#今から darcs 調べます。
#私のやつは [(addrDVx, x方向の速度の変化), (addrDVy, y方向の速度の変化)] で指定すれば、速度が変化するはず。
#いけがみさんが darcs についてまとめてたっけ。
#[(addrConf, rng), (addrDVx, 0), (addrDVy, 0)] の後ろの2つ? > sakai
#公開鍵をmailでください > [1...100]>>=pen
#sshのね。
#darcs のインストール調べます。公開鍵の作り方も darcs 調べたらわかるかな。
#まずは一噴射して衛星を落下させて楽しもう。
#公開鍵は ssh-gen-key で簡単に作れるよ。
#SDLでの描画に成功。ちゃんと円軌道を回ってた。
#ssh-keygenだった。
#それは最初のフレームのやつで、もう一箇所の方が以降のループでのやつになってる。> [1..100]>>=pen
#了解
#SDLで描画する簡単なプログラムをpushしました。
#次は制御を書くためのDSLを考える?
#墜落させようと遊んでいたんだけど、
#DSL 制御のためのコマンドセットを考えて、それを (dvx,dvy)に翻訳できればよい? > DSL
#地球に向かって加速しても、墜落しないで、楕円軌道になるだけなのね……
#最終的に Controller = SensorData -> (Controller, Dxy) みたいなデータ型に変換したいです > DSL
#初期速度と真反対の加速度を与えれば自由落下するはずなのだがまだうまくいってない。
#そうなれば、一種のオートマトンとして取り扱えるので。
#ああ、そうか。減速すれば自由落下するのね。
#わかってるとは思うけど、Sx, Sy は衛星から見た地球の相対座標です。
#え、衛星が原点?
#そう。
#相対ってことは地球を原点とみなして衛生の座標と思ってもそう変じゃないのかな思ってたけどもしかして違う?
#1001番問題、初期加速度として (14,7815) を与えたら自由落下した(笑)
#正負が入れ替わるのでは。
#おおー
#あ、そうかも>正負
#そして、地球を突き抜けるw
#もし、HSDL動きそうなら、SDL使ったソースも送ります > [1..100]>>=pen
#はい、よろしくです。darcs はしばらくかかりそうなので。
#SDLがうごくかはわからないけど。
#地球を突き抜けてるのは、こっちの問題化。
#0x0 が -1.0 になる?
#こっちの問題か。スコアが非0になったとこで、終了しなくちゃいけないのね。
#-1は失格? w
#初期加速度(14,7815)のとき1stepの出力はどうなってればいい? 1001ね
#私のだと [(0,0.0),(1,2184.987460022857),(2,-6557002.342902722),(3,3907.4327385133756),(4,4.2164e7)] になってます。
#あ、地球に衝突したときではなく、最初からスコアが-1になってるってこと?
#(1,2184.987460022857)
(2,-6557002.342902722)
(3,3907.4327385133756)
(4,4.2164e7)
#おなじになった :)
#あってるね
#よかった :)
#Controller :: VM -> IO VMみたいなフィルタとしてコントローラ作れないかな>nobsun
#あーダメか。Controller自身も渡せないと速度が取れないね
#うーん、衛生の状態をステートで扱うようにするのか
#別プロセスにすれば、標準入出力でやりとりできると思う。
#ちょっと簡単なのつくってみるね。
#別プロセスにするくらいなら、スレッドでChann使うのが簡単では?
#ああそのてか
#I/O Portをチャンネルにすればいいのかな。
#私のだと1ステップ目が
#燃料は単純に加速度ベクトル分だけ減るんだね
#2:=-6556988.371617502
#3:=11722.354375943332
#とY座標が大きく違うんだけどなぜだろう。
#(3,3907.4327385133756)
#ni
#にならないといけない?
#うーむ
#ちょうど3倍になってるか
#sakai版そのままのはずなんだけど
#一噴射分は手を入れてるけど
#初期Y座標はいくつになってますか?
#こちらでは7814.932738513376
#噴射のタイミングが1秒遅いのかな
#初期Y座標は、最初に加速した場合には 3907.4327385133756 に、加速しなかった場合には 7814.932738513376 になりました。
#了解。噴射タイミングずれでした。
#別マシンからアクセス
#多分初期位置、高度200km(X座標6557km)、Y座標0の衛星を想定した問題なんだろうな。
#コントローラを書くための、モナドを作る。
#と思ったけど、newtype Automata i o a = Automata (i -> (o, Automata i o a)) って考えてみたら、モナドにならないじゃん。しょぼーん。
#取り敢えず1001番問題のホーマン軌道のための加速度とタイミングを計算してみます。
#その前にお弁当買いに外出。
#newtype Automata i o = Automata (i -> (o, Automata i o)) ならいいのか?
#あー、これもbindが定義できないのか。
#MonadはあきらめてApplicativeにするかなぁ。
#とりあえずコントローラを書いた
#ちょいgdgdだけど試してちょ。
#controllerの枠組みというのが正しいかな > わしのコード
#飯くってきたけど雨だよ...
#うほ
#こっちは朝から雨。
#しかも店内で飯食ってる内に表の道路で工事が進んで迂回させられた。雨の中。。。
#controller書いたから、改造してためしてちょ > cut-sea
#あらら。
#おっけー
#やってみます
#ざっと初期噴射試してます。
#約19000sec後に最遠点に達します。
#ちょいめし
#おお、その最遠点で2回目の加速すると軌道に乗るはず?
#単純計算だと2442加速して
#18920sec後、1480さらに加速。
#まだ誤差多いけど初期加速
#dx=0, dy=-2470 でやってみて
#ちなみに時間の計算は
#pi * sqrt (a_h^3 / mu)
#a_h = (r1+r2)/2
#誤差1km以下まで持っていかないといけないのか。頑張らないと。
#1480加速するときも、dx=0?
#しばらく darcs と SDL にかかります。
#まあおおざっぱなので dx=0 でいいです。dy=+1480で
#ありがとー
#試してみます。
#あーそっかホームディレクトリ変えないとロード出来ないんだったorz
#私もControllerを追加しました。結局、インターフェースにはArrowを使うことに。
#無駄に時間がかかってしまった
#おおカッケー>Arrow
#混乱してきた。t=0でΔV=(0,2442)に、t=18920でΔV=(0,1480) に設定?
#(0,-2442)
#(0,1480)
#誤差だいぶ出るでしょうけど
#取り敢えず円軌道っぽくなればOK
#試してみます。
#Could not find module `Multimedia.SDL'
#私の環境じゃ無理かな。
#画面外に飛び出してしまった。描画範囲を広げればいいのかな。
#HSDLは標準添付されていないので、ダウンロードしてインストールしてください。
#目標半径は初期半径の10倍くらいだっけ。
#さっきの t=0 で(0,-2242) t=18920で (0,1480)それ以外は(0,0)ってこと?
#そうです。
#18920秒後までは0
#10倍か、そりゃはみだすな。
#nobsun controllerの引数がそれぞれ何が簡単に教えてたも
#ちょっと変更
#したので、pullしなおして > cut-sea
#はいな
#あーdefaultConかー
#描画範囲を広げたら円っぽい気がしてきた。
#うまくいっている人の例
##Gaucheか
#defaultCon がコントローラで
#darcs は使えるようなったんだっけ? > [1..100]>>=pen
#第一引数 時刻t
#第二引数前回のOutput Port
#後でもっと正確な加速値計算し直します。
#返り値今回のInput Port
#まったりとコーヒーブレイク。
#darcsまだ
#oってVMの出力ポートだよね?
#そう
#controller関数としてはoが現在の出力ポートでo'が新しい出力ポートでOK?
#controller 関数では o :: TMVar Out
#o' :: Out
#10分くらいシャワー浴びてきます。
#なので、o' は TMVar o の中身
#速度を計算しようとしたら前回のOPortと1秒後のOPortが欲しいんだけど、それには対応しないのね?
#VMがoに書き込んだのを、読みだしている。
#ああそれをやるなら変数を作ればいいかも
#だんだんimperativeな香りが (^^;
#…
#最強の命令型言語?
#究極のImperative Languageですから
#Haskellは。かぶった
#現在の出力と、その前の会の出力だけがあればいい?
#それだけで良い。
#それで速度が取れるので
#しかし18920ステップって長いな
#これやっぱパフォーマンス必要になるんじゃないか…とフト思た
#5486ステップでDoneしたぞよ??なぜに?
#確かに、こっちでも20000ステップで20秒くらい…… orz
#毎回印字してるからかな、Emacs上の表示で遅いだけかしら
#IOポートに2^14サイズの配列を使っているからじゃね
#> わしのプログラム
#そっちはどれくらいかかってます?
#途中で出力ポート0x0に非0が出たかな。
#おおお
#おりょマジにー?
#途中っていうか、このプログラムだと出たところで停止するんですよね?
#そう
#こっちだと1万8千秒くらいで、半径40717605まではいくけど、そこから半径が減少しちゃって楕円軌道になっちゃってる。
#なんか円に近付いてきた
#あら、x行きすぎかな
#どんなのでやってる > cut-sea
#もらったやつそのままですよ、まだまだ
#でDoneするんだけど
#ああそうか
#0番地のデータはでてないのだよねーなぜだこれ?
#5486ステップで停止
#値が0ではないデータだけだしてる。
#だから出ると思ったのだけど
#半径がいくらいくらになったら噴射するって命令書けるんでしたっけ?
#一応書けるよ。
#Doneってo' ! 0 /= 0でおきるんですよね?
#そう
#だとすると最後のダンプには0番地のデータが出ててよさげに思ったのだけど
#出ないじょ
#戦略が大体読めた。
#あれ。
#じゃあタイムアウトか?
#5486で毎回起きるのって変じゃない?
#ある程度近付いたら一度円軌道にピタリと乗ってまたホーマン軌道に乗ってさらに近付くを繰り返せばいいんだ。
#つまりホーマン遷移を何段階かやるってことですね
#円軌道にピタリは計算できるはず。
#締め切り日本時間のいつだっけ?
#火曜日の 3:00 am
#だったらしばらく休憩(笑)
#なんかタイムアウトだなぁ。
#1回のシミュレートにそんだけ時間が掛るようになってるってことかな
#タイムアウトって、3百万ステップ以下じゃないといけないという話?
#しかもこのタイムアウト時間て計算速度に影響してない?
#それじゃないよー
#ステップ自体は5000そこそこしか回ってない
#System.Timeout使ってるのか。
#いやこちらじゃもっとすくない。
#回る回数
#ぐはぁ
#超大富豪プログラムだった。orz
#メモリリークしてる
#darcs2.2.0 を落としてきて runghc Setup.lhs install したら
Could not find module `System.FilePath':
だった。orz
#Chatonってどういうとき色かわって表示されるの?
#コピペしたとき?
#改行がコピペに入ってないときは変わらない?
#darcsはバイナリないかな
#darcsのサイトのPre-built Darcs binaries are available for Windows and many Unix-like platforms.のリンクは切れてた。
#また今年も僕だけ一人ぼっちだ、クスン。
#いいんだ、いいんだ、独りで二次方程式解いてればいいだろ。
#ちょっとLinuxマシンでビルドして、バイナリを送ってみる。
#だいじょうかな。Vine Linuxだけど。
#その前にまずはGHCを更新せねば……
#メールで送って大丈夫ですか?
#はい、お願いします。
#送りました。
#SDLにはまず何を入れればよい?
#SDL本体と、HaskellバインディングのHSDL
#darcs --help Ha
#は動いた。
#じゃあ、あとはsshの鍵を作ってnobsunに登録してもらえば、OKのはず。
#ssh-keygen 動かしてみる。
#rsa とか dsa の指定はいらない?
#rsa
#パスフレーズってあとから使う?
#公開鍵を使うたびに使う
#秘密鍵だった
#id_rsa.pub を nobsun に送ればいい?
#ほい
#メールしました。
#次の darcs の使いかたの指示もお願いします。
#さかのぼれば書いてあるとおもうけど面倒。
#darcs get icfp09@www.sampou.org:/home/icfp09/
#これでカレントディレクトリにicfp09というディレクトリができます
#登録しましたので確認してみてください
#おー、できた。
#仲間、なかーま。
#いらっしゃーーい。
#サンキューです。> all
#やたー
#こっちから入れるときはどうするの?
#新しいディレクトリを作ったら
#darcs add somedirectory
#darcs rec -av
#新しいファイルをつくったら
#icfp09@www.sampou.org:/home/icfp09/
#darcs add somefile.hs
#はもう付けなくていいの?
#不要
#darcs rec -av
#addとrecはローカルリポジトリへの操作
#darcs add somedirectory/somefile.hs
#でなくて
#somedirectory/ はいらない?
#currentディレクトリにファイルがあるならsomedirectory/はなくてもOK
#somedirectory に cd してからとういうことね。
#そそ
#ローカルリポジトリをwww.sampou.orgのリポジトリにコミットするときは、
#darcs push -av
#darcs rec -av したら
#Darcs needs to know what name (conventionally an email address) to use as the patch author
#自分のemailアドレスを入力
#してくださいな。
#最初だけです
#Finished recording patch しました。
#ディレクトリだけ
#darcs push -av
#とするとその変更がwww.sampou.orgのリポジトリにも反映されます
#ファイルも作ったら push もやってみます。
#push してみました。foo1001.hs できてます?
#わたしのコードはメモリリークしててslacingをおこして、timeoutしてしまうことが判明。sakaiさんのコードにのりかえさせてもらおうかな。
#どうぞどうぞ。
#あんまし整理されてないですが。
#SDLのパッケージは何をつかってます?
#tanakahさんのHSDLです。
#HSDL.zip は Linux ではどう展開するの?
#unzip
#hackageにある? HSDL
#手でいれました。hackageにはないかも。
#cabalizeしようとおもったんだけど。。。
#Main.hs から「import SDLControl」をコメントアウトして、controlSDLをcontrolに置き換えれば、SDLは簡単に外せます。
#unzip ってあったんだ。
#次は cabal 入れなきゃ (;_;)
#cabal-0.6.2.tar.gz を展開して、sh bootstrap だけではいるよ。
#cabalなくても、runhaskell Setup.hs configure && runhaskell Setup.hs build && runhaskell Setup.hs install でインストールできないかな。
#それはそう。
#unzip しても HSDL.cabal というテキストファイルができるだけ。変?
#-x いる?
#オプションなしのunzipは全部展開してくれるはず。
#-x は exclude か
#Multimedia というディレクトリができてた。
#でも Setup.hs はないなあ。
#ダウンロードに失敗してるとか
#げ、ホームの下にできてる。掘ってから unzip すればよかった。
#Audio.hsc:243:17: SDL.h: そのようなファイルやディレクトリはありません
#SDLとSDL-devel はapt-get install したんだけど。
#HSDL.cabalからc-sources:のエントリを削除すればOk
#あ、ちがった。
#include-dirsを/usr/include/SDLなどに設定すればいいはず。
#mkPolarの引数の順番間違えた
#Hohmann transfer をいい加減に繰り返してみる。
#dist/build/Multimedia/SDL/Audio_stub.o(.text+0x0): In function `MultimediaziSDLziAudio_dB0u':
#: multiple definition of `MultimediaziSDLziAudio_dB0u'
#dist/build/Multimedia/SDL/Audio_stub.o(.text+0x0): first defined here
#Hohmann transfer をちゃんと実装したら、最初の問題が解けた。Score = 67.77239712461298
#HSDL.cabalからc-sources:のエントリを削除すれば直るかも > [1..100]>>=pen
#お、すごい > Hohman
#エントリ削除やってみます。
#HSDL入りました。
#次は
#Could not find module `Control.Category':
##if 消したからか
##if を消さずに ghc に -CPP オプションを指定すればいいかも。
#Hohmann transfer は四問とも解けました。
#やった。パチパチ。
#parse error on input `->'
#velocity = proc d -> do の行
#昔のオプションだと -farrows とかを指定すればよかったような。
#次は instance Arrow Automata の in (z, f' . g') の行で
./Controller.hs:19:13:
Expecting a function type, but found `Automata c d'
Expected type: b -> c
Inferred type: Automata c1 d
In the first argument of `(.)', namely `f''
In a lambda abstraction:
\ x -> let
(y, g') = ...
(z, f') = ...
in (z, f' . g')
#ぎゃ。これは私のミス。f' . g' を g' >>> f' に。
#しかし、こうしてみると、GHCって色々変わりすぎだ。
#おおー
#ちょっと寝てる内に...
#やっとリンクできました。
#動かすと白い四角が動いてます。
#一休み。平成教育委員会を見様。
#教育学院だった。
#Hohmann.hsを追加しました。
#白い四角が衛星です。丸の書き方がわからなかったので(苦笑
#なので、当然、地球も描かれてません。
#誰かHSDLで丸とテキストを描く方法を……
#私もダーウィンが来たを観よう。
#HSDLがインストールできないなぁ。SDL.hはどのパッケージになるんだろう
#Audio.hsc:243:17: error: SDL.h: No such file or directory
compiling dist/build/Multimedia/SDL/Audio_hsc_make.c failed
#私がさっき引っかかったところ
#HSDL.cabal の include-dirs を
#/usr/include/SDL とかにする。
#か SDL-devel いれてないか
#<command line>: does not exist: Multimedia/SDL/Timer_stub.c
#HSDL.cabal の c-sources: のとこを
#全部消すといいかも
#そうした
#できが
#た
#vc-darcsをインストール。これでようやくコミットメッセージを書けるようになった。
#30分ほど食事に行ってきます。
#天地人おわた。次はsubmission用データの生成部分かな。
#cabalファイルをつくってみた sakai さんのディレクトリに置いてもいいですか?
#いいですよー
#とりあえず、Hohmann.hs のバイナリを作るものを置きやした。
#最新に更新するのは darcs どうやるの?
#darcs pull
#そのときのカレントディレクトリはどこで実行?
#_darcsディレクトリがあるディレクトリかそれのサブディレクトリ
#_darcsディレクトリには降りる必要がない
#できた。
#Hohmann.hs はどういうタイミングで噴射してるの? > sakai
#ホーマン遷移軌道にはいるのは、速度が観測できて、かつ目標半径との差が1000以上のとき。
#そして、t_h = round (pi * sqrt ((r1+r2)^3 / (8*mu))) 秒後に再噴射
#いまのとこ一回の遷移でどんぴしゃ?
#どんぴしゃ
#Just v と Just (t,r) がそれか。
#どんぴしゃとは関係ない話。
#「速度が観測できて」のとこ
#今ちょっとだけ修正しました。
#直線は描けないですか
#あと、きもいコードですまぬ。
#switching combinator を実装すれば、もう少しまともに書けるとは思うのだけど。
#へー>かつ目標半径との差が1000以上のとき
#ghc 動かすとものすごく重くなるけどそういうもの?
#目標半径との差が1km以下のままでいられれば合格なので。
#900秒後の位置計算してtargetから外れるようならまたどこかでやらないといけないでしょうね。
#外れる前に
#早めに位置調整する方が節約になるのかな。
#位置計算は当然自前で。
#外れる場合に復帰する方法は、わからなかったので、考えてません
#とりあえず一回の噴射で円軌道にどんぴしゃ乗ってそこからまたホーマン遷移すればいいんじゃないかと。
#あーそらそうか
#あ1km以内で円軌道に乗ればそれだけでほぼOKか。
#外れる場合って、軌道が既に楕円になってしまってるはずなので、円軌道に戻すための噴射量の計算が、わからんかったのよ。
#それは2次方程式くらいでとけるような気がする。
#しくしく
#あ、そこまで考えて2回目の噴射すれば900秒後まで大丈夫か。
#ところで Boy meets Girl ですが
#じゃなくてー
#Meets and Greek ですが
#どんぴしゃで会うように1回目の噴射のタイミングを待つのが王道でしょうか。
#だと思います。
#まだ、手をつけてないですが。
#Greek ってギリシャだな
#3ホーマンになるんじゃないかな
#位相も合わせるというやつ
#3回噴射
#いや、タイミングだけずらしてホーマン1回の噴射は2回
#Meet and Greet に訂正しておわびします。
#時間がかかるペナリティは大きい?
#ありゃ、タイミングって待ってればずれるんだっけ? 各速度が同じで待っててもずれないのか?
#内側の方が速く回ってずれていきそうな気がしてるんだけど。
#s/各速度/角速度?
#角速度です。
#ケプラーの法則みてきます。
#同じ軌道に乗ったら速度は同じになるだろうから
#そこでバッチリ合わないとだめなのね
#難しそう
#ってことはやっぱり位相制御ってのが必要なのでは
#惑星の公転周期の2乗は、軌道の半長径の3乗に比例する。
#なつかしい
#半径が短いほど角速度が速い。
#面積速度とかなんとかって概念がなかったっけ
#半径×速度が同じになるとかそーゆー感じの
## 第2法則(面積速度一定の法則): 惑星と太陽とを結ぶ線分が単位時間に描く面積は、一定である(面積速度一定)。
#おお
#待つタイミング計算してみますがそんなに急ぎません?
#それとは別にt秒後の自衛星の一を計算する関数を作ってもらえませんか。
#位置
#submit用のデータをはく部分をのんびり書いてるので、急がないです。
#自衛星の位置を計算する関数というのは、シミュレータを駆動してということですか?
#いや自前で。
#資料の計算式どおりの。
#シュミュレータのt秒後に返す値を前もって計算しておく。
#なるほど。submit用のコードができたらね。
#シュミレータじゃないシミュレータ。
#訂正してお詫び致します。
#噴射速度からx,y成分求めてるのは mkPolar ?
#極座標から mkPolar で複素数作って、realPart, imagpart で取り出し。
#なんとなく場所特定できました。
#今の話とは関係ないですが
#(r1+r2)/2 を一度変数に入れた方が式がすっきりしそう。
#a_h ってやつ。
#変更しちゃっていいですよ。
#検証できる自信ができたら変更します。
#18000ステップ分シミュレータ待ってるのもったいないからやはり自前の関数欲しいですね。
#submission がずっと bad format でエラーなると思ったら、0xCAFEBABEが0xCAFABABEになってた…… orz
#submit成功。
#現在、スコア260.4226で204位。
#一応 Meet and Greet のタイミング待ち時間の式はわかった。
#submission 用のファイル生成ルーチンをコミット
#ただ、まだ整理できていない。
#角速度ってωを使うのが普通だっけ。
#なんか、高校数学を思い出すね。
##数学というより物理だね。
#日本人っぽいチーム名結構あるね。
#上位の方に。
#PFI全問解いててすごいなぁ
#PFIって?
#Purely ... か。誰?
#メンバーはよくしらないけど、
##へー。
#追い抜こう(笑)
#おおー
#t秒後の位置計算お願いしていいですか。> sakai
#Meet and Greet のインタフェースお願いした方がいいかな。
#私がt秒後。
#じゃあそれで。
#MeetAndGreet.hsの雛形を用意したよ。
#一休みしてました。
#今からタイミングの式を wiki に書きます。
#その結果を使いやすいように MeetAndGreet への取り込み検討ください。
#ありがとー
#こっちは今、SDLの画面に目標の衛星を追加しようとしてます。
#追加。2001は自衛星の方が低空で、やっぱり大きな角速度で移動してますね。
#ところで、そちらのGHCではUTF-8のソースコードを扱えましたっけ? μをそのまま書きたいなぁ、なんて。
#危険なのでやめましょう。
#今から式を書きます。
#一応目を通してください。
#了解。
#理屈がわかっていた方がデバッグしやすいし。
##ni
#に書きました。チェックお願いします。
#tnx
#おお、なんとかなりそうな気がしてきました。
#でもその前にお風呂に入ってきます。
#最後の行間違えてた。
#検討して直す。
#修正した。
#最大待って 2π/(ω1 - ω2) か。
#時間のロスのペナルティはどれくらいなんだろう。
#ペナルティーに依っては遷移2回した方がいいこともあるかも。
#もどったよん。
#待ち時間なしで2回遷移でどんぴしゃの方法も考えとこうかな。
#相手の衛星が同じ高度にあった場合にも、二回遷移が必要でしょうしね。
#そんないやらしい問題もあるのか。
#あるだろうな。
#あー、もう2時過ぎてる。時間経つの早い。
#2001,…,2004 にはなさそう。
#最終問題にはありそう。
#たしかに。
#ω1≒ω2 のとき対策ですね。
#でもそれに挑戦する段階までいけるか (W
#今日は t秒後の位置計算関数作りまでやったら寝ようと思います。
#ありがとう~
#私もせっかく説明してもらったのを組み込んでみます。
#初期位置と速度とt がパラメータで t秒後の位置と速度を返せばいいのかな。
#ちょっとアルコール買ってくる。(w
#nobsun,cut-sea はもう寝てるのかな。
#普通に仕事があるからね。
#実装してpushしたよ。
#が、どうもうまくいってない。
#うーむ。
#pull しました。私もみてみます。
#お願いします。アルゴリズムと全然関係ない問題って可能性もたぶんにありますが (^^;
#まだ動かしてないけど表示は今回どうなります?ターゲットも出る?
#ENABLEVIEWER ha
#は define した方がいい?
##ディレクティブにうちの ghc まだ解決してない。
#それをdefineすると、SDLで表示します。
#ターゲットもでるよ。
#では define の方で。
#たぶん、ghc に -cpp を指定すればいけるんじゃないかとは思うんだけど。
#一度やったんだけどうまくいかなくて。落ち着いたらじっくりやってみます。
#絵はでるけどデバッグ情報がでない。
#地球の中心も小さい四角描けないですか。
#地球の中心はちょうど今追加してpushしました。
#遷移開始予定時間のデバッグ情報見たいです。
#「Just v -> 」の次あたりに trace をいれればいいかと。
#遷移中は色変えるとか。要望多くてもうしわけない。
#ちょいと入れてpush
#もらえるとラッキー
#ビューアーはシミュレータの情報しかもってなくて、コントローラの内部状態を見ていないので、そこで色を変えるのはちょと大変。
#色、了解。1000 秒毎のデバッグ情報は見たい。
#何かいれるのでちょっと待って。
#ちょっといれた。
#t2 = pi*sqrt(r3^3 / pi)
#の / pi は
#/ mu
#πとμは似てる
#ぎゃー
#そういえば、似てるね。
#おお、重なった。
#yatta!
#が、スコアが出てこない……
#1kmにいってないか
#かも。デバッグ情報を追加してみる。
#Meet and Greet は遷移後の微調整が必要か。
#round (t' + t2) は
#round t' + round t2 の方が
#誤差計算しやすいかも。
#デバッグ情報追加してpushした。
#最後、距離10km前後離れた状態になってる。
#10kmか大きい。
#対策は明日にしますか。
#とりあえずコンパイルします。
#しばらく重い。
#そうですね。さすがにもう3時半ですし。
#後ろだったら目標半径ー1kmに高度下げて
#角角度かせいで、
#前だったら目標半径+1kmに高度あげて
#なんとかなるのかな
#地球が表示されてうれしい。
#じゃあ、起きたら、それ試してみます。
#地球のサイズは全然違いますけどね。
#はい、私はこのアニメ見てから寝ます。
#それでは。おやすみなさい~
#遷移開始予定時間表示して欲しいです。
#おやすみなさい。
#scheduledと書いてある行を見て
#あsheduledka
#はい。
#おやすみです。
#理論値なのでシミュレータの結果と誤差がでてくる。
1秒ごとに再計算し直せば大丈夫かも。
#朝起きた sakaiさんへ。
#理論値なのでシミュレータの結果と誤差がでてくる。
#遷移開始する直前まで1秒ごとに再計算し直せば大丈夫かも。
#大事なことなので2回言いました。
#遷移開始する直前まで1秒ごとに「遷移開始予定時間」を再計算し直せば
#3回言いました。
#結局θ1とθ2の再計算ということか。
#静止軌道での速度は約3km/secなので0.5秒ずれるだけで1.5kmずれるのか。
#シミュレータの誤差の問題じゃなくて秒単位でしかタイミングを取れない本質的な問題かな。
#ともかくこれで寝ます。
#8時前に必ず一度起きるのでそのときに覗きにきます。
#急な来客があって離脱してましたが復活
#極座標とデカルト座標を併用すると誤差が大きくなる傾向があるかもしれないけどどうなんだろう。
#おはようさんです。また後で寝るけど。
#変換誤差を見積もっておかないといけないか。
#sqrt(μ/r^3)って小さい値だから小さい値同士の引き算まずいか。
#ともかく ω1-ω2 の引き算の誤差でにくいように式変形しないといけないけど頭働かない。
#寝直してまた起きたら。
#おはよう~。
#Good Morning
#あまり寝れてないけど、目が覚めてしまいました。興奮してあまり眠れない……
#meetandgreet が重いのはSDLの制御のせい?
#threadDelayをいれてあるからかも。
#表示のつごう?
#手元の環境ではこの方が表示がなめらかだったので。
#それだけなので、削除してしまって問題ないです。
#まずは時間以外のパラメータを、実際に遷移に入るときに再計算するようにしてみます。
#了解
#ちょっと思い付いた。
#分母のw1-w2 は気にせずに
#分子のθ2 - θ1 - π + t2*ω2 (mod 2π)を
#1秒ごとに再計算して
#その値が十分小さくなったときが
#遷移開始のタイミング
#でどうでしょう。
#おはよう。
#(w1,w2,w1-w2) 書かしてみたけど
#(1.1918457737534775e-3, 8.283277920927954e-4, 3.6351798166068205e-4)
#引き算の誤差が気になるほどじゃないか。
#「遷移に入るときに再計算」は効果なし。
#ダメか。ともかくt秒後の位置計算は欲しいですね。
#取り敢えず2、3時間また寝ようと思いますが
#ん。予定開始時刻になったときに、t'の値を表示すると 14573 とか表示されるな。
#寝る前に何かありますか。
#あ、これは次のタイミングか。
#私も起きたばかりなので、特にはないです。
#では寝ます。もし Meet and Greet 4問ともパスしたら携帯にかけて起こしてください。
#了解