IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

Dessiner un terrain de basket-ball en Java


Sujet :

2D Java

  1. #21
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Laquelle des 3 ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  2. #22
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Je vais la dessiner en utilisant AWT et/ou SWING. Mais avant, j'ai un problème de redimensionnement. En effet, je veux que cette interface contient ce terrain de 28 cm/15 peu importe les résolutions de l'écran et quelque soit la plate-forme. J'ai choisi cette échelle de 28 cm/15 car elle convient bien avec la taille réelle d'un terrain de basket-ball FIBA (~28 m /15). Quelqu'un peut m'aider à établir cette méthode de redimmensionnement du pixel vers le cm pour tout le terrain? En plus, je vais implémenté à droite et à gauche, au dessus et au dessous du terrain divers types de composants (boutons, scrollbars, checkbox,...), je m'interroge si cette interface sera toujours d'une taille convenable ou non? Dois-je utiliser une fenetre qui permettra la fonction d'aggrandissement ou bien une fenetre de taille fixe?
    Excusez-moi pour ces questions là Que dois-je faire, je suis débutant et j'espère bien que je m'améliore
    Merci

  3. #23
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Ca n'a aucun sens de parler de centimètre pour l'affichage sur un écran. Comme cela a déjà été dit, il faut plutôt parler de proportions. La hauteur du terrain est fonction de sa largeur, et inversement.
    Le dessin du terrain se fera en fonction de sa largeur, ou de sa hauteur, mais pas des deux : tu conserveras donc la proportionnalité.
    Pour la gestion de la taille du composant, il faudra toujours conserver la même proportion entre la largeur et la longueur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #24
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Salut à tous!
    Sinok, Bouye, comme vous m'avez conseillé je vais importer une image SVG (déjà faite). A cette image, j'ai dessiné des petites zones qui seront ensuite programmées avec des menus Popup. Est-ce que ça est permis? Et quelle est la méthode d'importation la plus simple, celle de Batik ou celle de Kirill Grouchnikov's?

  5. #25
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Batik te permettra de dessiner ton terrain dans un Graphics, le convertisseur de Kiril convertira le fichier SVG en du code Java2D qui se dessine dans un Graphics également (le convertisseur lui-même repose sur Batik mais les classe produites par le convertisseur de Kiril étendent Icon et utilisent uniquement du code Java2D, elles peuvent donc utilisées complètement indépendament de Batik une fois générées).
    Dans les deux cas tu auras un rendu mais aucun interraction possible avec les zones définies dans le SVG.

    Batik : Il faudra alors essayer d'utiliser l'API de Batik plus en avant pour essayer de faire une correlation entre ce qui est rendu et le contenu du DOM XML.
    Je n'ai jamais essayé, mais si ça se trouve Batik permet de le faire.
    Par contre si tu dois le faire toi-même, ca peut être éventuellement un poil compliqué (surtout si ton éditeur SVG s'amuse à appliquer des transormations à tes formes ; ce que fait Inkscape par exemple).

    Convertisseur de Kirill : sinon vu que le code source du convertisseur de Kirill est dispo, il est possible de le modifier pour créer des variables de type Shape nommées comme, par exemple, les formes présentes dans le SVG, histoire de conserver des références dessus (ce qu'il ne fait pas par défaut).
    Concernant le convertisseur même, quand je l'avais récupéré (août dernier) il n'y avait pas de support du texte et des fonts et j'avais du le rajouter moi-même ; de plus si le SVG est très complexe il peut générer une classe très grosse que le compilateur Java refusera de compiler (apparement un fichier de code source ne peut pas dépacer une certaine taille en Ko), si ca arrive, il faut simplifier le SVG.

    Coté JavaFX c'est différent, tu récupères bien des noeuds nommées qui correspondent aux formes défines dans le SVG (si elles ont été nommées correctement, voir mes propositions de Q/R pour la future FAQ) et sur lesquelles on peut placer des closures habituelles de la classe Node (onMouseEntered, onMouseClicked, etc...) pour gérer des évènement.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #26
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Salut Bouye;
    Je te remercie beaucoup pour tes réponses Bouye, comme j'ai déjà dit au début je suis très débutant en ce qui concerne GUI Java. J'espère que tu m'indiques de quoi dois-je disposer essentiellement pour faire cette importation de cette image sachant que j'ai utilisé Inkscape pour la dessiner et téléchargé batik 1.7. Pour la nommation des noeuds à l'image SVG, qui seront programmés, comment dois-je procéder ?
    Merci infiniment!

  7. #27
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Dans Inkscape ?
    • Bouton de droite sur une forme puis "Object Properties" et donne une "Id" et cliquer sur "Set".
    • Edit->XML EDitor..., cliquer sur le noeud avec la souris devrait selectionner le tag XML equivalent dans l'editeur. Cliquer sur le champs "id", saisir une valeur dans la grande zone de texte en dessous puis cliquer sur "Set". On peut nommer des calques de la meme maniere (si on essai de les nommer via le gestionnaire de calque, cela ne change que leur champs "label" en fait).


    Apres par contre dans Batik........................................ ?

    Pour le convertisseur de Kiril, voir https://flamingo.dev.java.net/source.../flamingo/svg/ et plus precisement SvgBaseTranscoder et SvgStreamTranscoder
    Apparement pas mal de classes ont change depuis que je l'avais recupere. D'un cote c'est plus propres mais pas forcement plus lisible.
    Bon, bref a un moment il appelle la methode public void transcode(GraphicsNode gvtRoot) qui appelle elle-meme des methodes comme private void transcodeGraphicsNode(GraphicsNode node, String comment) et des tas d'autres plus specialisees... pour creer le code Java2D equivalent au code SVG. A voir si ces elements Batik ne permettent pas de recuperer les attributs (tels que l'ID ou le nom) stockes dans leur noeuds equivalents dans le XML/SVG. Apres il faudra modifier le code source genere pour faire des trucs du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    String name = ...
    // Au niveau global.
    out.println("private Shape "+name+" = null;");
     
    // Au niveau local dans le code de rendu.
    out.println("if ("+name+" == null) {");
    out.println("\t"+name+" = "+............ // code actuellement genere par le convertisseur avec eventuellement l'application des transformations.
    out.println("}");
    out.println("if (fillPaint != null) {");
    out.println("\tg2d.fill("+name+");");
    out.println("}");
    out.println("if (strokePaint!= null) {");
    out.println("\tg2d.draw("+name+");");
    out.println("}");
    De toute maniere mieux vaut faire tourner le convertisseur au moins une fois tel quel pour voir quel type de code il genere.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  8. #28
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #29
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Citation Envoyé par Binôme_pfe Voir le message
    RE
    En ce qui concerne la redimension , quelqu'un peut nous aider à avoir une bonne échelle? Est-ce que l'échelle (28cm/15) correspond bien (Dimension réelle d'un terrain de BB: 28m/15). Certains nous ont dit qu'il faut faire la conversion de pixels vers le cm. Quelqu'un peut nous éclaircir un peu?
    Merci une autre fois
    Il faut connaitre le ratio "dot per inch" de la résolution affichée.
    Cf: http://www.developpez.net/forums/d70...a/#post4087460

  10. #30
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Toujours concernant la manipulation des SVG, voir https://svgsalamander.dev.java.net/ meme si ce projet ne semble plus etre maintenu.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  11. #31
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bouye ;
    J'apprécie bien tes réponses et ton aide
    Mais, vu que je suis extremement débutant en Java , au graphisme et à ce genre de conversion et d'importation, ça me semble encore vague et complique
    Je te demande gentillement, de me montrer la démarche basique de l'importation de cette image SVG qui contient des petites cercles qui seront ensuite programmables en Java par des menus Popups. Comme j'ai déjà compris il faut d'abord nommer ces cercles (noeuds) en Inkscape et que seulement JavaFX me permet de faire ce type de conversion
    Ensuite ?
    J'espère bien que tu me répondes de la manière la plus simplifiée et basique possible
    Merci infiniment à toi

    NB: J'utilise JBuilder comme IDE Java

  12. #32
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Binôme_pfe, tu es très gentil, très poli, mais on ne peut faire ton travail à ta place.

    Si tu veux développer, la meilleure solution est d'apprendre ce dont tu as besoin et de faire évoluer les développements avec tes connaissances. Il n'est pas possible de développer un logiciel complexe sans un minimum de bases.

  13. #33
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    JavaFX peut faire une telle conversion et permet de manipuler TRES facilement le contenu du fichier, mais cela produit du code JavaFX qui n'est donc pas ce que tu veux dans ton programme Java (et il est sans doute trop tard pour recommencer a zero).

    Le plus simple pour comprendre est de faire tourner le convertisseur de Kirill en mode deboggage avec des break points bien places et de voir ce qui se passe lorsque que tel ou tel noeud de Batik est rencontre. Avoir les sources de Batik peut aider egalement pour voir s'il est possible eventuellement d'extraire des infos venant des tags du SVG a partir des objets graphiques fournis par Batik
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Dessiner la trajectoire d'une balle (PyGTK/Cairo)
    Par austin57 dans le forum GTK+ avec Python
    Réponses: 4
    Dernier message: 24/01/2012, 21h42
  2. Modéliser un match de basket ball
    Par khdouja dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 22/12/2011, 18h02
  3. Vpython Basket ball
    Par justin0203 dans le forum 3D
    Réponses: 0
    Dernier message: 27/03/2011, 12h43
  4. dessiner des cercles sur une image avec java
    Par inès83 dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 04/05/2008, 17h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo