{
  "schemaVersion": 2,
  "hash": "e896c3e05cc3417c74acc5a0b3b2a8ec29718f506526670dd547aeab0f899e90",
  "purpose": "html-region",
  "page": "/en/odraz-a-prostor/",
  "sourceLang": "CS",
  "targetLang": "EN-US",
  "glossaryRevision": "add1dfc20d8352f2a4e504e328cbb510e423fc74147c44fd605dcd453720e196",
  "glossaryId": "08f85824-1a74-45c3-94c8-6d5965be47b9",
  "deepl": {
    "tagHandling": "html",
    "tagHandlingVersion": "v2",
    "splitSentences": "nonewlines",
    "preserveFormatting": true
  },
  "selectorPolicyRevision": 2,
  "manual": false,
  "locked": false,
  "edited": false,
  "editedAt": null,
  "editedBy": null,
  "sourceFragment": " <div class=\"post-header\">  <h1 class=\"post-title\">Odraz a prostor</h1> <p class=\"post-meta\"> May 2020 </p> </div> <div class=\"post-body\"> <p>V této práci jsem se zabýval odrazem, jeho vizualizací a matematickým modelem. Začal jsem jednoduchým problémem – míčkem ve čtverci. Tento „míček“ je ve skutečnosti matematický vektor, tedy bezrozměrný bod, který má pozici a směr, ale pro zjednodušení ho budeme nadále nazývat míčkem. Také jsem pro zjednodušení ignoroval odpor vzduchu, ztrátu energie při odrazu atd. Míček je tedy vržen do čtverce pod nějakou počáteční pozicí a úhlem. Když narazí na stranu čtverce, odrazí se. Při pohybu za sebou také zanechává trajektorii. Tuto simulaci lze vidět v interaktivním okně níže. Lze s ním experimentovat a měnit počáteční úhel (angle) na jinou hodnotu.</p>\n<div class=\"embed embed--demo\"><span data-i18n-protected=\"p0\" translate=\"no\" class=\"notranslate\"></span></div>\n<p>Zatímco některé hodnoty počátečního úhlu vytvoří velice jednoduché trajektorie, které samy sebe obtahují (při úhlech 45° a 90°), jiné hodnoty vytvoří velmi chaotické trajektorie. Otázka je, zda se jednou po dostatečném počtu odrazů i tyto trajektorie uzavřou samy do sebe a začnou se jen obtahovat. Jak lze spatřit na nákresu níže, každému odrazu lze přiřadit nějaký úhel φ(n) a nějakou délku L(n) od levého kraje strany čtverce, na níž míček dopadl.</p>\n<figure class=\"figure figure--half figure--center \"> <a href=\"/images/odraz-a-prostor-obr-1.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-1.png\" alt=\"\"> </a>  </figure>\n<p>Každá strana je velká 1 jednotku. Počátečními parametry je tedy velikost úhlu φ(0) a délka od levého kraje strany L(0). Takto vypuštěný míček se pak odrazí a vzniknou dvojice čísel φ(1) a L(1), dále φ(2) a L(2) atd… Pokud tedy chceme dokázat, zda se trajektorie při určitém počátečním úhlu a délce od levého kraje strany uzavře, zajímá nás, zda existují čísla φ(n) a L(n) taková, že φ(0) = φ(n) a L(0) = L(n). Jinými slovy, zajímá nás, zda se míček jednou dostane na místo, odkud byl vypuštěn a od toho se odrazí pod stejným úhlem. Abychom přesněji pochopili, co se z matematického hlediska při odrazech děje, napsal jsem algoritmus, do kterého se zadají dva parametry – φ(n) a L(n). Algoritmus poté přesně vypočte hodnoty čísel φ(n + 1) a L(n + 1), tedy hodnoty dalšího odrazu.</p>\n<span data-i18n-protected=\"p1\" translate=\"no\" class=\"notranslate\"></span>\n<p>Stačí nám tedy do algoritmu vložit použe dva základní parametry (výchozí úhel a pozici) a on nám dá dva parametry kroku následujícího. Tyto dvojice čísel můžeme postupně vkládat do množiny číselné posloupnosti (nazvěme tuto množinu M). Otázka “Uzavře se jednou trajektorie míčku?” je logicky ekvivalentní s otázkou “Je posloupnost M periodická?”. Zatím bohužel nevím, jak na tuto otázku odpovědět.</p>\n<p>Rozhodl jsem se dále pracovat na simulaci odrazu a rozšířit ji do 3D. Míček se v ní odráží od stěn krychle v trojdimenzionálním prostoru. Bohužel tato simulace nelze použít na webu ve formě interaktivního rámečku. Proto je zde pouze kód a výstup v podobě obrázků.</p>\n<figure class=\"figure figure--full figure--center \"> <a href=\"/images/odraz-a-prostor-obr-2.gif\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-2.gif\" alt=\"\"> </a>  </figure>\n<div class=\"media-row \"> <div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-3.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-3.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-4.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-4.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-5.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-5.png\" alt=\"\"> </a>   </div> </div>\n<div class=\"media-row \"> <div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-6.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-6.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-7.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-7.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-8.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-8.png\" alt=\"\"> </a>   </div> </div>\n<div class=\"media-row \"> <div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-9.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-9.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-10.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-10.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-11.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-11.png\" alt=\"\"> </a>   </div> </div>\n<div class=\"media-row \"> <div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-12.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-12.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-13.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-13.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-14.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-14.png\" alt=\"\"> </a>   </div> </div>\n<div class=\"media-row \"> <div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-15.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-15.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-16.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-16.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-17.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-17.png\" alt=\"\"> </a>   </div> </div>\n<p>Různé obrázky výše jsou generovány vypuštěním míčku ze středu krychle do různých směrů. Jak lze vidět, tento počáteční směr zásadně ovlivňuje podobu trajektorie. Některé trajektorie se uzavřou samy do sebe hned po několika odrazech, jiné vypadají spíše chaoticky. Stejně jako u 2D simulace je dost obtížné určit, zda se náhodou i velice chaoticky vypadající trajektorie po dostatečném počtu odrazů uzavřou samy do sebe a dále se budou jen opisovat. Níže je interaktivní demo, které jsem pro tuto 3D simulaci vytvořil.</p>\n<div class=\"embed embed--demo\"><span data-i18n-protected=\"p3\" translate=\"no\" class=\"notranslate\"></span></div> </div> ",
  "translatedFragment": " <div class=\"post-header\">  <h1 class=\"post-title\">Reflection and Space</h1> <p class=\"post-meta\"> May 2020 </p> </div> <div class=\"post-body\"> <p>In this work, I explored reflection, its visualization, and its mathematical model. I started with a simple problem—a ball in a square. This “ball” is actually a mathematical vector, i.e., a dimensionless point that has a position and direction, but for simplicity’s sake, we’ll continue to refer to it as a ball. For simplicity, I also ignored air resistance, energy loss during the bounce, etc. The ball is thus thrown into the square from an initial position and angle. When it hits the side of the square, it bounces off. As it moves, it also leaves a trajectory behind it. You can see this simulation in the interactive window below. You can experiment with it and change the initial angle to different values.</p>\n<div class=\"embed embed--demo\"><span data-i18n-protected=\"p0\" translate=\"no\" class=\"notranslate\"></span></div>\n<p>While some initial angle values produce very simple trajectories that loop back on themselves (at angles of 45° and 90°), other values produce very chaotic trajectories. The question is whether, after a sufficient number of bounces, even these trajectories will close in on themselves and begin to simply trace their own paths. As can be seen in the diagram below, each bounce can be assigned an angle φ(n) and a distance L(n) from the left edge of the side of the square where the ball landed.</p>\n<figure class=\"figure figure--half figure--center \"> <a href=\"/images/odraz-a-prostor-obr-1.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-1.png\" alt=\"\"> </a>  </figure>\n<p>Each side is 1 unit long. The initial parameters are therefore the angle φ(0) and the distance L(0) from the left edge of the side. A ball released in this way will then bounce, yielding pairs of numbers φ(1) and L(1), then φ(2) and L(2), and so on… Therefore, if we want to prove whether the trajectory will close at a given initial angle and distance from the left edge of the side, we are interested in whether there exist numbers φ(n) and L(n) such that φ(0) = φ(n) and L(0) = L(n). In other words, we are interested in whether the ball will eventually return to the point from which it was released and bounce off it at the same angle. To better understand what happens mathematically during these bounces, I wrote an algorithm that takes two parameters—φ(n) and L(n). The algorithm then precisely calculates the values of φ(n + 1) and L(n + 1), that is, the values for the next bounce.</p>\n<span data-i18n-protected=\"p1\" translate=\"no\" class=\"notranslate\"></span>\n<p>So all we need to do is feed just two basic parameters (the initial angle and position) into the algorithm, and it will give us the two parameters for the next step. We can gradually add these pairs of numbers to a set of numerical sequences (let’s call this set M). The question “Will the ball’s trajectory ever close?” is logically equivalent to the question “Is the sequence M periodic?” Unfortunately, I do not yet know how to answer this question.</p>\n<p>I decided to continue working on the bounce simulation and extend it to 3D. In this simulation, the ball bounces off the walls of a cube in three-dimensional space. Unfortunately, this simulation cannot be used on the web as an interactive frame. Therefore, only the code and the output in the form of images are provided here.</p>\n<figure class=\"figure figure--full figure--center \"> <a href=\"/images/odraz-a-prostor-obr-2.gif\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-2.gif\" alt=\"\"> </a>  </figure>\n<div class=\"media-row \"> <div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-3.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-3.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-4.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-4.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-5.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-5.png\" alt=\"\"> </a>   </div> </div>\n<div class=\"media-row \"> <div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-6.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-6.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-7.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-7.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-8.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-8.png\" alt=\"\"> </a>   </div> </div>\n<div class=\"media-row \"> <div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-9.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-9.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-10.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-10.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-11.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-11.png\" alt=\"\"> </a>   </div> </div>\n<div class=\"media-row \"> <div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-12.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-12.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-13.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-13.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-14.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-14.png\" alt=\"\"> </a>   </div> </div>\n<div class=\"media-row \"> <div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-15.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-15.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-16.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-16.png\" alt=\"\"> </a>   </div><div class=\"media-row__item\"> <a href=\"/images/odraz-a-prostor-obr-17.png\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/images/odraz-a-prostor-obr-17.png\" alt=\"\"> </a>   </div> </div>\n<p>The various images above are generated by releasing the ball from the center of the cube in different directions. As you can see, this initial direction significantly affects the shape of the trajectory. Some trajectories close in on themselves after just a few bounces, while others appear rather chaotic. Just as with the 2D simulation, it is quite difficult to determine whether even very chaotic-looking trajectories will eventually close in on themselves after a sufficient number of bounces and simply trace each other from that point on. Below is an interactive demo I created for this 3D simulation.</p>\n<div class=\"embed embed--demo\"><span data-i18n-protected=\"p3\" translate=\"no\" class=\"notranslate\"></span></div> </div> ",
  "createdAt": "2026-07-11T10:54:18.473Z"
}
