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(); }