Estructura de nido de abeja con Java

Insertar el código que dibuja un hexágono repetido en una estructura de nido de abeja

Entrega:

Insertar el código que dibuja un hexágono repetido en una estructura de nido de abeja.

Estructura de nido de abeja
Resultado

Código:

Clase Tela

package esagoni; import java.awt.*; import javax.swing.*; public class Tela extends JPanel{ public void paintComponent(Graphics g) { //serve a disegnare nella finestra super.paintComponent(g); //viene impostato il colore dello sfondo this.setBackground(Color.WHITE); //viene impostato il colore di g, quindi il colore con cui appariranno //i disegni fatti utilizzando g g.setColor(Color.BLACK); //inizializziamo i due vettori x e y. il vettore x contiene le ascisse dei sei punti //dell'esagono, mentre il vettore y contiene le ordinate dei punti. l'esagono //ha 6 punti quindi i vettori hanno 6 elementi. int x[] = new int[6]; int y[] = new int[6]; //i vettori vengono riempiti con le coordinate dei punti vettoreX1(x); vettoreY(y); // for (int i = 0; i<10; i++){ //vengono disegnati 10 esagoni distanti 40 orizzontalmente for (int a = 0; a < 10; a++){ esagoniX(x,y,g); } //il punto da cui si parte a disegnare si sposta verso il basso di 10 cambioY(x,y,g); //si riempie il vettore x con altre coordinate quindi il punto da cui si //inizia a disegnare si sposta di 10 in orizzontale, per evitare che //gli esagoni si sovrappongano vettoreX2(x); //vengono disegnati altri 10 esagoni for (int a = 0; a < 10; a++){ esagoniX(x,y,g); } //il punto da cui si parte a disegnare si sposta verso il basso di 10 cambioY(x,y,g); //viene riutilizzato il primo vettore, con le coordinate x uguali a //quelle della prima riga vettoreX1(x); } } public int[] vettoreX1 (int x[]){ x[0] = -40; x[1] = x[0]+10; x[2] = x[1]+10; x[3] = x[2]+10; x[4] = x[2]; x[5] = x[1]; return x; } public int[] vettoreX2(int x[]){ x[0] = -20; x[1] = x[0]+10; x[2] = x[1]+10; x[3] = x[2]+10; x[4] = x[2]; x[5] = x[1]; return x; } public int[] vettoreY (int y[]){ y[0] = 10; y[1] = y[0]+10; y[2] = y[1]; y[3] = y[0]; y[4] = y[0]-10; y[5] = y[4]; return y; } public void esagoniX (int x[], int y[], Graphics g){ for (int i = 0; i < x.length; i++){ x[i] = x[i]+40; } //x = vettore que contiene 6 coordenadas horizontales //y = vettore que contiene 6 coordenadas verticales //6 = número de puntos g.drawPolygon(x, y, 6); } public void cambioY (int x[], int y[], Graphics g){ for (int i = 0; i < y.length; i++){ y[i] = y[i]+10; } } } 

Clase Esagoni

package esagoni; //importare java swing serve a poter usare i componenti che contiene, per //esempio jframe import javax.swing.*; public class Esagoni { public static void main(String[] args) { //serve a cambiare la scritta in alto a sinistra JFrame t = new JFrame("Esagoni"); //setDefaultCloseOperation() contiene tra parentesi l'operazione //che il programa esegue quando viene cliccata la x in alto a destra //la scritta tra parentesi indica che cuando viene cliccata //la x, l'operazione di default //è chiudere la finestra t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //l'altra classe si chiama Tela, quindi viene creato un nuovo oggetto Tela Tela p = new Tela(); //t è il JFrame, a cui viene aggiunto l'oggetto p(tela) t.add(p); //dimensioni della tela(la finestra che viene aperta quando si esegue //il programa) t.setSize(1000, 1000); //prima è stata solo creata, e ora è resa visibile t.setVisible(true); } } 

Procedimiento:

Después de crear un nuevo proyecto llamado disegno, hemos creado dos clases. La que tiene el main es Esagoni, mientras que la otra es Tela.

Para dibujar los hexágonos con la estructura de nido de abeja es necesario dibujar hexágonos. Es posible hacerlo de dos maneras:

•g.drawPolygon(obj Polygon)

•g.drawPolygon(x[], y[], i)

El primer método permite dibujar un polígono poniendo entre paréntesis el objeto polígono, mientras que el segundo permite hacerlo con dos arrays de enteros y un número entero. El vector x contiene las coordenadas x de los puntos y el vector y contiene las coordenadas y de los puntos, mientras que i es el número de puntos del polígono, es decir, de los vértices.

En la estructura de nido de abeja hay muchos hexágonos de fila dispuestos en más filas, por lo que es necesario dibujar hexágonos iguales, en la misma fila, dispuestos a una cierta distancia horizontal.

Después de que se ha dibujado la primera fila, se hace lo mismo para la segunda, pero en este caso la coordenada x del primer punto del hexágono no es la misma que la del primer punto del primer hexágono de la fila debajo, por lo que es necesario partir de un punto x diferente. En la tercera fila, en cambio, la coordenada x del primer punto del primer hexágono es igual a la del primer punto del primer hexágono de la primera fila, por lo que las coordenadas x de los puntos son iguales cada dos filas.