プログラミング
六帖webアプリ kickzone/TrainNavi2 · GitHub 路線図の読み込みまで対応した。あとは列車のデータを読み込めれば、一通り終了だ。これができたら、次は動作を軽くするための工夫を入れないといかん。路線図を作りこむと、直線が多くなるので当然ながら動作が…
六帖webアプリ kickzone/TrainNavi2 · GitHub 線路のエディット機能を追加。実質、googleマップに合わせて線路の形を整えるための機能となった。1日で300行ちょいのコードを書いた。 上手くいかなかったことはたくさんある。まず、canvasにmousemoveのイベン…
六帖webアプリ kickzone/TrainNavi2 · GitHub 連携できるようになった。まず一番面食らったのは、自作の路線図の縮尺が全然合っていなかったということ。いくら倍率を揃えても地図と重ならないので、仕方なく、googleマップに合わせて路線を描画するようにし…
GoogleMapAPIのキーをゲットして実装中。なんと、今まで作っていた路線図がY方向にかなり潰れていたことが発覚した。 係数を調整し、路線を重ねることには成功したが、連動してマップを移動する処理が難しすぎて難航中。スクロール処理もほぼ作り直しか!?
六帖webアプリ ここ1週間で路線を15追加した。東京の地下鉄はすべて網羅したので、次はJRだ。しかしJRは来年3月に上野東京ラインが開業するため、DBを作ってもすぐに改訂しなければならないだろう。 ソフト面にそろそろ手を入れよう。昨日は日曜日なのに仕事…
六帖webアプリ kickzone/TrainNavi2 · GitHub ここ2週間は大きな変更はせず、バグ取りと路線の追加のみ。東京の地下鉄は、浅草線を除きすべて追加した。 朝ラッシュのシミュレーションをしてみると、東京の電車がいかに多すぎるかが分かる。なお、現時点、中…
六帖webアプリ kickzone/TrainNavi2 · GitHub 一昨日の懸案、列車走行時刻が0時をまたぐ場合を考慮したSQL文を作成した。 starttime これをstarttimeが日付をまたぐ場合(starttime>endtime)、またがない場合(starttime (starttime OR (starttime > endtime A…
とうとう最高気温も10度まで下がるようです。足が冷たい。猫の小屋からは猫蒸気が小屋の底と床に染み渡るようになりました。通称猫汁 六帖webアプリ 総武緩行線・東西線・東葉高速線 京王井の頭線 京王線系統全部終了 大雄山線 まで追加終了した。大雄山線は…
六帖webアプリ kickzone/TrainNavi2 · GitHub やっと旧TrainNaviに追いついた。土日休日ダイヤも対応したから、すでに2倍の情報量か。 今後の予定 総武緩行線・東西線・東葉高速線 京王井の頭線 京王線系統全部終了 大雄山線 田園都市線・半蔵門線・伊勢崎線…
六帖webアプリ kickzone/TrainNavi2 · GitHub かなり進んだ。スクロールと拡大縮小、さらにオブジェクトの省略まで同時に実装できるとは思わなかった。次は、パッケージファイルの読み書きが一番大きな変更になりそうだ。 既知の不具合:スクロールすると線…
Google MAPS APIで円を描きたい によれば、経度1度と緯度1度あたりの距離は、異なる(当たり前か)。現在、x-y軸方向に同一倍率で路線図を描いている。つまり、xyどちらかが圧縮された路線図になってしまっている。七面倒臭いけどxy両方の倍率を用意して、そ…
六帖webアプリ kickzone/TrainNavi2 · GitHub DBを整備したら千代田線の行先表示の「代々木上原」の文字がでかくてそれがずっと動き回って怖いので、「代」の1文字だけ表示するモードを作成した。 次は拡大縮小とスクロール。仕事と並行して作業していたので…
六帖webアプリ kickzone/TrainNavi2 · GitHub 祝日なのでゆっくり仕事しながらちょこちょこと行先表示を実装、と思ったら、夜に仕事がどっと来て涙目。行先表示まで実装はできた。これで、ある程度見た目がよくなった。 列車の行先名を普通の順序で並べる(…
javascriptで ^ という演算子はべき乗には使えない。XORの意味しかない。 Math.pow(底、指数) で計算するしかない。二次元ベクトルの長さを求めるには var nrmp1p2 = Math.sqrt(Math.pow(p1p2.x, 2) + Math.pow(p1p2.y, 2)); と書く必要がある。面倒。。関数…
六帖webアプリ kickzone/TrainNavi2 · GitHub 用事を済ませてからデバッグ。一応、動作するようになった。今回のデバッグで、よーく覚えておかなければいけないことは、 ・EaselJSでテキストオブジェクトを扱う際は、オブジェクト自体の大きさに気を付けるこ…
六帖webアプリ kickzone/TrainNavi2 · GitHub 非常に不審な動き。まだまだバグだらけのようだ。 まず全ての列車が線路の東側しか走ってない。さらに、ベクトルの計算式がおかしいのか、駅によって場所が激しくずれる。新宿近辺は特にカクカクしている。列車…
PHPにデータを渡すために、POSTを使うが、POSTは一次元配列しか渡せない。この制限を回避するために、いろいろな方法があるようだ。 参考リンク: jQueryのAjaxで多次元配列をPOST - ゆっくり*ゆっくり JSで作った多次元配列をPOSTでPHPに渡す方法 | MiLKySH…
列車オブジェクトを画面上に配置するにあたって、その座標が問題となる。路線の上にそのまんま乗せると、上り電車と下り電車が衝突する。怖いし見づらい。したがって、若干線路からずらす必要がある。 日本の電車は左側通行なので、上図でいうと直線ABから一…
六帖webアプリ kickzone/TrainNavi2 · GitHub 駅、線路の描画のみ完成。現時点では、路線を選択してStartボタンを押すと駅と路線が描画されるだけ。将来の拡張を見越して、スクロール前の絶対位置や倍率なども考慮して設計しながらコードを書くので骨が折れ…
F-11Dというスマホを持っている。Android端末がどういうものか触ってみたい、という目的で、新宿の中古PC屋で5000円で購入した。金のかかるSIMカードは刺さないで、オフラインのみの利用だ。オフラインでも、エクスプローラー的なアプリさえインストール済み…
kickzone/TrainNavi2 · GitHub 結局、起動時の読み込み処理までしか完成できなかった。来週こそは、線路を描画したい。線路が描画できたら、次は列車の動的読み込みと表示だ。そこまでやれば、前回のTrainNaviとほぼ同機能になる。しかしながら、追加したい…
ベジェ曲線 - からすの日記 げっ、さっきの↑のサンプル、3次ベジェ曲線じゃん!そんなに複雑じゃなくていいので、2次ベジェ曲線を繋いだ図形で十分だ。3次にするとテーブルのカラムも2倍になるし! なので、2次ベジェ曲線の近似式は、自分で作らなきゃいけな…
路線図を滑らかに描くには、ベジェ曲線を使う必要がある。Illustratorなどで使われてる、こういうやつ。 参考リンク:中学生でもわかるベジェ曲線 - Rui's Blog しかしながら、canvasやCreateJSには、ベジェ曲線を描くメソッドはあるが、ベジェ曲線の関数を…
昨日電車の中で考えてたこと。単に電車のシンボルを時刻表通りに動作させるだけでは前回と同じで面白くないので、出発後と到着前に加減速をするようにしてみたい。また、時刻表には病の記載がないので、記載上停車時間が0秒のことがしばしばある。例えば、山…
パッケージファイル仕様案 - diary 六帖 の続き 小田急小田原線平日ダイヤと直通列車のみのデータを使用し、パッケージファイルを作成した。六帖webアプリにアップロードした。省略できるところはできるだけ省略した結果、時刻表1.31MB+駅・路線・列車種類…
※私的メモです 無料サーバーは転送容量に制限がある。DBやファイルに頻繁にアクセスするプログラムを作ると、いずれ転送容量を超過してアカウントが停止されてしまう。ローカルファイルにDBをエクスポートできれば、この問題を解決できる。しかもそうすると…
Learning JavaScript Design Patterns をModule Patternのところまで読んだ。JavaScriptはフリーダムすぎる。制限がなさすぎるため、プログラマーの世界観が色濃く反映する。汚いプログラムはより一層汚くなってしまうだろう。 Moduleパターンは画期的だ。ク…
DB構造再編 - diary 六帖の続き csvを作ってみると、小田急小田原線のダイヤのデータは平日上下合わせて約1MBにすぎないことがわかった。1MBくらいならメモリ中にロードしたところで大したものではない。いまやスマホでさえどの機種でもメモリはGB単位だ。全…
今月会社に行ったとき、バイトの人がGitHubを使ったことがあると言っていた。そういえばEclipseにはGitの機能が付いていた。VSSだけしか使ったことがないんじゃ時代遅れになりそうだ。折角機能が付いてるので、せっかくだから登録してみた。 kickzone · GitH…
TrainNavi2作成にあたり、無印TrainNaviの反省点を挙げておく。 ・ソースが単一でメンテナンスが超困難 ・クラスの設計が行き当たりばったりで拡張性がない ・せっかくjQueryをインクルードしているのにajax以外でまったく使っていないのでソースが無駄に冗…