{"id":20916,"date":"2025-12-20T23:28:00","date_gmt":"2025-12-20T23:28:00","guid":{"rendered":"https:\/\/vibromera.eu\/?p=20916"},"modified":"2025-12-21T17:45:09","modified_gmt":"2025-12-21T17:45:09","slug":"online-vector-calculator-for-rotor-balancing","status":"publish","type":"post","link":"https:\/\/vibromera.eu\/vi\/uncategorized\/online-vector-calculator-for-rotor-balancing\/","title":{"rendered":"C\u00f4ng c\u1ee5 t\u00ednh to\u00e1n vect\u01a1 tr\u1ef1c tuy\u1ebfn \u0111\u1ec3 c\u00e2n b\u1eb1ng r\u00f4to"},"content":{"rendered":"<div id=\"pl-20916\"  class=\"panel-layout\" ><div id=\"pg-20916-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-20916-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-20916-0-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child panel-last-child\" data-index=\"0\" ><h3 class=\"widget-title\">M\u00e1y t\u00ednh vect\u01a1<\/h3><div class=\"textwidget custom-html-widget\"><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n  <style>\n    .vc-container {\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n      max-width: 1400px;\n      margin: 0 auto;\n      padding: 16px;\n      background: #f8fafc;\n      box-sizing: border-box;\n    }\n    .vc-container * {\n      box-sizing: border-box;\n    }\n    .vc-title {\n      text-align: center;\n      font-size: 24px;\n      font-weight: 700;\n      color: #1e3a8a;\n      margin: 0 0 24px 0;\n    }\n    .vc-inputs {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 16px;\n      margin-bottom: 20px;\n    }\n    @media (max-width: 500px) {\n      .vc-inputs { grid-template-columns: 1fr; }\n    }\n    .vc-vector-box {\n      padding: 16px;\n      border-radius: 8px;\n      border: 1px solid #bfdbfe;\n      background: #fff;\n    }\n    .vc-vector-label {\n      font-weight: 500;\n      color: #1e3a8a;\n      margin-bottom: 12px;\n    }\n    .vc-fields {\n      display: flex;\n      gap: 16px;\n    }\n    .vc-field {\n      flex: 1;\n    }\n    .vc-field-label {\n      font-size: 12px;\n      color: #2563eb;\n      font-weight: 500;\n      display: block;\n      margin-bottom: 4px;\n    }\n    .vc-field input {\n      width: 100%;\n      padding: 12px;\n      border: 1px solid #bfdbfe;\n      border-radius: 4px;\n      text-align: center;\n      font-family: monospace;\n      font-size: 18px;\n    }\n    .vc-field input:focus {\n      outline: none;\n      border-color: #3b82f6;\n      box-shadow: 0 0 0 2px rgba(59,130,246,0.3);\n    }\n    .vc-diagram {\n      display: flex;\n      justify-content: center;\n      margin-top: 12px;\n    }\n    .vc-diagram svg {\n      background: #eff6ff;\n      border-radius: 4px;\n    }\n    .vc-operations {\n      background: #fff;\n      border-radius: 8px;\n      border: 1px solid #bfdbfe;\n      padding: 16px;\n      margin-bottom: 20px;\n    }\n    .vc-operations-label {\n      font-size: 14px;\n      font-weight: 500;\n      color: #1e3a8a;\n      margin-bottom: 12px;\n    }\n    .vc-ops-grid {\n      display: grid;\n      grid-template-columns: repeat(5, 1fr);\n      gap: 8px;\n    }\n    @media (max-width: 500px) {\n      .vc-ops-grid { grid-template-columns: repeat(3, 1fr); }\n    }\n    .vc-op-btn {\n      padding: 12px 8px;\n      border-radius: 4px;\n      border: 1px solid #bfdbfe;\n      background: #eff6ff;\n      color: #1d4ed8;\n      cursor: pointer;\n      text-align: center;\n      transition: all 0.2s;\n    }\n    .vc-op-btn:hover {\n      background: #dbeafe;\n    }\n    .vc-op-btn.active {\n      background: #2563eb;\n      color: #fff;\n      border-color: #2563eb;\n    }\n    .vc-op-icon {\n      font-size: 16px;\n      font-weight: 700;\n    }\n    .vc-op-name {\n      font-size: 11px;\n      margin-top: 4px;\n    }\n    .vc-scalar-row {\n      display: none;\n      margin-top: 16px;\n      justify-content: center;\n      align-items: center;\n      gap: 12px;\n    }\n    .vc-scalar-row.visible {\n      display: flex;\n    }\n    .vc-scalar-row label {\n      font-size: 14px;\n      color: #1d4ed8;\n    }\n    .vc-scalar-row input {\n      width: 80px;\n      padding: 8px;\n      border: 1px solid #bfdbfe;\n      border-radius: 4px;\n      text-align: center;\n      font-family: monospace;\n    }\n    .vc-calc-btn {\n      width: 100%;\n      padding: 14px;\n      background: #2563eb;\n      color: #fff;\n      font-size: 16px;\n      font-weight: 600;\n      border: none;\n      border-radius: 8px;\n      cursor: pointer;\n      transition: background 0.2s;\n    }\n    .vc-calc-btn:hover {\n      background: #1d4ed8;\n    }\n    .vc-result {\n      display: none;\n      margin-top: 20px;\n      padding: 20px;\n      background: #fff;\n      border-radius: 8px;\n      border: 2px solid #93c5fd;\n    }\n    .vc-result.visible {\n      display: block;\n    }\n    .vc-result-label {\n      font-size: 14px;\n      color: #2563eb;\n      font-weight: 500;\n      margin-bottom: 8px;\n    }\n    .vc-result-values {\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      gap: 32px;\n    }\n    .vc-result-item {\n      text-align: center;\n    }\n    .vc-result-num {\n      font-size: 28px;\n      font-family: monospace;\n      font-weight: 700;\n      color: #1e3a8a;\n    }\n    .vc-result-unit {\n      font-size: 12px;\n      color: #3b82f6;\n      margin-top: 4px;\n    }\n    .vc-result-sep {\n      font-size: 24px;\n      color: #93c5fd;\n    }\n    .vc-result-cartesian {\n      text-align: center;\n      font-size: 14px;\n      color: #3b82f6;\n      margin-top: 12px;\n      padding-top: 12px;\n      border-top: 1px solid #eff6ff;\n    }\n    .vc-result-note {\n      text-align: center;\n      font-size: 14px;\n      color: #1d4ed8;\n      background: #eff6ff;\n      padding: 8px;\n      border-radius: 4px;\n      border: 1px solid #bfdbfe;\n      margin-top: 12px;\n    }\n    .vc-result-diagram {\n      display: flex;\n      justify-content: center;\n      margin-top: 12px;\n    }\n    .vc-help-toggle {\n      width: 100%;\n      margin-top: 24px;\n      padding: 12px;\n      background: #fff;\n      border: 1px solid #bfdbfe;\n      border-radius: 8px;\n      color: #1d4ed8;\n      font-size: 14px;\n      font-weight: 500;\n      cursor: pointer;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      transition: background 0.2s;\n    }\n    .vc-help-toggle:hover {\n      background: #eff6ff;\n    }\n    .vc-help-icon {\n      color: #93c5fd;\n    }\n    .vc-help-content {\n      display: none;\n      margin-top: 8px;\n      padding: 16px;\n      background: #fff;\n      border: 1px solid #bfdbfe;\n      border-radius: 8px;\n      font-size: 14px;\n      color: #1e3a8a;\n    }\n    .vc-help-content.visible {\n      display: block;\n    }\n    .vc-help-section {\n      margin-bottom: 20px;\n    }\n    .vc-help-section:last-child {\n      margin-bottom: 0;\n    }\n    .vc-help-heading {\n      font-weight: 600;\n      margin-bottom: 8px;\n    }\n    .vc-help-text {\n      color: #1d4ed8;\n      line-height: 1.5;\n    }\n    .vc-help-list {\n      color: #1d4ed8;\n      line-height: 1.6;\n      padding-left: 0;\n      list-style: none;\n    }\n    .vc-help-list li {\n      margin-bottom: 8px;\n    }\n    .vc-help-example {\n      background: #eff6ff;\n      padding: 12px;\n      border-radius: 4px;\n      border: 1px solid #bfdbfe;\n      color: #1e40af;\n      line-height: 1.6;\n    }\n    .vc-help-formulas {\n      font-family: monospace;\n      font-size: 12px;\n      color: #1d4ed8;\n      padding-top: 12px;\n      border-top: 1px solid #eff6ff;\n    }\n  <\/style>\n<\/head>\n<body>\n\n<div class=\"vc-container\">\n  <h1 class=\"vc-title\">M\u00e1y t\u00ednh vect\u01a1<\/h1>\n\n  <div class=\"vc-inputs\">\n    <div class=\"vc-vector-box\">\n      <div class=\"vc-vector-label\">Vect\u01a1 A<\/div>\n      <div class=\"vc-fields\">\n        <div class=\"vc-field\">\n          <label class=\"vc-field-label\">Kh\u1ed1i l\u01b0\u1ee3ng, g<\/label>\n          <input type=\"number\" id=\"vc-mass1\" value=\"10\" step=\"0.1\" min=\"0\">\n        <\/div>\n        <div class=\"vc-field\">\n          <label class=\"vc-field-label\">G\u00f3c, \u0111\u1ed9<\/label>\n          <input type=\"number\" id=\"vc-angle1\" value=\"45\" step=\"1\">\n        <\/div>\n      <\/div>\n      <div class=\"vc-diagram\">\n        <svg id=\"vc-svg1\" width=\"80\" height=\"80\"><\/svg>\n      <\/div>\n    <\/div>\n\n    <div class=\"vc-vector-box\">\n      <div class=\"vc-vector-label\">Vect\u01a1 B<\/div>\n      <div class=\"vc-fields\">\n        <div class=\"vc-field\">\n          <label class=\"vc-field-label\">Kh\u1ed1i l\u01b0\u1ee3ng, g<\/label>\n          <input type=\"number\" id=\"vc-mass2\" value=\"8\" step=\"0.1\" min=\"0\">\n        <\/div>\n        <div class=\"vc-field\">\n          <label class=\"vc-field-label\">G\u00f3c, \u0111\u1ed9<\/label>\n          <input type=\"number\" id=\"vc-angle2\" value=\"180\" step=\"1\">\n        <\/div>\n      <\/div>\n      <div class=\"vc-diagram\">\n        <svg id=\"vc-svg2\" width=\"80\" height=\"80\"><\/svg>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"vc-operations\">\n    <div class=\"vc-operations-label\">Ho\u1ea1t \u0111\u1ed9ng<\/div>\n    <div class=\"vc-ops-grid\">\n      <button class=\"vc-op-btn active\" data-op=\"add\">\n        <div class=\"vc-op-icon\">+<\/div>\n        <div class=\"vc-op-name\">Add<\/div>\n      <\/button>\n      <button class=\"vc-op-btn\" data-op=\"subtract\">\n        <div class=\"vc-op-icon\">\u2212<\/div>\n        <div class=\"vc-op-name\">Tr\u1eeb<\/div>\n      <\/button>\n      <button class=\"vc-op-btn\" data-op=\"opposite\">\n        <div class=\"vc-op-icon\">\u00b1180\u00b0<\/div>\n        <div class=\"vc-op-name\">\u0110\u1ed1i di\u1ec7n<\/div>\n      <\/button>\n      <button class=\"vc-op-btn\" data-op=\"scale\">\n        <div class=\"vc-op-icon\">k\u00d7<\/div>\n        <div class=\"vc-op-name\">T\u1ef7 l\u1ec7<\/div>\n      <\/button>\n      <button class=\"vc-op-btn\" data-op=\"cartesian\">\n        <div class=\"vc-op-icon\">\u2192<\/div>\n        <div class=\"vc-op-name\">X, Y<\/div>\n      <\/button>\n    <\/div>\n    <div class=\"vc-scalar-row\" id=\"vc-scalar-row\">\n      <label>H\u1ec7 s\u1ed1 nh\u00e2n k:<\/label>\n      <input type=\"number\" id=\"vc-scalar\" value=\"2\" step=\"0.1\">\n    <\/div>\n  <\/div>\n\n  <button class=\"vc-calc-btn\" id=\"vc-calc-btn\">T\u00ednh to\u00e1n<\/button>\n\n  <div class=\"vc-result\" id=\"vc-result\">\n    <div class=\"vc-result-label\" id=\"vc-result-label\"><\/div>\n    <div class=\"vc-result-values\" id=\"vc-result-values\"><\/div>\n    <div class=\"vc-result-cartesian\" id=\"vc-result-cartesian\"><\/div>\n    <div class=\"vc-result-note\" id=\"vc-result-note\"><\/div>\n    <div class=\"vc-result-diagram\" id=\"vc-result-diagram\"><\/div>\n  <\/div>\n\n  <button class=\"vc-help-toggle\" id=\"vc-help-toggle\">\n    <span>C\u00e1ch th\u1ee9c ho\u1ea1t \u0111\u1ed9ng c\u1ee7a m\u00e1y t\u00ednh n\u00e0y<\/span>\n    <span class=\"vc-help-icon\" id=\"vc-help-icon\">+<\/span>\n  <\/button>\n\n  <div class=\"vc-help-content\" id=\"vc-help-content\">\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">M\u00e1y t\u00ednh n\u00e0y d\u00f9ng \u0111\u1ec3 l\u00e0m g\u00ec?<\/div>\n      <p class=\"vc-help-text\">\n        M\u00e1y t\u00ednh n\u00e0y th\u1ef1c hi\u1ec7n c\u00e1c ph\u00e9p to\u00e1n vect\u01a1 b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng t\u1ecda \u0111\u1ed9 c\u1ef1c (\u0111\u1ed9 l\u1edbn v\u00e0 g\u00f3c). N\u00f3 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf cho c\u00e1c \u1ee9ng d\u1ee5ng c\u00e2n b\u1eb1ng r\u00f4to, trong \u0111\u00f3 s\u1ef1 m\u1ea5t c\u00e2n b\u1eb1ng \u0111\u01b0\u1ee3c \u0111o b\u1eb1ng kh\u1ed1i l\u01b0\u1ee3ng t\u1ea1i m\u1ed9t v\u1ecb tr\u00ed g\u00f3c c\u1ee5 th\u1ec3. M\u00e1y t\u00ednh n\u00e0y gi\u00fap k\u1ebft h\u1ee3p nhi\u1ec1u ph\u00e9p \u0111o m\u1ea5t c\u00e2n b\u1eb1ng, x\u00e1c \u0111\u1ecbnh v\u1ecb tr\u00ed \u0111\u1eb7t tr\u1ecdng l\u01b0\u1ee3ng hi\u1ec7u ch\u1ec9nh v\u00e0 chuy\u1ec3n \u0111\u1ed5i gi\u1eefa c\u00e1c h\u1ec7 t\u1ecda \u0111\u1ed9.\n      <\/p>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">\u0110\u1ecbnh d\u1ea1ng \u0111\u1ea7u v\u00e0o<\/div>\n      <p class=\"vc-help-text\">\n        M\u1ed7i vect\u01a1 \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh b\u1edfi hai gi\u00e1 tr\u1ecb: kh\u1ed1i l\u01b0\u1ee3ng (t\u00ednh b\u1eb1ng gam ho\u1eb7c \u0111\u01a1n v\u1ecb t\u00f9y \u00fd) v\u00e0 g\u00f3c (t\u00ednh b\u1eb1ng \u0111\u1ed9 t\u1eeb 0 \u0111\u1ebfn 360). G\u00f3c tham chi\u1ebfu 0\u00b0 h\u01b0\u1edbng l\u00ean tr\u00ean (v\u1ecb tr\u00ed 12 gi\u1edd), c\u00e1c g\u00f3c t\u0103ng d\u1ea7n theo chi\u1ec1u kim \u0111\u1ed3ng h\u1ed3. \u0110i\u1ec1u n\u00e0y ph\u00f9 h\u1ee3p v\u1edbi quy \u01b0\u1edbc \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng b\u1edfi h\u1ea7u h\u1ebft c\u00e1c d\u1ee5ng c\u1ee5 c\u00e2n b\u1eb1ng, trong \u0111\u00f3 \u0111i\u1ec3m tham chi\u1ebfu pha th\u01b0\u1eddng \u0111\u01b0\u1ee3c \u0111\u00e1nh d\u1ea5u \u1edf ph\u00eda tr\u00ean c\u1ee7a r\u00f4to.\n      <\/p>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">Ho\u1ea1t \u0111\u1ed9ng<\/div>\n      <ul class=\"vc-help-list\">\n        <li><strong>Ph\u00e9p c\u1ed9ng (+)<\/strong> \u2014 K\u1ebft h\u1ee3p hai vect\u01a1 th\u00e0nh m\u1ed9t vect\u01a1 k\u1ebft qu\u1ea3 duy nh\u1ea5t. S\u1eed d\u1ee5ng ch\u1ee9c n\u0103ng n\u00e0y khi b\u1ea1n c\u1ea7n t\u00ecm t\u1ed5ng \u0111\u1ed9 m\u1ea5t c\u00e2n b\u1eb1ng t\u1eeb nhi\u1ec1u ngu\u1ed3n kh\u00e1c nhau, ho\u1eb7c \u0111\u1ec3 k\u1ebft h\u1ee3p hai tr\u1ecdng s\u1ed1 hi\u1ec7u ch\u1ec9nh th\u00e0nh m\u1ed9t.<\/li>\n        <li><strong>Ph\u00e9p tr\u1eeb (\u2212)<\/strong> \u2014 T\u00ednh to\u00e1n hi\u1ec7u s\u1ed1 gi\u1eefa hai vect\u01a1 (A tr\u1eeb B). H\u1eefu \u00edch \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh s\u1ef1 m\u1ea5t c\u00e2n b\u1eb1ng c\u00f2n l\u1ea1i sau khi hi\u1ec7u ch\u1ec9nh.<\/li>\n        <li><strong>Ng\u01b0\u1ee3c l\u1ea1i (\u00b1180\u00b0)<\/strong> \u2014 C\u1ed9ng th\u00eam 180\u00b0 v\u00e0o g\u00f3c c\u1ee7a vect\u01a1 A. \u0110i\u1ec1u n\u00e0y cho b\u1ea1n v\u1ecb tr\u00ed c\u1ea7n \u0111\u1eb7t tr\u1ecdng s\u1ed1 hi\u1ec7u ch\u1ec9nh.<\/li>\n        <li><strong>Thang \u0111o (k\u00d7)<\/strong> \u2014 Nh\u00e2n kh\u1ed1i l\u01b0\u1ee3ng v\u1edbi h\u1ec7 s\u1ed1 k. C\u1ea7n thi\u1ebft khi t\u00ednh to\u00e1n l\u1ea1i kh\u1ed1i l\u01b0\u1ee3ng hi\u1ec7u ch\u1ec9nh cho b\u00e1n k\u00ednh l\u1eafp \u0111\u1eb7t kh\u00e1c nhau: m2 = m1 \u00d7 (r1 \/ r2).<\/li>\n        <li><strong>H\u1ec7 t\u1ecda \u0111\u1ed9 Descartes (X, Y)<\/strong> \u2014 Chuy\u1ec3n \u0111\u1ed5i t\u1ecda \u0111\u1ed9 c\u1ef1c sang t\u1ecda \u0111\u1ed9 Descartes: X = m \u00d7 cos(g\u00f3c), Y = m \u00d7 sin(g\u00f3c).<\/li>\n      <\/ul>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">\u1ee8ng d\u1ee5ng \u0111i\u1ec3n h\u00ecnh<\/div>\n      <ul class=\"vc-help-list\">\n        <li><strong>C\u00e2n b\u1eb1ng m\u1ed9t m\u1eb7t ph\u1eb3ng:<\/strong> \u0110o \u0111\u1ed9 m\u1ea5t c\u00e2n b\u1eb1ng, s\u1eed d\u1ee5ng ch\u1ee9c n\u0103ng \u0110\u1ed1i di\u1ec7n \u0111\u1ec3 t\u00ecm g\u00f3c hi\u1ec7u ch\u1ec9nh, l\u1eafp th\u00eam tr\u1ecdng l\u01b0\u1ee3ng v\u00e0 ki\u1ec3m tra.<\/li>\n        <li><strong>K\u1ebft h\u1ee3p c\u00e1c tr\u1ecdng l\u01b0\u1ee3ng:<\/strong> Thay th\u1ebf hai qu\u1ea3 c\u00e2n hi\u1ec7u ch\u1ec9nh \u0111\u00e3 l\u1eafp \u0111\u1eb7t b\u1eb1ng m\u1ed9t qu\u1ea3 c\u00e2n t\u01b0\u01a1ng \u0111\u01b0\u01a1ng duy nh\u1ea5t b\u1eb1ng ph\u00e9p c\u1ed9ng.<\/li>\n        <li><strong>Chuy\u1ec3n \u0111\u1ed5i b\u00e1n k\u00ednh:<\/strong> S\u1eed d\u1ee5ng ch\u1ee9c n\u0103ng C\u00e2n \u0111\u1ec3 t\u00ednh to\u00e1n l\u1ea1i kh\u1ed1i l\u01b0\u1ee3ng khi di chuy\u1ec3n tr\u1ecdng l\u01b0\u1ee3ng hi\u1ec7u ch\u1ec9nh \u0111\u1ebfn b\u00e1n k\u00ednh kh\u00e1c.<\/li>\n        <li><strong>Chia nh\u1ecf tr\u1ecdng l\u01b0\u1ee3ng:<\/strong> Khi kh\u00f4ng th\u1ec3 x\u00e1c \u0111\u1ecbnh \u0111\u01b0\u1ee3c g\u00f3c ch\u00ednh x\u00e1c, h\u00e3y ph\u00e2n b\u1ed5 kh\u1ed1i l\u01b0\u1ee3ng hi\u1ec7u ch\u1ec9nh cho hai c\u00e1nh qu\u1ea1t li\u1ec1n k\u1ec1.<\/li>\n      <\/ul>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">V\u00ed d\u1ee5 1: T\u00ecm v\u1ecb tr\u00ed tr\u1ecdng l\u01b0\u1ee3ng hi\u1ec7u ch\u1ec9nh<\/div>\n      <div class=\"vc-help-example\">\n        D\u1ee5ng c\u1ee5 c\u00e2n b\u1eb1ng cho th\u1ea5y s\u1ef1 m\u1ea5t c\u00e2n b\u1eb1ng c\u1ee7a... <strong>15 gram \u1edf 72\u00b0<\/strong>.<br><br>\n        Nh\u1eadp vect\u01a1 A: Kh\u1ed1i l\u01b0\u1ee3ng = 15, G\u00f3c = 72<br>\n        L\u1ef1a ch\u1ecdn <strong>Ng\u01b0\u1ee3c l\u1ea1i (\u00b1180\u00b0)<\/strong> v\u00e0 nh\u1ea5p v\u00e0o T\u00ednh to\u00e1n.<br><br>\n        K\u1ebft qu\u1ea3: <strong>15 gram \u1edf 252\u00b0<\/strong><br><br>\n        L\u1eafp th\u00eam m\u1ed9t qu\u1ea3 t\u1ea1 hi\u1ec7u ch\u1ec9nh 15 gram \u1edf v\u1ecb tr\u00ed 252\u00b0 \u0111\u1ec3 b\u00f9 l\u1ea1i s\u1ef1 m\u1ea5t c\u00e2n b\u1eb1ng.\n      <\/div>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">V\u00ed d\u1ee5 2: K\u1ebft h\u1ee3p hai tr\u1ecdng s\u1ed1 th\u00e0nh m\u1ed9t<\/div>\n      <div class=\"vc-help-example\">\n        Sau m\u1ed9t v\u00e0i l\u1ea7n c\u00e2n b\u1eb1ng, b\u1ea1n \u0111\u00e3 l\u1eafp \u0111\u1eb7t hai qu\u1ea3 c\u00e2n hi\u1ec7u ch\u1ec9nh l\u00ean r\u00f4to: \n        <strong>5 gam \u1edf 30\u00b0<\/strong> and <strong>8 gram \u1edf 75\u00b0<\/strong>. B\u1ea1n mu\u1ed1n thay th\u1ebf ch\u00fang b\u1eb1ng m\u1ed9t qu\u1ea3 t\u1ea1 duy nh\u1ea5t.<br><br>\n        Nh\u1eadp vect\u01a1 A: Kh\u1ed1i l\u01b0\u1ee3ng = 5, G\u00f3c = 30<br>\n        Nh\u1eadp vect\u01a1 B: Kh\u1ed1i l\u01b0\u1ee3ng = 8, G\u00f3c = 75<br>\n        L\u1ef1a ch\u1ecdn <strong>Ph\u00e9p c\u1ed9ng (+)<\/strong> v\u00e0 nh\u1ea5p v\u00e0o T\u00ednh to\u00e1n.<br><br>\n        K\u1ebft qu\u1ea3: <strong>12,05 gam \u1edf 57,9\u00b0<\/strong><br><br>\n        Th\u00e1o c\u1ea3 hai qu\u1ea3 c\u00e2n v\u00e0 l\u1eafp m\u1ed9t qu\u1ea3 c\u00e2n 12 gram \u1edf g\u00f3c kho\u1ea3ng 58\u00b0. Qu\u1ea3 c\u00e2n \u0111\u01a1n n\u00e0y t\u1ea1o ra hi\u1ec7u \u1ee9ng c\u00e2n b\u1eb1ng t\u01b0\u01a1ng t\u1ef1 nh\u01b0 hai qu\u1ea3 c\u00e2n ban \u0111\u1ea7u k\u1ebft h\u1ee3p.\n      <\/div>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">V\u00ed d\u1ee5 3: Thay \u0111\u1ed5i b\u00e1n k\u00ednh hi\u1ec7u ch\u1ec9nh<\/div>\n      <div class=\"vc-help-example\">\n        H\u1ec7 th\u1ed1ng c\u00e2n b\u1eb1ng \u0111\u00e3 t\u00ednh to\u00e1n m\u1ed9t s\u1ef1 \u0111i\u1ec1u ch\u1ec9nh l\u00e0 <strong>20 gram<\/strong> v\u1edbi b\u00e1n k\u00ednh <strong>100 mm<\/strong>. Tuy nhi\u00ean, b\u1ea1n c\u1ea7n l\u1eafp \u0111\u1eb7t qu\u1ea3 c\u00e2n \u1edf b\u00e1n k\u00ednh... <strong>80 mm<\/strong> Do h\u1ea1n ch\u1ebf v\u1ec1 kh\u00f4ng gian.<br><br>\n        V\u00ec hi\u1ec7u \u1ee9ng c\u00e2n b\u1eb1ng ph\u1ee5 thu\u1ed9c v\u00e0o t\u00edch c\u1ee7a kh\u1ed1i l\u01b0\u1ee3ng v\u00e0 b\u00e1n k\u00ednh (m \u00d7 r = h\u1eb1ng s\u1ed1), b\u1ea1n c\u1ea7n t\u00ednh l\u1ea1i: k = 100 \/ 80 = 1,25<br><br>\n        Nh\u1eadp vect\u01a1 A: Kh\u1ed1i l\u01b0\u1ee3ng = 20, G\u00f3c = (g\u00f3c hi\u1ec7u ch\u1ec9nh c\u1ee7a b\u1ea1n)<br>\n        \u0110\u1eb7t h\u1ec7 s\u1ed1 nh\u00e2n k = 1,25<br>\n        L\u1ef1a ch\u1ecdn <strong>Thang \u0111o (k\u00d7)<\/strong> v\u00e0 nh\u1ea5p v\u00e0o T\u00ednh to\u00e1n.<br><br>\n        K\u1ebft qu\u1ea3: <strong>25 gram<\/strong> \u1edf c\u00f9ng m\u1ed9t g\u00f3c<br><br>\n        V\u1edbi b\u00e1n k\u00ednh nh\u1ecf h\u01a1n 80 mm, b\u1ea1n c\u1ea7n 25 gram thay v\u00ec 20 gram \u0111\u1ec3 \u0111\u1ea1t \u0111\u01b0\u1ee3c hi\u1ec7u ch\u1ec9nh t\u01b0\u01a1ng t\u1ef1.\n      <\/div>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">V\u00ed d\u1ee5 4: Ph\u00e2n b\u1ed5 tr\u1ecdng l\u01b0\u1ee3ng gi\u1eefa hai l\u01b0\u1ee1i dao<\/div>\n      <div class=\"vc-help-example\">\n        S\u1ef1 \u0111i\u1ec1u ch\u1ec9nh c\u1ea7n thi\u1ebft l\u00e0 <strong>10 gam \u1edf 110\u00b0<\/strong>, nh\u01b0ng b\u1ea1n ch\u1ec9 c\u00f3 th\u1ec3 g\u1eafn t\u1ea1 v\u00e0o c\u00e1nh qu\u1ea1t \u1edf v\u1ecb tr\u00ed <strong>90\u00b0<\/strong> and <strong>126\u00b0<\/strong> (5 c\u00e1nh qu\u1ea1t, c\u00e1ch nhau 36\u00b0).<br><br>\n        G\u00f3c hi\u1ec7u ch\u1ec9nh 110\u00b0 n\u1eb1m gi\u1eefa hai l\u01b0\u1ee1i dao n\u00e0y. \u0110\u1ec3 bi\u1ebft tr\u1ecdng l\u01b0\u1ee3ng c\u1ee7a m\u1ed7i l\u01b0\u1ee1i dao l\u00e0 bao nhi\u00eau, \n        s\u1eed d\u1ee5ng ph\u00e9p chia l\u01b0\u1ee3ng gi\u00e1c ch\u00ednh x\u00e1c (s\u1ef1 ph\u00e2n chia t\u1ef7 l\u1ec7 \u0111\u01a1n gi\u1ea3n c\u1ee7a kh\u1ed1i l\u01b0\u1ee3ng theo g\u00f3c ch\u1ec9 l\u00e0 m\u1ed9t ph\u00e9p t\u00ednh g\u1ea7n \u0111\u00fang v\u00e0 \u0111i\u1ec1u ch\u1ec9nh d\u01b0\u1edbi m\u1ee9c kh\u1ed1i l\u01b0\u1ee3ng c\u00e2n b\u1eb1ng v\u00e0i ph\u1ea7n tr\u0103m):<br><br>\n        Kho\u1ea3ng c\u00e1ch g\u00f3c \u0111\u1ebfn c\u00e1nh qu\u1ea1t \u1edf 90\u00b0: \u03b1 = 110\u00b0 \u2212 90\u00b0 = 20\u00b0<br>\n        Kho\u1ea3ng c\u00e1ch g\u00f3c \u0111\u1ebfn c\u00e1nh qu\u1ea1t \u1edf 126\u00b0: \u03b2 = 126\u00b0 \u2212 110\u00b0 = 16\u00b0<br>\n        G\u00f3c gi\u1eefa c\u00e1c c\u00e1nh: \u03b1 + \u03b2 = 36\u00b0<br><br>\n        Kh\u1ed1i l\u01b0\u1ee3ng tr\u00ean c\u00e1nh qu\u1ea1t 90\u00b0: 10 \u00d7 sin(16\u00b0) \/ sin(36\u00b0) = <strong>4.69 g<\/strong><br>\n        Kh\u1ed1i l\u01b0\u1ee3ng tr\u00ean c\u00e1nh qu\u1ea1t 126\u00b0: 10 \u00d7 sin(20\u00b0) \/ sin(36\u00b0) = <strong>5.82 g<\/strong><br><br>\n        \u0110\u1ec3 ki\u1ec3m ch\u1ee9ng, h\u00e3y s\u1eed d\u1ee5ng ph\u00e9p c\u1ed9ng:<br>\n        Vector A: Kh\u1ed1i l\u01b0\u1ee3ng = 4,69, G\u00f3c = 90<br>\n        Vector B: Kh\u1ed1i l\u01b0\u1ee3ng = 5,82, G\u00f3c = 126<br>\n        K\u1ebft qu\u1ea3: <strong>10 gam \u1edf 110\u00b0<\/strong> \u2014 ph\u00f9 h\u1ee3p v\u1edbi y\u00eau c\u1ea7u ban \u0111\u1ea7u.\n      <\/div>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-formulas\">\n        <div class=\"vc-help-heading\">C\u00f4ng th\u1ee9c<\/div>\n        Chuy\u1ec3n \u0111\u1ed5i t\u1eeb t\u1ecda \u0111\u1ed9 c\u1ef1c sang t\u1ecda \u0111\u1ed9 Descartes: X = m \u00d7 cos(a), Y = m \u00d7 sin(a)<br>\n        Chuy\u1ec3n \u0111\u1ed5i t\u1eeb h\u1ec7 t\u1ecda \u0111\u1ed9 Descartes sang h\u1ec7 t\u1ecda \u0111\u1ed9 c\u1ef1c: m = sqrt(X\u00b2 + Y\u00b2), a = atan2(Y, X)<br>\n        Hi\u1ec7u ch\u1ec9nh b\u00e1n k\u00ednh: m2 = m1 \u00d7 (r1 \/ r2)<br>\n        Chia kh\u1ed1i l\u01b0\u1ee3ng (ch\u00ednh x\u00e1c): m1 = M \u00d7 sin(\u03b2) \/ sin(\u03b1 + \u03b2), m2 = M \u00d7 sin(\u03b1) \/ sin(\u03b1 + \u03b2), trong \u0111\u00f3 \u03b1 l\u00e0 kho\u1ea3ng c\u00e1ch g\u00f3c t\u1eeb g\u00f3c hi\u1ec7u ch\u1ec9nh \u0111\u1ebfn c\u00e1nh qu\u1ea1t 1 v\u00e0 \u03b2 l\u00e0 kho\u1ea3ng c\u00e1ch g\u00f3c \u0111\u1ebfn c\u00e1nh qu\u1ea1t 2\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  let operation = 'add';\n\n  const mass1 = document.getElementById('vc-mass1');\n  const angle1 = document.getElementById('vc-angle1');\n  const mass2 = document.getElementById('vc-mass2');\n  const angle2 = document.getElementById('vc-angle2');\n  const scalarInput = document.getElementById('vc-scalar');\n  const scalarRow = document.getElementById('vc-scalar-row');\n  const calcBtn = document.getElementById('vc-calc-btn');\n  const resultDiv = document.getElementById('vc-result');\n  const resultLabel = document.getElementById('vc-result-label');\n  const resultValues = document.getElementById('vc-result-values');\n  const resultCartesian = document.getElementById('vc-result-cartesian');\n  const resultNote = document.getElementById('vc-result-note');\n  const resultDiagram = document.getElementById('vc-result-diagram');\n  const helpToggle = document.getElementById('vc-help-toggle');\n  const helpContent = document.getElementById('vc-help-content');\n  const helpIcon = document.getElementById('vc-help-icon');\n  const opBtns = document.querySelectorAll('.vc-op-btn');\n\n  function toCartesian(m, angleDeg) {\n    const rad = angleDeg * Math.PI \/ 180;\n    return { x: m * Math.cos(rad), y: m * Math.sin(rad) };\n  }\n\n  function toPolar(x, y) {\n    const m = Math.sqrt(x * x + y * y);\n    let a = Math.atan2(y, x) * 180 \/ Math.PI;\n    if (a < 0) a += 360;\n    return { mass: m, angle: a };\n  }\n\n  function formatNum(n, dec) {\n    dec = dec || 2;\n    if (Math.abs(n) < 0.0001) return '0';\n    return parseFloat(n.toFixed(dec)).toString();\n  }\n\n  function normalizeAngle(a) {\n    while (a < 0) a += 360;\n    while (a >= 360) a -= 360;\n    return a;\n  }\n\n  function drawVector(svgId, m, a, color) {\n    const svg = document.getElementById(svgId);\n    const cx = 40, cy = 40, r = 25;\n    const rad = (a - 90) * Math.PI \/ 180;\n    const ex = cx + r * Math.cos(rad);\n    const ey = cy + r * Math.sin(rad);\n    \n    svg.innerHTML = `\n      <circle cx=\"${cx}\" cy=\"${cy}\" r=\"30\" fill=\"none\" stroke=\"#bfdbfe\" stroke-width=\"1\"\/>\n      <line x1=\"${cx}\" y1=\"${cy}\" x2=\"${cx}\" y2=\"10\" stroke=\"#93c5fd\" stroke-width=\"1\"\/>\n      <text x=\"43\" y=\"9\" font-size=\"8\" fill=\"#3b82f6\">0<\/text>\n      ${m > 0 ? `<line x1=\"${cx}\" y1=\"${cy}\" x2=\"${ex}\" y2=\"${ey}\" stroke=\"${color}\" stroke-width=\"2\"\/>\n      <circle cx=\"${ex}\" cy=\"${ey}\" r=\"3\" fill=\"${color}\"\/>` : ''}\n      <circle cx=\"${cx}\" cy=\"${cy}\" r=\"2\" fill=\"#1e3a8a\"\/>\n    `;\n  }\n\n  function drawResultVector(m, a) {\n    const cx = 50, cy = 50, r = 35;\n    const rad = (a - 90) * Math.PI \/ 180;\n    const ex = cx + r * Math.cos(rad);\n    const ey = cy + r * Math.sin(rad);\n    \n    resultDiagram.innerHTML = `\n      <svg width=\"100\" height=\"100\" style=\"background:#eff6ff;border-radius:4px;\">\n        <circle cx=\"${cx}\" cy=\"${cy}\" r=\"40\" fill=\"none\" stroke=\"#bfdbfe\" stroke-width=\"1\"\/>\n        <line x1=\"${cx}\" y1=\"${cy}\" x2=\"${cx}\" y2=\"10\" stroke=\"#93c5fd\" stroke-width=\"1\"\/>\n        <line x1=\"${cx}\" y1=\"${cy}\" x2=\"90\" y2=\"${cy}\" stroke=\"#93c5fd\" stroke-width=\"1\"\/>\n        <text x=\"52\" y=\"8\" font-size=\"8\" fill=\"#3b82f6\">0<\/text>\n        <text x=\"92\" y=\"53\" font-size=\"8\" fill=\"#3b82f6\">90<\/text>\n        ${m > 0 ? `<line x1=\"${cx}\" y1=\"${cy}\" x2=\"${ex}\" y2=\"${ey}\" stroke=\"#1d4ed8\" stroke-width=\"2\"\/>\n        <circle cx=\"${ex}\" cy=\"${ey}\" r=\"4\" fill=\"#1d4ed8\"\/>` : ''}\n        <circle cx=\"${cx}\" cy=\"${cy}\" r=\"2\" fill=\"#1e3a8a\"\/>\n      <\/svg>\n    `;\n  }\n\n  function updateDiagrams() {\n    const m1 = parseFloat(mass1.value) || 0;\n    const a1 = normalizeAngle(parseFloat(angle1.value) || 0);\n    const m2 = parseFloat(mass2.value) || 0;\n    const a2 = normalizeAngle(parseFloat(angle2.value) || 0);\n    drawVector('vc-svg1', m1, a1, '#1d4ed8');\n    drawVector('vc-svg2', m2, a2, '#1d4ed8');\n  }\n\n  function calculate() {\n    const m1 = parseFloat(mass1.value) || 0;\n    const a1 = normalizeAngle(parseFloat(angle1.value) || 0);\n    const m2 = parseFloat(mass2.value) || 0;\n    const a2 = normalizeAngle(parseFloat(angle2.value) || 0);\n    const k = parseFloat(scalarInput.value) || 1;\n\n    const c1 = toCartesian(m1, a1);\n    const c2 = toCartesian(m2, a2);\n\n    let label = '', mass = 0, angle = 0, cart = null, note = '', isCartesian = false;\n\n    switch (operation) {\n      case 'add':\n        const sumX = c1.x + c2.x;\n        const sumY = c1.y + c2.y;\n        const sumP = toPolar(sumX, sumY);\n        label = 'Sum of vectors A + B';\n        mass = sumP.mass;\n        angle = sumP.angle;\n        cart = { x: sumX, y: sumY };\n        break;\n      case 'subtract':\n        const diffX = c1.x - c2.x;\n        const diffY = c1.y - c2.y;\n        const diffP = toPolar(diffX, diffY);\n        label = 'Difference A \u2212 B';\n        mass = diffP.mass;\n        angle = diffP.angle;\n        cart = { x: diffX, y: diffY };\n        break;\n      case 'opposite':\n        label = 'Correction weight position for vector A';\n        mass = m1;\n        angle = normalizeAngle(a1 + 180);\n        note = 'Place the correction mass at this angle to compensate for imbalance';\n        break;\n      case 'scale':\n        label = 'Vector A \u00d7 ' + k;\n        mass = m1 * k;\n        angle = a1;\n        break;\n      case 'cartesian':\n        label = 'Cartesian coordinates of vector A';\n        isCartesian = true;\n        cart = c1;\n        break;\n    }\n\n    resultDiv.classList.add('visible');\n    resultLabel.textContent = label;\n\n    if (isCartesian) {\n      resultValues.innerHTML = `\n        <div class=\"vc-result-item\">\n          <div class=\"vc-result-num\">X = ${formatNum(cart.x)}<\/div>\n        <\/div>\n        <div class=\"vc-result-item\">\n          <div class=\"vc-result-num\">Y = ${formatNum(cart.y)}<\/div>\n        <\/div>\n      `;\n      resultCartesian.style.display = 'none';\n      resultNote.style.display = 'none';\n      resultDiagram.innerHTML = '';\n    } else {\n      resultValues.innerHTML = `\n        <div class=\"vc-result-item\">\n          <div class=\"vc-result-num\">${formatNum(mass)}<\/div>\n          <div class=\"vc-result-unit\">grams<\/div>\n        <\/div>\n        <div class=\"vc-result-sep\">\/<\/div>\n        <div class=\"vc-result-item\">\n          <div class=\"vc-result-num\">${formatNum(angle, 1)}\u00b0<\/div>\n          <div class=\"vc-result-unit\">angle<\/div>\n        <\/div>\n      `;\n\n      if (cart) {\n        resultCartesian.textContent = 'X = ' + formatNum(cart.x) + ', Y = ' + formatNum(cart.y);\n        resultCartesian.style.display = 'block';\n      } else {\n        resultCartesian.style.display = 'none';\n      }\n\n      if (note) {\n        resultNote.textContent = note;\n        resultNote.style.display = 'block';\n      } else {\n        resultNote.style.display = 'none';\n      }\n\n      drawResultVector(mass, angle);\n    }\n  }\n\n  opBtns.forEach(function(btn) {\n    btn.addEventListener('click', function() {\n      opBtns.forEach(function(b) { b.classList.remove('active'); });\n      btn.classList.add('active');\n      operation = btn.getAttribute('data-op');\n      if (operation === 'scale') {\n        scalarRow.classList.add('visible');\n      } else {\n        scalarRow.classList.remove('visible');\n      }\n    });\n  });\n\n  calcBtn.addEventListener('click', calculate);\n\n  helpToggle.addEventListener('click', function() {\n    if (helpContent.classList.contains('visible')) {\n      helpContent.classList.remove('visible');\n      helpIcon.textContent = '+';\n    } else {\n      helpContent.classList.add('visible');\n      helpIcon.textContent = '\u2212';\n    }\n  });\n\n  mass1.addEventListener('input', updateDiagrams);\n  angle1.addEventListener('input', updateDiagrams);\n  mass2.addEventListener('input', updateDiagrams);\n  angle2.addEventListener('input', updateDiagrams);\n\n  updateDiagrams();\n})();\n<\/script>\n\n<\/body>\n<\/html><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Vector Calculator Vector Calculator Vector A Mass, g Angle, deg Vector B Mass, g Angle, deg Operation + Add \u2212 Subtract \u00b1180\u00b0 Opposite k\u00d7 Scale \u2192 X, Y Multiplier k: Calculate How this calculator works + What is this calculator for? This calculator performs vector operations using polar coordinates (magnitude [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":20918,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ai_generated_summary":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-20916","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/vi\/wp-json\/wp\/v2\/posts\/20916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/vi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vibromera.eu\/vi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vibromera.eu\/vi\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/vibromera.eu\/vi\/wp-json\/wp\/v2\/comments?post=20916"}],"version-history":[{"count":5,"href":"https:\/\/vibromera.eu\/vi\/wp-json\/wp\/v2\/posts\/20916\/revisions"}],"predecessor-version":[{"id":20927,"href":"https:\/\/vibromera.eu\/vi\/wp-json\/wp\/v2\/posts\/20916\/revisions\/20927"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vibromera.eu\/vi\/wp-json\/wp\/v2\/media\/20918"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/vi\/wp-json\/wp\/v2\/media?parent=20916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/vi\/wp-json\/wp\/v2\/categories?post=20916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/vi\/wp-json\/wp\/v2\/tags?post=20916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}