{"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\/cs\/uncategorized\/online-vector-calculator-for-rotor-balancing\/","title":{"rendered":"Online vektorov\u00e1 kalkula\u010dka pro vyva\u017eov\u00e1n\u00ed rotoru"},"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\">Vektorov\u00e1 kalkula\u010dka<\/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\">Vektorov\u00e1 kalkula\u010dka<\/h1>\n\n  <div class=\"vc-inputs\">\n    <div class=\"vc-vector-box\">\n      <div class=\"vc-vector-label\">Vektor A<\/div>\n      <div class=\"vc-fields\">\n        <div class=\"vc-field\">\n          <label class=\"vc-field-label\">Hmotnost, 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\">\u00dahel, stupn\u011b<\/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\">Vektor B<\/div>\n      <div class=\"vc-fields\">\n        <div class=\"vc-field\">\n          <label class=\"vc-field-label\">Hmotnost, 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\">\u00dahel, stupn\u011b<\/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\">Operace<\/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\">P\u0159idat<\/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\">Od\u010d\u00edtat<\/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\">Naproti<\/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\">V\u00e1ha<\/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>N\u00e1sobitel 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\">V\u00fdpo\u010det<\/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>Jak tato kalkula\u010dka funguje<\/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\">K \u010demu je tato kalkula\u010dka?<\/div>\n      <p class=\"vc-help-text\">\n        Tato kalkula\u010dka prov\u00e1d\u00ed vektorov\u00e9 operace s pou\u017eit\u00edm pol\u00e1rn\u00edch sou\u0159adnic (velikost a \u00fahel). Je ur\u010dena pro aplikace vyva\u017eov\u00e1n\u00ed rotoru, kde se nevyv\u00e1\u017eenost m\u011b\u0159\u00ed jako hmotnost v ur\u010dit\u00e9 \u00fahlov\u00e9 poloze. Kalkula\u010dka pom\u00e1h\u00e1 kombinovat v\u00edce nam\u011b\u0159en\u00fdch hodnot nevyv\u00e1\u017eenosti, ur\u010dovat um\u00edst\u011bn\u00ed korek\u010dn\u00edho z\u00e1va\u017e\u00ed a p\u0159ev\u00e1d\u011bt mezi sou\u0159adnicov\u00fdmi syst\u00e9my.\n      <\/p>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">Vstupn\u00ed form\u00e1t<\/div>\n      <p class=\"vc-help-text\">\n        Ka\u017ed\u00fd vektor je definov\u00e1n dv\u011bma hodnotami: hmotnost\u00ed (v gramech nebo libovoln\u00fdch jednotk\u00e1ch) a \u00fahlem (ve stupn\u00edch od 0 do 360). Referen\u010dn\u00ed \u00fahel 0\u00b0 sm\u011b\u0159uje nahoru (poloha 12 hodin), p\u0159i\u010dem\u017e \u00fahly se zv\u011bt\u0161uj\u00ed ve sm\u011bru hodinov\u00fdch ru\u010di\u010dek. To odpov\u00edd\u00e1 konvenci pou\u017e\u00edvan\u00e9 v\u011bt\u0161inou vyva\u017eovac\u00edch p\u0159\u00edstroj\u016f, kde je f\u00e1zov\u00e1 reference obvykle vyzna\u010dena na horn\u00ed stran\u011b rotoru.\n      <\/p>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">Provoz<\/div>\n      <ul class=\"vc-help-list\">\n        <li><strong>S\u010d\u00edt\u00e1n\u00ed (+)<\/strong> \u2014 Spoj\u00ed dva vektory do jednoho v\u00fdsledn\u00e9ho vektoru. Pou\u017eijte to, kdy\u017e pot\u0159ebujete naj\u00edt celkovou nevyv\u00e1\u017eenost z v\u00edce zdroj\u016f nebo slou\u010dit dv\u011b korek\u010dn\u00ed v\u00e1hy do jedn\u00e9.<\/li>\n        <li><strong>Od\u010d\u00edt\u00e1n\u00ed (\u2212)<\/strong> \u2014 Vypo\u010d\u00edt\u00e1 rozd\u00edl mezi dv\u011bma vektory (A m\u00ednus B). U\u017eite\u010dn\u00e9 pro ur\u010den\u00ed zbytkov\u00e9 nevyv\u00e1\u017eenosti po korekci.<\/li>\n        <li><strong>Opa\u010dn\u00fd (\u00b1180\u00b0)<\/strong> \u2014 P\u0159i\u010dte 180\u00b0 k \u00fahlu vektoru A. T\u00edm z\u00edsk\u00e1te pozici, kam by m\u011blo b\u00fdt um\u00edst\u011bno korek\u010dn\u00ed z\u00e1va\u017e\u00ed.<\/li>\n        <li><strong>M\u011b\u0159\u00edtko (k\u00d7)<\/strong> \u2014 Vyn\u00e1sob\u00ed hmotnost koeficientem k. Nezbytn\u00e9 p\u0159i p\u0159epo\u010d\u00edt\u00e1n\u00ed korek\u010dn\u00ed hmotnosti pro jin\u00fd mont\u00e1\u017en\u00ed polom\u011br: m2 = m1 \u00d7 (r1 \/ r2).<\/li>\n        <li><strong>Kart\u00e9zsk\u00fd (X, Y)<\/strong> \u2014 P\u0159ev\u00e1d\u00ed pol\u00e1rn\u00ed sou\u0159adnice na kart\u00e9zsk\u00e9: X = m \u00d7 cos(\u00fahel), Y = m \u00d7 sin(\u00fahel).<\/li>\n      <\/ul>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">Typick\u00e9 aplikace<\/div>\n      <ul class=\"vc-help-list\">\n        <li><strong>Vyva\u017eov\u00e1n\u00ed v jedn\u00e9 rovin\u011b:<\/strong> Zm\u011b\u0159te nevyv\u00e1\u017eenost, pou\u017eijte funkci Opa\u010dn\u00e1 k nalezen\u00ed korek\u010dn\u00edho \u00fahlu, nainstalujte z\u00e1va\u017e\u00ed a ov\u011b\u0159te.<\/li>\n        <li><strong>Kombinace vah:<\/strong> Nahra\u010fte dv\u011b instalovan\u00e1 korek\u010dn\u00ed z\u00e1va\u017e\u00ed jedn\u00edm ekvivalentn\u00edm z\u00e1va\u017e\u00edm pomoc\u00ed s\u010d\u00edt\u00e1n\u00ed.<\/li>\n        <li><strong>P\u0159evod polom\u011bru:<\/strong> P\u0159i p\u0159esunu korek\u010dn\u00edho z\u00e1va\u017e\u00ed na jin\u00fd polom\u011br pou\u017eijte M\u011b\u0159\u00edtko k p\u0159epo\u010dtu hmotnosti.<\/li>\n        <li><strong>Rozd\u011blen\u00e9 v\u00e1hy:<\/strong> Pokud nen\u00ed mo\u017en\u00e9 dos\u00e1hnout p\u0159esn\u00e9ho \u00fahlu, rozd\u011blte korek\u010dn\u00ed hmotnost na dva sousedn\u00ed listy.<\/li>\n      <\/ul>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">P\u0159\u00edklad 1: Nalezen\u00ed polohy korek\u010dn\u00edho z\u00e1va\u017e\u00ed<\/div>\n      <div class=\"vc-help-example\">\n        Vyva\u017eovac\u00ed p\u0159\u00edstroj ukazuje nerovnov\u00e1hu <strong>15 gram\u016f p\u0159i 72 \u00b0<\/strong>.<br><br>\n        Zadejte vektor A: Hmotnost = 15, \u00dahel = 72<br>\n        Vybrat <strong>Opa\u010dn\u00fd (\u00b1180\u00b0)<\/strong> a klikn\u011bte na Vypo\u010d\u00edtat.<br><br>\n        V\u00fdsledek: <strong>15 gram\u016f p\u0159i 252 \u00b0<\/strong><br><br>\n        Pro kompenzaci nerovnov\u00e1hy nainstalujte 15gramov\u00e9 korek\u010dn\u00ed z\u00e1va\u017e\u00ed v poloze 252\u00b0.\n      <\/div>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">P\u0159\u00edklad 2: Slou\u010den\u00ed dvou z\u00e1va\u017e\u00ed do jedn\u00e9<\/div>\n      <div class=\"vc-help-example\">\n        Po n\u011bkolika iterac\u00edch vyva\u017eov\u00e1n\u00ed m\u00e1te na rotoru nainstalov\u00e1na dv\u011b korek\u010dn\u00ed z\u00e1va\u017e\u00ed: \n        <strong>5 gram\u016f p\u0159i 30\u00b0<\/strong> a <strong>8 gram\u016f p\u0159i 75 \u00b0<\/strong>Chcete je nahradit jedn\u00edm z\u00e1va\u017e\u00ed.<br><br>\n        Zadejte vektor A: Hmotnost = 5, \u00dahel = 30<br>\n        Zadejte vektor B: Hmotnost = 8, \u00dahel = 75<br>\n        Vybrat <strong>S\u010d\u00edt\u00e1n\u00ed (+)<\/strong> a klikn\u011bte na Vypo\u010d\u00edtat.<br><br>\n        V\u00fdsledek: <strong>12,05 gram\u016f p\u0159i 57,9\u00b0<\/strong><br><br>\n        Odstra\u0148te ob\u011b z\u00e1va\u017e\u00ed a nainstalujte jedno 12gramov\u00e9 z\u00e1va\u017e\u00ed pod \u00fahlem p\u0159ibli\u017en\u011b 58\u00b0. Toto samostatn\u00e9 z\u00e1va\u017e\u00ed m\u00e1 stejn\u00fd vyva\u017eovac\u00ed \u00fa\u010dinek jako kombinace p\u016fvodn\u00edch dvou z\u00e1va\u017e\u00ed.\n      <\/div>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">P\u0159\u00edklad 3: Zm\u011bna korek\u010dn\u00edho polom\u011bru<\/div>\n      <div class=\"vc-help-example\">\n        Vyva\u017eovac\u00ed syst\u00e9m vypo\u010d\u00edtal korekci <strong>20 gram\u016f<\/strong> pro polom\u011br <strong>100 mm<\/strong>. Z\u00e1va\u017e\u00ed je v\u0161ak nutn\u00e9 um\u00edstit v polom\u011bru <strong>80 mm<\/strong> kv\u016fli prostorov\u00fdm omezen\u00edm.<br><br>\n        Proto\u017ee vyva\u017eovac\u00ed \u00fa\u010dinek z\u00e1vis\u00ed na sou\u010dinu hmotnosti a polom\u011bru (m \u00d7 r = const), je t\u0159eba p\u0159epo\u010d\u00edtat: k = 100 \/ 80 = 1,25<br><br>\n        Zadejte vektor A: Hmotnost = 20, \u00dahel = (v\u00e1\u0161 korek\u010dn\u00ed \u00fahel)<br>\n        Nastavte multiplik\u00e1tor k = 1,25<br>\n        Vybrat <strong>M\u011b\u0159\u00edtko (k\u00d7)<\/strong> a klikn\u011bte na Vypo\u010d\u00edtat.<br><br>\n        V\u00fdsledek: <strong>25 gram\u016f<\/strong> ve stejn\u00e9m \u00fahlu<br><br>\n        P\u0159i men\u0161\u00edm polom\u011bru 80 mm pot\u0159ebujete k dosa\u017een\u00ed stejn\u00e9 korekce 25 gram\u016f m\u00edsto 20 gram\u016f.\n      <\/div>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-heading\">P\u0159\u00edklad 4: Rozd\u011blen\u00ed hmotnosti mezi dv\u011b \u010depele<\/div>\n      <div class=\"vc-help-example\">\n        Po\u017eadovan\u00e1 korekce je <strong>10 gram\u016f p\u0159i 110 \u00b0<\/strong>, ale z\u00e1va\u017e\u00ed m\u016f\u017eete p\u0159ipevnit pouze na lopatky ventil\u00e1toru um\u00edst\u011bn\u00e9 na <strong>90\u00b0<\/strong> a <strong>126\u00b0<\/strong> (5 lopatek, od sebe vzd\u00e1len\u00fdch 36\u00b0).<br><br>\n        Korek\u010dn\u00ed \u00fahel 110\u00b0 le\u017e\u00ed mezi t\u011bmito dv\u011bma lopatkami. Chcete-li ur\u010dit, jak\u00e1 hmotnost p\u0159ipad\u00e1 na ka\u017edou lopatku, \n        pou\u017eijte p\u0159esn\u00e9 trigonometrick\u00e9 rozd\u011blen\u00ed (jednoduch\u00e9 pom\u011brn\u00e9 rozd\u011blen\u00ed hmotnosti podle \u00fahlu je pouze aproximace a podkoriguje vyva\u017eovac\u00ed hmotnost o n\u011bkolik procent):<br><br>\n        Angular distance to the blade at 90\u00b0: \u03b1 = 110\u00b0 \u2212 90\u00b0 = 20\u00b0<br>\n        Angular distance to the blade at 126\u00b0: \u03b2 = 126\u00b0 \u2212 110\u00b0 = 16\u00b0<br>\n        \u00dahel mezi lopatkami: \u03b1 + \u03b2 = 36\u00b0<br><br>\n        Weight on 90\u00b0 blade: 10 \u00d7 sin(16\u00b0) \/ sin(36\u00b0) = <strong>4.69 g<\/strong><br>\n        Weight on 126\u00b0 blade: 10 \u00d7 sin(20\u00b0) \/ sin(36\u00b0) = <strong>5.82 g<\/strong><br><br>\n        Pro ov\u011b\u0159en\u00ed pou\u017eijte s\u010d\u00edt\u00e1n\u00ed:<br>\n        Vector A: Mass = 4.69, Angle = 90<br>\n        Vector B: Mass = 5.82, Angle = 126<br>\n        V\u00fdsledek: <strong>10 gram\u016f p\u0159i 110 \u00b0<\/strong> \u2014 odpov\u00edd\u00e1 p\u016fvodn\u00edmu po\u017eadavku.\n      <\/div>\n    <\/div>\n\n    <div class=\"vc-help-section\">\n      <div class=\"vc-help-formulas\">\n        <div class=\"vc-help-heading\">Vzorce<\/div>\n        Pol\u00e1rn\u00ed a\u017e kart\u00e9zsk\u00fd syst\u00e9m: X = m \u00d7 cos(a), Y = m \u00d7 sin(a)<br>\n        Kart\u00e9zsk\u00fd do pol\u00e1rn\u00edho: m = sqrt(X\u00b2 + Y\u00b2), a = atan2(Y, X)<br>\n        Korekce polom\u011bru: m2 = m1 \u00d7 (r1 \/ r2)<br>\n        Rozd\u011blen\u00e1 z\u00e1va\u017e\u00ed (p\u0159esn\u011b): m1 = M \u00d7 sin(\u03b2) \/ sin(\u03b1 + \u03b2), m2 = M \u00d7 sin(\u03b1) \/ sin(\u03b1 + \u03b2), kde \u03b1 je \u00fahlov\u00e1 vzd\u00e1lenost od korek\u010dn\u00edho \u00fahlu k lopatce 1 a \u03b2 je \u00fahlov\u00e1 vzd\u00e1lenost k lopatce 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\/cs\/wp-json\/wp\/v2\/posts\/20916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vibromera.eu\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vibromera.eu\/cs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/vibromera.eu\/cs\/wp-json\/wp\/v2\/comments?post=20916"}],"version-history":[{"count":5,"href":"https:\/\/vibromera.eu\/cs\/wp-json\/wp\/v2\/posts\/20916\/revisions"}],"predecessor-version":[{"id":20927,"href":"https:\/\/vibromera.eu\/cs\/wp-json\/wp\/v2\/posts\/20916\/revisions\/20927"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vibromera.eu\/cs\/wp-json\/wp\/v2\/media\/20918"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/cs\/wp-json\/wp\/v2\/media?parent=20916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/cs\/wp-json\/wp\/v2\/categories?post=20916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/cs\/wp-json\/wp\/v2\/tags?post=20916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}