figury w java, dokładniej gwiazda.

figury w java, dokładniej gwiazda.
Renewerek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

Witam, może ktoś ma chwile wolnego czasu, żeby napisać jak mam podejść do wyświetlenia gwiazdy ? najlepiej foremnej. Gdybym posłużył się drawLine-m to było by ok , ale gdybym chciał rozbudować program, tak aby rysował gwiazdę o ilości ramion zależnej od skannera to trzeba innego podejścia i pisać od nowa.

krótko i na temat jak narysować gwiazdę foremna nawet z tym drawLine-m? pewnie trzeba podać kąt wierzchołków jakoś ? nie wiem. Proszę o pomoc. Gotowy kod czy wskazówki cokolwiek.

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

O takie figury Ci chodzi?
Star.png

Renewerek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

tak. na razie chce to tylko wyświetlić, ale w taki sposób by póżniej ewentualnie zupgrade tować program do postaci, gdzie wpisuje ile ma mieć ramion, a pętla rysuje tyle ramion ile wpisze.

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
1

Mam dobry humor (i gotowy kod):

Kopiuj
Graphics2D g2 = Graphics2D)g;
int howManyVertex = 5;
g2.setColor(new Color(255,204,0)); //pomarańczowy
g2.translate(xCenter,yCenter);
int x[] = new int[2*howManyVertex];
int y[] = new int[2*howManyVertex];
for(int i=0;i<howManyVertex;i++)
{
       double angle = i*360.0/howManyVertex - 90.0; //odjęcie 90 stopni obraca gwiazdę - ma ona wierzchołek skierowany ku górze
       x[2*i] = (int)(48*Math.cos(Math.toRadians(angle)));
       y[2*i] = (int)(48*Math.sin(Math.toRadians(angle)));
       angle+=360.0/(2*howManyVertex);
       x[2*i+1] = (int)(18*Math.cos(Math.toRadians(angle)));
       y[2*i+1] = (int)(18*Math.sin(Math.toRadians(angle)));                
}
g2.fillPolygon(x,y,2*howManyVertex);

Tajemnicze stałe 48 i 18 to promienie okręgów przechodzących przez wierzchołki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.