public class Roj extends Object
Táto trieda umožňuje definovať a pracovať so sériou bodov (zvaných roj) umiestnených v trojrozmernom priestore. Na zobrazenie scény roja je použitá bodová projekcia. Body môžu byť prepojené spojmi, čím môžu byť vytvárané drôtené modely a v každom bode môže byť definovaný objekt na nakreslenie, čím sa dajú vytvárať jednoduché 3D scény zložené z 2D kulís (pozri príklad kolotoča nižšie).
Súradnicový systém roja je orientovaný ľavotočivo, čiže keď sa pozrieme na plochu xy zvrchu tak, že y-ová os smeruje doprava (rastom kladných hodnôt), tak x-ová os smeruje hore (pozri obrázok nižšie). Alebo keď sa pozeráme na počiatok súradnicovej sústavy z oktetu všetkých troch kladných súradníc tak, že z-ová súradnica smeruje hore, tak x-ovú os máme po pravej ruke a y-ovú po ľavej (pozri obrázok nižšie).
Každý bod roja má definované množstvo atribútov, ktoré
majú poskytovať čo najväčšiu flexibilitu. Väčšina z nich slúži na
umiestnenie bodu do priestoru. Základná trojica atribútov sú pôvodné
súradnice bodu v priestore [x0, y0, z0]. Z nich sú pomocou atribútov posunutia
[dx, dy, dz],
stredu rotácie [xs, ys,
zs] a uhlov rotácie (alfa,
beta, gama) vypočítané
takzvané lokálne transformované súradnice v priestore [x1, y1, z1]. Ďalším krokom je
výpočet takzvaných konečných súradníc [x2,
y2, z2], čo sú globálne
transformované súradnice, to jest riadia sa hodnotou aktuálnej
transformačnej matice roja, ktorá je prepočítavaná z polohy a orientácie
kamery (pozri napríklad: nastavUhly, nastavStredOtáčania, nastavKameru), mierky, prípadne ďalších
(automaticky zisťovaných) hodnôt. Posledným krokom je výpočet polohy bodu
premietnutej na plátno [x3, y3]
a korešpondujúceho faktora rozmeru objektu kresleného v konkrétnom bode
z3.
|
|
V tomto balíčku (7z) je dostupný na prevzatie miniprojekt obsahujúci ovládač roja a od neho odvodenú jednoduchú triedu testu roja s niekoľkými príkladmi použitia roja.

Ukážka
možného výstupu príkladu testu roja s implementáciou ovládača roja.
Na jeho základe je postavený nasledujúci príklad s kolotočom.
Príklad:
Tento príklad implementuje trojrozmernú kolotočovú ponuku zloženú z čiarových ikon vo formáte SVG.
importknižnica.*;importjava.awt.Shape;// SVG ikonky boli vyrobené (pomocou vektorového grafického editora// Inkscape) z bitmapovej verzie ikon voľne dostupných na webovej stránke:// https://icon-library.net/icon/menu-icon-png-3-lines-20.//// Ďalšie odporúčané zdroje://// • Výborný SVG tester: https://codepen.io/AmeliaBR/pen/JoYNEZ?editors=1000// • Coyier, Chris. 2018. The SVG ‘path’ Syntax : An Illustrated Guide.// ⟨https://css-tricks.com/svg-path-syntax-illustrated-guide/⟩.// • https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths// • https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/dpublicclassKolotočextendsGRobot{// Roj a príznak potreby jeho prekreslenia (po zmene parametrov):privateRojroj =newRoj(this);privatebooleanprekresliRoj =true;// Uhol jednotkového pootočenia kolotoča a aktuálne želaný uhol:privatedoubleΔu, želanýUhol =90.0;// Zoznam SVG súborov obsahujúcich SVG tvary ikoniek:privateString[] mená =newString[] {"ramcek.svg","spendlik.svg","hudba.svg","kompas.svg","film.svg","obrazok.svg","kalkulacka.svg","kava.svg","papiere.svg","zakladac.svg","mobilna-siet.svg","smernik.svg","kvapka.svg","sluchadlo.svg",// …};// Statická trieda zoskupujúca funkcionalitu prevodu čiarovej ikonky// vo formáte SVG do tvarov Javy.publicstaticclassIkonkaimplementsKreslenieTvaru{// Atribút na prepínanie zobrazenia ladiacich informácií:privatestaticbooleaninfo =false;// Vnútorné atribúty kreslenia ikonky:privateStringmeno;privateShape[] tvary;privateFarba[] výplne;privateFarba[] čiary;// Konštruktor ikonky.publicIkonka(Stringmeno) {this.meno = meno; SVGnaTvary(meno); }
// Metóda prevádzajúca tvary zo zadaného SVG súboru na tvary Javy.privatevoidSVGnaTvary(Stringmeno) {try{// Vyčistenie inštancie svgPodpora od predchádzajúceho// čítania:svgPodpora.vymaž();// Overenie, či bol súbor korektne prečítaný:if(-1==svgPodpora.čítaj(meno)) {// Predvolený tvar kružnice v prípade zlyhania čítania// súboru:tvary =newShape[] {newjava.awt.geom.Ellipse2D.Double(Svet.prepočítajX(-10),Svet.prepočítajY(10),20,20)}; výplne =newFarba[] {biela.priehľadnejšia(0.6)}; čiary =newFarba[] {ružová}; }else{// Získanie súradnice stredu:Bodstred =svgPodpora.stredKresby();// Výroba transformácie posunutia v súradnicovom// priestore Javy (tá sa nižšie použije na posunutie// všetkých tvarov):SVGPodpora.TransformáciaposunTam =newSVGPodpora.Transformácia(SVGPodpora.Transformácia.POSUN, -stred.polohaX(),stred.polohaY());// Uloženie počtu tvarov kresby do pomocnej premennej:intpočet =svgPodpora.počet();// Vytvorenie polí s prislúchajúcimi počtami prvkov:tvary =newShape[počet]; výplne =newFarba[počet]; čiary =newFarba[počet];// Pridanie transformácie ku každému tvaru a zároveň// overenie toho, či má byť tento tvar vypĺňaný, kreslený// (alebo oboje):for(inti =0; i < počet; ++i) {svgPodpora.pridajTransformácie(i, posunTam); tvary[i] =svgPodpora.dajVýsledný(i); výplne[i] =svgPodpora.farbaVýplne(i); čiary[i] =svgPodpora.farbaČiary(i); } } }catch(Exception e) {// (Toto nastane len výnimočne. Aj neprítomný alebo chybný// SVG súbor je signalizovaný inak: návratovou hodnotou// metódy čítaj.)e.printStackTrace(); } }// Kreslenie ikonky.publicvoidkresli(GRobotr) {// Všetky ikonky budú kreslené zvislo s hrúbkou čiary určenou// aktuálnou mierkou robota:r.uhol(90); r.hrúbkaČiary(r.mierka());
// Poznámka: Prispôsobenie (zmena) niektorých programátorom// vybraných farieb počas kreslenia ikoniek kolotoča je vhodné// potvrdiť práve na tomto mieste tak, že si farbu (alebo farby)// vopred zapamätáme do premennej a potom ňou (nimi) nahradíme// zvolenú kľúčovú farba (resp. farby) v kresbe. V tejto ukážke// (iba na ukážku) nahrádzame ružovú farbu robotom vopred// vygenerovanou náhodnou farbou. V dodaných SVG súboroch je// táto farba (opäť len na ukážku) použitá iba raz – v „bodke“// na obrázku mobilna-siet.svg. Môže však ísť o nahradenie// ľubovoľnej farby ľubovoľnou farbou. Môžu byť tiež využité// verejné atribúty farba a farbaSpoja aktuálne kresleného bodu// roja (pozri atribút Roj.bod). (Spoje i tak v tomto príklade// nevyužívame, tak môžeme využiť atribút rezervovaný na ich// zafarbovanie na vlastné účely.)r.náhodnáFarba();Farbaf = r.farba();
inti =0;for(Shapetvar : tvary) {if(null!= výplne[i]) {if(ružová.equals(výplne[i])) r.farba(f);elser.farba(výplne[i]); r.vyplňTvar(tvar,true); }if(null!= čiary[i]) {if(ružová.equals(čiary[i])) r.farba(f);elser.farba(čiary[i]); r.kresliTvar(tvar,true); } ++i; }// Ladiace informácie ikoniek (meno súboru nad ňou a mierka// pod ňou):if(info) { r.skoč(r.veľkosť() *1.5); r.text(meno); r.odskoč(r.veľkosť() *2.75); r.text(r.F(r.mierka(),2)); } } }
// Konštruktor celého kolotoča.privateKolotoč() {// Keby sme chceli mať predvolene zobrazené osi súradnicovej// sústavy (ktoré sú dobrou pomôckou pri ladení), volali by sme// na tomto mieste tento príkaz: osi();// Nastavenie predvolených vlastností roja (pri každom počte// bodov je potrebné tieto parametre „doladiť“ – najmä mierku):resetujRoj();// Poznámka: Rôzne hodnoty od predvolených majú len:// roj.mierka(500);// roj.nastavKameru(0, 50, 30);// Výpočet pomocných parametrov, pomocou ktorých vložíme// niekoľko bodov do roja:intn = mená.length;// počet bodovdoubler =15;// polomer kružnice, na ktorej budú umestnenéΔu =360.0/ n;// uhol otáčania smerníka (*)doubled = (2*Math.PI* r) / n;// dĺžka posunu smerníka (*)// (*) Smerník slúži na zjednodušenie vkladania bodov do roja.// Vypneme predvolené vkladanie spojov smerníkom:roj.smerník.vkladajSpoje=false;// Uloženie jedného smeru (vektora osi otáčania) do zásobníka, aby// sa dal použiť jednoduchší tvar volania metódy „otoč“ smerníka// (je to jednotkový vektor v smere osi z):roj.smerník.smerNa(0,0,1); roj.smerník.zálohujSmer();// Počiatočné nastavenie smerníka (smer je súhlasný so smerom// osi y a smerník je vysunutý o polomer otáčania v smere osi x):roj.smerník.smerNa(0,1,0); roj.smerník.posuň(-r,0,0);// Prvé pootočenie smerníka o polovicu uhla (voláme zjednodušený tvar// metódy „otoč,“ pretože smer osi otáčania určuje vektor uložený// v zásobníku; vyššie):roj.smerník.otoč(Δu /2.0);// Inak by bolo treba používať tento tvar volania metódy:// roj.smerník.otoč(0, 0, 1, -Δu / 2.0);// Cyklus vkladania bodov:for(inti =0; i < n; ++i) {// Pred každým vložením bodu potočíme smerník:roj.smerník.otoč(-Δu);// Alternatívne (bez vektora v zásobníku spomínaného vyššie)// by bolo treba použiť tento tvar príkazu:// roj.smerník.otoč(0, 0, 1, Δu);// Vložíme bod do roja a posunieme smerník:Roj.Bodbod = roj.smerník.pridajBod(); bod.kreslenie=newIkonka(mená[i]); roj.smerník.posuň(d); }skry();// (Skrytie hlavného robota.)// Keby bolo predvolene zapnuté zobrazenie ladiacich informácií// o roji (čo v tomto príklade nie je), tak by sme tu museli vykonať// prvé volanie (inak by boli po štarte skryté a zobrazili by sa až// po ľubovoľnej zmene zobrazenia roja): infoORoji();// Vypnutie automatického prekresľovania a zapnutie časovača:Svet.nekresli();Svet.spustiČasovač(); }
// Pomocné nástroje na definíciu a kreslenie (resp. skrývanie// a zobrazovanie) osí.// {{{// Koncové body osí:privateRoj.BodosX =null;privateRoj.BodosY =null;privateRoj.BodosZ =null;// Vlastný tvar na kreslenie šípky na konci osi.publicKreslenieTvarušípka = r -> { r.vpravo(18); r.vzad(14); r.zdvihniPero(); r.vpred(14); r.vľavo(36); r.položPero(); r.vzad(14); };// Definovanie alebo úprava dĺžky osi x.publicvoidosX(doubledĺžka) {if(null== osX) {Roj.Bodbod = roj.pridajBod(); bod.zobraz= bod.spoj=false; bod.x0= -2; bod.skupina=1; osX = roj.pridajBod(); osX.farba= osX.farbaSpoja=červená; osX.x0= dĺžka; osX.skupina=1; osX.kreslenie= šípka; }elseosX.x0= dĺžka; prekresliRoj =true; }// Zobrazenie/skrytie osi x.publicvoidosX(booleanzobraz) {if(null== osX) {if(zobraz) osX(30);elsereturn; } osX.zobraz= osX.spoj= zobraz; prekresliRoj =true; }// Overenie, či je os x zobrazená.publicbooleanosX() {if(null== osX)returnfalse;returnosX.spoj; }// Definovanie alebo úprava dĺžky osi y.publicvoidosY(doubledĺžka) {if(null== osZ) {Roj.Bodbod = roj.pridajBod(); bod.zobraz= bod.spoj=false; bod.y0= -2; bod.skupina=2; osY = roj.pridajBod(); osY.farba= osY.farbaSpoja=zelená; osY.y0= dĺžka; osY.skupina=2; osY.kreslenie= šípka; }elseosY.y0= dĺžka; prekresliRoj =true; }// Zobrazenie/skrytie osi y.publicvoidosY(booleanzobraz) {if(null== osY) {if(zobraz) osY(30);elsereturn; } osY.zobraz= osY.spoj= zobraz; prekresliRoj =true; }// Overenie, či je os y zobrazená.publicbooleanosY() {if(null== osY)returnfalse;returnosY.spoj; }// Definovanie alebo úprava dĺžky osi z.publicvoidosZ(doubledĺžka) {if(null== osZ) {Roj.Bodbod = roj.pridajBod(); bod.zobraz= bod.spoj=false; bod.z0= -2; bod.skupina=3; osZ = roj.pridajBod(); osZ.farba= osZ.farbaSpoja=modrá; osZ.z0= dĺžka; osZ.skupina=3; osZ.kreslenie= šípka; }elseosZ.z0= dĺžka; prekresliRoj =true; }// Zobrazenie/skrytie osi z.publicvoidosZ(booleanzobraz) {if(null== osZ) {if(zobraz) osZ(10);elsereturn; } osZ.zobraz= osZ.spoj= zobraz; prekresliRoj =true; }// Overenie, či je os z zobrazená.publicbooleanosZ() {if(null== osZ)returnfalse;returnosZ.spoj; }// Definovanie alebo úprava dĺžky všetkých troch osí naraz.publicvoidosi(doubledĺžkaX,doubledĺžkaY,doubledĺžkaZ) { osX(dĺžkaX); osY(dĺžkaY); osZ(dĺžkaZ); }// Zobrazenie/skrytie troch osí naraz.publicvoidosi(booleanzobraz) { osX(zobraz); osY(zobraz); osZ(zobraz); }// Zobrazenie (definovanie) všetkých troch osí s predvolenými// hodnotami dĺžok.publicvoidosi() { osi(30,30,10); }// }}}
// Hromadné úpravy roja a jeho bodov. (Reset a hromadné transformácie// používajúce vnútorné atribúty bodov, ktoré sú rezervované na tieto// účely. Niektoré z týchto metód sú určené len pre pomocné režimy// ladenia 5 a 6 tejto ukážky.)// {{{// Táto metóda slúži na rýchle nastavenie predvolených vlastností roja.// (Táto metóda je pravdepodobne jediná, ktorej obsahom sa treba// zaoberať pri redukcii príkladu – t. j. pri odstraňovaní kreslenia// osí a iných ladiacich informácií.)publicvoidresetujRoj() {// Toto sú síce predvolené vlastnosti roja, ale pri každom resete// ich potrebujeme vrátiť späť:roj.nastavUhly(-110, -360,45); roj.nastavStredOtáčania(0,0,0);// Nasledujúce dve vlastnosti upravujeme z predvolených hodnôt// (ktoré by boli: mierka = 1000; kamera = [0, -125, 200]) na také,// aké potrebujeme v našej ukážke:roj.mierka(500); roj.nastavKameru(0,50,30);// Nastavenie príznaku potrebnosti prekreslenia roja:prekresliRoj =true;// Predvolená hodnota želaného uhla:želanýUhol =270.0; }// Reset vnútorných individuálnych vlastností posunutia (dx až dz)// a pootočenia (alfa až gama) jednotlivých bodov roja.publicvoidresetujBody() {for(Roj.Bodbod : roj.body())if(1> bod.skupina||3< bod.skupina) { bod.dx= bod.dy= bod.dz=// bod.xs = bod.ys = bod.zs =bod.alfa= bod.beta= bod.gama=0.0; bod.transformuj=true; } roj.transformovať(); prekresliRoj =true; }// Posunutie pomocou vnútorných vlastností dx až dz bodov roja.publicvoidposuňBody(doubleΔx,doubleΔy,doubleΔz) {for(Roj.Bodbod : roj.body())if(1> bod.skupina||3< bod.skupina) { bod.dx+= Δx; bod.dy+= Δy; bod.dz+= Δz; bod.transformuj=true; } roj.transformovať(); prekresliRoj =true; }// Pootočenie pomocou vnútorných vlastností alfa až gama bodov roja.publicvoidpootočBody(doubleΔα,doubleΔβ,doubleΔγ) {for(Roj.Bodbod : roj.body())if(1> bod.skupina||3< bod.skupina) { bod.alfa+= Δα; bod.beta+= Δβ; bod.gama+= Δγ; bod.transformuj=true; } roj.transformovať(); prekresliRoj =true; }// }}}
// Ovládanie – režim ladenia.// {{{// Atribúty súvisiace s režimom ladenia.privateintrežim =3;privatestaticbooleaninfoORoji =false;privatedoublemyšX =0;privatedoublemyšY =0;// Výpis ladiacich informácií.publicvoidinfoORoji() {Svet.vymažTexty();if(0!= režim && infoORoji) {Svet.vypíšRiadok("K[x, y, z]: ",F(roj.kameraX(),2),"; ",F(roj.kameraY(),2),"; ",F(roj.kameraZ(),2));Svet.vypíšRiadok("SO[x, y, z]: ",F(roj.stredOtáčaniaX(),2),"; ",F(roj.stredOtáčaniaY(),2),"; ",F(roj.stredOtáčaniaZ(),2));Svet.vypíšRiadok("α, β, γ: ",F(roj.uholAlfa(),2) +"°; ",F(roj.uholBeta(),2) +"°; ",F(roj.uholGama(),2) +"°");Svet.vypíšRiadok("M: ",F(roj.mierka(),2));Svet.vypíš("Režim myši: ");switch(režim) {case1:Svet.vypíšRiadok("kamera");break;case2:Svet.vypíšRiadok("stred otáčania");break;case3:Svet.vypíšRiadok("uhly rotácie");break;case4:Svet.vypíšRiadok("mierka");break;case5:Svet.vypíšRiadok("posunutie bodov");break;case6:Svet.vypíšRiadok("pootočenie bodov");break; }Svet.vypíšRiadok(riadok,"Želaný uhol: ", želanýUhol);Svet.vypíšRiadok("Uhol pootočenia: ", Δu);intpoložka = čísloPoložky();if(položka <0|| položka >= mená.length)Svet.vypíšRiadok("Neznáme číslo položky: ", položka);elseSvet.vypíšRiadok("Zvolená položka ", položka,": ", mená[položka]); } }// Rozšírenie ovládania klávesnicou pre režim ladenia.publicvoidpriUvoľneníKlávesu() {switch(ÚdajeUdalostí.kláves()) {caseKláves.VK_0: režim =0;break;caseKláves.VK_1: režim =1;break;caseKláves.VK_2: režim =2;break;caseKláves.VK_3: režim =3;break;caseKláves.VK_4: režim =4;break;caseKláves.VK_5: režim =5;break;caseKláves.VK_6: režim =6;break;caseKláves.VK_I: infoORoji = !infoORoji;break;caseKláves.VK_O: Ikonka.info = !Ikonka.info; prekresliRoj =true;break;caseKláves.VK_S: osi(!osX());break;caseKláves.MEDZERA: resetujRoj(); resetujBody();break; } infoORoji(); }// Ovládanie myšou v režime ladenia – akcia vykonaná pri stlačení// ľubovoľného tlačidla myši.@OverridepublicvoidstlačenieTlačidlaMyši() {// if (tlačidloMyši(ĽAVÉ)) {} else {}myšX =ÚdajeUdalostí.polohaMyšiX(); myšY =ÚdajeUdalostí.polohaMyšiY(); }// Ovládanie myšou v režime ladenia – akcia vykonaná pri ťahaní// myšou (t. j. pohybe myšou počas držania ľubovoľného tlačidla).@OverridepublicvoidťahanieMyšou() {// (Rozlišuje sa akcia stlačenia ľavého a „iného“ tlačidla…)if(ÚdajeUdalostí.tlačidloMyši(ĽAVÉ)) {switch(režim) {case1: roj.posuňKameru(ÚdajeUdalostí.polohaMyšiX() - myšX,ÚdajeUdalostí.polohaMyšiY() - myšY,0.0);break;case2: roj.posuňStredOtáčania(ÚdajeUdalostí.polohaMyšiX() - myšX,ÚdajeUdalostí.polohaMyšiY() - myšY,0.0);break;case3:if(ÚdajeUdalostí.myš().isControlDown()) {if(ÚdajeUdalostí.myš().isShiftDown()) roj.pootoč(0.0, (ÚdajeUdalostí.polohaMyšiX() - myšX +ÚdajeUdalostí.polohaMyšiY() - myšY) /10.0,0.0);elseroj.pootoč((ÚdajeUdalostí.polohaMyšiX() - myšX +ÚdajeUdalostí.polohaMyšiY() - myšY) /10.0,0.0,0.0); }elseroj.pootoč( (ÚdajeUdalostí.polohaMyšiY() - myšY) /10.0, (ÚdajeUdalostí.polohaMyšiX() - myšX) /10.0,0.0);break;case4: roj.zmeňMierku( (myšX -ÚdajeUdalostí.polohaMyšiX()) /10.0+ (myšY -ÚdajeUdalostí.polohaMyšiY()) /1.0);break;case5: posuňBody( (ÚdajeUdalostí.polohaMyšiX() - myšX) /10.0, (myšY -ÚdajeUdalostí.polohaMyšiY()) /10.0,0);break;case6: pootočBody( (ÚdajeUdalostí.polohaMyšiY() - myšY) /10.0, (ÚdajeUdalostí.polohaMyšiX() - myšX) /10.0,0);break; } }else{switch(režim) {case1: roj.posuňKameru(0.0,0.0, ((myšX -ÚdajeUdalostí.polohaMyšiX()) /100.0) + ((myšY -ÚdajeUdalostí.polohaMyšiY()) /10.0));break;case2: roj.posuňStredOtáčania(0.0,0.0, myšY -ÚdajeUdalostí.polohaMyšiY());break;case3: roj.pootoč(0.0,0.0, (ÚdajeUdalostí.polohaMyšiX() - myšX +ÚdajeUdalostí.polohaMyšiY() - myšY) /10.0);break;case4: roj.zmeňMierku( (myšX -ÚdajeUdalostí.polohaMyšiX()) /1000.0+ (myšY -ÚdajeUdalostí.polohaMyšiY()) /100.0);break;case5: posuňBody(0,0, (ÚdajeUdalostí.polohaMyšiX() - myšX) /100.0+ (ÚdajeUdalostí.polohaMyšiY() - myšY) /10.0);break;case6: pootočBody(0,0,(ÚdajeUdalostí.polohaMyšiX() - myšX +ÚdajeUdalostí.polohaMyšiY() - myšY) /10.0);break; } } myšX =ÚdajeUdalostí.polohaMyšiX(); myšY =ÚdajeUdalostí.polohaMyšiY(); prekresliRoj =true; infoORoji();Svet.prekresli(); }// Kreslenie vlastného tvaru robota (ktoré by bolo predvoleným tvarom// tých bodov roja, ktoré by nemali definovaný žiadny vlastný tvar).// V tomto príklade je to zariadené tak, že volanie tejto metódy by// nemalo nikdy nastať. Je definovaná v podstate len „pre istotu.“@OverridepublicvoidkresliSeba() {krúžok(); }
// V tomto komentári sa nachádza krátka sekcia vytvorená na ladiace// účely, ktorá pri pohybe kurzorom myši (výhradne pri pohybe kurzorom// myši) overí prítomnosť kurzora nad niektorým bodom roja a v prípade// nájdenia takéhoto bodu nad ním nachvíľu zobrazí červenú kružnicu// (realizovanú prostredníctvom jednoúčelového robota uloženého// v inštancii zvýrazniť).//// private GRobot zvýrazniť = null;// @Override public void pohybMyši()// {// Roj.Bod bod = null == roj ? null : roj.dajBodNaMyši();// if (null == bod)// {// if (null != zvýrazniť) zvýrazniť.skry();// }// else// {// if (null == zvýrazniť)// {// zvýrazniť = new GRobot()// {// @Override public void deaktivácia() { skry(); }// @Override public void aktivácia() { zobraz(); }// };//// zvýrazniť.vlastnýTvar(r -> r.krúžok());// zvýrazniť.farba(červená);// zvýrazniť.hrúbkaČiary(3);// zvýrazniť.vrstva(1);// }//// zvýrazniť.skočNa(bod.x3, bod.y3);// zvýrazniť.veľkosť(bod.z3);// zvýrazniť.aktivuj(10);// }// }// }}}
// Pomocná metóda zisťujúca, ktorá ikonka je v popredí (podľa želaného// uhla pootočenia roja podľa osi z, ktorý je uložený v prislúchajúcom// atribúte tejto triedy).privateintčísloPoložky() {doubleuhol = (želanýUhol +90+ Δu /2) %360.0;if(uhol <0) uhol +=360.0;return(int)(uhol / Δu); }// Pomocná metóda určená na rozšírenie a na vykonanie prislúchajúcej// akcie podľa „aktuálneho“ čísla položky (zisteného metódou vyššie).privatevoidpotvrdeniePoložky() {intpoložka = čísloPoložky();if(položka <0|| položka >= mená.length)Svet.chyba("Neznáme číslo položky: "+ položka);elseSvet.správa("Zvolená položka "+ položka +": "+ mená[položka]); }// Ovládanie kolotoča klávesnicou.@OverridepublicvoiduvoľnenieKlávesu() {switch(ÚdajeUdalostí.kláves()) {caseKláves.VPRAVO: želanýUhol += Δu;break;caseKláves.VĽAVO: želanýUhol -= Δu;break;caseKláves.ENTER: potvrdeniePoložky();break;default: priUvoľneníKlávesu(); } }// Alternatívny spôsob aktivovania položky – klikom myši.@Overridepublicvoidklik() {// Prevzatie bodu na myši.Roj.Bodbod =null== roj ?null: roj.dajBodNaMyši();if(null!= bod &&null!= bod.kreslenie&& bod.kreslenieinstanceofIkonka) {// Získanie „mena“ bodu (resp. názvu SVG súboru).Stringmeno = ((Ikonka)bod.kreslenie).meno;// Zistenie indexu položky kolotoča podľa jej „mena.“intindexOf = -1;for(inti =0; i < mená.length; ++i)if(mená[i].equals(meno)) { indexOf = i;break; }if(-1!= indexOf) {// „Aktivácia“ položky rolovaním na ňu.if(ÚdajeUdalostí.polohaMyšiX() >=0)for(inti =0; čísloPoložky() != indexOf && i < mená.length; ++i) želanýUhol += Δu;elsefor(inti =0; čísloPoložky() != indexOf && i < mená.length; ++i) želanýUhol -= Δu;// Potvrdenie položky (rovnakým spôsobom ako pri klávesnici).if(čísloPoložky() == indexOf) potvrdeniePoložky(); } } }// Animácia kolotoča v časovači.@Overridepublicvoidtik() {doubleΔγ = želanýUhol - roj.uholGama();if(Math.abs(Δγ) >=1.0) { roj.pootoč(0.0,0.0, Δγ /10.0); prekresliRoj =true; infoORoji(); }if(prekresliRoj) { prekresliRoj =false;Svet.vymažGrafiku(); roj.kresli(); }if(Svet.neboloPrekreslené())Svet.prekresli(); }
// Hlavná metóda.publicstaticvoidmain(String[] args) {Svet.použiKonfiguráciu("Kolotoč.cfg");newKolotoč(); } }
Balíček SVG ikoniek na prevzatie: kolotoc-ikonky.7z
Výsledok:

Ukážka
fungovania kolotoča so zapnutými ladiacimi informáciami a pootočením
roviny otáčania.
Informačné zdroje, ktoré môžu pomôcť pri riešení matematických problémov súvisiacich s touto kapitolou (triedou):
Poznámka: Zdroje môžu obsahovať chyby (v čase ich citovania ich obsahovali), preto je vhodné informácie z nich konfrontovať s inou (napríklad tlačenou) literatúrou. Autor pri tvorbe tejto triedy použil uvedené zdroje najmä na pripomenutie si informácií o 3D grafike a súvisiacich operáciách s maticami (ktoré naposledy používal asi 12 až 15 rokov pred začatím písania tejto triedy).
| Modifikátor a typ | Trieda a opis |
|---|---|
class |
Roj.Bod
Trieda uchovávajúca údaje o jednom bode roja.
|
class |
Roj.Smernik
Alias pre Smerník. |
class |
Roj.Smerník
Pomocná trieda na riadené vkladanie bodov do roja.
|
| Modifikátor a typ | Atribút a opis |
|---|---|
static int |
ALFA
Konštanta slúžiaca na určenie čítania uhla alfa metódou
uhol(ktorý) alebo nastavenia uhla alfa metódou
uhol(ktorý, hodnota). |
static int |
BETA
Konštanta slúžiaca na určenie čítania uhla beta metódou
uhol(ktorý) alebo nastavenia uhla beta metódou
uhol(ktorý, hodnota). |
Roj.Bod |
bod
Inštancia aktuálne spracúvaného bodu.
|
static int |
GAMA
Konštanta slúžiaca na určenie čítania uhla gama metódou
uhol(ktorý) alebo nastavenia uhla gama metódou
uhol(ktorý, hodnota). |
GRobot |
kresli
Toto je kresliaci robot roja.
|
Roj.Smernik |
smernik
Alias pre smerník. |
Roj.Smernik |
smerník
Inštancia smerníka.
|
| Modifikátor a typ | Metóda a opis |
|---|---|
Zoznam<Roj.Bod> |
body()
Vráti kópiu aktuálneho zoznamu bodov roja.
|
void |
citajZoSuboru(Súbor súbor,
String identifikátor)
Alias pre čítajZoSúboru. |
void |
čítajZoSúboru(Súbor súbor,
String identifikátor)
Prečíta údaje o roji z konfiguračného súboru otvoreného na čítanie.
|
Roj.Bod |
dajBodNa(double súradnicaX,
double súradnicaY)
Zistí, či sa projekcia niektorého bodu roja nachádza na zadaných
súradniciach.
|
Roj.Bod |
dajBodNa(double súradnicaX,
double súradnicaY,
double polomer)
Zistí, či sa projekcia niektorého bodu roja nachádza na zadaných
súradniciach.
|
Roj.Bod |
dajBodNa(Poloha objekt)
Zistí, či sa projekcia niektorého bodu roja nachádza na
súradniciach zadaného objektu.
|
Roj.Bod |
dajBodNa(Poloha objekt,
double polomer)
Zistí, či sa projekcia niektorého bodu roja nachádza na
súradniciach zadaného objektu.
|
Roj.Bod |
dajBodNaMysi()
Alias pre dajBodNaMyši. |
Roj.Bod |
dajBodNaMysi(double polomer)
Alias pre dajBodNaMyši. |
Roj.Bod |
dajBodNaMyši()
Zistí, či sa projekcia niektorého bodu roja nachádza na
súradniciach myši.
|
Roj.Bod |
dajBodNaMyši(double polomer)
Zistí, či sa projekcia niektorého bodu roja nachádza na
súradniciach myši.
|
double[] |
kamera()
Vráti aktuálnu polohu kamery vo forme trojprvkového poľa [kx, ky, kz].
|
double |
kameraX()
Vráti aktuálnu x-ovú súradnicu polohy kamery.
|
void |
kameraX(double hodnota)
Nastaví novú x-ovú súradnicu polohy kamery.
|
double |
kameraY()
Vráti aktuálnu y-ovú súradnicu polohy kamery.
|
void |
kameraY(double hodnota)
Nastaví novú y-ovú súradnicu polohy kamery.
|
double |
kameraZ()
Vráti aktuálnu z-ovú súradnicu polohy kamery.
|
void |
kameraZ(double hodnota)
Nastaví novú z-ovú súradnicu polohy kamery.
|
void |
kresli()
Prekreslí roj s použitím kresliaceho robota
roja.
|
double |
mierka()
Vráti aktuálnu hodnotu mierky roja.
|
void |
mierka(double hodnota)
Nastaví novú hodnotu mierky roja.
|
void |
nastavKameru(double[] bod)
Nastaví polohu kamery roja na základe hodnôt zadaného poľa.
|
void |
nastavKameru(double nkx,
double nky,
double nkz)
Nastaví novú polohu kamery.
|
void |
nastavStredOtacania(double[] bod)
Alias pre nastavStredOtáčania. |
void |
nastavStredOtacania(double nxs,
double nys,
double nzs)
Alias pre nastavStredOtáčania. |
void |
nastavStredOtáčania(double[] bod)
Nastaví stred otáčania roja na základe hodnôt zadaného poľa.
|
void |
nastavStredOtáčania(double nxs,
double nys,
double nzs)
Nastaví nové súradnice stredu otáčania.
|
void |
nastavUhly(double[] pole)
Nastaví hodnoty uhlov roja na základe hodnôt zadaného poľa.
|
void |
nastavUhly(double nα,
double nβ,
double nγ)
|
static double[] |
normala(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3)
Alias pre normála. |
static double[] |
normála(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3)
Vypočíta zo zadaných súradníc troch bodov určujúcich plochu
v priestore súradnice normálového vektora k tejto ploche a vráti
jeho nenormalizované súradnice.
|
static double[] |
normalizuj(double[] vektor)
Normalizuje vektor zadaných súradníc.
|
void |
pootoc(double[] pole)
Alias pre pootoč. |
void |
pootoc(double Δα,
double Δβ,
double Δγ)
Alias pre pootoč. |
void |
pootoč(double[] pole)
Pozmení hodnoty uhlov roja na základe hodnôt zadaného poľa.
|
void |
pootoč(double Δα,
double Δβ,
double Δγ)
|
Zoznam<Roj.Bod> |
poradieKreslenia()
Vráti kópiu aktuálneho zoznamu bodov roja zoradeného podľa
poradia kreslenia.
|
void |
posunKameru(double[] bod)
Alias pre posuňKameru. |
void |
posuňKameru(double[] bod)
Posunie polohu kamery roja na základe hodnôt zadaného poľa.
|
void |
posunKameru(double Δkx,
double Δky,
double Δkz)
Alias pre posuňKameru. |
void |
posuňKameru(double Δkx,
double Δky,
double Δkz)
Posunie polohu kamery.
|
void |
posunStredOtacania(double[] bod)
Alias pre posuňStredOtáčania. |
void |
posunStredOtacania(double Δxs,
double Δys,
double Δzs)
Alias pre posuňStredOtáčania. |
void |
posuňStredOtáčania(double[] bod)
Posunie stred otáčania roja na základe hodnôt zadaného poľa.
|
void |
posuňStredOtáčania(double Δxs,
double Δys,
double Δzs)
Posunie súradnice stredu otáčania.
|
void |
precitajZoSuboru(Súbor súbor,
String identifikátor)
Alias pre čítajZoSúboru. |
void |
prečítajZoSúboru(Súbor súbor,
String identifikátor)
Alias pre čítajZoSúboru. |
void |
prepocitaj()
Alias pre prepočítaj. |
void |
prepocitat()
Alias pre prepočítať. |
void |
prepočítaj()
|
void |
prepočítať()
Táto metóda vynúti prepočet premietaných súradníc (
x3, y3) a veľkostí kreslených objektov
(z3) všetkých bodov roja pri najbližšom kreslení
alebo pri volaní metódy prepočítaj. |
Roj.Bod |
pridajBod()
Pridá nový bod do roja.
|
void |
pridajDoSVG(SVGPodpora svgPodpora)
Táto metóda slúži na export grafiky roja do zadanej inštancie
SVG podpory.
|
double[] |
stredOtacania()
Alias pre stredOtáčania. |
double |
stredOtacaniaX()
Alias pre stredOtáčaniaX. |
void |
stredOtacaniaX(double hodnota)
Alias pre stredOtáčaniaX. |
double |
stredOtacaniaY()
Alias pre stredOtáčaniaY. |
void |
stredOtacaniaY(double hodnota)
Alias pre stredOtáčaniaY. |
double |
stredOtacaniaZ()
Alias pre stredOtáčaniaZ. |
void |
stredOtacaniaZ(double hodnota)
Alias pre stredOtáčaniaZ. |
double[] |
stredOtáčania()
Vráti aktuálny stred otáčania vo forme trojprvkového poľa [xs, ys, zs].
|
double |
stredOtáčaniaX()
Vráti x-ovú súradnicu stredu otáčania.
|
void |
stredOtáčaniaX(double hodnota)
Nastaví novú hodnotu x-ovej súradnice stredu otáčania.
|
double |
stredOtáčaniaY()
Vráti y-ovú súradnicu stredu otáčania.
|
void |
stredOtáčaniaY(double hodnota)
Nastaví novú hodnotu y-ovej súradnice stredu otáčania.
|
double |
stredOtáčaniaZ()
Vráti z-ovú súradnicu stredu otáčania.
|
void |
stredOtáčaniaZ(double hodnota)
Nastaví novú hodnotu z-ovej súradnice stredu otáčania.
|
void |
transformovat()
Alias pre transformovať. |
void |
transformovať()
Táto metóda vynúti prepočet konečných (globálne transformovaných)
súradníc
x2, y2, z2 všetkých bodov roja pri
najbližšom kreslení alebo pri volaní metódy transformuj. |
void |
transformuj()
|
void |
transformuj(Roj.Bod bod)
|
double[] |
uhly()
Vráti aktuálne hodnoty uhlov alfa (α), beta (β) a gama (γ) roja
vo forme trojprvkového poľa [α, β, γ].
|
static double[] |
uhlyK(double[] vektor)
Vráti uhly potrebné na pootočenie jednotkového vektora paralelného
s osou z okolo osí x (prvý prvok poľa v návratovej hodnote označovaný
v tejto dokomentácii aj ako uhol α) a y (druhý prvok poľa v návratovej
hodnote označovaný v tejto dokomentácii aj ako uhol β) tak, aby
výsledný vektor smeroval k zadanému polohovému vektoru.
|
static double[] |
uhlyK(double x,
double y,
double z)
Vráti uhly potrebné na pootočenie jednotkového vektora paralelného
s osou z okolo osí x (prvý prvok poľa v návratovej hodnote označovaný
v tejto dokomentácii aj ako uhol α) a y (druhý prvok poľa v návratovej
hodnote označovaný v tejto dokomentácii aj ako uhol β) tak, aby
výsledný vektor smeroval k zadanému polohovému vektoru.
|
double |
uhol(int ktorý)
|
void |
uhol(int ktorý,
double hodnota)
Nastaví jeden alebo viacero uhlov na stanovenú hodnotu.
|
double |
uholAlfa()
Vráti aktuálnu hodnotu uhla alfa (vnútorne značeného
α). |
void |
uholAlfa(double hodnota)
Nastaví novú hodnotu uhlu alfa (vnútorne značeného
α). |
double |
uholBeta()
Vráti aktuálnu hodnotu uhla beta (vnútorne značeného
β). |
void |
uholBeta(double hodnota)
Nastaví novú hodnotu uhlu beta (vnútorne značeného
β). |
double |
uholGama()
Vráti aktuálnu hodnotu uhla gama (vnútorne značeného
γ). |
void |
uholGama(double hodnota)
Nastaví novú hodnotu uhlu gama (vnútorne značeného
γ). |
void |
ulozDoSuboru(Súbor súbor,
String identifikátor)
Alias pre uložDoSúboru. |
void |
uložDoSúboru(Súbor súbor,
String identifikátor)
Zapíše údaje o roji do konfiguračného súboru otvoreného na zápis.
|
void |
vymaz()
Alias pre vymaž. |
void |
vymazBod(Roj.Bod bod)
Alias pre vymažBod. |
void |
vymaž()
Odstráni všetky body z roja.
|
void |
vymažBod(Roj.Bod bod)
Odstráni bod z roja.
|
void |
zmenMierku(double Δmierka)
Alias pre zmeňMierku. |
void |
zmeňMierku(double Δmierka)
Upraví hodnotu mierky roja.
|
public final Roj.Smernik smerník
Inštancia smerníka. Podrobnosti v dokumentácii triedy
Smerník.
public final Roj.Smernik smernik
Alias pre smerník.
public static final int ALFA
Konštanta slúžiaca na určenie čítania uhla alfa metódou
uhol(ktorý) alebo nastavenia uhla alfa metódou
uhol(ktorý, hodnota).
public static final int BETA
Konštanta slúžiaca na určenie čítania uhla beta metódou
uhol(ktorý) alebo nastavenia uhla beta metódou
uhol(ktorý, hodnota).
public static final int GAMA
Konštanta slúžiaca na určenie čítania uhla gama metódou
uhol(ktorý) alebo nastavenia uhla gama metódou
uhol(ktorý, hodnota).
public GRobot kresli
Toto je kresliaci robot roja. Ak nie je nastavený, tak roj nemôže byť kreslený a pri individuálnom pokuse o nakreslenie bodu roja nastane chyba. Tvar tohto robota určuje predvolený tvar objektov na polohách bodov roja. Vlastnosti pera ovplyvňujú kreslenie spojov medzi bodmi roja – hrúbka určuje predvolenú hrúbku a poloha (poloha v zmysle stavu zdvihnutia/ploženia pera) to, či budú všetky spoje paušálne nakreslené alebo nie.
public Roj.Bod bod
Inštancia aktuálne spracúvaného bodu. Počas kreslenia spojníc a objektov alebo počas exportu do SVG formátu je do tohto atribútu ukladaná inštancia aktuálne spracúvaného bodu.
public Roj(GRobot kreslič)
Konštruktor roja. Prijíma inštanciu grafického robota, ktorý bude kresličom roja. Bez kresliča roj nemôže byť nakreslený.
kreslič – kreslič rojapublic Roj.Bod pridajBod()
Pridá nový bod do roja. Bod bude mať hodnoty všetkých atribútov nastavené na predvolené. Návratová hodnota tejto metódy je inštancia nového bodu, ktorá môže byť použitá na nastavenie všetkých vlastností bodu.
public void vymažBod(Roj.Bod bod)
Odstráni bod z roja.
bod – inštancia bodu, ktorý má byť z roja odstránenýpublic void vymaž()
Odstráni všetky body z roja.
public void vymaz()
Alias pre vymaž.
public Zoznam<Roj.Bod> body()
Vráti kópiu aktuálneho zoznamu bodov roja. Zoznam je určený
(predovšetkým) na prechádzanie a úpravu vlastností jednotlivých
bodov. Vymazaním bodu z tohto zoznamu sa bod z roja nevymaže. Na
vymazanie bodu slúži metóda roja vymažBod.
public Zoznam<Roj.Bod> poradieKreslenia()
Vráti kópiu aktuálneho zoznamu bodov roja zoradeného podľa
poradia kreslenia. Zoznam je určený (predovšetkým) na prechádzanie
v súvislosti s prekresľovaním objektov. (Napríklad vymazaním bodu
z tohto zoznamu sa bod nevymaže. Na vymazanie bodu z roja slúži
metóda vymažBod.)
public double[] uhly()
Vráti aktuálne hodnoty uhlov alfa (α), beta (β) a gama (γ) roja vo forme trojprvkového poľa [α, β, γ].
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
nastavUhly(double[])public double uholAlfa()
Vráti aktuálnu hodnotu uhla alfa (vnútorne značeného
α). Tento uhol je spätý s rotáciou okolo osi x, pričom
sa do úvahy berie aj aktuálny stred otáčania.
Rotácia zmenou uhlov alfa (α), beta (β) a gama (γ) je v podstate
rotáciou kamery roja.
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
uholBeta(),
uholGama(),
uholAlfa(double),
uholBeta(double),
uholGama(double),
uhol(int),
uhol(int, double),
nastavUhly(double, double, double),
pootoč(double, double, double)public double uholBeta()
Vráti aktuálnu hodnotu uhla beta (vnútorne značeného
β). Tento uhol je spätý s rotáciou okolo osi y, pričom
sa do úvahy berie aj aktuálny stred otáčania.
Rotácia zmenou uhlov alfa (α), beta (β) a gama (γ) je v podstate
rotáciou kamery roja.
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
uholAlfa(),
uholGama(),
uholAlfa(double),
uholBeta(double),
uholGama(double),
uhol(int),
uhol(int, double),
nastavUhly(double, double, double),
pootoč(double, double, double)public double uholGama()
Vráti aktuálnu hodnotu uhla gama (vnútorne značeného
γ). Tento uhol je spätý s rotáciou okolo osi z, pričom
sa do úvahy berie aj aktuálny stred otáčania.
Rotácia zmenou uhlov alfa (α), beta (β) a gama (γ) je v podstate
rotáciou kamery roja.
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
uholAlfa(),
uholBeta(),
uholAlfa(double),
uholBeta(double),
uholGama(double),
uhol(int),
uhol(int, double),
nastavUhly(double, double, double),
pootoč(double, double, double)public void uholAlfa(double hodnota)
Nastaví novú hodnotu uhlu alfa (vnútorne značeného α).
Pozri aj opis metódy uholAlfa().
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
hodnota – nová hodnota uhla alfauholAlfa(),
uholBeta(),
uholGama(),
uholBeta(double),
uholGama(double),
uhol(int),
uhol(int, double),
nastavUhly(double, double, double),
pootoč(double, double, double)public void uholBeta(double hodnota)
Nastaví novú hodnotu uhlu beta (vnútorne značeného β).
Pozri aj opis metódy uholBeta().
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
hodnota – nová hodnota uhla betauholAlfa(),
uholBeta(),
uholGama(),
uholAlfa(double),
uholGama(double),
uhol(int),
uhol(int, double),
nastavUhly(double, double, double),
pootoč(double, double, double)public void uholGama(double hodnota)
Nastaví novú hodnotu uhlu gama (vnútorne značeného γ).
Pozri aj opis metódy uholGama().
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
hodnota – nová hodnota uhla gamauholAlfa(),
uholBeta(),
uholGama(),
uholAlfa(double),
uholBeta(double),
uhol(int),
uhol(int, double),
nastavUhly(double, double, double),
pootoč(double, double, double)public double uhol(int ktorý)
Vráti hodnotu zadaného uhla, pričom ak zadaná konštanta obsahuje
kombináciu príznakov viacerých uhlov, tak prioritne vracia uhol
ALFA, potom BETA a nakoniec
GAMA.
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
ktorý – konštanta určujúca, ktorý uhol má byť vrátený
(ALFA, BETA, GAMA)ktorýuholAlfa(),
uholBeta(),
uholGama(),
uholAlfa(double),
uholBeta(double),
uholGama(double),
uhol(int, double),
nastavUhly(double, double, double),
pootoč(double, double, double)public void uhol(int ktorý,
double hodnota)
Nastaví jeden alebo viacero uhlov na stanovenú hodnotu.
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
ktorý – konštanta určujúca, ktorý uhol alebo uhly majú byť
nastavené; parameter môže byť kombináciou konštánt ALFA, BETA a GAMA)hodnota – nová hodnota uhla alebo uhlov určených parametrom
ktorýuholAlfa(),
uholBeta(),
uholGama(),
uholAlfa(double),
uholBeta(double),
uholGama(double),
uhol(int),
nastavUhly(double, double, double),
pootoč(double, double, double)public void nastavUhly(double nα,
double nβ,
double nγ)
Nastaví hodnoty všetkých troch uhlov alfa, beta a gama. (Pozri aj stred otáčania.)
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
nα – nová hodnota uhla alfanβ – nová hodnota uhla betanγ – nová hodnota uhla gamauholAlfa(),
uholBeta(),
uholGama(),
uholAlfa(double),
uholBeta(double),
uholGama(double),
uhol(int),
uhol(int, double),
pootoč(double, double, double)public void nastavUhly(double[] pole)
Nastaví hodnoty uhlov roja na základe hodnôt zadaného poľa.
Metóda má zjednodušiť nastavenie orientácie roja (napríklad
v súvislosti zo zálohou a obnovou stavu roja; pozri aj uhly). Ak je zadané pole aspoň šesťprvkové,
tak metóda pracuje s druhou trojicou prvkov poľa. Ak je pole
aspoň trojprvkové, tak metóda berie do úvahy jeho prvé tri
prvky. (Ak má pole menší počet prvkov, tak metóda nevykoná
nič.)
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
pole – pole na základe ktorého budú nastavené uhly rojauhly(),
nastavUhly(double, double, double)public void pootoč(double Δα,
double Δβ,
double Δγ)
Pozmení hodnoty všetkých troch uhlov alfa, beta a gama.
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
Δα – miera zmeny hodnoty uhla alfaΔβ – miera zmeny hodnoty uhla betaΔγ – miera zmeny hodnoty uhla gamauholAlfa(),
uholBeta(),
uholGama(),
uholAlfa(double),
uholBeta(double),
uholGama(double),
uhol(int),
uhol(int, double),
nastavUhly(double, double, double)public void pootoc(double Δα,
double Δβ,
double Δγ)
Alias pre pootoč.
public void pootoč(double[] pole)
Pozmení hodnoty uhlov roja na základe hodnôt zadaného poľa. Metóda má zjednodušiť zmenu orientácie roja. Ak je zadané pole aspoň šesťprvkové, tak metóda pracuje s druhou trojicou prvkov poľa. Ak je pole aspoň trojprvkové, tak metóda berie do úvahy jeho prvé tri prvky. (Ak má pole menší počet prvkov, tak metóda nevykoná nič.)
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
pole – pole na základe ktorého budú pozmenené uhly rojanastavUhly(double[]),
pootoč(double, double, double)public void pootoc(double[] pole)
Alias pre pootoč.
public double[] stredOtáčania()
Vráti aktuálny stred otáčania vo forme trojprvkového poľa [xs, ys, zs].
nastavStredOtáčania(double[])public double[] stredOtacania()
Alias pre stredOtáčania.
public double stredOtáčaniaX()
Vráti x-ovú súradnicu stredu otáčania.
stredOtáčaniaY(),
stredOtáčaniaZ(),
stredOtáčaniaX(double),
stredOtáčaniaY(double),
stredOtáčaniaZ(double),
nastavStredOtáčania(double, double, double),
posuňStredOtáčania(double, double, double)public double stredOtacaniaX()
Alias pre stredOtáčaniaX.
public double stredOtáčaniaY()
Vráti y-ovú súradnicu stredu otáčania.
stredOtáčaniaX(),
stredOtáčaniaZ(),
stredOtáčaniaX(double),
stredOtáčaniaY(double),
stredOtáčaniaZ(double),
nastavStredOtáčania(double, double, double),
posuňStredOtáčania(double, double, double)public double stredOtacaniaY()
Alias pre stredOtáčaniaY.
public double stredOtáčaniaZ()
Vráti z-ovú súradnicu stredu otáčania.
stredOtáčaniaX(),
stredOtáčaniaY(),
stredOtáčaniaX(double),
stredOtáčaniaY(double),
stredOtáčaniaZ(double),
nastavStredOtáčania(double, double, double),
posuňStredOtáčania(double, double, double)public double stredOtacaniaZ()
Alias pre stredOtáčaniaZ.
public void stredOtáčaniaX(double hodnota)
Nastaví novú hodnotu x-ovej súradnice stredu otáčania.
hodnota – nová hodnota x-ovej súradnice stredu otáčaniastredOtáčaniaX(),
stredOtáčaniaY(),
stredOtáčaniaZ(),
stredOtáčaniaY(double),
stredOtáčaniaZ(double),
nastavStredOtáčania(double, double, double),
posuňStredOtáčania(double, double, double)public void stredOtacaniaX(double hodnota)
Alias pre stredOtáčaniaX.
public void stredOtáčaniaY(double hodnota)
Nastaví novú hodnotu y-ovej súradnice stredu otáčania.
hodnota – nová hodnota y-ovej súradnice stredu otáčaniastredOtáčaniaX(),
stredOtáčaniaY(),
stredOtáčaniaZ(),
stredOtáčaniaX(double),
stredOtáčaniaZ(double),
nastavStredOtáčania(double, double, double),
posuňStredOtáčania(double, double, double)public void stredOtacaniaY(double hodnota)
Alias pre stredOtáčaniaY.
public void stredOtáčaniaZ(double hodnota)
Nastaví novú hodnotu z-ovej súradnice stredu otáčania.
hodnota – nová hodnota z-ovej súradnice stredu otáčaniastredOtáčaniaX(),
stredOtáčaniaY(),
stredOtáčaniaZ(),
stredOtáčaniaX(double),
stredOtáčaniaY(double),
nastavStredOtáčania(double, double, double),
posuňStredOtáčania(double, double, double)public void stredOtacaniaZ(double hodnota)
Alias pre stredOtáčaniaZ.
public void nastavStredOtáčania(double nxs,
double nys,
double nzs)
nxs – nová hodnota x-ovej súradnice stredu otáčanianys – nová hodnota y-ovej súradnice stredu otáčanianzs – nová hodnota z-ovej súradnice stredu otáčaniastredOtáčaniaX(),
stredOtáčaniaY(),
stredOtáčaniaZ(),
stredOtáčaniaX(double),
stredOtáčaniaY(double),
stredOtáčaniaZ(double),
posuňStredOtáčania(double, double, double)public void nastavStredOtacania(double nxs,
double nys,
double nzs)
Alias pre nastavStredOtáčania.
public void nastavStredOtáčania(double[] bod)
Nastaví stred otáčania roja na základe hodnôt zadaného poľa. Metóda má zjednodušiť nastavenie polohy stredu otáčania roja berúc do úvahy spôsob práce smerníka. Ak je zadané pole aspoň trojprvkové, tak metóda berie do úvahy prvé tri jeho prvky. (Ak má pole menší počet prvkov, tak metóda nevykoná nič.)
bod – súradnice bodu určujúce novú polohu stredu otáčania rojastredOtáčania(),
nastavStredOtáčania(double, double, double)public void nastavStredOtacania(double[] bod)
Alias pre nastavStredOtáčania.
public void posuňStredOtáčania(double Δxs,
double Δys,
double Δzs)
Posunie súradnice stredu otáčania. (Pozri aj uhly alfa, beta a gama.)
Δxs – miera zmeny x-ovej súradnice stredu otáčaniaΔys – miera zmeny y-ovej súradnice stredu otáčaniaΔzs – miera zmeny z-ovej súradnice stredu otáčaniastredOtáčaniaX(),
stredOtáčaniaY(),
stredOtáčaniaZ(),
stredOtáčaniaX(double),
stredOtáčaniaY(double),
stredOtáčaniaZ(double),
nastavStredOtáčania(double, double, double)public void posunStredOtacania(double Δxs,
double Δys,
double Δzs)
Alias pre posuňStredOtáčania.
public void posuňStredOtáčania(double[] bod)
Posunie stred otáčania roja na základe hodnôt zadaného poľa. Metóda má zjednodušiť zmenu polohy stredu otáčania roja berúc do úvahy spôsob práce smerníka. Ak je zadané pole aspoň trojprvkové, tak metóda berie do úvahy prvé tri jeho prvky. (Ak má pole menší počet prvkov, tak metóda nevykoná nič.)
bod – trojica polohových súradníc, o ktoré bude posunutá
poloha stredu otáčania rojanastavStredOtáčania(double[]),
posuňStredOtáčania(double, double, double)public void posunStredOtacania(double[] bod)
Alias pre posuňStredOtáčania.
public double[] kamera()
Vráti aktuálnu polohu kamery vo forme trojprvkového poľa [kx, ky, kz].
nastavKameru(double[])public double kameraX()
Vráti aktuálnu x-ovú súradnicu polohy kamery.
kameraY(),
kameraZ(),
kameraX(double),
kameraY(double),
kameraZ(double),
nastavKameru(double, double, double),
posuňKameru(double, double, double)public double kameraY()
Vráti aktuálnu y-ovú súradnicu polohy kamery.
kameraX(),
kameraZ(),
kameraX(double),
kameraY(double),
kameraZ(double),
nastavKameru(double, double, double),
posuňKameru(double, double, double)public double kameraZ()
Vráti aktuálnu z-ovú súradnicu polohy kamery.
kameraX(),
kameraY(),
kameraX(double),
kameraY(double),
kameraZ(double),
nastavKameru(double, double, double),
posuňKameru(double, double, double)public void kameraX(double hodnota)
Nastaví novú x-ovú súradnicu polohy kamery.
hodnota – nová hodnota x-ovej súradnice polohy kamerykameraX(),
kameraY(),
kameraZ(),
kameraY(double),
kameraZ(double),
nastavKameru(double, double, double),
posuňKameru(double, double, double)public void kameraY(double hodnota)
Nastaví novú y-ovú súradnicu polohy kamery.
hodnota – nová hodnota y-ovej súradnice polohy kamerykameraX(),
kameraY(),
kameraZ(),
kameraX(double),
kameraZ(double),
nastavKameru(double, double, double),
posuňKameru(double, double, double)public void kameraZ(double hodnota)
Nastaví novú z-ovú súradnicu polohy kamery.
hodnota – nová hodnota z-ovej súradnice polohy kamerykameraX(),
kameraY(),
kameraZ(),
kameraX(double),
kameraY(double),
kameraZ(double),
nastavKameru(double, double, double),
posuňKameru(double, double, double)public void nastavKameru(double nkx,
double nky,
double nkz)
Nastaví novú polohu kamery.
nkx – nová hodnota x-ovej súradnice polohy kamerynky – nová hodnota y-ovej súradnice polohy kamerynkz – nová hodnota z-ovej súradnice polohy kamerykameraX(),
kameraY(),
kameraZ(),
kameraX(double),
kameraY(double),
kameraZ(double),
posuňKameru(double, double, double)public void nastavKameru(double[] bod)
Nastaví polohu kamery roja na základe hodnôt zadaného poľa. Metóda má zjednodušiť nastavenie polohy kamery roja berúc do úvahy spôsob práce smerníka. Ak je zadané pole aspoň trojprvkové, tak metóda berie do úvahy prvé tri jeho prvky. (Ak má pole menší počet prvkov, tak metóda nevykoná nič.)
bod – súradnice bodu, na ktoré bude nastavená poloha kamerykamera(),
nastavKameru(double, double, double)public void posuňKameru(double Δkx,
double Δky,
double Δkz)
Posunie polohu kamery.
Δkx – miera zmeny hodnoty x-ovej súradnice polohy kameryΔky – miera zmeny hodnoty y-ovej súradnice polohy kameryΔkz – miera zmeny hodnoty z-ovej súradnice polohy kamerykameraX(),
kameraY(),
kameraZ(),
kameraX(double),
kameraY(double),
kameraZ(double),
nastavKameru(double, double, double)public void posunKameru(double Δkx,
double Δky,
double Δkz)
Alias pre posuňKameru.
public void posuňKameru(double[] bod)
Posunie polohu kamery roja na základe hodnôt zadaného poľa. Metóda má zjednodušiť zmenu polohy kamery roja berúc do úvahy spôsob práce smerníka. Ak je zadané pole aspoň trojprvkové, metóda berie do úvahy prvé tri jeho prvky. (Ak má pole menší počet prvkov, tak metóda nevykoná nič.)
bod – súradnice bodu, o ktoré bude posunutá poloha kamerynastavKameru(double[]),
posuňKameru(double, double, double)public void posunKameru(double[] bod)
Alias pre posuňKameru.
public double mierka()
Vráti aktuálnu hodnotu mierky roja. Mierka vo veľkej miere ovplyvňuje zobrazenie roja. Ak je nesprávne nastavená, výsledok je skreslený. Dá sa prirovnať k ohniskovej vzdialenosti objektívu.
mierka(double),
zmeňMierku(double)public void mierka(double hodnota)
Nastaví novú hodnotu mierky roja. Pozri aj opis metódy mierka().
hodnota – nová hodnota mierky zobrazenia rojamierka(),
zmeňMierku(double)public void zmeňMierku(double Δmierka)
Upraví hodnotu mierky roja. Pozri aj opis metódy mierka().
Δmierka – miera zmeny hodnoty mierky zobrazenia rojamierka(),
mierka(double)public void zmenMierku(double Δmierka)
Alias pre zmeňMierku.
public void transformovať()
Táto metóda vynúti prepočet konečných (globálne transformovaných)
súradníc x2, y2, z2 všetkých bodov roja pri
najbližšom kreslení alebo pri volaní metódy transformuj. Volanie tejto metódy zároveň nastaví príznak
prepočítania atribútov použitých pri kreslení (premietaní) bodov
roja. (Pozri metódu: prepočítať.)
prepočítať(),
transformuj()public void transformovat()
Alias pre transformovať.
public void transformuj()
Táto metóda prepočíta hodnoty konečných (globálne transformovaných)
súradníc x2, y2, z2 všetkých bodov roja. Metóda používa vnútorný príznak
na overenie toho, či je prepočítanie potrebné. Ak chcete prepočítanie
vynútiť, musíte pred volaním tejto metódy zavolať metódu transformovať.
transformovať(),
prepočítaj(),
transformuj(Roj.Bod)public void transformuj(Roj.Bod bod)
Toto je metóda, ktorá prepočíta hodnoty konečných (globálne
transformovaných) súradníc x2, y2, z2 zadaného bodu roja.
bod – inštancia bodu roja, ktorého atribúty majú byť prepočítanétransformuj()public void prepočítať()
Táto metóda vynúti prepočet premietaných súradníc (x3, y3) a veľkostí kreslených objektov
(z3) všetkých bodov roja pri najbližšom kreslení
alebo pri volaní metódy prepočítaj.
transformovať(),
prepočítaj()public void prepocitat()
Alias pre prepočítať.
public void prepočítaj()
Táto metóda prepočíta pre všetky body roja atribúty cieľovej
(premietanej) polohy na plátne a veľkosti objektu kresleného na
polohe bodu – hodnoty atribútov x3,
y3 a z3. Metóda používa
vnútorný príznak na overenie toho, či je prepočítanie potrebné.
Ak chcete prepočítanie vynútiť, musíte pred volaním tejto metódy
zavolať metódu prepočítať.
prepočítať(),
transformuj()public void prepocitaj()
Alias pre prepočítaj.
public void kresli()
Prekreslí roj s použitím kresliaceho robota roja.
Poznámka: Pred kreslením roja sú zálohované iba dve vlastnosti: farba a hrúbka čiary robota. Ich hodnoty sú obnovené až po nakreslení všetkých prvkov roja, čiže ak zákaznícke kreslenie objektu (telesa) v niektorom z bodov roja tieto vlastnosti zmenilo (a neobnovilo), tak sa zmeny prenesú do kreslenia ďalších prvkov roja…
Poznámka: Počas kreslenia je aktualizovaná
inštancia roja bod, ktorá sa dá využiť pri zákaznícky
definovanom kreslení bodov roja (pozri kreslenie).
public void pridajDoSVG(SVGPodpora svgPodpora)
Táto metóda slúži na export grafiky roja do zadanej inštancie
SVG podpory. Táto metóda automaticky spúšťa
metódy spojDoSVG
a telesoDoSVG pre
jednotlivé body roja.
Poznámka: Počas exportu je aktualizovaná
inštancia roja bod, ktorá sa dá využiť pri zákaznícky
definovanom exporte bodov roja (pozri svgKreslenie).
svgPodpora – inštancia SVG podpory,
do ktorej budú exportované tvary Javy
reprezentujúce všetky viditeľné spoje medzi bodmi roja a telesá
umiestnené v bodoch rojaRoj.Bod.spojDoSVG(SVGPodpora),
Roj.Bod.telesoDoSVG(SVGPodpora)public static double[] normála(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3)
Vypočíta zo zadaných súradníc troch bodov určujúcich plochu v priestore súradnice normálového vektora k tejto ploche a vráti jeho nenormalizované súradnice.
Inak povedané, metóda vypočíta súradnice smerového vektora kolmice
k ploche, tento vektor však neprepočíta na jednotkový,
ale ho vráti v (kvázi) „surovom“ stave. (Na väčšinu účelov by mal
postačovať aj nenormalizovaný vektor. V prípade potreby použite metódu
normalizuj.)
x1 – x-ová súradnica prvého boduy1 – y-ová súradnica prvého boduz1 – z-ová súradnica prvého bodux2 – x-ová súradnica druhého boduy2 – y-ová súradnica druhého boduz2 – z-ová súradnica druhého bodux3 – x-ová súradnica tretieho boduy3 – y-ová súradnica tretieho boduz3 – z-ová súradnica tretieho bodupublic static double[] normala(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3)
Alias pre normála.
public static double[] normalizuj(double[] vektor)
Normalizuje vektor zadaných súradníc. Táto metóda pracuje
s ľubovoľne veľkým vektorom a normalizuje všetky súradnice podľa
dĺžky vektora. To znamená, že ak má vektor šesť súradníc
(pozri smerník.dajStav()), tak metóda
vzájomne normalizuje všetkých šesť súradníc dohromady (akoby išlo
napríklad o šesťrozmerný bod)! Návratovou hodnotou je rovnaké
pole, ktoré bolo zadané vo vstupnom parametri vektor, len
s prepočítanými súradnicami. (To znamená, že všetky zmeny sa
rovnako prejavia aj vo vstupnom poli – ide o rovnakú inštanciu
poľa.)
vektor – vektor súradníc určených na normalizáciupublic static double[] uhlyK(double x,
double y,
double z)
Vráti uhly potrebné na pootočenie jednotkového vektora paralelného s osou z okolo osí x (prvý prvok poľa v návratovej hodnote označovaný v tejto dokomentácii aj ako uhol α) a y (druhý prvok poľa v návratovej hodnote označovaný v tejto dokomentácii aj ako uhol β) tak, aby výsledný vektor smeroval k zadanému polohovému vektoru.
x – x-ová súradnica polohového vektoray – y-ová súradnica polohového vektoraz – z-ová súradnica polohového vektorapublic static double[] uhlyK(double[] vektor)
Vráti uhly potrebné na pootočenie jednotkového vektora paralelného
s osou z okolo osí x (prvý prvok poľa v návratovej hodnote označovaný
v tejto dokomentácii aj ako uhol α) a y (druhý prvok poľa v návratovej
hodnote označovaný v tejto dokomentácii aj ako uhol β) tak, aby
výsledný vektor smeroval k zadanému polohovému vektoru. Ak zadaný
vektor neobsahuje aspoň tri prvky, tak metóda vráti hodnotu null.
vektor – polohový vektor súradnícnullpublic Roj.Bod dajBodNa(double súradnicaX, double súradnicaY, double polomer)
Zistí, či sa projekcia niektorého bodu roja nachádza na zadaných
súradniciach. Metóda využíva metódu bodu roja:
bodV. Bod, ktorý vyhovie
podmienke je vrátený. Ak nie je nájdený žiadny bod, tak metóda vráti
hodnotu null.
súradnicaX – x-ová súradnica bodusúradnicaY – y-ová súradnica bodupolomer – polomer vyšetrovaného kruhu (pozri bodV)nullpublic Roj.Bod dajBodNa(Poloha objekt, double polomer)
Zistí, či sa projekcia niektorého bodu roja nachádza na
súradniciach zadaného objektu. Metóda využíva metódu bodu roja:
bodV. Bod, ktorý vyhovie
podmienke je vrátený. Ak nie je nájdený žiadny bod, tak metóda vráti
hodnotu null.
objekt – objekt, ktorého poloha je použitá na overenie bodovpolomer – polomer vyšetrovaného kruhu (pozri bodV)nullpublic Roj.Bod dajBodNa(double súradnicaX, double súradnicaY)
Zistí, či sa projekcia niektorého bodu roja nachádza na zadaných
súradniciach. Metóda využíva metódu bodu roja: bodV. Bod, ktorý vyhovie podmienke je vrátený. Ak nie je
nájdený žiadny bod, tak metóda vráti hodnotu null.
súradnicaX – x-ová súradnica bodusúradnicaY – y-ová súradnica bodunullpublic Roj.Bod dajBodNa(Poloha objekt)
Zistí, či sa projekcia niektorého bodu roja nachádza na
súradniciach zadaného objektu. Metóda využíva metódu bodu roja:
bodV. Bod, ktorý vyhovie
podmienke je vrátený. Ak nie je nájdený žiadny bod, tak metóda vráti
hodnotu null.
objekt – objekt, ktorého poloha je použitá na overenie bodovnullpublic Roj.Bod dajBodNaMyši(double polomer)
Zistí, či sa projekcia niektorého bodu roja nachádza na
súradniciach myši. Metóda využíva metódu bodu roja: myšV. Bod, ktorý vyhovie podmienke je vrátený.
Ak nie je nájdený žiadny bod, tak metóda vráti hodnotu
null.
polomer – polomer vyšetrovaného kruhu (pozri myšV)nullpublic Roj.Bod dajBodNaMysi(double polomer)
Alias pre dajBodNaMyši.
public Roj.Bod dajBodNaMyši()
Zistí, či sa projekcia niektorého bodu roja nachádza na
súradniciach myši. Metóda využíva metódu bodu roja: myšV. Bod, ktorý vyhovie podmienke je vrátený. Ak nie je nájdený
žiadny bod, tak metóda vráti hodnotu null.
nullpublic Roj.Bod dajBodNaMysi()
Alias pre dajBodNaMyši.
public void čítajZoSúboru(Súbor súbor, String identifikátor) throws IOException
Prečíta údaje o roji z konfiguračného súboru otvoreného na čítanie.
Metóda prijíma identifikátor menného priestoru. Identifikátor smie mať
hodnotu null. V takom prípade sú údaje čítané z aktuálneho
menného priestoru zadaného konfiguračného súboru.
súbor – inštancia triedy Súbor otvorená
na čítanieidentifikátor – vnorený menný priestor, z ktorého budú
prevzaté údaje o rojiIOException – ak vznikla chyba vo vstupno-výstupnej
operáciipublic void citajZoSuboru(Súbor súbor, String identifikátor) throws IOException
Alias pre čítajZoSúboru.
IOExceptionpublic void prečítajZoSúboru(Súbor súbor, String identifikátor) throws IOException
Alias pre čítajZoSúboru.
IOExceptionpublic void precitajZoSuboru(Súbor súbor, String identifikátor) throws IOException
Alias pre čítajZoSúboru.
IOExceptionpublic void uložDoSúboru(Súbor súbor, String identifikátor) throws IOException
Zapíše údaje o roji do konfiguračného súboru otvoreného na zápis.
Metóda prijíma identifikátor menného priestoru. Identifikátor smie mať
hodnotu null. V takom prípade sú údaje ukladané do
aktuálneho menného priestoru zadaného konfiguračného súboru.
súbor – inštancia triedy Súbor otvorená
na zápisidentifikátor – vnorený menný priestor, do ktorého budú
vložené údaje o rojiIOException – ak vznikla chyba vo vstupno-výstupnej
operáciipublic void ulozDoSuboru(Súbor súbor, String identifikátor) throws IOException
Alias pre uložDoSúboru.
IOException