Skip to content

Instantly share code, notes, and snippets.

@tphummel
Created February 13, 2019 05:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tphummel/535ed97e60c7c78a4f1e07ef63f02556 to your computer and use it in GitHub Desktop.
Save tphummel/535ed97e60c7c78a4f1e07ef63f02556 to your computer and use it in GitHub Desktop.
compute total distance by lane of a running track
let laneWidthMeters = 1.22
function getLanes({laneOneMeters, aRadMeters, bRadMeters, numLanes}) {
let turnMeters = 2 * Math.PI * aRadMeters
let straightMeters = laneOneMeters - turnMeters
let lanes = [
['#', 'distance (m)', 'turn (m)', 'straight (m)'],
]
lanes.push([
1,
laneOneMeters,
Number(turnMeters.toFixed(2)),
Number(straightMeters.toFixed(2)),
])
for (var i = 1; i < numLanes; i++) {
turnMeters = 2 * Math.PI * (aRadMeters + laneWidthMeters * i)
lanes.push([
i+1,
Number((turnMeters + straightMeters).toFixed(2)),
Number(turnMeters.toFixed(2)),
Number(straightMeters.toFixed(2))
])
}
return lanes
}
let chicago = {
laneOneMeters: 400,
aRadMeters: 40.43,
bRadMeters: 39.98,
numLanes: 8,
}
let franklin = {
// laneOneMeters: 377,
laneOneMeters: 379.92,
aRadMeters: 38.57,
bRadMeters: 39.27,
numLanes: 9,
}
console.table(getLanes(chicago))
/*
┌─────────┬─────┬────────────────┬────────────┬────────────────┐
│ (index) │ 0 │ 1 │ 2 │ 3 │
├─────────┼─────┼────────────────┼────────────┼────────────────┤
│ 0 │ '#' │ 'distance (m)' │ 'turn (m)' │ 'straight (m)' │
│ 1 │ 1 │ 400 │ 254.03 │ 145.97 │
│ 2 │ 2 │ 407.67 │ 261.69 │ 145.97 │
│ 3 │ 3 │ 415.33 │ 269.36 │ 145.97 │
│ 4 │ 4 │ 423 │ 277.03 │ 145.97 │
│ 5 │ 5 │ 430.66 │ 284.69 │ 145.97 │
│ 6 │ 6 │ 438.33 │ 292.36 │ 145.97 │
│ 7 │ 7 │ 445.99 │ 300.02 │ 145.97 │
│ 8 │ 8 │ 453.66 │ 307.69 │ 145.97 │
└─────────┴─────┴────────────────┴────────────┴────────────────┘
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment