Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Bošániová Monika
Rubics_cube
Commits
3a987ad9
Commit
3a987ad9
authored
Jul 10, 2021
by
Bošániová Monika
Browse files
LaTex edit and user cannot change centre of color faces
parent
6e154368
Changes
6
Hide whitespace changes
Inline
Side-by-side
Assets/Scripts/ColorButtons.cs
View file @
3a987ad9
...
...
@@ -27,14 +27,14 @@ public class ColorButtons : MonoBehaviour
if
(
Physics
.
Raycast
(
ray
,
out
RaycastHit
hit
))
{
Renderer
mesh
=
hit
.
collider
.
GetComponent
<
Renderer
>();
if
(
if
(
(
mesh
.
name
==
"Front"
||
mesh
.
name
==
"Back"
||
mesh
.
name
==
"Up"
||
mesh
.
name
==
"Down"
||
mesh
.
name
==
"Right"
||
mesh
.
name
==
"Left"
)
)
&&
mesh
.
tag
!=
"Centre"
)
if
(
actualMaterial
)
{
mesh
.
material
=
actualMaterial
;
...
...
latex/kapitoly/reseni.tex
View file @
3a987ad9
...
...
@@ -29,9 +29,9 @@ Aplikácia je rozdelená na dve scény, a to menu a samotný riešič. Prepínan
\hline
Názov tlačidla
&
Funkcia tlačidla
\\
[0.5ex]
\hline\hline
Play
&
Prepne sa do scény so samotným programom a riešičom
\\
Play
&
\makecell
{
Prepne sa do scény so samotným
\\
programom a riešičom
}
\\
\hline
Tutorial
&
Zobrazí užívateľovi scénu, kde mu objasní, ako daná aplikácia funguje
\\
Tutorial
&
\makecell
{
Zobrazí užívateľovi scénu, kde mu objasní,
\\
ako daná aplikácia funguje
}
\\
\hline
Quit
&
Zatvorí celú aplikáciu
\\
[1ex]
\hline
...
...
@@ -44,7 +44,7 @@ Aplikácia je rozdelená na dve scény, a to menu a samotný riešič. Prepínan
Zbytok voľného miesta zaberá rovnako ako v predtým scéne Canvas. V ňom sú vytvorené
všetky tlačidlá a aj 2D zobrazenie modelu. Všetky komponenty, jedná sa o tie na plátne,
sú ukotvené na stabilných miestach. Väčšinou sa jedná o roh aplikácie, pri ktorom sú
najbližšie. Ich pevné pozície museli byť nastavené, nakoľko by užívateľ mohol meniť rozlo
ženie
najbližšie. Ich pevné pozície museli byť nastavené, nakoľko by užívateľ mohol meniť rozlo
hu
okna aplikácie, a to malo za následok posun, ba až zmiznutie interaktívnych elementov z dosahu
používateľa.
...
...
@@ -53,22 +53,45 @@ Aplikácia je rozdelená na dve scény, a to menu a samotný riešič. Prepínan
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
alebo otočiť celou kockou. Vtedajšia rotácia kocky znamenala otočiť ju v ľubovoľnom z troch smerov,
alebo otočiť celou kockou. Vtedajšia rotácia kocky znamenala otočiť ju v ľubovoľnom z troch smerov
o 90 stupňov,
č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, ju urobi
ť
dynamickú. Teda inými slovami,
na tento daný problém. Namiesto statickej kamery,
sme
ju urobi
li
dynamickú. Teda inými slovami,
aby sa nehýbala kocka, ale aby užívateľ mal pocit väčšieho rozhľadu a pohybu okolo modelu.
Implementácia je nasledovná. Okolo celého 3D objektu Rubikovej kocky sa nachádza sféra (angl. Sphere).
Jedná sa o orbit kamery, kde je ukotvená ona sama spolu so svetlom.
Čo sa týka
Box Collideru je vypnutý,
nakoľko nechceme, aby užívateľ mal hociakú možnosť interagovať s
daným
orbitom.
Jedná sa o orbit kamery, kde je ukotvená ona sama spolu so svetlom.
Daný
Box Collideru je
pre tento objekt
vypnutý,
nakoľko nechceme, aby užívateľ mal hociakú možnosť interagovať s orbitom.
Pre zvýraznenie pocitu nekonečna a vytvorenie hlbšieho 3D efektu modelu, je nastavený na kamere tzv.
Skybox. Ten má dizajn vesmíru a doľadzuje tmavý štýl celej aplikácie.
Čo sa týka interakcie s užívateľom, ovládanie je predvolene nastavené na pravé tlačidlo myši.
Používateľovi stačí držať a ťahať intuitívne v smere, v akom sa chce posunúť. K nahliadnutiu
sú všetky steny kocky. Jedinou limitáciou je, že užívateľ nemôže prekročiť hornú a spodnú hranicu
orbitu. Inak povedané, nie je dovolené, aby užívateľ mohol rotovať okolo modelu po ypsilonovej
súradnici 360 stupňov.
\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 komponenty
nie sú vôbec podstatné z hľadiska funkčnosti. Dôvodom, prečo sme sa rozhodli ich zakomponovať
je iba dizajn. Snažili sme sa vytvoriť na stenách kocky ľahký nádych nepravidelnosti povrchu.
Jednoducho sme chceli dosiahnuť reálnosť modelu, aby sa užívateľ stotožnil s prostredím a
nepripadalo mu umelo vymodelované. Preto je na farebných plôškach jemne vidieť akoby
škrabance a textúra.
Tretí zdroj svetla je typovo reflektorový (angl. Spot light). Pripevnený spolu s kamerou
na orbite, ktorý obaľuje 3D model. Smer je zhodný so smerom kamery, teda osvetľuje všetko,
na čo sa užívateľ práve pozerá.
Jedinou zmenou, ktorú sme museli zabezpečiť je výzor oranžovej strany, nakoľko množstvo svetla,
ktoré svietlo na túto stranu ju robilo takmer nerozoznateľnú od žltej steny. Z toho dôvodu má materiál
oranžovej farby zvýšenú metalickosť. To malo za príčinu jeho stmavenie a zníženie možnosti zmetenia užívateľa.
\subsection
{
Model Kocky
}
Model kocky vznikal s myšlienkou jednoduchého vytvárania a pekného dizajnu.
Celý objekt bol vymodelovaný z jednej kocky, ktorá je nakopírovaná 27-krát.
...
...
@@ -90,8 +113,60 @@ Aplikácia je rozdelená na dve scény, a to menu a samotný riešič. Prepínan
S efektivitou posladania tohto hlavolamu to nemá čo dočinenia.
\subsection
{
Pohyby a rotácie
}
Ako sme už spomínali v kapilote (link) vyššie, pohyb okolo celého modelu kocky
zabezpečuje kamera, ktorá rotuje po orbite okolo.
Aby sme zjednodušili ovládanie aplikácie pre užívateľov, sme pridali funkcionalitu
otáčania jednotlivých strán kocky. Steny sa môžu otáčať iba v rotáciách, ktoré
neobsahujú ich stredné časti. Využíva sa nasledovné oficiálne pomenovanie:
\begin{center}
\begin{tabular}
{
||c|c||
}
\hline
Názov rotácie
&
Smer rotácie
\\
[0.5ex]
\hline\hline
F
&
\makecell
{
Otočenie prednej strany (predvolene modrá)
\\
v smere hodinových ručičiek
}
\\
\hline
F'
&
\makecell
{
Otočenie prednej strany (predvolene modrá)
\\
v protismere hodinových ručičiek
}
\\
\hline
F2
&
\makecell
{
Dvojité otočenie prednej strany (predvolene modrá)
}
\\
\hline
B
&
\makecell
{
Otočenie zadnej strany (predvolene zelená)
\\
v smere hodinových ručičiek
}
\\
\hline
B'
&
\makecell
{
Otočenie zadnej strany (predvolene zelená)
\\
v protismere hodinových ručičiek
}
\\
\hline
B2
&
\makecell
{
Dvojité otočenie zadnej strany (predvolene zelená)
}
\\
\hline
R
&
\makecell
{
Otočenie pravej strany (predvolene oranžová)
\\
v smere hodinových ručičiek
}
\\
\hline
R'
&
\makecell
{
Otočenie pravej strany (predvolene oranžová)
\\
v protismere hodinových ručičiek
}
\\
\hline
R2
&
\makecell
{
Dvojité otočenie pravej strany (predvolene oranžová)
}
\\
\hline
L
&
\makecell
{
Otočenie ľavej strany (predvolene červená)
\\
v smere hodinových ručičiek
}
\\
\hline
L'
&
\makecell
{
Otočenie ľavej strany (predvolene červená)
\\
v protismere hodinových ručičiek
}
\\
\hline
L2
&
\makecell
{
Dvojité otočenie ľavej strany (predvolene červená)
}
\\
\hline
U
&
\makecell
{
Otočenie hornej strany (predvolene biela)
\\
v smere hodinových ručičiek
}
\\
\hline
U'
&
\makecell
{
Otočenie hornej strany (predvolene biela)
\\
v protismere hodinových ručičiek
}
\\
\hline
U2
&
\makecell
{
Dvojité otočenie hornej strany (predvolene biela)
}
\\
\hline
D
&
\makecell
{
Otočenie spodnej strany (predvolene žltá)
\\
v smere hodinových ručičiek
}
\\
\hline
D'
&
\makecell
{
Otočenie spodnej strany (predvolene žltá)
\\
v protismere hodinových ručičiek
}
\\
\hline
D2
&
\makecell
{
Dvojité otočenie spodnej strany (predvolene žltá)
}
\\
[1ex]
\hline
\end{tabular}
\end{center}
\subsection
{
Farbenie presných častí kocky
}
Narozdiel od rozloženia kocky pomocou rotácií a ťahov, sme si povedali, že bude
Na
rozdiel od rozloženia kocky pomocou rotácií a ťahov, sme si povedali, že bude
dobrý nápad uľahčiť užívateľom namapovanie ich aktuálneho problému, ktorý chcú poskladať.
Predsa nie každý vie, ako dostal určité časti na svoje miesta. Preto naša aplikácia
podporuje zmenu režimu z rotácií na farbenie každej malej časti zvlášť podľa vybranej farby.
...
...
@@ -113,6 +188,14 @@ Aplikácia je rozdelená na dve scény, a to menu a samotný riešič. Prepínan
č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.
Práve preto sme sa rozhodli takémuto správaniu užívateľovi zabrániť. Ide o veľmi jednoruché riešenie.
Každá stredová plôška farebnej steny má nastavenú značku (angl. tag) s názvom Centre (prekl. stred).
Tým pádom, keď kamera vyšle laser na pozíciu, kde ukazuje kurzor myši a zasiahne objekt s touto značkou,
bude ignorovať nasledujúcu zmenu materálu, ktorá by za normálnych okolností nastala. Inými slovam používateľovi
nie je dovolené zmeniť farbu stredovej časti strany modelu.
Ak by sa užívateľ chcel vrátiť späť do režimu rotácii pokojne môže.
...
...
latex/pdfa.xmpi
View file @
3a987ad9
...
...
@@ -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-0
9
T21:
44:15
+02:00</xmp:ModifyDate>
<xmp:CreateDate>2021-07-0
9
T21:
44:15
+02:00</xmp:CreateDate>
<xmp:MetadataDate>2021-07-0
9
T21:
44:15
+02:00</xmp:MetadataDate>
<xmp:ModifyDate>2021-07-
1
0T21:
11:36
+02:00</xmp:ModifyDate>
<xmp:CreateDate>2021-07-
1
0T21:
11:36
+02:00</xmp:CreateDate>
<xmp:MetadataDate>2021-07-
1
0T21:
11:36
+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:
20FFEF70-D73B-A84C-7EE7-DA7F960C2A91
</xmpMM:InstanceID>
<xmpMM:InstanceID>uuid:
8A2B96B6-43A4-54BA-A8ED-D422133AD0CD
</xmpMM:InstanceID>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
...
...
latex/prace.pdf
View file @
3a987ad9
No preview for this file type
latex/prace.synctex.gz
View file @
3a987ad9
No preview for this file type
latex/prace.tex
View file @
3a987ad9
...
...
@@ -56,6 +56,7 @@
\usepackage
{
booktabs
}
% lepší vodorovné linky v tabulkách
\usepackage
{
paralist
}
% lepší enumerate a itemize
\usepackage
{
xcolor
}
% barevná sazba
\usepackage
{
makecell
}
%%% Údaje o práci
...
...
@@ -100,7 +101,15 @@ David N. za pomoc s texem
% Abstrakt (doporučený rozsah cca 80-200 slov; nejedná se o zadání práce)
\def\Abstrakt
{
%
Abstrakt.
Táto práca je vytvorená za účeľom zjednodušiť pohľad na skladanie Rubikovej kocky.
Prechádza rôznymi pohľadmi, ako vyriešiť tento hlavolam. Popisuje teóriu, myšlienky
a históriu algoritmov, ako napríklad Kociemba. Približuje výzor prostredia aplikácie
a interaktivitu rôznych elementov. Spracovanie 3D modelu, ktorý je následne prepojený
s 2D mapou kocky. Rovnako sa tu nachádza aj popis ako môže užívateľ interagovať s
prostredím a dôvody, prečo je celá aplikácia implementovaná následovne. Analyzuje efektivitu
z rôznych pohľadov. Opisuje prácu a pohyb kamery so svetlom. Spracováva spätnú väzbu
od testovacích užívateľov.
}
\def\AbstraktEN
{
%
Abstract.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment