J'ai une tâche à dessiner un cercle et ensuite remplir avec le plus de cercles sans toucher les côtés. Je peux dessiner le cercle, et je peux faire des boucles pour emballer le cercle dans un format hexagonal/nid d'abeilles, mais je ne peux pas contrôler si elles sont à l'intérieur ou à l'extérieur du cercle.cercle emballage - java
J'ai utilisé ceci: g.drawOval (50, 50, 300, 300); pour spécifier mon cercle. Étant donné que je spécifie un carré en tant que mes limites, je ne peux pas déterminer où sont les limites du cercle. Donc, je suis en train d'emballer le carré plein de cercles plutôt que le cercle plein de cercles.
Est-ce que certains peuvent me diriger dans la bonne direction? Je suis nouveau à Java, donc je ne sais pas si j'ai fait cela dans le mauvais sens. Mon code est ci-dessous. J'ai une autre classe pour le cadre et une autre avec le principal dedans.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class DrawCircle extends JPanel
{
private int width, height, diameter;
public DrawFrame d;
public DrawCircle()
{
width = 400;
height = 400;
diameter = 300;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.blue);
g.drawOval(50, 50, 300, 300);
for(int i=50; i<200; i=i+20)
{
for(int j=50; j<350; j=j+10)
{
g.drawOval(j, i, 10, 10);
}
}
for(int i=60; i<200; i=i+20)
{
for(int j=55; j<350; j=j+10)
{
g.drawOval(j, i, 10, 10);
}
}
for(int i=330; i>190; i=i-20)
{
for(int j=340; j>40; j=j-10)
{
g.drawOval(j, i, 10, 10);
}
}
for(int i=340; i>190; i=i-20)
{
for(int j=345; j>40; j=j-10)
{
g.drawOval(j, i, 10, 10);
}
}
}
}
Merci. Je n'utilise généralement pas de nombres magiques, mais j'essaie juste de le faire fonctionner d'abord et ensuite je vais les changer plus tard. J'ai vraiment réfléchi à la façon dont vous y pensiez, mais je ne savais pas comment y arriver. Maintenant que vous l'avez mentionné, je ne peux pas croire que je n'ai pas vu. Je cherchais quelque chose de plus difficile et je me demandais en même temps quelles fonctions de la bibliothèque pourraient être disponibles et que je ne suis pas au courant. –
Très bien, JR. Inquiétez-vous moins sur les bibliothèques et plus sur votre problème. Votre cerveau est le meilleur outil que vous avez. Si vous pouvez le faire sur papier, vous pouvez indiquer à un ordinateur ce qu'il doit faire. Vous allez trier rapidement, j'en suis sûr. – duffymo