document.addEventListener('DOMContentLoaded', function () { calculateRwcsu(); calculateRwcts(); calculateRwcrt(); calculateRwcc(); }); function showTab(tabId) { document.querySelectorAll('.tab-content').forEach(tab => { tab.classList.remove('active'); }); const activeTab = document.getElementById(tabId); activeTab.classList.add('active'); document.querySelectorAll('.tab').forEach(tab => { tab.classList.remove('active'); }); const activeTabElement = document.querySelector(`.tab[onclick*="${tabId}"]`); if (activeTabElement) { activeTabElement.classList.add('active'); } } function calculateRwcsu() { const curveRadius = parseFloat(document.getElementById('curveRadiussu').value); const trackWidth = parseFloat(document.getElementById('trackWidthsu').value); const wheelBase1 = parseFloat(document.getElementById('wheelBase1su').value); const roadWidthTangent = parseFloat(document.getElementById('roadWidthTangentsu').value); const frontOverhang = parseFloat(document.getElementById('frontOverhangsu').value); const designSpeed = parseFloat(document.getElementById('designSpeedsu').value); if (isNaN(curveRadius) || isNaN(trackWidth) || isNaN(wheelBase1) || isNaN(roadWidthTangent) || isNaN(frontOverhang) || isNaN(designSpeed)) { console.error("Input a correct value."); return; } const U = trackWidth + curveRadius - Math.sqrt(curveRadius ** 2 - wheelBase1 ** 2); let C; switch (roadWidthTangent) { case 6.0: C = 0.46; break; case 6.6: C = 0.61; break; case 7.0: C = 0.76; break; case 7.4: C = 0.91; break; default: console.error("Not a correct value of C"); return; } const Fa = Math.sqrt(curveRadius ** 2 + frontOverhang * (2 * wheelBase1 + frontOverhang)) - curveRadius; const Z = (0.1046 * designSpeed) / Math.sqrt(curveRadius); const Wc = 2 * (U + C) + Fa + Z; document.getElementById('roadWidthCurvesu').textContent = Wc.toFixed(1); const roadWidening = Wc - roadWidthTangent; document.getElementById('roadWideningsu').textContent = roadWidening.toFixed(1); } function calculateRwcts() { const curveRadius = parseFloat(document.getElementById('curveRadiusts').value); const trackWidth = parseFloat(document.getElementById('trackWidthts').value); const wheelBase1 = parseFloat(document.getElementById('wheelBase1ts').value); const wheelBase2 = parseFloat(document.getElementById('wheelBase2ts').value); const roadWidthTangent = parseFloat(document.getElementById('roadWidthTangentts').value); const frontOverhang = parseFloat(document.getElementById('frontOverhangts').value); const designSpeed = parseFloat(document.getElementById('designSpeedts').value); if (isNaN(curveRadius) || isNaN(trackWidth) || isNaN(wheelBase1) || isNaN(roadWidthTangent) || isNaN(frontOverhang) || isNaN(designSpeed)) { console.error("Input a correct value."); return; } const U = trackWidth + curveRadius - Math.sqrt(curveRadius ** 2 - (wheelBase1/2 + wheelBase2) ** 2); let C; switch (roadWidthTangent) { case 6.0: C = 0.46; break; case 6.6: C = 0.61; break; case 7.0: C = 0.76; break; case 7.4: C = 0.91; break; default: console.error("Not a correct value of C"); return; } const Fa = Math.sqrt(curveRadius ** 2 + frontOverhang * (2 * (wheelBase1/2 + wheelBase2) + frontOverhang)) - curveRadius; const Z = (0.1046 * designSpeed) / Math.sqrt(curveRadius); const Wc = 2 * (U + C) + Fa + Z; document.getElementById('roadWidthCurvets').textContent = Wc.toFixed(1); const roadWidening = Wc - roadWidthTangent; document.getElementById('roadWideningts').textContent = roadWidening.toFixed(1); } function calculateRwcrt() { const curveRadius = parseFloat(document.getElementById('curveRadiusrt').value); const trackWidth = parseFloat(document.getElementById('trackWidthrt').value); const wheelBase1 = parseFloat(document.getElementById('wheelBase1rt').value); const wheelBase2 = parseFloat(document.getElementById('wheelBase2rt').value); const wheelBase3 = parseFloat(document.getElementById('wheelBase3rt').value); const roadWidthTangent = parseFloat(document.getElementById('roadWidthTangentrt').value); const frontOverhang = parseFloat(document.getElementById('frontOverhangrt').value); const designSpeed = parseFloat(document.getElementById('designSpeedrt').value); if (isNaN(curveRadius) || isNaN(trackWidth) || isNaN(wheelBase1) || isNaN(roadWidthTangent) || isNaN(frontOverhang) || isNaN(designSpeed)) { console.error("Input a correct value."); return; } const U = trackWidth + curveRadius - Math.sqrt(curveRadius ** 2 - (wheelBase1/2 + wheelBase2 + wheelBase3) ** 2); let C; switch (roadWidthTangent) { case 6.0: C = 0.46; break; case 6.6: C = 0.61; break; case 7.0: C = 0.76; break; case 7.4: C = 0.91; break; default: console.error("Not a correct value of C"); return; } const Fa = Math.sqrt(curveRadius ** 2 + frontOverhang * (2 * (wheelBase1/2 + wheelBase2 + wheelBase3) + frontOverhang)) - curveRadius; const Z = (0.1046 * designSpeed) / Math.sqrt(curveRadius); const Wc = 2 * (U + C) + Fa + Z; document.getElementById('roadWidthCurvert').textContent = Wc.toFixed(1); const roadWidening = Wc - roadWidthTangent; document.getElementById('roadWideningrt').textContent = roadWidening.toFixed(1); } function calculateRwcc() { const curveRadius = parseFloat(document.getElementById('curveRadiusc').value); const trackWidth = parseFloat(document.getElementById('trackWidthc').value); const wheelBase1 = parseFloat(document.getElementById('wheelBase1c').value); const wheelBase2 = parseFloat(document.getElementById('wheelBase2c').value); const wheelBase3 = parseFloat(document.getElementById('wheelBase3c').value); const roadWidthTangent = parseFloat(document.getElementById('roadWidthTangentc').value); const frontOverhang = parseFloat(document.getElementById('frontOverhangc').value); const designSpeed = parseFloat(document.getElementById('designSpeedc').value); if (isNaN(curveRadius) || isNaN(trackWidth) || isNaN(wheelBase1) || isNaN(roadWidthTangent) || isNaN(frontOverhang) || isNaN(designSpeed)) { console.error("Input a correct value."); return; } const U = trackWidth + curveRadius - Math.sqrt(curveRadius ** 2 - (wheelBase1/2 + wheelBase2 + wheelBase3) ** 2); let C; switch (roadWidthTangent) { case 6.0: C = 0.46; break; case 6.6: C = 0.61; break; case 7.0: C = 0.76; break; case 7.4: C = 0.91; break; default: console.error("Not a correct value of C"); return; } const Fa = Math.sqrt(curveRadius ** 2 + frontOverhang * (2 * (wheelBase1/2 + wheelBase2 + wheelBase3) + frontOverhang)) - curveRadius; const Z = (0.1046 * designSpeed) / Math.sqrt(curveRadius); const Wc = 2 * (U + C) + Fa + Z; document.getElementById('roadWidthCurvec').textContent = Wc.toFixed(1); // Resultados en roadWidthCurvesu const roadWidening = Wc - roadWidthTangent; document.getElementById('roadWideningc').textContent = roadWidening.toFixed(1); // Resultados en roadWideningsu }