「自動のりかえ駅を使って3編成を同時運転」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
#javascript(){{
<script language="javascript">
<!--// javascript by @うさ
var hWin;
var HTM1;
function MakeChild()
{
hWin=window.open("","","width=980,height=200,resizable=1");
window.hWin.document.write(' \
<html><head>\
<style type=\"text\/css\">\
#sDiv0, #sDiv1, #sDiv2 \n\
{\n\
position:absolute; height:1; width:1; font-family:arial black; font-size:9px; color:#FFFFFA; z-index:10;\n\
}\n\
#sDiv3,#sDiv4, #sDiv5, #sDiv6, #sDiv7, #sDiv8, #sDiv9\n\
{\n\
position:absolute; height:1; width:200; font-family:arial black; font-size:9px; color:#FFFFFA; z-index:10;\n\
}\n\
<\/style>\n\
<script lanauage=\"JavaScript\">\n\
<!--\n\
var ns=(document.layers);\n\
var ie=(document.all);\n\
var w3=(document.getElementById && self.innerWidth && (window.pageXOffset>-1));\n\
var allDivs = new Array(10);\n\
var dots = new Array(10);\n\
var documentWidth,documentHeight;\n\
var vel= 4;\n\
var dy = 0;\n\
var Maxright = 950;\n\
var stopdot,stopvel,stoppt;\n\
function dot(i) \n\
{\n\
this.X = 100;\n\
this.Y = 100;\n\
this.dx = 0;\n\
this.dy = 0;\n\
this.preX = 0;\n\
this.preY = 0;\n\
this.n = 0;\n\
}\n\
function initAll(){\n\
if(!ns && !ie && !w3) return;\n\
for(dNum=0; dNum<10; ++dNum){\n\
if(ie) allDivs[dNum]=eval(\'document.all.sDiv\'+dNum+\'.style\');\n\
else if(ns) allDivs[dNum]=eval(\'document.layers[\"sDiv\'+dNum+\'\"]\');\n\
else if(w3) allDivs[dNum]=eval(\'document.getElementById(\"sDiv\'+dNum+\'\").style\');\n\
dots[dNum] = new dot(dNum);\n\
} \n\
dots[0].dx= 3.0;\n\
dots[1].dx = -dots[0].dx;\n\
dots[1].Y += 10;\n\
dots[2].dx = dots[0].dx*0.9;\n\
dots[1].X= Maxright*0.767;\n\
dots[2].X= Maxright*0.767;\n\
stoppt = 820;\n\
stopdot= -1;\n\
allDivs[3].left=stoppt-50;\n\
allDivs[3].top = 80;\n\
allDivs[4].left=stoppt-50;\n\
allDivs[4].top = 130;\n\
allDivs[5].left=425;\n\
allDivs[5].top = 130;\n\
allDivs[6].left=350;\n\
allDivs[6].top = 130;\n\
allDivs[7].left=500;\n\
allDivs[7].top = 130;\n\
setTimeout(\"startanimate()\", 20);\n\
}\n\
function animate(){\n\
for(i=0; i<3; ++i){\n\
allDivs[i].left=dots[i].X;\n\
allDivs[i].top =dots[i].Y;\n\
if(dots[i].X<50){dots[i].dx=-dots[i].dx;dots[i].Y-=10;} \n\
if(dots[i].X>Maxright){dots[i].dx=-dots[i].dx;dots[i].Y+=10;} \n\
dots[i].preX = dots[i].X;\n\
dots[i].X+=dots[i].dx;\n\
dots[i].Y+=dots[i].dy;\n\
if(dots[i].X == stoppt){\n\
if(dots[i].dx<0 && dots[i].n ==1){\n\
stopdot= i;\n\
stopvel= dots[i].dx;\n\
dots[i].dx= 0;\n\
dost[i].n = 1;\n\
}\n\
else if(dots[i].dx>0){\n\
if(stopdot>-1){dots[stopdot].dx=stopvel;\n\
stopdot=-1;\n\
dots[i].X+=0.00001*dots[i].dx;\n\
dots[i].n = 0;\n\
}\n\
}\n\
}\n\
else if((dots[i].X-stoppt)*(dots[i].preX-stoppt)<0){\n\
if(dots[i].dx<0){\n\
stopdot= i;\n\
stopvel= dots[i].dx;\n\
dots[i].dx= 0;\n\
}\n\
else if(dots[i].dx>0){\n\
if(stopdot>-1){dots[stopdot].dx=stopvel;\n\
stopdot=-1;}\n\
}\n\
}\n\
\n\
}\n\
}\n\
window.onload=initAll\n\
function startanimate() { \n\
setInterval(\"animate()\", 1);\n\
}\n\
\/\/End-->\n\
<\/script>\n\
<TITLE>自動のりかえ駅を活用した単複線<\/TITLE><\/head>\n\
<body bgcolor=\"#000606\">\n\
<div id=\"sDiv0\">壱<\/div>\n\
<div id=\"sDiv1\">弐<\/div>\n\
<div id=\"sDiv2\">参<\/div>\n\
<div id=\"sDiv3\">自動のりかえ駅(手動発車)<\/div>\n\
<div id=\"sDiv4\">自動のりかえ駅(自動)<\/div>\n\
<div id=\"sDiv5\">要複線区域<\/div>\n\
<div id=\"sDiv6\"><====<\/div>\n\
<div id=\"sDiv7\">===><\/div>\n\
<div id=\"sDiv8\"><\/div>\n\
<div id=\"sDiv9\"><\/div>\n\
<\/body>\n\
<\/html>');
window.hWin.initAll();
}
//-->
</script>
}}
(Uターン)+(単線区間)+(複線区間)+(単線区間)+(自動のりかえ駅)+(Uターン)
という形でのレイアウトを考えてみる。
自動のりかえ駅からUターンに進む側は手動発車、単線複線を含む側は自動と設定をする。 3編成が単線複線を組み合わせたレイアウトを行き来する場合、途中に2カ所の離合する箇所があればよい。各編成の速度が全く同じ場合には、調整をしないで運転させることも可能であるが、実際には衝突を防ぐために調整が必要になってくるであろう。ここで、自動のりかえ駅を置くことにより離合のタイミングを常に調整することができる。下のシミュレーションは3編成で、1編成だけ少し速度を遅くしているが、しばらくの間は事故を起こすことなく運行が可能となっている。
#html2(){{{{{{
<FORM><INPUT type="button" name="btnShowChild" value="シミュレーションを見る" onClick="MakeChild()"></FORM>
}}}}}}
#javascript(){{
<script language="javascript">
<!--// javascript by @うさ
var hWin;
var HTM1;
function MakeChild()
{
hWin=window.open("","","width=980,height=200,resizable=1");
window.hWin.document.write(' \
<html><head>\
<style type=\"text\/css\">\
#sDiv0, #sDiv1, #sDiv2 \n\
{\n\
position:absolute; height:1; width:1; font-family:arial black; font-size:9px; color:#FFFFFA; z-index:10;\n\
}\n\
#sDiv3,#sDiv4, #sDiv5, #sDiv6, #sDiv7, #sDiv8, #sDiv9\n\
{\n\
position:absolute; height:1; width:200; font-family:arial black; font-size:9px; color:#FFFFFA; z-index:10;\n\
}\n\
<\/style>\n\
<script lanauage=\"JavaScript\">\n\
<!--\n\
var ns=(document.layers);\n\
var ie=(document.all);\n\
var w3=(document.getElementById && self.innerWidth && (window.pageXOffset>-1));\n\
var allDivs = new Array(10);\n\
var dots = new Array(10);\n\
var documentWidth,documentHeight;\n\
var vel= 4;\n\
var dy = 0;\n\
var Maxright = 950;\n\
var stopdot,stopvel,stoppt;\n\
function dot(i) \n\
{\n\
this.X = 100;\n\
this.Y = 100;\n\
this.dx = 0;\n\
this.dy = 0;\n\
this.preX = 0;\n\
this.preY = 0;\n\
this.n = 0;\n\
}\n\
function initAll(){\n\
if(!ns && !ie && !w3) return;\n\
for(dNum=0; dNum<10; ++dNum){\n\
if(ie) allDivs[dNum]=eval(\'document.all.sDiv\'+dNum+\'.style\');\n\
else if(ns) allDivs[dNum]=eval(\'document.layers[\"sDiv\'+dNum+\'\"]\');\n\
else if(w3) allDivs[dNum]=eval(\'document.getElementById(\"sDiv\'+dNum+\'\").style\');\n\
dots[dNum] = new dot(dNum);\n\
} \n\
dots[0].dx= 3.0;\n\
dots[1].dx = -dots[0].dx;\n\
dots[1].Y += 10;\n\
dots[2].dx = dots[0].dx*0.9;\n\
dots[1].X= Maxright*0.767;\n\
dots[2].X= Maxright*0.767;\n\
stoppt = 820;\n\
stopdot= -1;\n\
allDivs[3].left=stoppt-50;\n\
allDivs[3].top = 80;\n\
allDivs[4].left=stoppt-50;\n\
allDivs[4].top = 130;\n\
allDivs[5].left=425;\n\
allDivs[5].top = 130;\n\
allDivs[6].left=350;\n\
allDivs[6].top = 130;\n\
allDivs[7].left=500;\n\
allDivs[7].top = 130;\n\
setTimeout(\"startanimate()\", 20);\n\
}\n\
function animate(){\n\
for(i=0; i<3; ++i){\n\
allDivs[i].left=dots[i].X;\n\
allDivs[i].top =dots[i].Y;\n\
if(dots[i].X<50){dots[i].dx=-dots[i].dx;dots[i].Y-=10;} \n\
if(dots[i].X>Maxright){dots[i].dx=-dots[i].dx;dots[i].Y+=10;} \n\
dots[i].preX = dots[i].X;\n\
dots[i].X+=dots[i].dx;\n\
dots[i].Y+=dots[i].dy;\n\
if(dots[i].X == stoppt){\n\
if(dots[i].dx<0 && dots[i].n ==1){\n\
stopdot= i;\n\
stopvel= dots[i].dx;\n\
dots[i].dx= 0;\n\
dost[i].n = 1;\n\
}\n\
else if(dots[i].dx>0){\n\
if(stopdot>-1){dots[stopdot].dx=stopvel;\n\
stopdot=-1;\n\
dots[i].X+=0.00001*dots[i].dx;\n\
dots[i].n = 0;\n\
}\n\
}\n\
}\n\
else if((dots[i].X-stoppt)*(dots[i].preX-stoppt)<0){\n\
if(dots[i].dx<0){\n\
stopdot= i;\n\
stopvel= dots[i].dx;\n\
dots[i].dx= 0;\n\
}\n\
else if(dots[i].dx>0){\n\
if(stopdot>-1){dots[stopdot].dx=stopvel;\n\
stopdot=-1;}\n\
}\n\
}\n\
\n\
}\n\
}\n\
window.onload=initAll\n\
function startanimate() { \n\
setInterval(\"animate()\", 1);\n\
}\n\
\/\/End-->\n\
<\/script>\n\
<TITLE>自動のりかえ駅を活用した単複線<\/TITLE><\/head>\n\
<body bgcolor=\"#000606\">\n\
<div id=\"sDiv0\">壱<\/div>\n\
<div id=\"sDiv1\">弐<\/div>\n\
<div id=\"sDiv2\">参<\/div>\n\
<div id=\"sDiv3\">自動のりかえ駅(手動発車)<\/div>\n\
<div id=\"sDiv4\">自動のりかえ駅(自動)<\/div>\n\
<div id=\"sDiv5\">要複線区域<\/div>\n\
<div id=\"sDiv6\"><====<\/div>\n\
<div id=\"sDiv7\">===><\/div>\n\
<div id=\"sDiv8\"><\/div>\n\
<div id=\"sDiv9\"><\/div>\n\
<\/body>\n\
<\/html>');
window.hWin.initAll();
}
//-->
</script>
}}
#image(http://www9.atwiki.jp/plalayout?cmd=upload&act=open&pageid=76&file=nori2.gif)
(Uターン)+(単線区間)+(複線区間)+(単線区間)+(自動のりかえ駅)+(Uターン)
という形でのレイアウトを考えてみる。
自動のりかえ駅からUターンに進む側は手動発車、単線複線を含む側は自動と設定をする。 3編成が単線複線を組み合わせたレイアウトを行き来する場合、途中に2カ所の離合する箇所があればよい。各編成の速度が全く同じ場合には、調整をしないで運転させることも可能であるが、実際には衝突を防ぐために調整が必要になってくるであろう。ここで、自動のりかえ駅を置くことにより離合のタイミングを常に調整することができる。下のシミュレーションは3編成で、1編成だけ少し速度を遅くしているが、しばらくの間は事故を起こすことなく運行が可能となっている。
#html2(){{{{{{
<FORM><INPUT type="button" name="btnShowChild" value="シミュレーションを見る" onClick="MakeChild()"></FORM>
}}}}}}