{"id":3560,"date":"2026-06-16T12:21:25","date_gmt":"2026-06-16T04:21:25","guid":{"rendered":"https:\/\/www.hanyu.com.tw\/?page_id=3560"},"modified":"2026-06-16T15:37:45","modified_gmt":"2026-06-16T07:37:45","slug":"rt60-calculator","status":"publish","type":"page","link":"https:\/\/www.hanyu.com.tw\/?page_id=3560","title":{"rendered":"\u7a7a\u9593\u6b98\u97ff\u8a08\u7b97\u5668"},"content":{"rendered":"\n<style>\n:root {\n      --ink: #18202a;\n      --muted: #626b76;\n      --paper: #f8f6f1;\n      --white: #ffffff;\n      --line: #ded8ce;\n      --gold: #c68b44;\n      --deep: #263341;\n      --sage: #788579;\n      --warn: #9b5c2a;\n      --shadow: 0 22px 60px rgba(24, 32, 42, 0.14);\n      font-family: \"Noto Sans TC\", \"PingFang TC\", \"Microsoft JhengHei\", Arial, sans-serif;\n    }\n\n    * {\n      box-sizing: border-box;\n    }\n\n    body {\n      margin: 0;\n      color: var(--ink);\n      background: var(--paper);\n      letter-spacing: 0;\n    }\n\n    @keyframes hero-zoom {\n      from { transform: scale(1); }\n      to { transform: scale(1.05); }\n    }\n\n    @keyframes rise-in {\n      from {\n        opacity: 0;\n        transform: translateY(22px);\n      }\n      to {\n        opacity: 1;\n        transform: translateY(0);\n      }\n    }\n\n    @keyframes wave-scan {\n      from { transform: translateX(-16%); }\n      to { transform: translateX(16%); }\n    }\n\n    @keyframes meter-pulse {\n      0%, 100% { transform: scaleY(0.38); opacity: 0.52; }\n      50% { transform: scaleY(1); opacity: 1; }\n    }\n\n    @keyframes marker-pop {\n      0% { transform: scaleY(0.64); }\n      50% { transform: scaleY(1.16); }\n      100% { transform: scaleY(1); }\n    }\n\n    a {\n      color: inherit;\n      text-decoration: none;\n    }\n\n    .site-header {\n      position: sticky;\n      top: 0;\n      z-index: 20;\n      border-bottom: 1px solid rgba(222, 216, 206, 0.9);\n      background: rgba(248, 246, 241, 0.94);\n      backdrop-filter: blur(18px);\n    }\n\n    .nav {\n      width: min(1180px, calc(100% - 48px));\n      height: 82px;\n      margin: 0 auto;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 28px;\n    }\n\n    .brand img {\n      width: 166px;\n      height: auto;\n      display: block;\n    }\n\n    .menu {\n      display: flex;\n      align-items: center;\n      gap: 26px;\n      font-size: 15px;\n      font-weight: 700;\n      color: #2d3540;\n      white-space: nowrap;\n    }\n\n    .menu a {\n      padding: 9px 0;\n      border-bottom: 2px solid transparent;\n    }\n\n    .menu a.is-active {\n      border-color: var(--gold);\n    }\n\n    .nav-action,\n    .button {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      min-height: 44px;\n      border: 1px solid var(--ink);\n      padding: 0 18px;\n      font-weight: 800;\n      font-size: 14px;\n      background: transparent;\n      cursor: pointer;\n    }\n\n    .button.primary {\n      min-height: 48px;\n      border-color: var(--gold);\n      background: var(--gold);\n      color: #1f1710;\n    }\n\n    .hero {\n      position: relative;\n      overflow: hidden;\n      isolation: isolate;\n      background: #171e26;\n      color: var(--white);\n    }\n\n    .hero::before {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      z-index: -2;\n      background:\n        linear-gradient(90deg, rgba(22, 29, 36, 0.82), rgba(22, 29, 36, 0.42)),\n        url(\"https:\/\/www.hanyu.com.tw\/wp-content\/uploads\/2022\/07\/apartment-modern-inside-3090517.jpg\") center \/ cover no-repeat;\n      animation: hero-zoom 18s ease-in-out alternate infinite;\n      transform-origin: center;\n    }\n\n    .hero::after {\n      content: \"\";\n      position: absolute;\n      left: -12%;\n      right: -12%;\n      bottom: 52px;\n      height: 120px;\n      z-index: -1;\n      opacity: 0.45;\n      background:\n        repeating-linear-gradient(\n          90deg,\n          transparent,\n          transparent 32px,\n          rgba(243, 215, 173, 0.72) 33px,\n          rgba(243, 215, 173, 0.72) 35px,\n          transparent 36px\n        );\n      mask-image: radial-gradient(ellipse at center, #000 0%, rgba(0,0,0,0.66) 44%, transparent 72%);\n      animation: wave-scan 8s ease-in-out infinite alternate;\n    }\n\n    .hero-inner {\n      width: min(1180px, calc(100% - 48px));\n      min-height: 460px;\n      margin: 0 auto;\n      padding: 84px 0 90px;\n      display: grid;\n      align-items: end;\n      animation: rise-in 680ms ease both;\n    }\n\n    .eyebrow {\n      display: inline-flex;\n      align-items: center;\n      gap: 12px;\n      margin-bottom: 20px;\n      color: #f3d7ad;\n      font-size: 13px;\n      font-weight: 900;\n      letter-spacing: 0.08em;\n    }\n\n    .eyebrow::before {\n      content: \"\";\n      width: 42px;\n      height: 1px;\n      background: currentColor;\n    }\n\n    h1 {\n      max-width: 850px;\n      margin: 0;\n      font-size: clamp(40px, 5vw, 68px);\n      line-height: 1.12;\n      font-weight: 900;\n    }\n\n    .hero p {\n      max-width: 740px;\n      margin: 22px 0 0;\n      color: rgba(255, 255, 255, 0.84);\n      font-size: 19px;\n      line-height: 1.85;\n    }\n\n    .wrap {\n      width: min(1180px, calc(100% - 48px));\n      margin: -56px auto 0;\n      position: relative;\n      z-index: 3;\n      padding-bottom: 88px;\n    }\n\n    .tool {\n      display: grid;\n      grid-template-columns: minmax(0, 0.9fr) minmax(380px, 1.1fr);\n      gap: 0;\n      background: var(--white);\n      border: 1px solid var(--line);\n      box-shadow: var(--shadow);\n      animation: rise-in 720ms ease both;\n    }\n\n    .panel {\n      padding: 34px;\n    }\n\n    .panel.input {\n      border-right: 1px solid var(--line);\n      background: linear-gradient(180deg, #ffffff, #fbfaf7);\n    }\n\n    h2,\n    h3 {\n      margin: 0;\n      color: var(--deep);\n      line-height: 1.35;\n    }\n\n    h2 {\n      font-size: 30px;\n    }\n\n    h3 {\n      font-size: 22px;\n    }\n\n    .intro-copy {\n      margin: 10px 0 26px;\n      color: var(--muted);\n      line-height: 1.8;\n    }\n\n    .form-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 14px;\n      margin-top: 18px;\n    }\n\n    .field {\n      display: flex;\n      flex-direction: column;\n      gap: 8px;\n    }\n\n    .field.wide {\n      grid-column: 1 \/ -1;\n    }\n\n    label {\n      color: #38424d;\n      font-size: 14px;\n      font-weight: 800;\n    }\n\n    input,\n    select {\n      width: 100%;\n      min-height: 46px;\n      border: 1px solid #cfc7bb;\n      border-radius: 0;\n      padding: 0 13px;\n      color: var(--ink);\n      background: #fff;\n      font: inherit;\n      font-size: 16px;\n    }\n\n    input:focus,\n    select:focus {\n      outline: 2px solid rgba(198, 139, 68, 0.26);\n      border-color: var(--gold);\n    }\n\n    .note {\n      margin-top: 18px;\n      padding: 14px 16px;\n      background: #f4f1eb;\n      border-left: 3px solid var(--gold);\n      color: #5d6570;\n      line-height: 1.75;\n      font-size: 14px;\n    }\n\n    .results {\n      display: grid;\n      grid-template-columns: repeat(2, 1fr);\n      gap: 14px;\n      margin-top: 22px;\n    }\n\n    .result-card {\n      min-height: 132px;\n      padding: 20px;\n      border: 1px solid var(--line);\n      background: #fbfaf7;\n      position: relative;\n      overflow: hidden;\n      transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;\n    }\n\n    .result-card::after {\n      content: \"\";\n      position: absolute;\n      inset: auto 20px 18px auto;\n      width: 32px;\n      height: 34px;\n      background:\n        linear-gradient(var(--gold), var(--gold)) 0 100% \/ 4px 55% no-repeat,\n        linear-gradient(var(--gold), var(--gold)) 9px 100% \/ 4px 80% no-repeat,\n        linear-gradient(var(--gold), var(--gold)) 18px 100% \/ 4px 42% no-repeat,\n        linear-gradient(var(--gold), var(--gold)) 27px 100% \/ 4px 68% no-repeat;\n      opacity: 0.22;\n    }\n\n    .result-card:hover {\n      transform: translateY(-5px);\n      border-color: rgba(198, 139, 68, 0.7);\n      box-shadow: 0 16px 36px rgba(24, 32, 42, 0.09);\n    }\n\n    .result-card span {\n      color: var(--muted);\n      font-size: 14px;\n      font-weight: 800;\n    }\n\n    .result-card strong {\n      display: block;\n      margin-top: 14px;\n      color: var(--deep);\n      font-size: 32px;\n      line-height: 1;\n    }\n\n    .result-card small {\n      display: block;\n      margin-top: 12px;\n      color: #7a8188;\n      line-height: 1.5;\n    }\n\n    .gauge {\n      margin-top: 22px;\n    }\n\n    .track {\n      position: relative;\n      height: 12px;\n      background: linear-gradient(90deg, #8ea0ad, #87a381 45%, #d4a15e 72%, #9d6041);\n    }\n\n    .marker {\n      position: absolute;\n      top: -8px;\n      width: 4px;\n      height: 28px;\n      margin-left: -2px;\n      background: var(--ink);\n      box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.8);\n      transition: left 520ms cubic-bezier(.2,.8,.2,1);\n      transform-origin: bottom;\n    }\n\n    .marker.is-moving {\n      animation: marker-pop 360ms ease;\n    }\n\n    .scale {\n      display: flex;\n      justify-content: space-between;\n      gap: 12px;\n      margin-top: 12px;\n      color: var(--muted);\n      font-size: 13px;\n    }\n\n    .message {\n      margin-top: 22px;\n      padding: 18px;\n      border: 1px solid rgba(198, 139, 68, 0.35);\n      background: #fff8ed;\n      color: #4b4034;\n      line-height: 1.8;\n    }\n\n    .material-estimate {\n      margin-top: 24px;\n      padding-top: 24px;\n      border-top: 1px solid var(--line);\n    }\n\n    .inline-grid {\n      display: grid;\n      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n      gap: 14px;\n      margin-top: 14px;\n    }\n\n    .area-output {\n      margin-top: 14px;\n      padding: 18px;\n      background: #eef0ec;\n      color: var(--deep);\n      line-height: 1.7;\n      font-weight: 700;\n      transition: background 180ms ease, transform 180ms ease;\n    }\n\n    .area-output.is-updated {\n      background: #f5ead9;\n      transform: translateY(-2px);\n    }\n\n    .tips {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 16px;\n      margin-top: 28px;\n    }\n\n    .tip {\n      padding: 22px;\n      border: 1px solid var(--line);\n      background: rgba(255, 255, 255, 0.72);\n      transition: transform 180ms ease, border-color 180ms ease;\n    }\n\n    .tip:hover {\n      transform: translateY(-5px);\n      border-color: rgba(198, 139, 68, 0.65);\n    }\n\n    .live-meter {\n      display: inline-grid;\n      grid-auto-flow: column;\n      align-items: end;\n      gap: 5px;\n      height: 26px;\n      margin-left: 14px;\n      vertical-align: middle;\n    }\n\n    .live-meter i {\n      display: block;\n      width: 4px;\n      height: 100%;\n      background: #f3d7ad;\n      transform-origin: bottom;\n      animation: meter-pulse 1.15s ease-in-out infinite;\n    }\n\n    .live-meter i:nth-child(2) { animation-delay: 110ms; }\n    .live-meter i:nth-child(3) { animation-delay: 220ms; }\n    .live-meter i:nth-child(4) { animation-delay: 330ms; }\n\n    .tip b {\n      display: block;\n      margin-bottom: 8px;\n      color: var(--deep);\n      font-size: 18px;\n    }\n\n    .tip span {\n      color: var(--muted);\n      line-height: 1.75;\n      font-size: 14px;\n    }\n\n    .footer-note {\n      margin-top: 26px;\n      color: var(--muted);\n      line-height: 1.85;\n    }\n\n    @media (max-width: 900px) {\n      .nav {\n        width: min(100% - 32px, 1180px);\n        height: 72px;\n      }\n\n      .brand img {\n        width: 138px;\n      }\n\n      .menu {\n        display: none;\n      }\n\n      .hero-inner,\n      .wrap {\n        width: min(100% - 32px, 1180px);\n      }\n\n      .hero-inner {\n        min-height: 520px;\n        padding: 64px 0 82px;\n      }\n\n      h1 {\n        font-size: 42px;\n      }\n\n      .tool,\n      .tips {\n        grid-template-columns: 1fr;\n      }\n\n      .panel.input {\n        border-right: 0;\n        border-bottom: 1px solid var(--line);\n      }\n\n      .form-grid,\n      .results,\n      .inline-grid {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      *,\n      *::before,\n      *::after {\n        animation-duration: 1ms !important;\n        animation-iteration-count: 1 !important;\n        transition-duration: 1ms !important;\n        scroll-behavior: auto !important;\n      }\n    }\n\n\/* WordPress page shell reset *\/\nbody #header, body #footer, body .hero-section, body .entry-header, body .entry-title, body h1.entry-title, body article > header, body .page-header, body .page-title, body .post-edit-link { display: none !important; }\nbody .site-main, body main#main, body .ct-container-full, body article, body .entry-content { padding-top: 0 !important; margin-top: 0 !important; }\n.hanyu-live { width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }\n.hanyu-live * { box-sizing: border-box; }\n\n<\/style>\n<div class=\"hanyu-live hanyu-live-calculator\">\n<header class=\"site-header\">\n    <nav class=\"nav\" aria-label=\"\u4e3b\u8981\u5c0e\u89bd\">\n      <a class=\"brand\" href=\"https:\/\/www.hanyu.com.tw\/\">\n        <img decoding=\"async\" src=\"https:\/\/www.hanyu.com.tw\/wp-content\/uploads\/2022\/07\/cropped-hanyu.png\" alt=\"HANYU \u7ff0\u8c6b\">\n      <\/a>\n      <div class=\"menu\">\n        <a href=\"https:\/\/www.hanyu.com.tw\/\">\u9996\u9801<\/a>\n        <a href=\"https:\/\/www.hanyu.com.tw\/?page_id=19\">\u95dc\u65bc\u6211\u5011<\/a>\n        <a href=\"https:\/\/www.hanyu.com.tw\/?page_id=21\">\u670d\u52d9\u9805\u76ee<\/a>\n        <a href=\"https:\/\/www.hanyu.com.tw\/?page_id=2786\">\u7522\u54c1\u4ecb\u7d39<\/a>\n        <a class=\"is-active\" href=\"https:\/\/www.hanyu.com.tw\/?page_id=3560\">\u6b98\u97ff\u8a08\u7b97\u5668<\/a>\n        <a href=\"https:\/\/www.hanyu.com.tw\/?page_id=25\">\u806f\u7d61\u6211\u5011<\/a>\n      <\/div>\n      <a class=\"nav-action\" href=\"https:\/\/www.hanyu.com.tw\/?page_id=25\">\u9810\u7d04\u8aee\u8a62<\/a>\n    <\/nav>\n  <\/header>\n\n  <main>\n    <section class=\"hero\">\n      <div class=\"hero-inner\">\n        <div>\n          <div class=\"eyebrow\">RT60 REVERBERATION CALCULATOR<\/div>\n          <h1>\u7a7a\u9593\u6b98\u97ff\u8a08\u7b97\u5668 <span class=\"live-meter\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><i><\/i><\/span><\/h1>\n          <p>\u8f38\u5165\u7a7a\u9593\u7528\u9014\u8207\u5c3a\u5bf8\uff0c\u521d\u6b65\u4f30\u7b97\u5efa\u8b70 RT60\u3001\u6240\u9700\u7b49\u6548\u5438\u97f3\u91cf\u8207\u6750\u6599\u914d\u7f6e\u65b9\u5411\u3002\u9069\u5408\u5ba2\u6236\u5728\u898f\u5283\u5438\u97f3\u3001\u9694\u97f3\u8207\u7a7a\u9593\u8072\u5b78\u6539\u5584\u524d\u505a\u5feb\u901f\u53c3\u8003\u3002<\/p>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <div class=\"wrap\">\n      <section class=\"tool\" id=\"hanyu-rt-tool\" aria-label=\"\u7a7a\u9593\u6b98\u97ff\u8a08\u7b97\u5668\">\n        <div class=\"panel input\">\n          <h2>\u8f38\u5165\u7a7a\u9593\u689d\u4ef6<\/h2>\n          <p class=\"intro-copy\">\u4e0d\u540c\u7a7a\u9593\u7528\u9014\u6703\u6709\u4e0d\u540c\u5efa\u8b70\u6b98\u97ff\u7bc4\u570d\u3002\u6b64\u5de5\u5177\u63a1 Sabine \u516c\u5f0f\u521d\u4f30\uff0c\u9069\u5408\u524d\u671f\u8a0e\u8ad6\u8207\u65b9\u5411\u5224\u65b7\u3002<\/p>\n\n          <div class=\"field wide\">\n            <label for=\"hanyu-rt-type\">\u7a7a\u9593\u7528\u9014<\/label>\n            <select id=\"hanyu-rt-type\">\n              <option value=\"classroom\">\u6559\u5ba4 \/ \u88dc\u7fd2\u73ed<\/option>\n              <option value=\"meeting\">\u6703\u8b70\u5ba4 \/ \u7c21\u5831\u5ba4<\/option>\n              <option value=\"room\">\u4f4f\u5b85\u623f\u9593 \/ \u5f71\u97f3\u5ba4<\/option>\n              <option value=\"office\">\u8fa6\u516c\u5ba4<\/option>\n              <option value=\"auditorium\">\u79ae\u5802 \/ \u8b1b\u5802<\/option>\n              <option value=\"multipurpose\">\u591a\u529f\u80fd\u5ef3<\/option>\n              <option value=\"performing\">\u6f14\u85dd\u5ef3 \/ \u5287\u5834<\/option>\n              <option value=\"concert\">\u97f3\u6a02\u5ef3<\/option>\n              <option value=\"studio\">\u9304\u97f3\u5ba4 \/ \u63a7\u5236\u5ba4<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"form-grid\">\n            <div class=\"field\">\n              <label for=\"hanyu-rt-length\">\u9577\u5ea6 m<\/label>\n              <input id=\"hanyu-rt-length\" type=\"number\" min=\"1\" step=\"0.1\" value=\"8\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"hanyu-rt-width\">\u5bec\u5ea6 m<\/label>\n              <input id=\"hanyu-rt-width\" type=\"number\" min=\"1\" step=\"0.1\" value=\"6\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"hanyu-rt-height\">\u9ad8\u5ea6 m<\/label>\n              <input id=\"hanyu-rt-height\" type=\"number\" min=\"1\" step=\"0.1\" value=\"3\">\n            <\/div>\n          <\/div>\n\n          <div class=\"form-grid\">\n            <div class=\"field wide\">\n              <label for=\"hanyu-rt-current\">\u76ee\u524d\u91cf\u6e2c RT60 \u79d2\uff0c\u53ef\u4e0d\u586b<\/label>\n              <input id=\"hanyu-rt-current\" type=\"number\" min=\"0\" step=\"0.05\" placeholder=\"\u4f8b\u5982 1.20\">\n            <\/div>\n          <\/div>\n\n          <div class=\"note\">\n            RT60 \u662f\u8072\u97f3\u8870\u6e1b 60 dB \u6240\u9700\u6642\u9593\u3002\u6578\u503c\u904e\u9577\u5bb9\u6613\u56de\u97f3\u3001\u8a9e\u97f3\u6a21\u7cca\uff1b\u904e\u77ed\u5247\u53ef\u80fd\u8b93\u97f3\u6a02\u7f3a\u4e4f\u5305\u8986\u8207\u81ea\u7136\u611f\u3002\n          <\/div>\n        <\/div>\n\n        <div class=\"panel output\">\n          <h3>\u8a08\u7b97\u7d50\u679c<\/h3>\n          <div class=\"results\">\n            <div class=\"result-card\">\n              <span>\u7a7a\u9593\u9ad4\u7a4d<\/span>\n              <strong id=\"hanyu-rt-volume\">&#8211;<\/strong>\n              <small>\u9577 x \u5bec x \u9ad8<\/small>\n            <\/div>\n            <div class=\"result-card\">\n              <span>\u5efa\u8b70 RT60<\/span>\n              <strong id=\"hanyu-rt-target\">&#8211;<\/strong>\n              <small id=\"hanyu-rt-range\">\u4f9d\u7528\u9014\u4f30\u7b97<\/small>\n            <\/div>\n            <div class=\"result-card\">\n              <span>\u6240\u9700\u7b49\u6548\u5438\u97f3\u91cf<\/span>\n              <strong id=\"hanyu-rt-absorption\">&#8211;<\/strong>\n              <small>Sabine m2\uff0c\u521d\u6b65\u4f30\u7b97<\/small>\n            <\/div>\n            <div class=\"result-card\">\n              <span>\u5e73\u5747\u5438\u97f3\u4fc2\u6578<\/span>\n              <strong id=\"hanyu-rt-alpha\">&#8211;<\/strong>\n              <small>\u7b49\u6548\u5438\u97f3\u91cf \/ \u7a7a\u9593\u7e3d\u8868\u9762\u7a4d<\/small>\n            <\/div>\n          <\/div>\n\n          <div class=\"gauge\" aria-label=\"RT60 \u76ee\u6a19\u7bc4\u570d\u8996\u89ba\u5316\">\n            <div class=\"track\">\n              <i class=\"marker\" id=\"hanyu-rt-marker\"><\/i>\n            <\/div>\n            <div class=\"scale\">\n              <span>\u8f03\u4e7e 0.2s<\/span>\n              <span>\u8a9e\u97f3\u6e05\u695a<\/span>\n              <span>\u97f3\u6a02\u5305\u8986 2.4s<\/span>\n            <\/div>\n          <\/div>\n\n          <div class=\"message\" id=\"hanyu-rt-message\">\n            <strong>\u5efa\u8b70\uff1a<\/strong>\u8acb\u8f38\u5165\u7a7a\u9593\u5c3a\u5bf8\u5f8c\u67e5\u770b\u7d50\u679c\u3002\n          <\/div>\n\n          <div class=\"material-estimate\">\n            <h3>\u5438\u97f3\u6750\u6599\u9762\u7a4d\u521d\u4f30<\/h3>\n            <div class=\"inline-grid\">\n              <div class=\"field\">\n                <label for=\"hanyu-rt-material\">\u9810\u4f30\u6750\u6599 NRC \/ \u5438\u97f3\u4fc2\u6578<\/label>\n                <select id=\"hanyu-rt-material\">\n                  <option value=\"0.35\">\u4e00\u822c\u5438\u97f3\u677f \/ \u7a7f\u5b54\u677f 0.35<\/option>\n                  <option value=\"0.55\">\u5e03\u9762\u5438\u97f3\u677f 0.55<\/option>\n                  <option value=\"0.75\" selected>\u9ad8\u6548\u5438\u97f3\u68c9\u677f 0.75<\/option>\n                  <option value=\"0.90\">\u5929\u82b1\u5438\u97f3\u677f 0.90<\/option>\n                <\/select>\n              <\/div>\n              <div class=\"field\">\n                <label for=\"hanyu-rt-coverage\">\u53ef\u65bd\u4f5c\u6bd4\u4f8b\u4fee\u6b63<\/label>\n                <select id=\"hanyu-rt-coverage\">\n                  <option value=\"1\">\u5b8c\u6574\u6709\u6548\u9762\u7a4d<\/option>\n                  <option value=\"0.8\" selected>\u542b\u958b\u53e3\/\u6536\u908a\uff0c\u7d04 80%<\/option>\n                  <option value=\"0.65\">\u9020\u578b\u5206\u5272\u8f03\u591a\uff0c\u7d04 65%<\/option>\n                <\/select>\n              <\/div>\n            <\/div>\n            <div class=\"area-output\" id=\"hanyu-rt-area\">\u8acb\u8f38\u5165\u5c3a\u5bf8\u5f8c\u4f30\u7b97\u6750\u6599\u9762\u7a4d\u3002<\/div>\n          <\/div>\n        <\/div>\n      <\/section>\n\n      <div class=\"tips\">\n        <article class=\"tip\">\n          <b>RT60 \u904e\u9577<\/b>\n          <span>\u5e38\u898b\u65bc\u786c\u8cea\u5730\u576a\u3001\u73bb\u7483\u3001\u88f8\u9732\u7246\u9762\u6216\u6311\u9ad8\u7a7a\u9593\u3002\u53ef\u512a\u5148\u6aa2\u67e5\u5929\u82b1\u3001\u5f8c\u7246\u3001\u5074\u7246\u8207\u5927\u578b\u53cd\u5c04\u9762\u3002<\/span>\n        <\/article>\n        <article class=\"tip\">\n          <b>RT60 \u904e\u77ed<\/b>\n          <span>\u7a7a\u9593\u53ef\u80fd\u904e\u4e7e\uff0c\u97f3\u6a02\u8207\u74b0\u5883\u611f\u4e0d\u8db3\u3002\u53ef\u4fdd\u7559\u90e8\u5206\u53cd\u5c04\u9762\uff0c\u642d\u914d\u64f4\u6563\u9ad4\u8207\u6750\u6599\u6bd4\u4f8b\u8abf\u6574\u3002<\/span>\n        <\/article>\n        <article class=\"tip\">\n          <b>\u4ecd\u9700\u73fe\u5834\u91cf\u6e2c<\/b>\n          <span>\u8a08\u7b97\u5668\u9069\u5408\u521d\u4f30\u3002\u6b63\u5f0f\u6539\u5584\u4ecd\u5efa\u8b70\u4f9d\u983b\u7387\u3001\u7a7a\u9593\u5f62\u72c0\u3001\u5ea7\u5e2d\u3001\u4eba\u54e1\u8207 ISO 3382 \u91cf\u6e2c\u4fee\u6b63\u3002<\/span>\n        <\/article>\n      <\/div>\n\n      <p class=\"footer-note\"><strong>\u5438\u9694\u97f3\u627e\u7ff0\u8c6b\u3002<\/strong> \u82e5\u4f60\u5df2\u7d93\u6709\u5e73\u9762\u5716\u3001\u73fe\u5834\u7167\u7247\u6216\u5be6\u6e2c\u6578\u64da\uff0c\u53ef\u63d0\u4f9b\u7d66\u7ff0\u8c6b\u9032\u4e00\u6b65\u8a55\u4f30\u5438\u97f3\u3001\u9694\u97f3\u8207\u7a7a\u9593\u8072\u5b78\u914d\u7f6e\u3002<\/p>\n    <\/div>\n  <\/main>\n\n  <script>\n    (function() {\n      const profiles = {\n        classroom: { name: \"\u6559\u5ba4 \/ \u88dc\u7fd2\u73ed\", min: 0.5, max: 0.8, base: 0.62, slope: 0.08, note: \"\u4ee5\u8a9e\u97f3\u6e05\u6670\u70ba\u4e3b\uff0c\u5f8c\u6392\u807d\u61c2\u6bd4\u6b98\u97ff\u5305\u8986\u66f4\u91cd\u8981\u3002\" },\n        meeting: { name: \"\u6703\u8b70\u5ba4 \/ \u7c21\u5831\u5ba4\", min: 0.4, max: 0.7, base: 0.52, slope: 0.06, note: \"\u9069\u5408\u6703\u8b70\u3001\u7c21\u5831\u8207\u8996\u8a0a\u6536\u97f3\uff0c\u907f\u514d\u8a9e\u97f3\u5c3e\u97f3\u4e92\u76f8\u906e\u853d\u3002\" },\n        room: { name: \"\u4f4f\u5b85\u623f\u9593 \/ \u5f71\u97f3\u5ba4\", min: 0.35, max: 0.6, base: 0.45, slope: 0.04, note: \"\u517c\u9867\u8212\u9069\u8207\u6e05\u695a\uff0c\u4f4e\u983b\u63a7\u5236\u901a\u5e38\u6bd4\u55ae\u7d14\u7e2e\u77ed RT \u66f4\u91cd\u8981\u3002\" },\n        office: { name: \"\u8fa6\u516c\u5ba4\", min: 0.5, max: 0.8, base: 0.6, slope: 0.05, note: \"\u9700\u642d\u914d\u80cc\u666f\u566a\u97f3\u3001\u8a9e\u97f3\u96b1\u79c1\u8207\u5de5\u4f5c\u578b\u614b\u4e00\u8d77\u5224\u8b80\u3002\" },\n        auditorium: { name: \"\u79ae\u5802 \/ \u8b1b\u5802\", min: 0.8, max: 1.2, base: 0.95, slope: 0.1, note: \"\u8a9e\u97f3\u8207\u6d3b\u52d5\u517c\u7528\u6642\uff0c\u9700\u907f\u514d\u904e\u9577\u6b98\u97ff\u5f71\u97ff\u6e05\u6670\u5ea6\u3002\" },\n        multipurpose: { name: \"\u591a\u529f\u80fd\u5ef3\", min: 0.8, max: 1.4, base: 1, slope: 0.12, note: \"\u4e0d\u540c\u6d3b\u52d5\u9700\u6c42\u5dee\u7570\u5927\uff0c\u5e38\u9700\u8981\u53ef\u8b8a\u8072\u5b78\u6216\u7cfb\u7d71\u8abf\u6821\u3002\" },\n        performing: { name: \"\u6f14\u85dd\u5ef3 \/ \u5287\u5834\", min: 1.1, max: 1.7, base: 1.28, slope: 0.14, note: \"\u9700\u517c\u9867\u8a9e\u97f3\u3001\u97f3\u6a02\u8207\u821e\u53f0\u8072\u97f3\u9023\u7d50\u3002\" },\n        concert: { name: \"\u97f3\u6a02\u5ef3\", min: 1.6, max: 2.2, base: 1.85, slope: 0.18, note: \"\u91cd\u8996\u97f3\u6a02\u5ef6\u5c55\u8207\u5305\u8986\u611f\uff0c\u4f46\u4ecd\u9700\u7dad\u6301\u8db3\u5920\u660e\u6670\u5ea6\u3002\" },\n        studio: { name: \"\u9304\u97f3\u5ba4 \/ \u63a7\u5236\u5ba4\", min: 0.2, max: 0.4, base: 0.3, slope: 0.02, note: \"\u504f\u77ed\u4e14\u53d7\u63a7\uff0c\u9700\u7279\u5225\u8655\u7406\u4f4e\u983b\u6a21\u614b\u8207\u65e9\u671f\u53cd\u5c04\u3002\" }\n      };\n\n      const $ = (id) => document.getElementById(`hanyu-rt-${id}`);\n      const input = {\n        type: $(\"type\"),\n        length: $(\"length\"),\n        width: $(\"width\"),\n        height: $(\"height\"),\n        current: $(\"current\"),\n        material: $(\"material\"),\n        coverage: $(\"coverage\")\n      };\n      const output = {\n        volume: $(\"volume\"),\n        target: $(\"target\"),\n        range: $(\"range\"),\n        absorption: $(\"absorption\"),\n        alpha: $(\"alpha\"),\n        marker: $(\"marker\"),\n        message: $(\"message\"),\n        area: $(\"area\")\n      };\n\n      function number(el) {\n        return Math.max(0, parseFloat(el.value || \"0\"));\n      }\n\n      function clamp(value, min, max) {\n        return Math.min(max, Math.max(min, value));\n      }\n\n      function fmt(value, digits) {\n        return Number(value).toFixed(digits);\n      }\n\n      function calculate() {\n        const profile = profiles[input.type.value] || profiles.classroom;\n        const length = number(input.length);\n        const width = number(input.width);\n        const height = number(input.height);\n        const current = number(input.current);\n        const material = number(input.material);\n        const coverage = number(input.coverage);\n\n        if (!length || !width || !height) return;\n\n        const volume = length * width * height;\n        const surface = 2 * (length * width + length * height + width * height);\n        const target = clamp(profile.base + profile.slope * Math.log10(Math.max(volume, 1) \/ 100), profile.min, profile.max);\n        const requiredAbsorption = 0.161 * volume \/ target;\n        const targetAlpha = requiredAbsorption \/ surface;\n        const existingAbsorption = current > 0 ? 0.161 * volume \/ current : 0;\n        const additionalAbsorption = current > 0 ? Math.max(0, requiredAbsorption - existingAbsorption) : requiredAbsorption;\n        const estimatedArea = material && coverage ? additionalAbsorption \/ (material * coverage) : 0;\n\n        output.volume.textContent = `${fmt(volume, 1)} m3`;\n        output.target.textContent = `${fmt(target, 2)} s`;\n        output.range.textContent = `${profile.name} \u5e38\u898b\u5efa\u8b70\u7bc4\u570d ${fmt(profile.min, 2)}-${fmt(profile.max, 2)} s`;\n        output.absorption.textContent = `${fmt(requiredAbsorption, 1)} m2`;\n        output.alpha.textContent = fmt(targetAlpha, 2);\n        output.marker.style.left = `${clamp(((target - 0.2) \/ (2.4 - 0.2)) * 100, 0, 100)}%`;\n        output.marker.classList.remove(\"is-moving\");\n        window.requestAnimationFrame(() => output.marker.classList.add(\"is-moving\"));\n\n        let status = `\u6b64\u7a7a\u9593\u5efa\u8b70 RT60 \u76ee\u6a19\u7d04 ${fmt(target, 2)} \u79d2\u3002${profile.note}`;\n        if (current > profile.max) {\n          status = `\u76ee\u524d\u91cf\u6e2c\u503c ${fmt(current, 2)} \u79d2\u504f\u9577\uff0c\u5efa\u8b70\u589e\u52a0\u5438\u97f3\u8207\u4f4e\u983b\u63a7\u5236\uff0c\u512a\u5148\u6aa2\u67e5\u5929\u82b1\u3001\u5f8c\u7246\u8207\u5927\u578b\u786c\u53cd\u5c04\u9762\u3002`;\n        } else if (current > 0 && current < profile.min) {\n          status = `\u76ee\u524d\u91cf\u6e2c\u503c ${fmt(current, 2)} \u79d2\u504f\u77ed\uff0c\u7a7a\u9593\u53ef\u80fd\u904e\u4e7e\uff0c\u53ef\u6aa2\u67e5\u662f\u5426\u5438\u97f3\u904e\u91cf\uff0c\u4e26\u4fdd\u7559\u9069\u5ea6\u53cd\u5c04\u6216\u64f4\u6563\u3002`;\n        } else if (current >= profile.min && current <= profile.max) {\n          status = `\u76ee\u524d\u91cf\u6e2c\u503c ${fmt(current, 2)} \u79d2\u843d\u5728\u6b64\u7528\u9014\u5efa\u8b70\u7bc4\u570d\u5167\uff0c\u53ef\u518d\u4f9d STI\u3001C50\/C80 \u8207\u4f7f\u7528\u8005\u611f\u53d7\u7d30\u90e8\u8abf\u6574\u3002`;\n        }\n\n        if (targetAlpha > 0.75) {\n          status += \" \u4f30\u7b97\u5e73\u5747\u5438\u97f3\u4fc2\u6578\u504f\u9ad8\uff0c\u53ea\u9760\u8868\u9762\u5438\u97f3\u53ef\u80fd\u4e0d\u6613\u9054\u6210\uff0c\u5efa\u8b70\u9032\u4e00\u6b65\u6aa2\u8a0e\u6750\u6599\u3001\u5ea7\u5e2d\u3001\u7a97\u7c3e\u3001\u5bb6\u5177\u8207\u7a7a\u9593\u5f62\u72c0\u3002\";\n        } else if (targetAlpha < 0.12) {\n          status += \" \u4f30\u7b97\u5e73\u5747\u5438\u97f3\u4fc2\u6578\u504f\u4f4e\uff0c\u82e5\u73fe\u5834\u591a\u786c\u8cea\u8868\u9762\uff0c\u5be6\u969b RT60 \u53ef\u80fd\u6bd4\u76ee\u6a19\u66f4\u9577\u3002\";\n        }\n        output.message.innerHTML = `<strong>\u5efa\u8b70\uff1a<\/strong>${status}`;\n\n        const areaIntro = current > 0 ? \"\u4f9d\u76ee\u524d\u91cf\u6e2c\u503c\u63a8\u4f30\u9700\u8ffd\u52a0\" : \"\u82e5\u5f9e\u524d\u671f\u898f\u5283\u4f30\u7b97\uff0c\u7d04\u9700\u914d\u7f6e\";\n        output.area.textContent = `${areaIntro} ${fmt(estimatedArea, 1)} m2 \u7684\u6709\u6548\u5438\u97f3\u6750\u6599\u9762\u7a4d\u3002\u6b64\u6578\u503c\u6703\u53d7\u6750\u6599\u983b\u7387\u7279\u6027\u3001\u958b\u53e3\u3001\u9020\u578b\u5206\u5272\u3001\u5bb6\u5177\u3001\u4eba\u54e1\u8207\u65bd\u5de5\u65b9\u5f0f\u5f71\u97ff\u3002`;\n        output.area.classList.remove(\"is-updated\");\n        window.requestAnimationFrame(() => output.area.classList.add(\"is-updated\"));\n      }\n\n      Object.values(input).forEach((el) => {\n        el.addEventListener(\"input\", calculate);\n        el.addEventListener(\"change\", calculate);\n      });\n      calculate();\n    })();\n  <\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u9801 \u95dc\u65bc\u6211\u5011 \u670d\u52d9\u9805\u76ee \u7522\u54c1\u4ecb\u7d39 \u6b98\u97ff\u8a08\u7b97\u5668 \u806f\u7d61\u6211\u5011 \u9810\u7d04\u8aee\u8a62 RT60 REVERBERATION CA [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3560","page","type-page","status-publish","hentry"],"blocksy_meta":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.hanyu.com.tw\/index.php?rest_route=\/wp\/v2\/pages\/3560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hanyu.com.tw\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.hanyu.com.tw\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.hanyu.com.tw\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hanyu.com.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3560"}],"version-history":[{"count":3,"href":"https:\/\/www.hanyu.com.tw\/index.php?rest_route=\/wp\/v2\/pages\/3560\/revisions"}],"predecessor-version":[{"id":3580,"href":"https:\/\/www.hanyu.com.tw\/index.php?rest_route=\/wp\/v2\/pages\/3560\/revisions\/3580"}],"wp:attachment":[{"href":"https:\/\/www.hanyu.com.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}