「自動のりかえ駅を活用した周回運転」の編集履歴(バックアップ)一覧はこちら
「自動のりかえ駅を活用した周回運転」(2008/12/03 (水) 00:20:10) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#javascript(){{
<script language="javascript">
<!--// javascript by @うさ
var hWin;
var HTM1;
function MakeChild()
{
hWin=window.open("","","width=650,height=500,resizable=1");
window.hWin.document.write(' \
<html><head><style type=\"text\/css\">\n\
#sDiv0, #sDiv1, #sDiv2,#sDiv3,#sDiv4 {\n\
position:absolute; height:1; width:1; font-family:arial black; font-size:9px; color:#FFFFAA; z-index:10;\n\
}\n\
#sDiv5, #sDiv6, #sDiv7, #sDiv8, #sDiv9{\n\
position:absolute; height:1; width:200; font-family:arial black; font-size:9px; color:#FFFFAA; z-index:10;\n\
}\n\
<\/style><script lanauage=\"JavaScript\"><!--\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 pi = Math.PI;\n\
var upstop = pi*1.5;\n\
var dnstop = pi\/8;\n\
var stopdot,stopvel;\n\
var ii=0;\n\
function dot(i) \n\
{\n\
this.X = 400;\n\
this.Y = 400;\n\
this.R = 0;\n\
this.dr = .00;\n\
this.di = 0;\n\
this.preR = 0;\n\
this.predr = 0;\n\
this.n = 0;\n\
this.a = 180;\n\
this.b = 280;\n\
this.ox = 300;\n\
this.oy = 200;\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].R = pi\/2*2.5;\n\
dots[1].R = pi\/2*3.5;\n\
dots[0].dr = 0.0051011111;\n\
dots[1].dr = -dots[0].dr*0.8;\n\
allDivs[5].left =dots[5].b*Math.cos(upstop)+dots[5].ox-20;\n\
allDivs[5].top =-dots[5].a*Math.sin(upstop)+dots[5].oy-50;\n\
allDivs[6].left =dots[6].b*Math.cos(upstop)+dots[5].ox-20;\n\
allDivs[6].top =-dots[6].a*Math.sin(upstop)+dots[5].oy+30;\n\
allDivs[7].left =dots[6].b*Math.cos(0.6*pi)+dots[5].ox+20;\n\
allDivs[7].top =-dots[6].a*Math.sin(0.6*pi)+dots[5].oy+30;\n\
setTimeout(\"startanimate()\", 2000);\n\
}\n\
function animate(){\n\
for(i=0; i<2; ++i){\n\
allDivs[i].left=dots[i].X;\n\
allDivs[i].top =dots[i].Y;\n\
dots[i].X =dots[i].b*Math.cos(dots[i].R)+dots[i].ox;\n\
dots[i].Y =-dots[i].a*Math.sin(dots[i].R)+dots[i].oy;\n\
dots[i].preR = dots[i].R;\n\
dots[i].R += dots[i].dr;\n\
if( (dots[i].R-upstop)*(dots[i].preR-upstop)<0 ){\n\
if(dots[i].dr>0){\n\
stopdot = i;\n\
stopvel = dots[i].dr;\n\
dots[i].dr = 0;\n\
}else{\n\
if(stopdot>-1){dots[stopdot].dr = stopvel;}\n\
stopdot = -1; \n\
}\n\
}\n\
if(i==0 && (dots[0].R-1.4*pi)*(dots[0].preR-1.4*pi)<0){dots[0].a -=20;}\n\
if(i==0 && (dots[0].R-1.6*pi)*(dots[0].preR-1.6*pi)<0){dots[0].a +=20;}\n\
if(ii==0){\n\
if(i==0 && (dots[0].R-0.5*pi)*(dots[0].preR-0.5*pi)<0){dots[0].a -=20;}\n\
if(i==0 && (dots[0].R-0.75*pi)*(dots[0].preR-0.75*pi)<0){dots[0].a +=20;}\n\
}else{\n\
if(i==1 && (dots[1].R-0.5*pi)*(dots[1].preR-0.5*pi)<0){dots[1].a +=20;}\n\
if(i==1 && (dots[1].R-0.75*pi)*(dots[1].preR-0.75*pi)<0){dots[1].a -=20;}\n\
}\n\
if(i==0 && (dots[0].R-0.1*pi)*(dots[0].preR-0.1*pi)<0){ii=ii?0:1;}\n\
if(dots[i].R>2*pi){dots[i].R -=2*pi;}\n\
if(dots[i].R<0){dots[i].R +=2*pi;}\n\
}\n\
}\n\
window.onload=initAll\n\
function startanimate() { \n\
setInterval(\"animate()\", 5);\n\
}\n\
\/\/End-->\n\
<\/script>\n\
<\/head><TITLE>自動のりかえ駅を活用した周回運転<\/TITLE>\n\
<body bgcolor=\"#000066\">\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\">自動のりかえ駅<br>(自動)<\/div>\n\
<div id=\"sDiv6\">自動のりかえ駅<br>(手動発車)<\/div>\n\
<div id=\"sDiv7\">複線区間<\/div>\n\
<div id=\"sDiv8\"><\/div>\n\
<div id=\"sDiv9\"><\/div>\n\
<\/body><\/html>');
window.hWin.initAll();
}
//-->
</script>
}}
自動のりかえ駅とループの反対側に離合区間を設定します。
速度の速い側を自動、遅い側を手動発車に設定します。
離合区間の位置を調整すれば、常時2編成が動く状態をつくることができます。
#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=650,height=500,resizable=1");
window.hWin.document.write(' \
<html><head><style type=\"text\/css\">\n\
#sDiv0, #sDiv1, #sDiv2,#sDiv3,#sDiv4 {\n\
position:absolute; height:1; width:1; font-family:arial black; font-size:9px; color:#FFFFAA; z-index:10;\n\
}\n\
#sDiv5, #sDiv6, #sDiv7, #sDiv8, #sDiv9{\n\
position:absolute; height:1; width:200; font-family:arial black; font-size:9px; color:#FFFFAA; z-index:10;\n\
}\n\
<\/style><script lanauage=\"JavaScript\"><!--\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 pi = Math.PI;\n\
var upstop = pi*1.5;\n\
var dnstop = pi\/8;\n\
var stopdot,stopvel;\n\
var ii=0;\n\
function dot(i) \n\
{\n\
this.X = 400;\n\
this.Y = 400;\n\
this.R = 0;\n\
this.dr = .00;\n\
this.di = 0;\n\
this.preR = 0;\n\
this.predr = 0;\n\
this.n = 0;\n\
this.a = 180;\n\
this.b = 280;\n\
this.ox = 300;\n\
this.oy = 200;\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].R = pi\/2*2.5;\n\
dots[1].R = pi\/2*3.5;\n\
dots[0].dr = 0.0051011111;\n\
dots[1].dr = -dots[0].dr*0.8;\n\
allDivs[5].left =dots[5].b*Math.cos(upstop)+dots[5].ox-20;\n\
allDivs[5].top =-dots[5].a*Math.sin(upstop)+dots[5].oy-50;\n\
allDivs[6].left =dots[6].b*Math.cos(upstop)+dots[5].ox-20;\n\
allDivs[6].top =-dots[6].a*Math.sin(upstop)+dots[5].oy+30;\n\
allDivs[7].left =dots[6].b*Math.cos(0.6*pi)+dots[5].ox+20;\n\
allDivs[7].top =-dots[6].a*Math.sin(0.6*pi)+dots[5].oy+30;\n\
setTimeout(\"startanimate()\", 2000);\n\
}\n\
function animate(){\n\
for(i=0; i<2; ++i){\n\
allDivs[i].left=dots[i].X;\n\
allDivs[i].top =dots[i].Y;\n\
dots[i].X =dots[i].b*Math.cos(dots[i].R)+dots[i].ox;\n\
dots[i].Y =-dots[i].a*Math.sin(dots[i].R)+dots[i].oy;\n\
dots[i].preR = dots[i].R;\n\
dots[i].R += dots[i].dr;\n\
if( (dots[i].R-upstop)*(dots[i].preR-upstop)<0 ){\n\
if(dots[i].dr>0){\n\
stopdot = i;\n\
stopvel = dots[i].dr;\n\
dots[i].dr = 0;\n\
}else{\n\
if(stopdot>-1){dots[stopdot].dr = stopvel;}\n\
stopdot = -1; \n\
}\n\
}\n\
if(i==0 && (dots[0].R-1.4*pi)*(dots[0].preR-1.4*pi)<0){dots[0].a -=20;}\n\
if(i==0 && (dots[0].R-1.6*pi)*(dots[0].preR-1.6*pi)<0){dots[0].a +=20;}\n\
if(ii==0){\n\
if(i==0 && (dots[0].R-0.5*pi)*(dots[0].preR-0.5*pi)<0){dots[0].a -=20;}\n\
if(i==0 && (dots[0].R-0.75*pi)*(dots[0].preR-0.75*pi)<0){dots[0].a +=20;}\n\
}else{\n\
if(i==1 && (dots[1].R-0.5*pi)*(dots[1].preR-0.5*pi)<0){dots[1].a +=20;}\n\
if(i==1 && (dots[1].R-0.75*pi)*(dots[1].preR-0.75*pi)<0){dots[1].a -=20;}\n\
}\n\
if(i==0 && (dots[0].R-0.1*pi)*(dots[0].preR-0.1*pi)<0){ii=ii?0:1;}\n\
if(dots[i].R>2*pi){dots[i].R -=2*pi;}\n\
if(dots[i].R<0){dots[i].R +=2*pi;}\n\
}\n\
}\n\
window.onload=initAll\n\
function startanimate() { \n\
setInterval(\"animate()\", 5);\n\
}\n\
\/\/End-->\n\
<\/script>\n\
<\/head><TITLE>自動のりかえ駅を活用した周回運転<\/TITLE>\n\
<body bgcolor=\"#000066\">\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\">自動のりかえ駅<br>(自動)<\/div>\n\
<div id=\"sDiv6\">自動のりかえ駅<br>(手動発車)<\/div>\n\
<div id=\"sDiv7\">複線区間<\/div>\n\
<div id=\"sDiv8\"><\/div>\n\
<div id=\"sDiv9\"><\/div>\n\
<\/body><\/html>');
window.hWin.initAll();
}
//-->
</script>
}}
#image(http://www9.atwiki.jp/plalayout?cmd=upload&act=open&pageid=74&file=nori0.gif)
自動のりかえ駅とループの反対側に離合区間を設定します。
速度の速い側を自動、遅い側を手動発車に設定します。
離合区間の位置を調整すれば、常時2編成が動く状態をつくることができます。
#html2(){{{{{{
<FORM><INPUT type="button" name="btnShowChild" value="シミュレーションを見る" onClick="MakeChild()"></FORM>
}}}}}}