Java applety - základná práca
Základy informatiky - jazyk Java
Úvod do programovania v jazyku Java
Java - objektovo orientovaný prístup
Vzorové príklady:
- >Java applety - základná práca
>Java applety - interakcia s používateľom
>Java applety - fraktály
>Java applety - animácia
>Java applety - animácie bez blikania
Java - implementácia numerických algoritmov
Java - triedy geometrických tvarov
Pokročilé témy:
Pri práci s grafikou treba pamätať na fakt, že začiatok súradnicového systému [0,0] je v ľavom hornom rohu. Os x rastie smerom doprava a os y rastie smerom dolu.
Kreslenie čiar
Úloha 1.1: Do appletu nakreslite čiary do oboch uhlopriečok.
Analýza úlohy
Pre kreslenie čiar existuje metóda triedy Graphics drawLine:
public abstract void drawLine(int x1, int y1, int x2, int y2);
Kde:
- x1 - súradnica x prvého bodu.
- y1 - súradnica y prvého bodu.
- x2 - súradnica x druhého bodu.
- y2 - súradnica y druhého bodu.
Súradnica pravého dolného rohu appletu je daná samotnými rozmermi appletu. Teda jeho šírkou a výškou. Tieto hodnoty sa dajú jednoducho zistiť metódami triedy Applet getWidth a getHeight. Body medzi ktorými ideme kresliť čiary sú vlastne rohy okna appletu. Sú to tieto body:
- Ľavý horný roh - [0,0]
- Pravý horný roh - [šírka,0]
- Ľavý dolný roh - [0,výška]
- Pravý dolný roh - [šírka ,výška]
Riešenie:
import java.applet.*;
import java.awt.*;
public class Ciary extends Applet {
public void init() {
}
public void paint( Graphics g ) {
int sirka = this.getWidth();
int vyska = this.getHeight();
g.drawLine(0,0,sirka,vyska);
g.drawLine(0,vyska,sirka,0);
}
}
Výsledok:
Úloha 1.2: Do prvého appletu doplňte čiary nasledovne: z bodu [0,0] nakreslite "vejár" smerujúci na pravú stranu. Podobne, ale z bodu [sirka,0] nakreslite čiary v tvare vejára na ľavú stranu.
Analýza úlohy V úlohe nie je povedané koľko čiar má mať vejár. Preto si zvoľme n čiar. Toto n potom môžeme ľubovoľne meniť. Keď budeme kresliť čiary z bodu [0,0] na protiľahlú pravú stranu, chceme aby boli rozostupy medzi týmito čiarami rovnaké. Označme si tento rozostup ako krok. Krok vypočítame jednoducho: stačí vydeliť výšku appletu počtom čiar, ktoré chceme nakresliť. Teda: [math]krok=vyska/n[/math]. Postupne budeme kresliť čiary z bodu [0,0] do bodov [sirka,0], [sirka,krok], [sirka,2*krok] ... [sirka,n*krok]. Kde vlastne n*krok je vyska.
Riešenie:
import java.applet.*;
import java.awt.*;
public class Ciary2 extends Applet {
public void init() {
}
public void paint( Graphics g ) {
g.setColor( Color.green );
int sirka = this.getWidth();
int vyska = this.getHeight();
int n=10;
int krok = vyska/n;
for(int i=0; i<n ; i++)
{
g.drawLine(0,0,sirka,i*krok); //vejar zľava doprava
g.drawLine(sirka,0,0,i*krok); //vejar sprava doľava
}
}
}
Úloha 1.3: Vytvorte obrazec, z ktorého stredu budú vychádzať čiary k hornému a dolnému okraju okna.
Analýza úlohy
Úlohu si upravíme, aby sa dala ľahšie implementovať. Prvá čiara bude vlastne uhlopriečka okna z ľavého horného rohu do pravého dolného rohu. Teda z bodu [0,0] do bodu [sirka,vyska]. Druhá čiara bude vychádzať z bodu [1*krok,0] do dobu [sirka-1*krok,vyska]. Ďalšia čiara pojde z bodu [2*krok,0] do dobu [sirka-2*krok,vyska]. Posledná čiara pôjde z bodu [n*krok,0] do dobu [sirka-n*krok,vyska]. čo je vlastne [sirka,0] do dobu [0,vyska]. Ešte poznamenajme, že premenná krok je teraz: [math]krok=sirka/n[/math]
Riešenie:
import java.applet.*;
import java.awt.*;
public class Ciary3 extends Applet {
public void init() {
}
public void paint( Graphics g ) {
int sirka = this.getWidth();
int vyska = this.getHeight();
int n=30;
int krok = sirka/n;
for(int i=0; i<=n ; i++)
{
g.drawLine(i*krok,0,sirka-i*krok,vyska);
}
}
}
Výsledok: