× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 jeu de l'étoile
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
don diego
  Posté le 30/03/2007 @ 18:48 
Aller en bas de la page 
Petit astucien

Salut,

je voudrais savoir comment placer des composants (par ex, des checboxs) sur un cercle.

Le cercle ne sera pas visible mais c'est juste pour placer les composants à égal distance les uns des autres.

Pouvez vous me dire comment faire ou alors juste me dire quels composants utiliser. (Je programme en Java).

merci d'avance.

Publicité
breizhbugs
 Posté le 30/03/2007 à 19:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut,

Je comprends pas trop ce que tu cherche a faire mais pour dispose des checkbox "en cercle", chaque checkbox ayant une position (x,y), il te suffit d'utiliser les formules de trigonometries pour calculer lesdites positions (c'est de maths quoi!) et d'ajuster la propriete x et y de chaque objet.

Supposons que tu veux mettre 10 checkbox en cercle, ca t'en fait une tous les 36° d'angle.

don diego
 Posté le 31/03/2007 à 15:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut,

Tu as compris ce que je cherche à faire.

Mais il faut bien définir un point central et dire que chaque checkboxs seront à telle distance et à tel degré.

Et c'est là que je bloque. Comment faire?

breizhbugs
 Posté le 01/04/2007 à 11:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Eh bien c'est simple, tes checkbox tu les mets dans l'espace client d'une "Form" (je sais plus le nom en java). Cette form a un espace client ayant des dimensions positives {(0,0), (longueur, largeur)}, tu choisi ton centre a l'interieur et tu choisis un rayon pour ton cercle et ensuite tu utilises les formules de trigo pour trouver les coordonnées de tes checkbox.

du style:

centrex=longeur/2; centrey=largeur/2; rayon = min(longueur, largeur)/3; /

pour i de 1 a 10

x= cos(i*36°)*rayon; y=sin(i*36°)*rayon;

checkbox[i]= new chekbox(..., x+centrex, y+centrey); // je ne sais plus a quoi ressemble le contructeur mais il y a surement quelque chose pour y mettre les coordonnées

form.add(checkbox[i]); on ajoute le checkbox creer a la form

finpour.

Ca doit ressembler a ca plus ou moins...

EDIT: En java j'avais oublié...! donc pas possible de placer les composant par x ou y zut! Bon j'ignore toujours c'est quoi ton jeu de l'etoile mais pour simuler ton cercle je vois une possibilité toute simple: un gridlayout qui definit un tableau de taille (3,3) minimum et de placer tes composants sur la bordure exterieure. (la ligne 1 et la ligne 3, la colonne 1 et la colonne 3).



Modifié par breizhbugs le 01/04/2007 11:25
don diego
 Posté le 02/04/2007 à 17:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci pour ton aide breizhbugs.

J'ai réussi ce que je voulais faire (placer des checkboxs en cercle):

int width = panel.getWidth();
int height = panel.getHeight();


Point centre = new Point(width/2, height/2); // Centre du panel

int rayon = Math.min(width, height) / 3; // Le rayon du cercle
int angle = 360 / nbPion; // L'angle entre chaque checkbox

double cosAngle, sinAngle;
double x, y; // Coordonnées des checkboxs

for (int i = 0; i < nbPion; i++) {
Checkbox checkbox = new Checkbox("" + i, true);
lesCheckboxs.add(checkbox);

cosAngle = Math.cos(i * Math.toRadians(angle));
sinAngle = Math.sin(i * Math.toRadians(angle));
x = cosAngle * rayon;
y = sinAngle * rayon;
x = x + centre.x;
y = y + centre.y;

// On définit les coordonnées et la taille des checkboxs
checkbox.setBounds((int) x, (int) y, 10, 10);
panel.add(checkbox);

}

En fait, ce que je ne savais pas, c'est qu'en Java, on peut faire :

setLayout(null);

C'est au programmeur ensuite de placer ses composants au pixel près.

D'où, ensuite, la ligne :

checkbox.setBounds((int) x, (int) y, 10, 10);

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
25,90 €Carte PCI-E TP-Link Archer T5E (Wifi 1200 + Bluetooth 4.2) à 25,90 €
Valable jusqu'au 17 Juillet

Amazon fait une promotion sur la carte PCI-E TP-Link Archer T5E qui passe à 25,90 € livrée gratuitement alors qu'on la trouve ailleurs autour d'une quarantaine d'euros. Cette carte réseau à brancher sur un port PCI-Express de votre carte mère vous permettra d'ajouter le Bluetooth 4.2 à votre ordinateur ainsi que WiFi 5 1200 Mbp/s. Profitez des antennes extérieures pour améliorer la portée de votre signal et ainsi augmenter votre vitesse.


> Voir l'offre
190,56 €Disque dur externe Western Digital Elements Desktop USB 3.0 10 To à 190,56 € livré
Valable jusqu'au 16 Juillet

Amazon Allemagne propose actuellement le disque dur externe Western Digital Elements Desktop USB 3.0 10 To à 184,13 € (avec la TVA ajustée). Comptez 6,43 € pour la livraison en France soit un total de 190,56 € livré. On le trouve ailleurs à partir de 229 €. Ce disque dur dispose d'un grande capacité de stockage (10 To) et d'une connectique USB 3.0 qui vous offrira des transferts rapides. Il est compatible USB 2.0. Une très bonne affaire. Notez que le disque dur n'est pas soudé et que vous pouvez le récupérer pour l'utiliser dans un ordinateur ou un NAS (il s'agit d'un disque dur CMR UltraStar DC HC 510).

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre
329 €Ecran PC 27 pouces Dell S2719DGF (WQHD, 155 Hz, 1 ms, FreeSync) à 329 €
Valable jusqu'au 20 Juillet

Amazon fait une promotion sur l'écran PC 27 pouces Dell S2719DGF qui passe à 329 € au lieu de plus de 400 € ailleurs. L'écran à cadre fin dispose d'une dalle TN WQHD (2560x1440 pixels) 1 ms à 155 Hz. Il est compatible Freezync (Gsync via Adaptive Sync) et dispose de 4 prises USB (fait office de hub) et de 2 prises HDMI. Garantie 3 ans.


> Voir l'offre

Sujets relatifs
 > Tous les forums > Forum Autres langages