2017年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

最近のトラックバック

無料ブログはココログ

« 阪急バス80周年記念 バス全線1日乗車券 | トップページ | Vistaでの動作報告を頂戴しました »

2007年9月 8日 (土)

OuDia開発の経緯-10
ダイヤグラムビュー・まっすぐな列車線(2005年7月8~16日,7月30日)

 話が前後して、これはダイヤグラムビューを作成していたころの話です。

 ダイヤグラムビューは、時刻表ビューで入力された全部の列車の駅時刻を線で結べばいいだけだ、と当初僕は思っていました。

 ところが、実際の鉄道時刻表を見ると、同じ各駅停車列車でも、列車によって駅間所要時分に±1分の差が散在しています。これは、実際の列車ダイヤは秒単位(10秒単位や5秒単位)であり、時刻表に表示される時刻は秒以下を切り捨てたものになるためです(着時刻については秒以下を切り上げている時刻表もあるようです)。

 問題は、ダイヤグラムビューにおいて、駅間所要時分に±1分の差が散在する駅時刻を正直に線で結ぶと、列車線は屈折が多くて見苦しいものになるということです。

 言葉ではうまく伝わっているかどうか自信がないので、例を挙げましょう。

 A駅~E駅の5駅があり、各駅の駅間所要時分が1分30秒の区間があったとします。
 この路線で、A駅発時刻が 0:00:00 と 0:07:30 の2本の列車がある場合、時刻表ビューは以下のようになります。


OuDia_ikisatsu_10_02.gif

 この時刻表ビューの入力どおりに列車線を引くと、ダイヤグラムビューは以下のようになってしまいます。


OuDia_ikisatsu_10_03.gif

 しかし、以下のダイヤグラムの方が、見た目に見やすいですし、本物に近いはずです。

OuDia_ikisatsu_10_05.gif 

このため、ダイヤグラムの列車線をより真っ直ぐにするにはどのようにすればよいのかについて、いろいろ考えました。その結果、

 発時刻しか入力されていない一般駅(主要駅以外の駅)の駅時刻は無視して、主要駅から主要駅までの駅時刻を直線で結ぶ方がよい

という結論に達しました。


 現在のOuDiaのダイヤグラムビューは、上記の結論を原則として列車線を結んでいます(実際には、もう少し複雑なルールになっています)。
 但し、主要駅間を結ぶ直線が、駅時刻ビューで入力されている時刻から1分以上離れている場合は、入力されている駅時刻に従って線を結ぶようになっています。

 時折ユーザーの方から「入力した駅時刻が、ダイヤグラムビューでは無視されて線が引かれてしまう」というご指摘を頂戴しますが、それはこの仕組みが原因です。
 ダイヤグラムビュー上の列車線が駅時刻上を正確に通り過ぎるようにしたい場合は、

  • その駅の駅規模を主要駅にする
  • その駅の駅時刻に着時刻・発時刻の両方を入力する

のいずれかを試して見てください。

« 阪急バス80周年記念 バス全線1日乗車券 | トップページ | Vistaでの動作報告を頂戴しました »

コメント

すごい! そういう仕組みだったんですね! 失礼ながら、ただの折れ線グラフ作成機能だと思ってました。僕はWindiaのときにダイヤを直線で引くために、各駅停車も主要駅のみ入力し、待避などの無い駅は通過させていました。でもそれだと時刻表ビューか事実とことなるので不満でした。

はじめまして、私は今windiaを使って大阪環状腺のダイヤを作成しますがなかなかうまくできないので 困ってたところです.ここのOudiaのこと知り使ってみようと思いました.あと大変と思いますが秒単位もいれるように工夫はできるのでしょうか?
実は秒単位もいれられるようなソフトを私も開発したいなぁと思っておりましたので

はまかぜ34さん、こんにちは。
申し訳ありませんが、OuDiaでは、秒単位の入力はできません。
実は、最初の構想段階では、秒単位入力の機能も考えていました。
しかし、秒単位の入力ができたところで僕自身がまず使い切れないだろう、と考えて没にしました。

そうなんですか?秒単位を入れられるソフトでしたら
いわゆる綺麗な筋ができるかなと思いましたが
ということは秒単位がいれられる機能のソフト作ろうと思ったら新しくプログラム開発しないといけませんね?

はじめまして。
OuDiaで他線区経由が扱えるので、長崎本線の市布経由と長与経由のスジがまともに引ける!と思って感動しましたが、
「発時刻しか入力されていない一般駅(主要駅以外の駅)の駅時刻は無視して、主要駅から主要駅までの駅時刻を直線で結ぶ方がよい」
の仕様に引っかかって期待したものとはかなり違った結果になって残念でした。
「その駅の駅時刻に着時刻・発時刻の両方を入力する」で回避できそうですが、2度入力するのも何なので、1度の入力で発着時刻両方が入力できるパッチを作りたいです。
ソース公開、期待してます。

babydaemonsさん、こんにちは
喜々津・浦上を主要駅にすれば、ご期待通りの表示になるのではないでしょうか。
あるいは、『駅時刻変更』機能を使えば、発時刻を着時刻にコピーすることも少しは楽にできるのではないかと思います。

はまかぜ34さん、こんにちは。
>秒単位がいれられる機能のソフト作ろうと思ったら
>新しくプログラム開発しないといけませんね?
僕自身は秒単位入力に対応する予定はありませんので、自作できるならそれが一番早くて確実だと思います。
OuDia自体はそれほど高度な技術を用いたソフトでもありませんので、これを上回るものを作ることも容易だと思います。がんばってください。

take-okmさん、こんばんは。

駅時刻変更機能、試して見ます。マニュアル読んでないのがバレバレですね。(^^;

ありがとうございます.そうですか?基本はOudiaのプログラムを参考にして
そこから改良つまり秒単位機能つけたソフトを作りたいと思ってます.いつになるか分かりませんが研究しながらやってみょうと思います.

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/186995/16378655

この記事へのトラックバック一覧です: OuDia開発の経緯-10
ダイヤグラムビュー・まっすぐな列車線(2005年7月8~16日,7月30日)
:

« 阪急バス80周年記念 バス全線1日乗車券 | トップページ | Vistaでの動作報告を頂戴しました »