Zadání
Odevzdejte do 11. ledna 2022 do
zp/Elipsa.java.
Nakreslete elipsu, pokud je zadána velikost hlavní a vedlejší poloosy.
Např. pro vstup 30 a 6 program vytiskne následující:
java Elipsa 30 6
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Neřešte problém, že znaky jsou vyšší než širší, ale berte znakovou mřížku jako čtvercovou. Pro vykreslení pak využijte definici elipsy.
Nápověda: pro určení, jestli bod P[x,y] z obrázku níže leží v elipse stačí spočítat hodnotu
By Antonsusi
[GFDL or
CC-BY-3.0],
via
Wikimedia Commons.
Program pro nakreslení kruhu lze zapsat např. takto:
public static boolean uvnitrKruhu(int x, int y, int polomer) {
return x * x + y * y < polomer * polomer;
}
...
for (int x = -polomer; x <= polomer; x++) {
for (int y = -polomer; y <= polomer; y++) {
if (uvnitrKruhu(x, y, polomer)) {
znak = 'X';
} else {
znak = ' ';
}
System.out.printf("%c", znak);
}
System.out.println();
}
