Commit 763f649a authored by Bošániová Monika's avatar Bošániová Monika
Browse files

latex update

parent 9ca95935
\chapter{Analýza a požiadavky}
V tejto kapitole sa zameriame na rôzne spôsoby riešenia daných problémov, s
ktorými sme sa pri implementácii potýkali.
Rovnako nahliadneme na ich výhody a nevýhody. Porovnáme ich efektivitu a vhodnosť z hľadiska
cieľov projektu.
\section{Existujúce projekty a riešiče}
Hlavolam Rubikova kocka
\subsection{Kociemba}
\subsection{Začiatočnícky spôsob riešenia}
\section{Užívateľské prostredie}
\subsection{Kamera}
\subsection{Riešič}
\subsection{Rotácie}
\subsection{Svetlo}
\subsection{2D mapa}
\subsection{3D model}
\subsection{Farbenie strán}
\subsection{Posúvanie krokov}
Prvotné spracovanie práce kamery bolo statické. To znamenalo, že kamera bola pevne ukotvená
na svojej pozícii, kde snímala hornú a dve bočné strany kocky. Tým pádom, ak užívateľ
chcel nahliadnuť na steny, ktoré v danom momente nevidel, buď bol nútený použiť 2D zobrazenie modelu
......@@ -25,12 +18,37 @@
čo sme nepokladali za úplne intuitívne. Preto sme sa rozhodli pre lepšiu variantu a iný pohľad
na tento daný problém. Namiesto statickej kamery, sme ju urobili dynamickú. Teda inými slovami,
aby sa nehýbala kocka, ale aby užívateľ mal pocit väčšieho rozhľadu a pohybu okolo modelu.
Ponúkli sme používateľom väčšiu voľnosť, no na druhú stranu sme zamedzili možnosť otočiť kocku iným smerom
ako je predvolene, teda bielou stenou hore.
\subsection{Riešič}
\subsection{Rotácie}
\subsection{Svetlo}
Jedno z prvých riešení bolo vytvorenie iba jediného statického zroja svetla. Ten ovetloval celú kompozíciu rovnomerne.
Nakoľko sme v neskorších štádiách rozmýšľali nad vylepšením práce kamery, nemohli sme už ostať iba pri statickom osvetlení.
Potreba osvietiť všekto každý element, na ktorý sa užívateľ práve pozerá, sa stala ešte dôležitejšou pri zmene kamery
na dynamickú. Z tohto dôvodu, nám napadlo riešenie pripevnenia svetla na pozíciu kamery. Teda pri každom pohybe kamery,
by sa spolu s ňou hýbalo aj svetlo.
\subsection{2D mapa}
V prvom rade sme sa chceli vyhnúť, aby strany kocky vyzerali plocho
a obyčajne. Preto sme ich nechali vystúpenejšie.
\begin{figure}[H]
\centering
\includegraphics[width=.4\linewidth]{img/2Dmap.png}
\caption[Ukážka 2D zobrazenia modelu]{Ukážka 2D zobrazenia modelu}
\end{figure}
\begin{figure}[H]
\centering
\includegraphics[width=.4\linewidth]{img/2DMapAlternative.png}
\caption[Ukážka 2D zobrazenia modelu]{Ukážka 2D zobrazenia modelu}
\end{figure}
\subsection{3D model}
V prvom rade sme sa chceli vyhnúť, aby strany kocky vyzerali plocho
a obyčajne. Preto sme ich nechali vystúpenejšie.
\subsection{Farbenie strán}
Ten reprezentuje pohľad užívateľa a orientáciu jeho kliknutia.
V tejto implementácii ale nastal problém. Čo ak by užívateľ netrafil časť, ktorú chce zafarbiť, a tým že
......@@ -39,8 +57,30 @@
Každý Box Collider pre jednotlivé farebné plôšky je zväčšený o desať percent z každej strany,
čo zabezpečuje vyplnenie celej steny kocky, a teda sa nestane, že by laser prešiel na druhú stranu.
Zamýšľali sme sa nad možnosťou, keby sa užívateľ rozhodol prefarbiť kocku natoľko, že by napríklad
znížil počet farebných strán. Príkladom nám môže byť kocka namaľovaná jednou farbou. Takýto hlavolam
je zložiteľný sám o sebe, no už sa nejedná o klasickú Rubikovu kocku o šiestich rôznych stenách.
\ No newline at end of file
je zložiteľný sám o sebe, no už sa nejedná o klasickú Rubikovu kocku o šiestich rôznych stenách.
\subsection{Posúvanie krokov}
Jedna z prvých myšlienok, ako uchovávať stavy bol zoznam (angl. list), ktorý by bol na štýľ fronty --
FIFO.
Teda prvý vygenerovaný stav by bol aj prvým použitým. Nemôžeme túto implementáciu nazvať frontou, nakoľko
následné použitie, už definíciu FIFO nespĺňa. V závislosti na poskytovnie užívateľovi všetky spätné (resp. nasledujúce) kroky,
by vyhadzovanie elementov zo zoznamu znemožnilo danú myšlienku.
\chapter{Návrh projektu a jeho ciele}
Myšlienka projektu je vytvoriť užívateľsky priateľské prostredie,
ktoré by používateľov naviedlo k úspešnému vyriešeniu hlavolamu.
Za pomoci jednoduchých krokov a algoritmu pomôcť užívateľovi
naučiť sa jednotlivé sekvencie pohybov.
\section{Ciele projektu}
Táto práca má za úlohy zjednodušiť užívateľom manipuláciu a naučenie sa algoritmu
skladania hlavolamu Rubikovej kocky.
\subsection{Jednoduchosť ovládania}
myš
\subsection{Efektívnosť}
Efektívnosť... pridaná kociemba
\section{Prostriedky k dosiahnutiu cielov}
kociemba, farbenie, samostatné rozloženie,... text ťahov
\chapter{Špecifikácia systému}
\ No newline at end of file
......@@ -39,7 +39,8 @@ s názvom SceneLoader.
Celá kompozícia má ako pozadie nastavený obrázok znázorňujúci čiernu školskú
tabuľu, ten je vycentrovaný na stred a zarovnaný, aby pokrýval celú časť plátna.
\subsection{Návod pre užívateľov}
\subsection{Prostredie}
Užívateľské prostredie sme sa snažili ladiť do tmavých farieb. Jedným z hlavných
dôvodov prečo sme volili túto cestu je, že sme chceli uľahčiť
......@@ -79,8 +80,6 @@ s názvom SceneLoader.
\subsection{Svetlo}
Program obsahuje tri svetelné zdroje. Dva sú statické, pripevnené na presných pozíciách,
kde svietia nastaveným smerom na model v oblasti celého prostredia. Tieto dve svetlá
......@@ -133,6 +132,11 @@ s názvom SceneLoader.
neobsahujú ich stredné časti. Využíva sa oficiálne pomenovanie z kapitoty 1.1.2.
\begin{figure}[H]
\centering
\includegraphics[width=.4\linewidth]{img/RotationModeButton.png}
\caption[Dizajn tlačidla rotácií]{Dizajn tlačidla rotácií}
\end{figure}
......@@ -163,16 +167,38 @@ s názvom SceneLoader.
Ak by sa užívateľ chcel vrátiť späť do režimu rotácii klikne na tlačidlo s nápisom Edit.
\subsection{2D Mapa Kocky}
K ľavému hornému rohu je ukotvená 2D mapa modelu Rubikovej kocky.
\begin{figure}[H]
\centering
\includegraphics[width=.4\linewidth]{img/2Dmap.png}
\caption[Ukážka 2D zobrazenia modelu]{Ukážka 2D zobrazenia modelu}
\includegraphics[width=.4\linewidth]{img/editationModeButton.png}
\caption[Dizajn tlačidiel, ktoré zabezpečujú farbenie]{Dizajn tlačidiel, ktoré zabezpečujú farbenie}
\end{figure}
\subsection{2D Mapa Kocky}
K ľavému hornému rohu je ukotvená 2D mapa modelu Rubikovej kocky.
Dizajnu zodpovedá obrázok 2.1. Kvôli jednoduchosti a prehľadnosti je znova nastavená biela stena hore.
Mapa sa sama aktualizuje hneď po akejkoľvej interakcii s modelom kocky. To môže byť v prípade otočenia
strany alebo prefarbenia jednotlivých menších plôch. Rovnako k zmene dôjde pri samoskladaní a samorozkladaní.
\subsection{Posun v sekvencii ťahov}
Užívateľ je schopný kedykoľvek si zastaviť a znova pustiť animáciu modelu.
Pri pozastavení je možné posúvať sa po jednotlivých krokoch dopredu a späť.
Intuitívnosť dodáva aj voľba dizajnu tlačidiel. Všetky zvolené popisy boli vyberané
a prispôsobované známim symbolom.
(add vytvorenie Memento, Text v app a string krokov v zozname)
\begin{figure}[H]
\centering
\includegraphics[width=.4\linewidth]{img/undoRedoButtons.png}
\caption[Dizajn tlačidiel, ktoré zabezpečujú posun v sekvencii ťahov]{Dizajn tlačidiel, ktoré zabezpečujú posun v sekvencii ťahov}
\end{figure}
......@@ -195,21 +221,23 @@ s názvom SceneLoader.
pravdepodobnosť chyby zadávania vstupu od užívateľa. Preto musíme zamedziť takémuto stavu.
\subsubsection{Algoritmus}
Najprv spustíme algoritmus Kociemba (kapitola 5.3.2), ktorá nám veľmi efektívne a rýchlo povie, riešiteľnosť
problému. V prípade chyby, dostaneme spätne aj dôvod, aký problém nastal. Následne je na užívateľovi, aby vstup zadaný ním skontroloval
Najprv spustíme algoritmus Kociemba (kapitola 5.3.2), ktorá nám veľmi efektívne a rýchlo
povie, riešiteľnosť problému. V prípade chyby, dostaneme spätne aj dôvod, aký problém nastal.
Následne je na užívateľovi, aby vstup zadaný ním skontroloval
ešte raz.
Ak je všetko v poriadku ďalej postupujeme v hľadaní riešenia. Budeme pomaly pokračovať podľa riadkov modelu.
Začneme pri hornej stene. V realite nezáleží, ktorú zo strán si
užívateľ zvolí ako prvú. My sme predvolene vybrali bielu.
\textbf{Prvý krok -- biela stena}
\textbf{Druhý krok -- druhý riadok}
\textbf{Tretí krok -- rohy v treťom riadku}
\textbf{Štvrtý krok -- hrany v treťom riadku}
užívateľ zvolí ako prvú. My sme predvolene vybrali bielu. \\
\textbf{Prvý krok -- biela stena}\\
\textbf{Druhý krok -- druhý riadok}\\
\textbf{Tretí krok -- rohy v treťom riadku}\\
\textbf{Štvrtý krok -- hrany v treťom riadku}\\
\subsection{Kociemba}
Algoritmus Kociemba je opísaný v kapitole 2.1.1. Na implementáciu tohto riešiča sme použili
už napísanú knižnicu zo stránky gitHub (link).
Celá knižnica je už vopred pripravená pre prostredie Unity, čo nám veľmi uľahčilo prácu.
Rovnako ju používame na zisťovanie, či daná permutácia Rubikovej kocky je zložiteľná.
Ak by užívateľ chcel použiť tento algoritmus, stačí ak zatlačí tlačidlo s názvom \uv{Kociemba}.
\ No newline at end of file
......@@ -156,7 +156,7 @@ poslednej vrstve, videli by sme, že ani túto nebudeme vedieť úspešne poskla
\subsubsection{Nesprávnosť spätného nalepenia štítkov}
Druhou alternatívou, ako vytvoriť nezložiteľnú permutáciu Rubikovej kocky je nekorektná výmena farbných štítkov.
Na obrázkoch nižšie si môžeme povšimnúť napríklad vymenené stredové nálepky alebo vytvoreniejednotlivých kostičiek,
Na obrázkoch nižšie si môžeme povšimnúť napríklad vymenené stredové nálepky alebo vytvorenie jednotlivých kostičiek,
ktoré v originálnom modeli neexistujú.
\begin{figure}[H]
\centering
......
......@@ -19,7 +19,7 @@
%%% položku, seznam se automaticky vynechá.
\bibliography{literatura}
\nocite{*} % bibtex si nebude stěžovat na chybějící citace
%%% Kdybyste chtěli bibliografii vytvářet ručně (bez bibTeXu), lze to udělat
%%% následovně. V takovém případě se řiďte normou ISO 690 a zvyklostmi v oboru.
......
......@@ -80,15 +80,15 @@
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
<xmp:CreatorTool>LaTeX with hyperref</xmp:CreatorTool>
<xmp:ModifyDate>2021-07-15T15:29:49+02:00</xmp:ModifyDate>
<xmp:CreateDate>2021-07-15T15:29:49+02:00</xmp:CreateDate>
<xmp:MetadataDate>2021-07-15T15:29:49+02:00</xmp:MetadataDate>
<xmp:ModifyDate>2021-07-16T02:07:08+02:00</xmp:ModifyDate>
<xmp:CreateDate>2021-07-16T02:07:08+02:00</xmp:CreateDate>
<xmp:MetadataDate>2021-07-16T02:07:08+02:00</xmp:MetadataDate>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmpRights = "http://ns.adobe.com/xap/1.0/rights/">
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
<xmpMM:DocumentID>uuid:E471EDA9-0143-B4EC-2929-27CBFE26697B</xmpMM:DocumentID>
<xmpMM:InstanceID>uuid:EA90947E-895A-794C-2148-81A7CD9C2009</xmpMM:InstanceID>
<xmpMM:InstanceID>uuid:33968854-08FD-EA42-AB6D-E80F87295F9F</xmpMM:InstanceID>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
......
No preview for this file type
No preview for this file type
......@@ -176,6 +176,15 @@ Abstract.
%%% Použité zkratky v bakalářské práci (opět nemusí být nutné uvádět)
%%% U matematických prací může být lepší přemístit seznam zkratek na začátek práce.
\chapwithtoc{Seznam použitých zkratek}
\begin{tabular}{| c | c |}
\hline
FIFO & Fronta, (z angl. first in first out) \\
\hline
Regexp & \makecell{Regular expression, více zde: \\ \url{https://en.wikipedia.org/wiki/Regular_expression}} \\
\hline
DB & Databáze \\
\hline
\end{tabular}
%%% Přílohy k bakalářské práci, existují-li. Každá příloha musí být alespoň jednou
%%% odkazována z vlastního textu práce. Přílohy se číslují.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment