{"id":78869,"date":"2026-03-12T14:55:52","date_gmt":"2026-03-12T13:55:52","guid":{"rendered":"https:\/\/edzokepzes.hunvolley.hu\/?page_id=78869"},"modified":"2026-03-12T20:13:29","modified_gmt":"2026-03-12T19:13:29","slug":"taktikai-tabla-tervezo","status":"publish","type":"page","link":"https:\/\/edzokepzes.hunvolley.hu\/index.php\/taktikai-tabla-tervezo\/","title":{"rendered":"Taktikai t\u00e1bla tervez\u0151"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<!-- ============================================================<!-- [et_pb_line_break_holder] -->  TAKTIKAI T\u00c1BLA &#8211; Divi Code Module<!-- [et_pb_line_break_holder] -->  Cser\u00e9ld le az IMG_BASE \u00e9rt\u00e9k\u00e9t a saj\u00e1t WordPress URL-edre!<!-- [et_pb_line_break_holder] -->  ============================================================ &#8211;><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script src=\"https:\/\/cdn.jsdelivr.net\/npm\/p5@1.9.2\/lib\/p5.js\"><\/script><!-- [et_pb_line_break_holder] --><link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#tt-wrap *, #tt-wrap *::before, #tt-wrap *::after { box-sizing: border-box; margin: 0; padding: 0; }<!-- [et_pb_line_break_holder] -->#tt-wrap {<!-- [et_pb_line_break_holder] -->  font-family: 'Segoe UI', system-ui, sans-serif;<!-- [et_pb_line_break_holder] -->  background: #ffffff;<!-- [et_pb_line_break_holder] -->  border-radius: 8px;<!-- [et_pb_line_break_holder] -->  padding: 14px;<!-- [et_pb_line_break_holder] -->  max-width: 1100px;<!-- [et_pb_line_break_holder] -->  margin: 0 auto;<!-- [et_pb_line_break_holder] -->  color: #222;<!-- [et_pb_line_break_holder] -->  border: 1px solid #ddd;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#tt-wrap h2 {<!-- [et_pb_line_break_holder] -->  font-size: 16px;<!-- [et_pb_line_break_holder] -->  font-weight: 700;<!-- [et_pb_line_break_holder] -->  letter-spacing: 1px;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase;<!-- [et_pb_line_break_holder] -->  color: #333;<!-- [et_pb_line_break_holder] -->  margin-bottom: 10px;<!-- [et_pb_line_break_holder] -->  padding-bottom: 8px;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #e0e0e0;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Toolbar *\/<!-- [et_pb_line_break_holder] -->#tt-toolbar {<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap;<!-- [et_pb_line_break_holder] -->  gap: 6px;<!-- [et_pb_line_break_holder] -->  margin-bottom: 10px;<!-- [et_pb_line_break_holder] -->  padding: 8px;<!-- [et_pb_line_break_holder] -->  background: #f5f5f5;<!-- [et_pb_line_break_holder] -->  border-radius: 6px;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e0e0e0;<!-- [et_pb_line_break_holder] -->  align-items: flex-start;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.tt-group {<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  flex-direction: column;<!-- [et_pb_line_break_holder] -->  gap: 3px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.tt-group-label {<!-- [et_pb_line_break_holder] -->  font-size: 9px;<!-- [et_pb_line_break_holder] -->  font-weight: 700;<!-- [et_pb_line_break_holder] -->  letter-spacing: 1px;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase;<!-- [et_pb_line_break_holder] -->  color: #888;<!-- [et_pb_line_break_holder] -->  margin-bottom: 2px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.tt-group-row {<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap;<!-- [et_pb_line_break_holder] -->  gap: 3px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Buttons *\/<!-- [et_pb_line_break_holder] -->.tt-btn {<!-- [et_pb_line_break_holder] -->  display: inline-flex;<!-- [et_pb_line_break_holder] -->  align-items: center;<!-- [et_pb_line_break_holder] -->  justify-content: center;<!-- [et_pb_line_break_holder] -->  padding: 4px 6px;<!-- [et_pb_line_break_holder] -->  background: #fff;<!-- [et_pb_line_break_holder] -->  border: 1px solid #ccc;<!-- [et_pb_line_break_holder] -->  border-radius: 5px;<!-- [et_pb_line_break_holder] -->  cursor: pointer;<!-- [et_pb_line_break_holder] -->  color: #333;<!-- [et_pb_line_break_holder] -->  font-size: 11px;<!-- [et_pb_line_break_holder] -->  line-height: 1;<!-- [et_pb_line_break_holder] -->  transition: background 0.15s, border-color 0.15s, transform 0.1s;<!-- [et_pb_line_break_holder] -->  min-width: 28px;<!-- [et_pb_line_break_holder] -->  min-height: 28px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.tt-btn:hover { background: #e8f0fe; border-color: #4a90d9; transform: translateY(-1px); }<!-- [et_pb_line_break_holder] -->.tt-btn.active {<!-- [et_pb_line_break_holder] -->  background: #e94560;<!-- [et_pb_line_break_holder] -->  border-color: #c73050;<!-- [et_pb_line_break_holder] -->  color: #fff;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 0 6px rgba(233,69,96,0.35);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Main layout *\/<!-- [et_pb_line_break_holder] -->#tt-main {<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  gap: 8px;<!-- [et_pb_line_break_holder] -->  align-items: flex-start;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#tt-canvas-wrap { position: relative; flex-shrink: 0; border-radius: 4px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.15); }<!-- [et_pb_line_break_holder] -->#tt-canvas-wrap canvas { display: block; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Side panels *\/<!-- [et_pb_line_break_holder] -->#tt-left-panel, #tt-right-panel {<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  flex-direction: column;<!-- [et_pb_line_break_holder] -->  gap: 3px;<!-- [et_pb_line_break_holder] -->  background: #f5f5f5;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e0e0e0;<!-- [et_pb_line_break_holder] -->  border-radius: 6px;<!-- [et_pb_line_break_holder] -->  padding: 8px 6px;<!-- [et_pb_line_break_holder] -->  min-width: 40px;<!-- [et_pb_line_break_holder] -->  align-items: center;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* K\u00e9t oszlopos elrendez\u00e9s a jobb panelen bel\u00fcl *\/<!-- [et_pb_line_break_holder] -->#tt-two-cols {<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  gap: 6px;<!-- [et_pb_line_break_holder] -->  align-items: flex-start;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.tt-col {<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  flex-direction: column;<!-- [et_pb_line_break_holder] -->  gap: 3px;<!-- [et_pb_line_break_holder] -->  align-items: center;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.tt-panel-label {<!-- [et_pb_line_break_holder] -->  font-size: 8px;<!-- [et_pb_line_break_holder] -->  font-weight: 700;<!-- [et_pb_line_break_holder] -->  letter-spacing: 1px;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase;<!-- [et_pb_line_break_holder] -->  color: #999;<!-- [et_pb_line_break_holder] -->  text-align: center;<!-- [et_pb_line_break_holder] -->  margin-bottom: 2px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.tt-divider {<!-- [et_pb_line_break_holder] -->  width: 100%;<!-- [et_pb_line_break_holder] -->  height: 1px;<!-- [et_pb_line_break_holder] -->  background: #e0e0e0;<!-- [et_pb_line_break_holder] -->  margin: 3px 0;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Action buttons *\/<!-- [et_pb_line_break_holder] -->.tt-action-btn {<!-- [et_pb_line_break_holder] -->  width: 100%;<!-- [et_pb_line_break_holder] -->  padding: 6px 8px;<!-- [et_pb_line_break_holder] -->  border: none;<!-- [et_pb_line_break_holder] -->  border-radius: 5px;<!-- [et_pb_line_break_holder] -->  cursor: pointer;<!-- [et_pb_line_break_holder] -->  font-size: 11px;<!-- [et_pb_line_break_holder] -->  font-weight: 700;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px;<!-- [et_pb_line_break_holder] -->  transition: all 0.15s;<!-- [et_pb_line_break_holder] -->  margin-bottom: 2px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.tt-btn-mode   { background: #e8f0fe; color: #2255aa; border: 1px solid #b0c8f0; }<!-- [et_pb_line_break_holder] -->.tt-btn-mode:hover { background: #d0e4fc; }<!-- [et_pb_line_break_holder] -->.tt-btn-save   { background: #2e7d32; color: #fff; border: none; }<!-- [et_pb_line_break_holder] -->.tt-btn-save:hover { background: #1b5e20; }<!-- [et_pb_line_break_holder] -->.tt-btn-clear  { background: #fff0f0; color: #c0392b; border: 1px solid #f5c6c6; }<!-- [et_pb_line_break_holder] -->.tt-btn-clear:hover { background: #ffe0e0; border-color: #e94560; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Tooltip on hover *\/<!-- [et_pb_line_break_holder] -->.tt-btn[title]:hover::after {<!-- [et_pb_line_break_holder] -->  content: attr(title);<!-- [et_pb_line_break_holder] -->  position: absolute;<!-- [et_pb_line_break_holder] -->  bottom: calc(100% + 4px);<!-- [et_pb_line_break_holder] -->  left: 50%;<!-- [et_pb_line_break_holder] -->  transform: translateX(-50%);<!-- [et_pb_line_break_holder] -->  background: #333;<!-- [et_pb_line_break_holder] -->  color: #fff;<!-- [et_pb_line_break_holder] -->  font-size: 10px;<!-- [et_pb_line_break_holder] -->  padding: 2px 6px;<!-- [et_pb_line_break_holder] -->  border-radius: 3px;<!-- [et_pb_line_break_holder] -->  white-space: nowrap;<!-- [et_pb_line_break_holder] -->  pointer-events: none;<!-- [et_pb_line_break_holder] -->  z-index: 999;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.tt-btn { position: relative; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Active tool indicator *\/<!-- [et_pb_line_break_holder] -->#tt-active-tool {<!-- [et_pb_line_break_holder] -->  font-size: 10px;<!-- [et_pb_line_break_holder] -->  color: #888;<!-- [et_pb_line_break_holder] -->  text-align: center;<!-- [et_pb_line_break_holder] -->  margin-bottom: 4px;<!-- [et_pb_line_break_holder] -->  min-height: 14px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#tt-active-tool span { color: #e94560; font-weight: bold; }<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"tt-wrap\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<h2>\u26a1 Taktikai t\u00e1bla tervez\u0151<\/h2>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div id=\"tt-active-tool\">Akt\u00edv eszk\u00f6z: <span id=\"tt-tool-name\">Eg\u00e9r (mozgat\u00e1s)<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <!-- Fels\u0151 toolbar: vonalak \u00e9s g\u00f6rb\u00e9k --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div id=\"tt-toolbar\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"tt-group\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-group-label\">Vonalak<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-group-row\"><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-line\" onclick=\"ttSelect('line')\" title=\"Ny\u00edl\"><!-- [et_pb_line_break_holder] -->          <img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-line\" width=\"36\" height=\"16\" alt=\"\u2192\"><!-- [et_pb_line_break_holder] -->        <\/button><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-dottedline\" onclick=\"ttSelect('dottedline')\" title=\"Szaggatott ny\u00edl\"><!-- [et_pb_line_break_holder] -->          <img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-dottedline\" width=\"36\" height=\"16\" alt=\"--\u2192\"><!-- [et_pb_line_break_holder] -->        <\/button><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-curveline\" onclick=\"ttSelect('curveline')\" title=\"Szabadkezes g\u00f6rbe\" style=\"font-size:10px;padding:4px 8px;\">\u270f\ufe0f Szabad<\/button><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"tt-group\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-group-label\">V\u00edzszintes g\u00f6rbe<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-group-row\"><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-curveline_lowarch\" onclick=\"ttSelect('curveline_lowarch')\" title=\"Kis \u00edv\u0171\"><!-- [et_pb_line_break_holder] -->          <svg width=\"38\" height=\"20\" viewBox=\"0 0 38 20\"><path d=\"M2 15 Q19 2 36 15\" stroke=\"#a0c4ff\" stroke-width=\"2\" fill=\"none\"\/><polygon points=\"36,15 29,11 31,18\" fill=\"#a0c4ff\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/button><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-curveline_higharch\" onclick=\"ttSelect('curveline_higharch')\" title=\"Nagy \u00edv\u0171\"><!-- [et_pb_line_break_holder] -->          <svg width=\"38\" height=\"20\" viewBox=\"0 0 38 20\"><path d=\"M2 18 Q19 -2 36 18\" stroke=\"#a0c4ff\" stroke-width=\"2\" fill=\"none\"\/><polygon points=\"36,18 28,14 31,21\" fill=\"#a0c4ff\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/button><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"tt-group\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-group-label\">F\u00fcgg\u0151leges bal<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-group-row\"><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-curveline_lowarch_vertical\" onclick=\"ttSelect('curveline_lowarch_vertical')\" title=\"Kis \u00edv\u0171 bal\"><!-- [et_pb_line_break_holder] -->          <svg width=\"20\" height=\"38\" viewBox=\"0 0 20 38\"><path d=\"M15 2 Q2 19 15 36\" stroke=\"#a0c4ff\" stroke-width=\"2\" fill=\"none\"\/><polygon points=\"15,36 10,27 17,29\" fill=\"#a0c4ff\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/button><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-curveline_higharch_vertical\" onclick=\"ttSelect('curveline_higharch_vertical')\" title=\"Nagy \u00edv\u0171 bal\"><!-- [et_pb_line_break_holder] -->          <svg width=\"20\" height=\"38\" viewBox=\"0 0 20 38\"><path d=\"M18 2 Q-2 19 18 36\" stroke=\"#a0c4ff\" stroke-width=\"2\" fill=\"none\"\/><polygon points=\"18,36 12,27 19,29\" fill=\"#a0c4ff\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/button><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"tt-group\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-group-label\">F\u00fcgg\u0151leges jobb<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-group-row\"><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-curveline_lowarch_vertical_right\" onclick=\"ttSelect('curveline_lowarch_vertical_right')\" title=\"Kis \u00edv\u0171 jobb\"><!-- [et_pb_line_break_holder] -->          <svg width=\"20\" height=\"38\" viewBox=\"0 0 20 38\"><path d=\"M5 2 Q18 19 5 36\" stroke=\"#a0c4ff\" stroke-width=\"2\" fill=\"none\"\/><polygon points=\"5,36 3,27 10,29\" fill=\"#a0c4ff\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/button><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-curveline_higharch_vertical_right\" onclick=\"ttSelect('curveline_higharch_vertical_right')\" title=\"Nagy \u00edv\u0171 jobb\"><!-- [et_pb_line_break_holder] -->          <svg width=\"20\" height=\"38\" viewBox=\"0 0 20 38\"><path d=\"M2 2 Q22 19 2 36\" stroke=\"#a0c4ff\" stroke-width=\"2\" fill=\"none\"\/><polygon points=\"2,36 1,27 8,29\" fill=\"#a0c4ff\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/button><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"tt-group\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-group-label\">Sz\u00e1mok<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-group-row\"><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-one\"   onclick=\"ttSelect('one')\"  title=\"1\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-one\"   width=\"18\" height=\"18\"><\/button><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-two\"   onclick=\"ttSelect('two')\"  title=\"2\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-two\"   width=\"18\" height=\"18\"><\/button><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-three\" onclick=\"ttSelect('three')\" title=\"3\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-three\" width=\"18\" height=\"18\"><\/button><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-four\"  onclick=\"ttSelect('four')\" title=\"4\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-four\"  width=\"18\" height=\"18\"><\/button><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-five\"  onclick=\"ttSelect('five')\" title=\"5\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-five\"  width=\"18\" height=\"18\"><\/button><!-- [et_pb_line_break_holder] -->        <button class=\"tt-btn\" id=\"btn-six\"   onclick=\"ttSelect('six')\"  title=\"6\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-six\"   width=\"18\" height=\"18\"><\/button><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- \/toolbar --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div id=\"tt-main\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Bal panel: s\u00e1ncol\u00f3k --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"tt-left-panel\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-panel-label\">S\u00e1ncol\u00f3k<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <button class=\"tt-btn\" id=\"btn-triangle_red\"    onclick=\"ttSelect('triangle_red')\"    title=\"Piros\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-triangle_red\"    width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->      <button class=\"tt-btn\" id=\"btn-triangle_yellow\" onclick=\"ttSelect('triangle_yellow')\" title=\"S\u00e1rga\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-triangle_yellow\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->      <button class=\"tt-btn\" id=\"btn-triangle_orange\" onclick=\"ttSelect('triangle_orange')\" title=\"Narancs\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-triangle_orange\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->      <button class=\"tt-btn\" id=\"btn-triangle_purple\" onclick=\"ttSelect('triangle_purple')\" title=\"Lila\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-triangle_purple\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-divider\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <button class=\"tt-btn\" id=\"btn-triangle_red_a\" onclick=\"ttSelect('triangle_red_a')\" title=\"A s\u00e1ncol\u00f3\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-triangle_red_a\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->      <button class=\"tt-btn\" id=\"btn-triangle_red_c\" onclick=\"ttSelect('triangle_red_c')\" title=\"C s\u00e1ncol\u00f3\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-triangle_red_c\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->      <button class=\"tt-btn\" id=\"btn-triangle_red_f\" onclick=\"ttSelect('triangle_red_f')\" title=\"F s\u00e1ncol\u00f3\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-triangle_red_f\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->      <button class=\"tt-btn\" id=\"btn-triangle_red_u\" onclick=\"ttSelect('triangle_red_u')\" title=\"U s\u00e1ncol\u00f3\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-triangle_red_u\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Canvas --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"tt-canvas-wrap\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Jobb panel: k\u00e9t oszlop + gombok alul --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"tt-right-panel\"><!-- [et_pb_line_break_holder] -->      <button class=\"tt-action-btn tt-btn-mode\" id=\"tt-mode-toggle\" onclick=\"ttToggleField()\">\ud83c\udfd0 F\u00e9lp\u00e1lya<\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-divider\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- K\u00e9t oszlop: Eszk\u00f6z\u00f6k + J\u00e1t\u00e9kosok --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div id=\"tt-two-cols\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <!-- Eszk\u00f6z\u00f6k oszlop --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"tt-col\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tt-panel-label\">Eszk\u00f6z\u00f6k<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-none\" onclick=\"ttSelect('none')\" title=\"Eg\u00e9r \/ mozgat\u00e1s\"><i class=\"fas fa-mouse-pointer\"><\/i><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-ball\"             onclick=\"ttSelect('ball')\"             title=\"Labda\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-ball\" width=\"20\" height=\"20\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-icon1\"            onclick=\"ttSelect('icon1')\"            title=\"B\u00f3ja\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-icon1\" width=\"20\" height=\"20\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-ballcarrirercart\" onclick=\"ttSelect('ballcarrirercart')\" title=\"Labdatart\u00f3 kocsi\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-ballcarrirercart\" width=\"20\" height=\"20\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-box\"              onclick=\"ttSelect('box')\"              title=\"Szekr\u00e9ny\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-box\" width=\"30\" height=\"18\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-rampplayer\"       onclick=\"ttSelect('rampplayer')\"       title=\"S\u00e1ncol\u00f3 \u2190\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-rampplayer\" width=\"14\" height=\"26\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-rampplayer2\"      onclick=\"ttSelect('rampplayer2')\"      title=\"S\u00e1ncol\u00f3 \u2192\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-rampplayer2\" width=\"14\" height=\"26\"><\/button><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <!-- J\u00e1t\u00e9kosok oszlop --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"tt-col\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tt-panel-label\">J\u00e1t\u00e9kosok<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-active_player\"  onclick=\"ttSelect('active_player')\"  title=\"Akt\u00edv j\u00e1t\u00e9kos\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-active_player\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-passive_player\" onclick=\"ttSelect('passive_player')\" title=\"Passz\u00edv j\u00e1t\u00e9kos\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-passive_player\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-coach\"          onclick=\"ttSelect('coach')\"          title=\"Edz\u0151\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-coach\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-player_a\"       onclick=\"ttSelect('player_a')\"       title=\"A j\u00e1t\u00e9kos\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-player_a\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-player_c\"       onclick=\"ttSelect('player_c')\"       title=\"C j\u00e1t\u00e9kos\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-player_c\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-player_c_1\"     onclick=\"ttSelect('player_c_1')\"     title=\"C1\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-player_c_1\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-player_c_2\"     onclick=\"ttSelect('player_c_2')\"     title=\"C2\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-player_c_2\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-player_f\"       onclick=\"ttSelect('player_f')\"       title=\"F j\u00e1t\u00e9kos\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-player_f\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-player_l\"       onclick=\"ttSelect('player_l')\"       title=\"L j\u00e1t\u00e9kos\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-player_l\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-player_u\"       onclick=\"ttSelect('player_u')\"       title=\"U j\u00e1t\u00e9kos\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-player_u\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-player_u1\"      onclick=\"ttSelect('player_u1')\"      title=\"U1\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-player_u1\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->          <button class=\"tt-btn\" id=\"btn-player_u2\"      onclick=\"ttSelect('player_u2')\"      title=\"U2\"><img loading=\"lazy\" decoding=\"async\" src=\"\" id=\"tt-img-player_u2\" width=\"22\" height=\"22\"><\/button><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- \/tt-two-cols --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tt-divider\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <button class=\"tt-action-btn tt-btn-save\"  onclick=\"ttSave()\">\ud83d\udcbe Ment\u00e9s<\/button><!-- [et_pb_line_break_holder] -->      <button class=\"tt-action-btn tt-btn-clear\" onclick=\"ttClearAll()\">\ud83d\uddd1\ufe0f Mind t\u00f6r\u00f6l<\/button><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- \/main --><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- \/wrap --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function() {<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ============================================================<!-- [et_pb_line_break_holder] -->  \/\/ *** CSER\u00c9LD LE A SAJ\u00c1T WORDPRESS MEDIA URL-JEDRE ***<!-- [et_pb_line_break_holder] -->  \/\/ ============================================================<!-- [et_pb_line_break_holder] -->  const IMG_BASE = 'https:\/\/edzokepzes.hunvolley.hu\/wp-content\/uploads\/tacticstable\/';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const IMG = {<!-- [et_pb_line_break_holder] -->    egeszpalya:'egeszpalya.jpg', felpalya:'felpalya.jpg',<!-- [et_pb_line_break_holder] -->    line:'linearrowpic.jpg', dottedline:'dotted_line_arrow.png',<!-- [et_pb_line_break_holder] -->    boja:'boja.jpg', labdatartokocsi:'labdatartokocsi.png',<!-- [et_pb_line_break_holder] -->    box:'box.png', ball:'ball.png',<!-- [et_pb_line_break_holder] -->    sanc_left:'sanc-left.png', sanc_right:'sanc-right.png',<!-- [et_pb_line_break_holder] -->    active_player:'active_player.png', passive_player:'passive_player_helper.png',<!-- [et_pb_line_break_holder] -->    coach:'coach.png', position_a:'position_a.png', position_c:'position_c.png',<!-- [et_pb_line_break_holder] -->    c_1:'c_1.png', c_2:'c_2.png', position_f:'position_f.png',<!-- [et_pb_line_break_holder] -->    position_l:'position_l.png', position_u:'position_u.png',<!-- [et_pb_line_break_holder] -->    uto_1:'uto_1.png', uto_2:'uto_2.png',<!-- [et_pb_line_break_holder] -->    one:'one.png', two:'two.png', three:'three.png',<!-- [et_pb_line_break_holder] -->    four:'four.png', five:'five.png', six:'six.png',<!-- [et_pb_line_break_holder] -->    tri_red:'player_red_triangle.png', tri_purple:'player_purple_triangle.png',<!-- [et_pb_line_break_holder] -->    tri_orange:'player_orange_triangle.png', tri_yellow:'player_yellow_triangle.png',<!-- [et_pb_line_break_holder] -->    tri_a:'player_a_player_triangle.png', tri_c:'player_c_player_triangle.png',<!-- [et_pb_line_break_holder] -->    tri_f:'player_f_player_triangle.png', tri_u:'player_u_player_triangle.png',<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Gomb k\u00e9p \u2192 f\u00e1jl map<!-- [et_pb_line_break_holder] -->  const BTN_IMG = {<!-- [et_pb_line_break_holder] -->    line:IMG.line, dottedline:IMG.dottedline,<!-- [et_pb_line_break_holder] -->    one:IMG.one,two:IMG.two,three:IMG.three,four:IMG.four,five:IMG.five,six:IMG.six,<!-- [et_pb_line_break_holder] -->    triangle_red:IMG.tri_red,triangle_yellow:IMG.tri_yellow,<!-- [et_pb_line_break_holder] -->    triangle_orange:IMG.tri_orange,triangle_purple:IMG.tri_purple,<!-- [et_pb_line_break_holder] -->    triangle_red_a:IMG.tri_a,triangle_red_c:IMG.tri_c,<!-- [et_pb_line_break_holder] -->    triangle_red_f:IMG.tri_f,triangle_red_u:IMG.tri_u,<!-- [et_pb_line_break_holder] -->    ball:IMG.ball,icon1:IMG.boja,ballcarrirercart:IMG.labdatartokocsi,<!-- [et_pb_line_break_holder] -->    box:IMG.box,rampplayer:IMG.sanc_left,rampplayer2:IMG.sanc_right,<!-- [et_pb_line_break_holder] -->    active_player:IMG.active_player,passive_player:IMG.passive_player,coach:IMG.coach,<!-- [et_pb_line_break_holder] -->    player_a:IMG.position_a,player_c:IMG.position_c,player_c_1:IMG.c_1,player_c_2:IMG.c_2,<!-- [et_pb_line_break_holder] -->    player_f:IMG.position_f,player_l:IMG.position_l,player_u:IMG.position_u,<!-- [et_pb_line_break_holder] -->    player_u1:IMG.uto_1,player_u2:IMG.uto_2,<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] -->  for (const [k,f] of Object.entries(BTN_IMG)) {<!-- [et_pb_line_break_holder] -->    const el = document.getElementById('tt-img-'+k);<!-- [et_pb_line_break_holder] -->    if (el) el.src = IMG_BASE + f;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Tool \u2192 canvas icon azonos\u00edt\u00f3<!-- [et_pb_line_break_holder] -->  const ICON_KEY = {<!-- [et_pb_line_break_holder] -->    icon1:'boja',ballcarrirercart:'ballcarrirercart',box:'box',ball:'ball',<!-- [et_pb_line_break_holder] -->    rampplayer:'rampplayer',rampplayer2:'rampplayer2',<!-- [et_pb_line_break_holder] -->    active_player:'active_player',passive_player:'passive_player',coach:'coach',<!-- [et_pb_line_break_holder] -->    player_a:'player_a',player_c:'player_c',player_c_1:'player_c_1',player_c_2:'player_c_2',<!-- [et_pb_line_break_holder] -->    player_f:'player_f',player_l:'player_l',player_u:'player_u',<!-- [et_pb_line_break_holder] -->    player_u1:'player_u1',player_u2:'player_u2',<!-- [et_pb_line_break_holder] -->    one:'one',two:'two',three:'three',four:'four',five:'five',six:'six',<!-- [et_pb_line_break_holder] -->    triangle_red:'triangle_red',triangle_purple:'triangle_purple',<!-- [et_pb_line_break_holder] -->    triangle_orange:'triangle_orange',triangle_yellow:'triangle_yellow',<!-- [et_pb_line_break_holder] -->    triangle_red_a:'triangle_red_a',triangle_red_c:'triangle_red_c',<!-- [et_pb_line_break_holder] -->    triangle_red_f:'triangle_red_f',triangle_red_u:'triangle_red_u',<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Elem m\u00e9retek (\u00fctk\u00f6z\u00e9s detekt\u00e1l\u00e1s)<!-- [et_pb_line_break_holder] -->  const HIT_SIZE = {<!-- [et_pb_line_break_holder] -->    boja:[20,20],ballcarrirercart:[25,25],box:[32,24],ball:[28,28],<!-- [et_pb_line_break_holder] -->    rampplayer:[15,45],rampplayer2:[15,45],<!-- [et_pb_line_break_holder] -->    active_player:[65,50],passive_player:[65,50],coach:[65,50],<!-- [et_pb_line_break_holder] -->    player_a:[65,50],player_c:[65,50],player_c_1:[65,50],player_c_2:[65,50],<!-- [et_pb_line_break_holder] -->    player_f:[65,50],player_l:[65,50],player_u:[65,50],player_u1:[65,50],player_u2:[65,50],<!-- [et_pb_line_break_holder] -->    one:[20,20],two:[20,20],three:[20,20],four:[20,20],five:[20,20],six:[20,20],<!-- [et_pb_line_break_holder] -->    triangle_red:[65,50],triangle_purple:[65,50],triangle_orange:[65,50],triangle_yellow:[65,50],<!-- [et_pb_line_break_holder] -->    triangle_red_a:[65,50],triangle_red_c:[65,50],triangle_red_f:[65,50],triangle_red_u:[65,50],<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Canvas rajzol\u00e1si m\u00e9retek (px) - eredeti m\u00e9retek, csak a labda kisebb<!-- [et_pb_line_break_holder] -->  const DRAW_SIZE = {<!-- [et_pb_line_break_holder] -->    ball:[28,28],boja:[20,20],ballcarrirercart:[25,25],<!-- [et_pb_line_break_holder] -->    box:[32,24],rampplayer:[15,45],rampplayer2:[15,45],<!-- [et_pb_line_break_holder] -->    active_player:[65,50],passive_player:[65,50],coach:[65,50],<!-- [et_pb_line_break_holder] -->    player_a:[65,50],player_c:[65,50],player_c_1:[65,50],player_c_2:[65,50],<!-- [et_pb_line_break_holder] -->    player_f:[65,50],player_l:[65,50],player_u:[65,50],player_u1:[65,50],player_u2:[65,50],<!-- [et_pb_line_break_holder] -->    one:[20,20],two:[20,20],three:[20,20],four:[20,20],five:[20,20],six:[20,20],<!-- [et_pb_line_break_holder] -->    triangle_red:[65,50],triangle_purple:[65,50],triangle_orange:[65,50],triangle_yellow:[65,50],<!-- [et_pb_line_break_holder] -->    triangle_red_a:[65,50],triangle_red_c:[65,50],triangle_red_f:[65,50],triangle_red_u:[65,50],<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const TOOL_LABELS = {<!-- [et_pb_line_break_holder] -->    none:'Eg\u00e9r (mozgat\u00e1s \/ t\u00f6rl\u00e9s)',line:'Ny\u00edl vonal',dottedline:'Szaggatott ny\u00edl',<!-- [et_pb_line_break_holder] -->    curveline:'Szabadkezes g\u00f6rbe',curveline_lowarch:'Kis \u00edv\u0171 v\u00edzszintes',<!-- [et_pb_line_break_holder] -->    curveline_higharch:'Nagy \u00edv\u0171 v\u00edzszintes',curveline_lowarch_vertical:'Kis \u00edv\u0171 bal',<!-- [et_pb_line_break_holder] -->    curveline_higharch_vertical:'Nagy \u00edv\u0171 bal',curveline_lowarch_vertical_right:'Kis \u00edv\u0171 jobb',<!-- [et_pb_line_break_holder] -->    curveline_higharch_vertical_right:'Nagy \u00edv\u0171 jobb',<!-- [et_pb_line_break_holder] -->    ball:'Labda',icon1:'B\u00f3ja',ballcarrirercart:'Labdatart\u00f3 kocsi',box:'Szekr\u00e9ny',<!-- [et_pb_line_break_holder] -->    rampplayer:'S\u00e1ncol\u00f3 \u2190',rampplayer2:'S\u00e1ncol\u00f3 \u2192',<!-- [et_pb_line_break_holder] -->    active_player:'Akt\u00edv j\u00e1t\u00e9kos',passive_player:'Passz\u00edv j\u00e1t\u00e9kos',coach:'Edz\u0151',<!-- [et_pb_line_break_holder] -->    player_a:'A j\u00e1t\u00e9kos',player_c:'C j\u00e1t\u00e9kos',player_c_1:'C1',player_c_2:'C2',<!-- [et_pb_line_break_holder] -->    player_f:'F j\u00e1t\u00e9kos',player_l:'L j\u00e1t\u00e9kos',player_u:'U j\u00e1t\u00e9kos',<!-- [et_pb_line_break_holder] -->    player_u1:'U1',player_u2:'U2',<!-- [et_pb_line_break_holder] -->    one:'1',two:'2',three:'3',four:'4',five:'5',six:'6',<!-- [et_pb_line_break_holder] -->    triangle_red:'Piros s\u00e1ncol\u00f3',triangle_yellow:'S\u00e1rga s\u00e1ncol\u00f3',<!-- [et_pb_line_break_holder] -->    triangle_orange:'Narancs s\u00e1ncol\u00f3',triangle_purple:'Lila s\u00e1ncol\u00f3',<!-- [et_pb_line_break_holder] -->    triangle_red_a:'A s\u00e1ncol\u00f3',triangle_red_c:'C s\u00e1ncol\u00f3',<!-- [et_pb_line_break_holder] -->    triangle_red_f:'F s\u00e1ncol\u00f3',triangle_red_u:'U s\u00e1ncol\u00f3',<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ============================================================<!-- [et_pb_line_break_holder] -->  \/\/ \u00c1llapot<!-- [et_pb_line_break_holder] -->  \/\/ ============================================================<!-- [et_pb_line_break_holder] -->  let volleyFieldMode = 0;<!-- [et_pb_line_break_holder] -->  let selectedTool = 'none';<!-- [et_pb_line_break_holder] -->  let elements = [], images_arr = [];<!-- [et_pb_line_break_holder] -->  let lines = [], curves = [], highCurves = [], vertCurves = [], vertHighCurves = [];<!-- [et_pb_line_break_holder] -->  let freePts = [], currentFreePts = [];<!-- [et_pb_line_break_holder] -->  let startX, startY;<!-- [et_pb_line_break_holder] -->  let isDrawing = false, dragging = false, isDragging = false;<!-- [et_pb_line_break_holder] -->  let selEl = null, selElIdx = null, selImgIdx = null;<!-- [et_pb_line_break_holder] -->  let selLine = null;<!-- [et_pb_line_break_holder] -->  let selCurve = null, selHighCurve = null, selVertCurve = null, selVertHighCurve = null;<!-- [et_pb_line_break_holder] -->  let selFreePts = null;<!-- [et_pb_line_break_holder] -->  let offX = 0, offY = 0;<!-- [et_pb_line_break_holder] -->  let p5imgs = {}, p5FieldImg;<!-- [et_pb_line_break_holder] -->  let p5inst = null, p5cv = null;<!-- [et_pb_line_break_holder] -->  let _saveFunc = null;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ============================================================<!-- [et_pb_line_break_holder] -->  \/\/ p5 sketch<!-- [et_pb_line_break_holder] -->  \/\/ ============================================================<!-- [et_pb_line_break_holder] -->  const sketch = function(p) {<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    p.preload = function() {<!-- [et_pb_line_break_holder] -->      p5FieldImg = p.loadImage(IMG_BASE + (volleyFieldMode ? IMG.felpalya : IMG.egeszpalya));<!-- [et_pb_line_break_holder] -->      const defs = {<!-- [et_pb_line_break_holder] -->        boja:IMG.boja, ballcarrirercart:IMG.labdatartokocsi, box:IMG.box, ball:IMG.ball,<!-- [et_pb_line_break_holder] -->        rampplayer:IMG.sanc_left, rampplayer2:IMG.sanc_right,<!-- [et_pb_line_break_holder] -->        active_player:IMG.active_player, passive_player:IMG.passive_player, coach:IMG.coach,<!-- [et_pb_line_break_holder] -->        player_a:IMG.position_a, player_c:IMG.position_c, player_c_1:IMG.c_1, player_c_2:IMG.c_2,<!-- [et_pb_line_break_holder] -->        player_f:IMG.position_f, player_l:IMG.position_l, player_u:IMG.position_u,<!-- [et_pb_line_break_holder] -->        player_u1:IMG.uto_1, player_u2:IMG.uto_2,<!-- [et_pb_line_break_holder] -->        one:IMG.one, two:IMG.two, three:IMG.three, four:IMG.four, five:IMG.five, six:IMG.six,<!-- [et_pb_line_break_holder] -->        triangle_red:IMG.tri_red, triangle_purple:IMG.tri_purple,<!-- [et_pb_line_break_holder] -->        triangle_orange:IMG.tri_orange, triangle_yellow:IMG.tri_yellow,<!-- [et_pb_line_break_holder] -->        triangle_red_a:IMG.tri_a, triangle_red_c:IMG.tri_c,<!-- [et_pb_line_break_holder] -->        triangle_red_f:IMG.tri_f, triangle_red_u:IMG.tri_u,<!-- [et_pb_line_break_holder] -->      };<!-- [et_pb_line_break_holder] -->      for (const [k,f] of Object.entries(defs)) p5imgs[k] = p.loadImage(IMG_BASE+f);<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    p.setup = function() {<!-- [et_pb_line_break_holder] -->      p5cv = p.createCanvas(800, 600);<!-- [et_pb_line_break_holder] -->      p5cv.parent('tt-canvas-wrap');<!-- [et_pb_line_break_holder] -->      _saveFunc = () => p.saveCanvas(p5cv, 'taktikai_tabla', 'jpg');<!-- [et_pb_line_break_holder] -->      p.textFont('monospace');<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    p.draw = function() {<!-- [et_pb_line_break_holder] -->      p.image(p5FieldImg, 0, 0, p.width, p.height);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Vonalak<!-- [et_pb_line_break_holder] -->      setDash(p, [0,0]);<!-- [et_pb_line_break_holder] -->      for (let l of lines) {<!-- [et_pb_line_break_holder] -->        p.stroke(0); p.strokeWeight(2.5);<!-- [et_pb_line_break_holder] -->        setDash(p, l.mode==='dottedline'?[10,8]:[0,0]);<!-- [et_pb_line_break_holder] -->        p.line(l.startX,l.startY,l.endX,l.endY);<!-- [et_pb_line_break_holder] -->        arrow(p,l.startX,l.startY,l.endX,l.endY);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ G\u00f6rb\u00e9k<!-- [et_pb_line_break_holder] -->      setDash(p,[0,0]);<!-- [et_pb_line_break_holder] -->      drawCurves(p, curves);<!-- [et_pb_line_break_holder] -->      drawCurves(p, highCurves);<!-- [et_pb_line_break_holder] -->      drawCurves(p, vertCurves);<!-- [et_pb_line_break_holder] -->      drawCurves(p, vertHighCurves);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Kijel\u00f6lt g\u00f6rb\u00e9k X jelz\u0151k<!-- [et_pb_line_break_holder] -->      if (selCurve) drawDeleteX(p, selCurve.endX, selCurve.endY);<!-- [et_pb_line_break_holder] -->      if (selHighCurve) drawDeleteX(p, selHighCurve.endX, selHighCurve.endY);<!-- [et_pb_line_break_holder] -->      if (selVertCurve) drawDeleteX(p, selVertCurve.endX, selVertCurve.endY);<!-- [et_pb_line_break_holder] -->      if (selVertHighCurve) drawDeleteX(p, selVertHighCurve.endX, selVertHighCurve.endY);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Szabad g\u00f6rb\u00e9k (mentett)<!-- [et_pb_line_break_holder] -->      for (let pts of freePts) {<!-- [et_pb_line_break_holder] -->        drawFreePoints(p, pts);<!-- [et_pb_line_break_holder] -->        if (selFreePts === pts) {<!-- [et_pb_line_break_holder] -->          let last = pts[pts.length-1];<!-- [et_pb_line_break_holder] -->          drawDeleteX(p, last.x, last.y);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      \/\/ Szabad g\u00f6rbe folyamatban<!-- [et_pb_line_break_holder] -->      if (currentFreePts.length > 1) drawFreePoints(p, currentFreePts);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Elhelyezett k\u00e9pek<!-- [et_pb_line_break_holder] -->      for (let im of images_arr) {<!-- [et_pb_line_break_holder] -->        if (!p5imgs[im.icon]) continue;<!-- [et_pb_line_break_holder] -->        \/\/ Csak labda \u00e9s b\u00f3ja kap explicit m\u00e9retet, minden m\u00e1s term\u00e9szetes m\u00e9ret\u00e9n jelenik meg<!-- [et_pb_line_break_holder] -->        if (im.icon === 'ball')  { p.image(p5imgs[im.icon], im.x, im.y, 28, 28); }<!-- [et_pb_line_break_holder] -->        else if (im.icon === 'boja') { p.image(p5imgs[im.icon], im.x, im.y, 20, 20); }<!-- [et_pb_line_break_holder] -->        else { p.image(p5imgs[im.icon], im.x, im.y); }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Kurzor melletti el\u0151n\u00e9zeti k\u00e9p<!-- [et_pb_line_break_holder] -->      let iconKey = ICON_KEY[selectedTool];<!-- [et_pb_line_break_holder] -->      if (iconKey && p5imgs[iconKey]) {<!-- [et_pb_line_break_holder] -->        p.tint(255,200);<!-- [et_pb_line_break_holder] -->        if (iconKey === 'ball')  { p.image(p5imgs[iconKey], p.mouseX, p.mouseY, 28, 28); }<!-- [et_pb_line_break_holder] -->        else if (iconKey === 'boja') { p.image(p5imgs[iconKey], p.mouseX, p.mouseY, 20, 20); }<!-- [et_pb_line_break_holder] -->        else { p.image(p5imgs[iconKey], p.mouseX, p.mouseY); }<!-- [et_pb_line_break_holder] -->        p.noTint();<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Vonal\/g\u00f6rbe el\u0151n\u00e9zet h\u00faz\u00e1s k\u00f6zben<!-- [et_pb_line_break_holder] -->      previewDraw(p);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Kijel\u00f6lt elem kerete<!-- [et_pb_line_break_holder] -->      if (selEl) {<!-- [et_pb_line_break_holder] -->        p.noFill(); p.stroke(255,80,80); p.strokeWeight(2);<!-- [et_pb_line_break_holder] -->        p.drawingContext.setLineDash([4,3]);<!-- [et_pb_line_break_holder] -->        p.rect(selEl.leftX-2, selEl.leftY-2, selEl.width+4, selEl.height+4, 3);<!-- [et_pb_line_break_holder] -->        p.drawingContext.setLineDash([]);<!-- [et_pb_line_break_holder] -->        \/\/ T\u00f6rl\u00e9s gomb<!-- [et_pb_line_break_holder] -->        p.fill(220,50,50); p.noStroke();<!-- [et_pb_line_break_holder] -->        p.rect(selEl.leftX+selEl.width-12, selEl.leftY-8, 20, 16, 3);<!-- [et_pb_line_break_holder] -->        p.fill(255); p.noStroke(); p.textSize(11);<!-- [et_pb_line_break_holder] -->        p.text('\u2715', selEl.leftX+selEl.width-9, selEl.leftY+5);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Kijel\u00f6lt vonal X gomb<!-- [et_pb_line_break_holder] -->      if (selLine) {<!-- [et_pb_line_break_holder] -->        let mx = Math.max(selLine.startX,selLine.endX);<!-- [et_pb_line_break_holder] -->        let my = Math.min(selLine.startY,selLine.endY);<!-- [et_pb_line_break_holder] -->        p.fill(220,50,50); p.noStroke();<!-- [et_pb_line_break_holder] -->        p.rect(mx+8, my-22, 20, 16, 3);<!-- [et_pb_line_break_holder] -->        p.fill(255); p.textSize(11); p.noStroke();<!-- [et_pb_line_break_holder] -->        p.text('\u2715', mx+11, my-9);<!-- [et_pb_line_break_holder] -->        \/\/ Highlight vonal<!-- [et_pb_line_break_holder] -->        p.stroke(255,80,80); p.strokeWeight(1);<!-- [et_pb_line_break_holder] -->        setDash(p,[4,4]);<!-- [et_pb_line_break_holder] -->        p.line(selLine.startX,selLine.startY,selLine.endX,selLine.endY);<!-- [et_pb_line_break_holder] -->        setDash(p,[0,0]);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    p.mousePressed = function() {<!-- [et_pb_line_break_holder] -->      if (!inCanvas(p)) return;<!-- [et_pb_line_break_holder] -->      if (selectedTool==='none') { selEl=null; return; }<!-- [et_pb_line_break_holder] -->      if (selectedTool==='line'||selectedTool==='dottedline') {<!-- [et_pb_line_break_holder] -->        selEl=null; selElIdx=null; isDrawing=true;<!-- [et_pb_line_break_holder] -->        startX=p.mouseX; startY=p.mouseY;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      if (selectedTool==='curveline') {<!-- [et_pb_line_break_holder] -->        isDrawing=true; currentFreePts=[{x:p.mouseX,y:p.mouseY}];<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      const cTools=['curveline_lowarch','curveline_higharch','curveline_lowarch_vertical',<!-- [et_pb_line_break_holder] -->        'curveline_lowarch_vertical_right','curveline_higharch_vertical','curveline_higharch_vertical_right'];<!-- [et_pb_line_break_holder] -->      if (cTools.includes(selectedTool)) { startX=p.mouseX; startY=p.mouseY; dragging=true; }<!-- [et_pb_line_break_holder] -->      if (ICON_KEY[selectedTool]) placeIcon(p);<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    p.mouseDragged = function() {<!-- [et_pb_line_break_holder] -->      if (!inCanvas(p)) return;<!-- [et_pb_line_break_holder] -->      if (selectedTool==='curveline'&&isDrawing) currentFreePts.push({x:p.mouseX,y:p.mouseY});<!-- [et_pb_line_break_holder] -->      if (selectedTool==='none') {<!-- [et_pb_line_break_holder] -->        if (!isDragging) {<!-- [et_pb_line_break_holder] -->          let cl = hitTest(p.mouseX,p.mouseY);<!-- [et_pb_line_break_holder] -->          if (cl) {<!-- [et_pb_line_break_holder] -->            selEl=cl; selElIdx=elements.indexOf(cl);<!-- [et_pb_line_break_holder] -->            selImgIdx=images_arr.findIndex(im=>im.x===cl.leftX&&im.y===cl.leftY);<!-- [et_pb_line_break_holder] -->            offX=cl.leftX-p.mouseX; offY=cl.leftY-p.mouseY; isDragging=true;<!-- [et_pb_line_break_holder] -->          }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        if (selEl) {<!-- [et_pb_line_break_holder] -->          let nx=p.mouseX+offX, ny=p.mouseY+offY;<!-- [et_pb_line_break_holder] -->          selEl.leftX=nx; selEl.leftY=ny;<!-- [et_pb_line_break_holder] -->          if (selElIdx!==null&&elements[selElIdx]) { elements[selElIdx].leftX=nx; elements[selElIdx].leftY=ny; }<!-- [et_pb_line_break_holder] -->          if (selImgIdx!=null&&selImgIdx>-1) { images_arr[selImgIdx].x=nx; images_arr[selImgIdx].y=ny; }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    p.mouseReleased = function() {<!-- [et_pb_line_break_holder] -->      if (selectedTool==='line'&&isDrawing) {<!-- [et_pb_line_break_holder] -->        let ex=p.mouseX,ey=p.mouseY;<!-- [et_pb_line_break_holder] -->        if (!(startX===ex&&startY===ey)) lines.push({mode:'line',startX,startY,endX:ex,endY:ey});<!-- [et_pb_line_break_holder] -->        isDrawing=false;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      if (selectedTool==='dottedline'&&isDrawing) {<!-- [et_pb_line_break_holder] -->        let ex=p.mouseX,ey=p.mouseY;<!-- [et_pb_line_break_holder] -->        if (!(startX===ex&&startY===ey)) lines.push({mode:'dottedline',startX,startY,endX:ex,endY:ey});<!-- [et_pb_line_break_holder] -->        isDrawing=false;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      if (selectedTool==='curveline'&&isDrawing) {<!-- [et_pb_line_break_holder] -->        isDrawing=false;<!-- [et_pb_line_break_holder] -->        if (currentFreePts.length>=4) freePts.push([...currentFreePts]);<!-- [et_pb_line_break_holder] -->        currentFreePts=[];<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      releaseCurve(p, 'curveline_lowarch', (ex,ey)=>{<!-- [et_pb_line_break_holder] -->        let cx=(startX+ex)\/2, cy=ey>startY?Math.min(startY,ey)-70:Math.max(startY,ey)+70;<!-- [et_pb_line_break_holder] -->        curves.push({startX,startY,controlX:cx,controlY:cy,endX:ex,endY:ey});<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->      releaseCurve(p,'curveline_higharch',(ex,ey)=>{<!-- [et_pb_line_break_holder] -->        highCurves.push({startX,startY,controlX:(startX+ex)\/2,controlY:Math.min(startY,ey)-140,endX:ex,endY:ey});<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->      releaseCurve(p,'curveline_lowarch_vertical',(ex,ey)=>{<!-- [et_pb_line_break_holder] -->        vertCurves.push({startX,startY,controlX:(startX+ex)\/2-45,controlY:(startY+ey)\/2,endX:ex,endY:ey});<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->      releaseCurve(p,'curveline_lowarch_vertical_right',(ex,ey)=>{<!-- [et_pb_line_break_holder] -->        vertCurves.push({startX,startY,controlX:(startX+ex)\/2+45,controlY:(startY+ey)\/2,endX:ex,endY:ey});<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->      releaseCurve(p,'curveline_higharch_vertical',(ex,ey)=>{<!-- [et_pb_line_break_holder] -->        vertHighCurves.push({startX,startY,controlX:(startX+ex)\/2-110,controlY:(startY+ey)\/2,endX:ex,endY:ey});<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->      releaseCurve(p,'curveline_higharch_vertical_right',(ex,ey)=>{<!-- [et_pb_line_break_holder] -->        vertHighCurves.push({startX,startY,controlX:(startX+ex)\/2+110,controlY:(startY+ey)\/2,endX:ex,endY:ey});<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->      isDragging=false; selEl=null; selElIdx=null; selImgIdx=null;<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    p.mouseClicked = function() {<!-- [et_pb_line_break_holder] -->      if (!inCanvas(p)) return;<!-- [et_pb_line_break_holder] -->      if (selectedTool!=='none') return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      let cl = hitTest(p.mouseX,p.mouseY);<!-- [et_pb_line_break_holder] -->      if (cl) {<!-- [et_pb_line_break_holder] -->        selEl = cl;<!-- [et_pb_line_break_holder] -->        \/\/ T\u00f6rl\u00e9s gomb: jobb fels\u0151 sarok<!-- [et_pb_line_break_holder] -->        if (p.mouseX>cl.leftX+cl.width-12&&p.mouseX<cl.leftX+cl.width+8&#038;&#038;<!-- [et_pb_line_break_holder] -->            p.mouseY>cl.leftY-8&&p.mouseY<cl.leftY+8) {<!-- [et_pb_line_break_holder] -->          elements.splice(elements.indexOf(cl),1);<!-- [et_pb_line_break_holder] -->          images_arr=images_arr.filter(im=>!(im.x===cl.leftX&&im.y===cl.leftY));<!-- [et_pb_line_break_holder] -->          selEl=null;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        return;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      selEl=null;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Vonal X gomb<!-- [et_pb_line_break_holder] -->      if (selLine) {<!-- [et_pb_line_break_holder] -->        let mx=Math.max(selLine.startX,selLine.endX)+8;<!-- [et_pb_line_break_holder] -->        let my=Math.min(selLine.startY,selLine.endY)-22;<!-- [et_pb_line_break_holder] -->        if (p.mouseX>mx&&p.mouseX<mx+20&#038;&#038;p.mouseY>my&&p.mouseY<my+16) {<!-- [et_pb_line_break_holder] -->          lines=lines.filter(l=>l!==selLine); selLine=null; return;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ G\u00f6rbe X gomb ellen\u0151rz\u00e9s<!-- [et_pb_line_break_holder] -->      if (tryDeleteSelected(p, selCurve, ()=>{curves=curves.filter(c=>c!==selCurve);selCurve=null;})) return;<!-- [et_pb_line_break_holder] -->      if (tryDeleteSelected(p, selHighCurve, ()=>{highCurves=highCurves.filter(c=>c!==selHighCurve);selHighCurve=null;})) return;<!-- [et_pb_line_break_holder] -->      if (tryDeleteSelected(p, selVertCurve, ()=>{vertCurves=vertCurves.filter(c=>c!==selVertCurve);selVertCurve=null;})) return;<!-- [et_pb_line_break_holder] -->      if (tryDeleteSelected(p, selVertHighCurve, ()=>{vertHighCurves=vertHighCurves.filter(c=>c!==selVertHighCurve);selVertHighCurve=null;})) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Szabad g\u00f6rbe X gomb<!-- [et_pb_line_break_holder] -->      if (selFreePts) {<!-- [et_pb_line_break_holder] -->        let last = selFreePts[selFreePts.length-1];<!-- [et_pb_line_break_holder] -->        if (last && p.mouseX>last.x+8&&p.mouseX<last.x+28&#038;&#038;p.mouseY>last.y-28&&p.mouseY<last.y-8) {<!-- [et_pb_line_break_holder] -->          freePts=freePts.filter(fp=>fp!==selFreePts); selFreePts=null; return;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Vonalra kattint\u00e1s<!-- [et_pb_line_break_holder] -->      let hitLine = null;<!-- [et_pb_line_break_holder] -->      for (let l of lines) {<!-- [et_pb_line_break_holder] -->        if (distToSegment(p.mouseX,p.mouseY,l.startX,l.startY,l.endX,l.endY) < 7) { hitLine=l; break; }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      if (hitLine) { selLine=hitLine; return; }<!-- [et_pb_line_break_holder] -->      selLine=null;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ G\u00f6rb\u00e9re kattint\u00e1s \u2013 k\u00f6zels\u00e9g a start\/control\/end ponthoz<!-- [et_pb_line_break_holder] -->      selCurve=findClosestCurve(p,curves);<!-- [et_pb_line_break_holder] -->      selHighCurve=findClosestCurve(p,highCurves);<!-- [et_pb_line_break_holder] -->      selVertCurve=findClosestCurve(p,vertCurves);<!-- [et_pb_line_break_holder] -->      selVertHighCurve=findClosestCurve(p,vertHighCurves);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ Szabad g\u00f6rbe kattint\u00e1s \u2013 b\u00e1rmelyik ponthoz k\u00f6zel<!-- [et_pb_line_break_holder] -->      selFreePts=null;<!-- [et_pb_line_break_holder] -->      for (let fps of freePts) {<!-- [et_pb_line_break_holder] -->        for (let pt of fps) {<!-- [et_pb_line_break_holder] -->          if (p.dist(p.mouseX,p.mouseY,pt.x,pt.y)<12) { selFreePts=fps; break; }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        if (selFreePts) break;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function releaseCurve(p,tool,fn) {<!-- [et_pb_line_break_holder] -->      if (selectedTool===tool&&dragging) { fn(p.mouseX,p.mouseY); dragging=false; }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    function placeIcon(p) {<!-- [et_pb_line_break_holder] -->      let iconName=ICON_KEY[selectedTool];<!-- [et_pb_line_break_holder] -->      let hs=HIT_SIZE[iconName]||[26,26];<!-- [et_pb_line_break_holder] -->      images_arr.push({icon:iconName,x:p.mouseX,y:p.mouseY});<!-- [et_pb_line_break_holder] -->      elements.push({type:iconName,leftX:p.mouseX,leftY:p.mouseY,width:hs[0],height:hs[1]});<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    function previewDraw(p) {<!-- [et_pb_line_break_holder] -->      if (isDrawing&&(selectedTool==='line'||selectedTool==='dottedline')) {<!-- [et_pb_line_break_holder] -->        p.stroke(0); p.strokeWeight(2.5);<!-- [et_pb_line_break_holder] -->        setDash(p, selectedTool==='dottedline'?[10,8]:[0,0]);<!-- [et_pb_line_break_holder] -->        p.line(startX,startY,p.mouseX,p.mouseY);<!-- [et_pb_line_break_holder] -->        arrow(p,startX,startY,p.mouseX,p.mouseY);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      if (!dragging) return;<!-- [et_pb_line_break_holder] -->      let ex=p.mouseX,ey=p.mouseY,cx,cy;<!-- [et_pb_line_break_holder] -->      if (selectedTool==='curveline_lowarch')          { cx=(startX+ex)\/2; cy=ey>startY?Math.min(startY,ey)-70:Math.max(startY,ey)+70; }<!-- [et_pb_line_break_holder] -->      else if (selectedTool==='curveline_higharch')    { cx=(startX+ex)\/2; cy=Math.min(startY,ey)-140; }<!-- [et_pb_line_break_holder] -->      else if (selectedTool==='curveline_lowarch_vertical')        { cx=(startX+ex)\/2-45;  cy=(startY+ey)\/2; }<!-- [et_pb_line_break_holder] -->      else if (selectedTool==='curveline_lowarch_vertical_right')  { cx=(startX+ex)\/2+45;  cy=(startY+ey)\/2; }<!-- [et_pb_line_break_holder] -->      else if (selectedTool==='curveline_higharch_vertical')       { cx=(startX+ex)\/2-110; cy=(startY+ey)\/2; }<!-- [et_pb_line_break_holder] -->      else if (selectedTool==='curveline_higharch_vertical_right') { cx=(startX+ex)\/2+110; cy=(startY+ey)\/2; }<!-- [et_pb_line_break_holder] -->      if (cx!==undefined) {<!-- [et_pb_line_break_holder] -->        p.noFill(); p.stroke(0); p.strokeWeight(5); setDash(p,[0,0]);<!-- [et_pb_line_break_holder] -->        p.beginShape(); p.vertex(startX,startY); p.quadraticVertex(cx,cy,ex,ey); p.endShape();<!-- [et_pb_line_break_holder] -->        arrow(p,cx,cy,ex,ey);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }; \/\/ sketch v\u00e9ge<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ============================================================<!-- [et_pb_line_break_holder] -->  \/\/ Seg\u00e9df\u00fcggv\u00e9nyek<!-- [et_pb_line_break_holder] -->  \/\/ ============================================================<!-- [et_pb_line_break_holder] -->  function inCanvas(p) { return p.mouseX>=0&&p.mouseX<=p.width&#038;&#038;p.mouseY>=0&&p.mouseY<=p.height; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function setDash(p, arr) { p.drawingContext.setLineDash(arr); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function arrow(p,x1,y1,x2,y2) {<!-- [et_pb_line_break_holder] -->    let angle=Math.atan2(y2-y1,x2-x1);<!-- [et_pb_line_break_holder] -->    p.push(); p.translate(x2,y2); p.rotate(angle);<!-- [et_pb_line_break_holder] -->    p.stroke(0); p.strokeWeight(2.5); setDash(p,[0,0]);<!-- [et_pb_line_break_holder] -->    p.line(-11,-5,0,0); p.line(-11,5,0,0);<!-- [et_pb_line_break_holder] -->    p.pop();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function drawCurves(p,arr) {<!-- [et_pb_line_break_holder] -->    for (let c of arr) {<!-- [et_pb_line_break_holder] -->      p.noFill(); p.stroke(0); p.strokeWeight(5); setDash(p,[0,0]);<!-- [et_pb_line_break_holder] -->      p.beginShape(); p.vertex(c.startX,c.startY); p.quadraticVertex(c.controlX,c.controlY,c.endX,c.endY); p.endShape();<!-- [et_pb_line_break_holder] -->      arrow(p,c.controlX,c.controlY,c.endX,c.endY);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function drawFreePoints(p, pts) {<!-- [et_pb_line_break_holder] -->    if (pts.length < 2) return;<!-- [et_pb_line_break_holder] -->    p.stroke(0); p.strokeWeight(4); setDash(p,[0,0]);<!-- [et_pb_line_break_holder] -->    for (let i=0;i<pts.length-1;i++) p.line(pts[i].x,pts[i].y,pts[i+1].x,pts[i+1].y);<!-- [et_pb_line_break_holder] -->    if (pts.length>=2) arrow(p,pts[pts.length-2].x,pts[pts.length-2].y,pts[pts.length-1].x,pts[pts.length-1].y);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function drawDeleteX(p, x, y) {<!-- [et_pb_line_break_holder] -->    p.fill(220,50,50); p.noStroke();<!-- [et_pb_line_break_holder] -->    p.rect(x+8,y-28,20,16,3);<!-- [et_pb_line_break_holder] -->    p.fill(255); p.textSize(11); p.noStroke(); p.text('\u2715',x+11,y-16);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function tryDeleteSelected(p, sel, deleteFn) {<!-- [et_pb_line_break_holder] -->    if (!sel) return false;<!-- [et_pb_line_break_holder] -->    if (p.mouseX>sel.endX+8&&p.mouseX<sel.endX+28&#038;&#038;p.mouseY>sel.endY-28&&p.mouseY<sel.endY-8) {<!-- [et_pb_line_break_holder] -->      deleteFn(); return true;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    return false;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function findClosestCurve(p, arr) {<!-- [et_pb_line_break_holder] -->    for (let c of arr) {<!-- [et_pb_line_break_holder] -->      if (p.dist(p.mouseX,p.mouseY,c.startX,c.startY)<12||<!-- [et_pb_line_break_holder] -->          p.dist(p.mouseX,p.mouseY,c.endX,c.endY)<12||<!-- [et_pb_line_break_holder] -->          p.dist(p.mouseX,p.mouseY,c.controlX,c.controlY)<12) return c;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    return null;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function hitTest(x,y) {<!-- [et_pb_line_break_holder] -->    \/\/ Ford\u00edtott sorrendben (legut\u00f3bb lerakott fel\u00fcl van)<!-- [et_pb_line_break_holder] -->    for (let i=elements.length-1;i>=0;i--) {<!-- [et_pb_line_break_holder] -->      let e=elements[i];<!-- [et_pb_line_break_holder] -->      if (x>=e.leftX-2&&x<=e.leftX+e.width+2&#038;&#038;y>=e.leftY-2&&y<=e.leftY+e.height+2) return e;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    return null;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function distToSegment(px,py,x1,y1,x2,y2) {<!-- [et_pb_line_break_holder] -->    let dx=x2-x1,dy=y2-y1,lenSq=dx*dx+dy*dy;<!-- [et_pb_line_break_holder] -->    if (lenSq===0) return Math.hypot(px-x1,py-y1);<!-- [et_pb_line_break_holder] -->    let t=Math.max(0,Math.min(1,((px-x1)*dx+(py-y1)*dy)\/lenSq));<!-- [et_pb_line_break_holder] -->    return Math.hypot(px-(x1+t*dx),py-(y1+t*dy));<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ============================================================<!-- [et_pb_line_break_holder] -->  \/\/ Glob\u00e1lis API a gombokhoz<!-- [et_pb_line_break_holder] -->  \/\/ ============================================================<!-- [et_pb_line_break_holder] -->  window.ttSelect = function(tool) {<!-- [et_pb_line_break_holder] -->    selectedTool = tool;<!-- [et_pb_line_break_holder] -->    document.querySelectorAll('#tt-wrap .tt-btn').forEach(b=>b.classList.remove('active'));<!-- [et_pb_line_break_holder] -->    let btn = document.getElementById('btn-'+tool);<!-- [et_pb_line_break_holder] -->    if (btn) btn.classList.add('active');<!-- [et_pb_line_break_holder] -->    let label = document.getElementById('tt-tool-name');<!-- [et_pb_line_break_holder] -->    if (label) label.textContent = TOOL_LABELS[tool] || tool;<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  window.ttSave = function() {<!-- [et_pb_line_break_holder] -->    if (_saveFunc) _saveFunc();<!-- [et_pb_line_break_holder] -->    else alert('A v\u00e1szon m\u00e9g nem t\u00f6lt\u00f6tt be. Pr\u00f3b\u00e1ld \u00fajra!');<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  window.ttToggleField = function() {<!-- [et_pb_line_break_holder] -->    volleyFieldMode = volleyFieldMode===0?1:0;<!-- [et_pb_line_break_holder] -->    let btn = document.getElementById('tt-mode-toggle');<!-- [et_pb_line_break_holder] -->    btn.textContent = volleyFieldMode===1?'\ud83c\udfd0 Eg\u00e9szp\u00e1lya':'\ud83c\udfd0 F\u00e9lp\u00e1lya';<!-- [et_pb_line_break_holder] -->    if (p5inst) p5FieldImg = p5inst.loadImage(IMG_BASE+(volleyFieldMode?IMG.felpalya:IMG.egeszpalya));<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  window.ttClearAll = function() {<!-- [et_pb_line_break_holder] -->    if (!confirm('Biztosan t\u00f6r\u00f6lsz mindent?')) return;<!-- [et_pb_line_break_holder] -->    elements=[]; images_arr=[];<!-- [et_pb_line_break_holder] -->    lines=[]; curves=[]; highCurves=[]; vertCurves=[]; vertHighCurves=[];<!-- [et_pb_line_break_holder] -->    freePts=[]; currentFreePts=[];<!-- [et_pb_line_break_holder] -->    selEl=null; selLine=null; selCurve=null; selHighCurve=null;<!-- [et_pb_line_break_holder] -->    selVertCurve=null; selVertHighCurve=null; selFreePts=null;<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ p5 ind\u00edt\u00e1s<!-- [et_pb_line_break_holder] -->  p5inst = new p5(sketch);<!-- [et_pb_line_break_holder] -->  \/\/ Eg\u00e9r k\u00e9zjelz\u0151 a canvason<!-- [et_pb_line_break_holder] -->  ttSelect('none');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-78869","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/edzokepzes.hunvolley.hu\/index.php\/wp-json\/wp\/v2\/pages\/78869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/edzokepzes.hunvolley.hu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/edzokepzes.hunvolley.hu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/edzokepzes.hunvolley.hu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/edzokepzes.hunvolley.hu\/index.php\/wp-json\/wp\/v2\/comments?post=78869"}],"version-history":[{"count":16,"href":"https:\/\/edzokepzes.hunvolley.hu\/index.php\/wp-json\/wp\/v2\/pages\/78869\/revisions"}],"predecessor-version":[{"id":78888,"href":"https:\/\/edzokepzes.hunvolley.hu\/index.php\/wp-json\/wp\/v2\/pages\/78869\/revisions\/78888"}],"wp:attachment":[{"href":"https:\/\/edzokepzes.hunvolley.hu\/index.php\/wp-json\/wp\/v2\/media?parent=78869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}