achtbaantreinen
Zoals wellicht bekend verzamel ik al een hele tijd (ruim 13 jaar eigenlijk) data van achtbaanritten die mijn dochter heeft gedaan. Ik registreer wanneer en op welke locatie een rit heeft plaatsgevonden en een hele tijd geleden ben ik ook begonnen met het registreren op welke stoel in de trein en datum ze een ritje heeft gedaan. In eerste instantie ben ik begonnen met de volgende tabellen:
treinen: treinid, achtbaanid, stoelen, rijen > deze tabel koppelt een trein aan een achtbaan
stoelen: stoelid, treinid, datum, stoelnummer > deze tabel koppelt een stoel aan een trein
Hiermee kan ik een leuke "graph" maken die aangeeft of ze op een bepaalde stoel heeft gezeten en wanneer.
Op zich weinig beperkingen zover, ik kan voor een achtbaan bijv. een 2e trein toevoegen, zo zijn er bijv. achtbanen waarbij de ene trein vooruit gaat en de andere achteruit of de ene vooruit en een andere waarin je moet staan of nog een voorbeeld: de Efteling heeft op De Vliegende Hollander nu 2 verschillende treinen (of boten zo je wil) namelijk met een 3/4/3/4 en en 4x4 layout.
Nu komt mijn ding waarvan ik zou willen horen hoe jullie dat aan zouden pakken.
Mijn model leunt nu op een trein met een aantal rijen die allemaal hetzelfde aantallen stoelen hebben, bijv. 2 rijders naast elkaar, 10 rijen achter elkaar. Dit zal voor 99 van de 100 achtbanen wereldwijd zo zijn, maar hoe te dealen met afwijkingen? Enkele voorbeelden:
- De Vliegende Hollander: 3/4/3/4 (1e rij 3 stoelen, 2e rij 4 stoelen, 3e rij 3 stoelen, 4e rij 4 stoelen)
- De volgende achtbaan heeft 3 karretjes die draaien en 2 zogenaamde hamsterwielen. Met andere woorden 6 rijen van 2 en 4 rijen van 1.. https://rcdb.com/18545.htm#p=127256
En dan zou ik ook nog rekening houden met de rijrichting. In het laatst genoemde voorbeeld stap je op rij 2,4,6,7,9 in met je gezicht naar achteren.
Wel eens benieuwd hoe jullie dat aan zouden vliegen.
treinen: treinid, achtbaanid, stoelen, rijen > deze tabel koppelt een trein aan een achtbaan
stoelen: stoelid, treinid, datum, stoelnummer > deze tabel koppelt een stoel aan een trein
Hiermee kan ik een leuke "graph" maken die aangeeft of ze op een bepaalde stoel heeft gezeten en wanneer.
Op zich weinig beperkingen zover, ik kan voor een achtbaan bijv. een 2e trein toevoegen, zo zijn er bijv. achtbanen waarbij de ene trein vooruit gaat en de andere achteruit of de ene vooruit en een andere waarin je moet staan of nog een voorbeeld: de Efteling heeft op De Vliegende Hollander nu 2 verschillende treinen (of boten zo je wil) namelijk met een 3/4/3/4 en en 4x4 layout.
Nu komt mijn ding waarvan ik zou willen horen hoe jullie dat aan zouden pakken.
Mijn model leunt nu op een trein met een aantal rijen die allemaal hetzelfde aantallen stoelen hebben, bijv. 2 rijders naast elkaar, 10 rijen achter elkaar. Dit zal voor 99 van de 100 achtbanen wereldwijd zo zijn, maar hoe te dealen met afwijkingen? Enkele voorbeelden:
- De Vliegende Hollander: 3/4/3/4 (1e rij 3 stoelen, 2e rij 4 stoelen, 3e rij 3 stoelen, 4e rij 4 stoelen)
- De volgende achtbaan heeft 3 karretjes die draaien en 2 zogenaamde hamsterwielen. Met andere woorden 6 rijen van 2 en 4 rijen van 1.. https://rcdb.com/18545.htm#p=127256
En dan zou ik ook nog rekening houden met de rijrichting. In het laatst genoemde voorbeeld stap je op rij 2,4,6,7,9 in met je gezicht naar achteren.
Wel eens benieuwd hoe jullie dat aan zouden vliegen.
Gewijzigd op 09/05/2026 12:49:30 door Veur Heur
Probleem is dat je nu een vaste configuratie hebt.
Een schaalbare configuratie zou dit moeten oplossen.
Dus ipv 10 rijen met 2 stoelen, configureer je de positie waar je dochter zit als een layout.
rij, stoel, richting (vooruit, achteruit), wagon_id, label
Dus niet vanuit de treinpositie. Er zijn bizarre layouts van achtbanen, dus je gaat geheid tegen allerlei gekke dingen aanlopen.
Voor achtbanen die geen zitplaatsen hebben, kun je deze dan leeg laten.
Je krijg dan dus tabellen voor; achtbanen, treinen, wagons, zit_posities, ritten, rit_zitplaatsen.
Als je dan alle zitplaatsen van een trein opslaat rit_zitplaatsen, dan het id van de plaats waar je dochter heeft gezeten opslaat in zit_posities kun je de hele layout uittekenen.
Veel treinen hebben bijv aan de voorkant ook andere zitplaatsen dan de rest van de trein.
Een schaalbare configuratie zou dit moeten oplossen.
Dus ipv 10 rijen met 2 stoelen, configureer je de positie waar je dochter zit als een layout.
rij, stoel, richting (vooruit, achteruit), wagon_id, label
Dus niet vanuit de treinpositie. Er zijn bizarre layouts van achtbanen, dus je gaat geheid tegen allerlei gekke dingen aanlopen.
Voor achtbanen die geen zitplaatsen hebben, kun je deze dan leeg laten.
Je krijg dan dus tabellen voor; achtbanen, treinen, wagons, zit_posities, ritten, rit_zitplaatsen.
Als je dan alle zitplaatsen van een trein opslaat rit_zitplaatsen, dan het id van de plaats waar je dochter heeft gezeten opslaat in zit_posities kun je de hele layout uittekenen.
Veel treinen hebben bijv aan de voorkant ook andere zitplaatsen dan de rest van de trein.
Gewijzigd op 11/05/2026 10:09:58 door Michael -
Dan zal ik voor die enkele afwijking een hoop conversie werk moeten gaan doen. Misschien kan ik beter werken met een afwijkende treinen tabel aangezien het op 518 achtbanen nu nog maar om afwijkende 1 trein gaat. (Hadden er meer kunnen zijn, maar helaas zijn achtbanen wel eens gesloten als je gaat)
Nu is het 1 afwijkende trein, maar jouw stelling "99 van de 100 achtbanen wereldwijd zijn 10x2" klopt natuurlijk niet.
Wel knap dat je 517 de zelfde achtbanen hebt weten te vinden.
Lost Gravity is 4x2. Baron is 6x3, etc.
Uiteindelijk is het hoe ver je zelf wilt gaan. Wil je elke zit positie vastleggen, wil je de hele trein vastleggen, of wil je gewoon simpel persoon x zat op plek y.
Wil je met de deze data gewoon een lijstje weergeven, of wil je echt visueel kunnen weergeven waar je hebt gezeten.
Offtopic: wel heel leuk dat je zoiets al zolang bij hebt gehouden!
Wel knap dat je 517 de zelfde achtbanen hebt weten te vinden.
Lost Gravity is 4x2. Baron is 6x3, etc.
Uiteindelijk is het hoe ver je zelf wilt gaan. Wil je elke zit positie vastleggen, wil je de hele trein vastleggen, of wil je gewoon simpel persoon x zat op plek y.
Wil je met de deze data gewoon een lijstje weergeven, of wil je echt visueel kunnen weergeven waar je hebt gezeten.
Offtopic: wel heel leuk dat je zoiets al zolang bij hebt gehouden!
Met afwijkende trein bedoel ik een trein die niet bestaat uit een vast aantal stoelen per rij en dat xx rijen, bijv dus 2x10 of de voorbeelden die jij noemt. Afwijkend zijn dus de genoemde voorbeelden zoals DVH of die met het hamsterwiel. Nee we hebben zeker al veel verschillende lengtes en breedtes gedaan. Van 1 tot 8 naast elkaar en van 1 tot 60 achter elkaar. Je komt wat tegen in je travels ????
"van 1 tot 60 achter elkaar"
Ik ben heel benieuwd welke dit is!
Ik snap je vraag nu beter. Het probleem is niet de X x Y, maar een 3x4, 4x4 in 1 wagon.
Zonder je hele structuur te moeten aanpassen, zou je een kolom kunnen toevoegen aan de treinen waarin je een custom set kunt opslaan.
Bijv een kolom `layout_json` en daarin zet je voor de Vliegende Hollander:
Als deze leeg is pak je standaard rijen x stoelen.
Voor de GraviTrax (cool ding trouwens) kun je dan:
opslaan, of zelfs nog uitbreiden:
JSON geeft je dan alle vrijheid. Nadeel is dat je code (op den duur) rommelig kan gaan worden omdat je allerlei uitzonderingen moet gaan toevoegen en geen vaste structuur meer hebt.
Ik ben heel benieuwd welke dit is!
Ik snap je vraag nu beter. Het probleem is niet de X x Y, maar een 3x4, 4x4 in 1 wagon.
Zonder je hele structuur te moeten aanpassen, zou je een kolom kunnen toevoegen aan de treinen waarin je een custom set kunt opslaan.
Bijv een kolom `layout_json` en daarin zet je voor de Vliegende Hollander:
Als deze leeg is pak je standaard rijen x stoelen.
Voor de GraviTrax (cool ding trouwens) kun je dan:
opslaan, of zelfs nog uitbreiden:
Code (php)
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
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
{
"seats_per_row": [2, 2, 2, 2, 2, 2, 1, 1, 1, 1],
"row_type": [
"spinning",
"spinning",
"spinning",
"spinning",
"spinning",
"spinning",
"hamsterwheel",
"hamsterwheel",
"hamsterwheel",
"hamsterwheel"
],
"facing": [
"forward",
"backward",
"forward",
"backward",
"forward",
"backward",
"backward",
"forward",
"backward",
"forward"
]
}
"seats_per_row": [2, 2, 2, 2, 2, 2, 1, 1, 1, 1],
"row_type": [
"spinning",
"spinning",
"spinning",
"spinning",
"spinning",
"spinning",
"hamsterwheel",
"hamsterwheel",
"hamsterwheel",
"hamsterwheel"
],
"facing": [
"forward",
"backward",
"forward",
"backward",
"forward",
"backward",
"backward",
"forward",
"backward",
"forward"
]
}
JSON geeft je dan alle vrijheid. Nadeel is dat je code (op den duur) rommelig kan gaan worden omdat je allerlei uitzonderingen moet gaan toevoegen en geen vaste structuur meer hebt.
Gewijzigd op 11/05/2026 13:48:36 door Michael -
Revolution in Bobbejaanland
Dank voor die json voorbeelden. Ga eens kijken of ik iets met een afwijkende treinen tabel kan gaan doen. Nu heb de trein gehardcode, dat wil ik naar de toekomst toe voorkomen. Er komt een tijd dat ik dit systeem moet overdragen, dan moet het wel foolproof zijn natuurlijk.
Dank voor die json voorbeelden. Ga eens kijken of ik iets met een afwijkende treinen tabel kan gaan doen. Nu heb de trein gehardcode, dat wil ik naar de toekomst toe voorkomen. Er komt een tijd dat ik dit systeem moet overdragen, dan moet het wel foolproof zijn natuurlijk.




