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 :

Création dessin avec données saisies


Sujet :

2D Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Création dessin avec données saisies
    Salut,

    Est-il possible de générer un dessin à partir de données saisies, par exemple une piece d'une maison avec des cotés de dimenssions différentes, et d'y insérer ensuite à un endroit précis un autre dessin?

    Si oui, pouvez-vous me mettre sur la bonne voie SVP?

    merci

  2. #2
    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
    Oui c'est possible avec Java 2D et l'interface Shape et autres classes associée.

    Mais si tu veux un logiciel de style CAD pré-existant en Java il va te falloir fouiller sur le net si qqun a déjà fait qq chose d'équivalent. Google.

    Sinon il va te falloir créer to propre lib qui crée un GeneralPath, un Polygon2D ou l'un des autres formes en fonction des quotes rentrées.
    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

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    ok, ca me met deja sur la voie mais apres recherche sur le net, je remarque qu'il n'y a pas grand chose.

    Quelqu'un a -t'il des sites intéressants sur le sujet?

    Quelqu'un peut-il me mettre sur la voie pour insérer à un endroit précis du dessin, un autre dessin?

    D'avance merci

  4. #4
    Membre du Club Avatar de lebesnec
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    regarde du coté de la classe Graphics.
    Pour info tu peut récupérer une instance de cette classe à partir d'un JPanel ... pour pouvoir dessiner sur ce JPanel
    Il ya des méthodes pour dessiner des rectangle, des lignes, du textes, des images et comme le disait bouye des polygones.
    Chercher dans la Javadoc directement depuis Firefox / IE7 : http://lebesnec.free.fr/?p=8

  5. #5
    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
    Oui mais la c'est uniquement pour le dessin. Et puis va faire une forme compliquee (style un engrenage) avec les primitives de la classe Graphics...

    Pour une manipulation objet mieux vaut creer une Shape ou mieux un objet contenant une ou plusieurs shape si on veut garder d'autres info en memoire. Ex : coord + couleur/peinture d'avant/arriere-plan + stroke + font des sous-path.

    Sinon l'interface PathIterator peut-etre utile egalement dans certains cas. Mais en general on l'ignore et on se contente d'un bon gros GeneralPath. Allez un peu de courage c'est pas dur de faire une forme a grand coups de moveTo, lineTo, curveTo, quadTo... a partir des points et traces saisis par un utilisateur.
    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. #6
    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
    Allez un petit bout de code pour commencer sur le bon pied.

    Note : pas la peine de s'amuser ( ) a re-implementer completement les interfaces List et Shape, on se contente de mettre les seules methodes nous interessant et de deleger aux objects/membres internes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
     
    public class VectorObject {
      private Paint background = new Color(128, 128, 128, 128);
      private Paint foreground = Color.BLACK;
      private Stroke stroke = new BasicStroke(1.0f);
      private Font font = new Font("Dialog", Font.PLAIN, 12);
      private Shape delegated;
      private String name;
     
      /** Creates a new instance with the given shape.
      * @param shape The delegated shape.
      * @exception IllegalArgumentException If the given shape is <code>null</code>.
      */
      public VectorObject(Shape shape) {
        if (shape == null) {
          throw new IllegalArgumentException("The given shape is null");
        }
        delegated = shape;
      }
     
      /** Gets the bounding box of this object in double precision.
       * @return A  <code>Rectange2D</code> or never <code>null</code>.
       */
      public Rectangle2D getBounds2D() {
        return delegated.getBounds2D();
      }
     
      /** Draw this object.
       * @param graphics The graphics context in which to paint.
       */
      public void draw(Graphics2D graphics) {
        Shape shape = getShape();
        if (isFilled()) {
          graphics.setPaint(getBackground());
          graphics.fill(shape);
        }
        if (isStroked()) {
          graphics.setPaint(getForeground());
          graphics.setStroke(getStroke());
          graphics.draw(shape);
        }
        ...
      }
    }
     
    public class VectorGroup {
      private List<VectorObject> objectList = new LinkedList();
      private String name;
    ...
      /** Creates a new group with given shapes. 
       * @param shapes The initial list of shapes.
       * @exception IllegalArgumentException If one of the given shape is <code>null</code>.
       */
      public VectorGroup(Shape... shapes) throws IllegalArgumentException {
        for (Shape shape : shapes) {
          VectorObject object = new VectorObject(shape);
          objectList.add(object);
        }
      }
     
      /** Creates a new group with given vector objects. 
       * @param objects The initial list of objects.
       */
      public VectorGroup(VectorObject... objects) {
        for (VectorObject : objects) {
          objectList.add(object);
        }
      }
     
      /** Gets the size of this group.
       */
      public int size() {
        return objectList.size();
      }
     
      /** Get object at index.
       * @param index The value index.
       * @return The value at index.
       * @exception IndexOutOfBoundsException If the given index is out of bounds.
       */
      public VectorObject get(int index) throws IndexOutOfBoundsException {
        return objectList.get(index);
      }
     
      /** Add an object to the group. The new value is placed on top of the rendering stack.
       * <br>If the given object is already in the group, it is moved to the top of the rendering stack as well.
       * @param Object The new object.
       * @return The value at index.
       * @exception IllegalArgumentException If given object is <code>null</code>.
       */
      public void add(VectorObject object) throws IllegalArgumentException {
        if (object == null) {
          throw new IllegalArgumentException("The given vector object is null.");
        }
        if (objectList.contains(object)) { 
          objectList.remove(object);
        }
        objectList.add(object);
      }
     
      /** Remove object at index.
       * @param index The value index.
       * @exception IndexOutOfBoundsException If the given index is out of bounds.
       */
      public void remove(int index) throws IndexOutOfBoundsException {
        objectList.remove(index);
     }
     
      /** Gets an object iterator.
       * @return A <code>Vector Object</code> iterator.
       */
      Iterator<VectorObject> iterator() {
        return objectList.iterator();
      } 
     
      /** Gets the bounding box of this object in double precision.
       * @return A  <code>Rectange2D</code> or <code>null</code> if this group is empty.
       */
      public Rectangle2D getBounds2D() {
         Rectangle2D result = null;
         // Compute the union of all objects' bounding boxes.
         for (VectorObject object : objectList) {
           Rectangle2D objectBounds = object.getBounds2D();
           if (result == null) { 
             result = objectBounds;
           }
           else {
             result = result.createUnion(objectBounds);
           }
         }
         return result;
      }
     
     
      /** Draw this group.
       * @param graphics The graphics context in which to paint.
       */
      public void draw(Graphics2D graphics) {
         // Render objects from first to last.
         for (VectorObject object : objectList) {
           object.draw(graphics);
         }
      }
    }
    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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/01/2011, 16h23
  2. Réafficher formulaire avec données saisies
    Par pasc06 dans le forum Langage
    Réponses: 14
    Dernier message: 13/10/2008, 22h06
  3. Création état avec donne verticale et horizontale
    Par popofpopof dans le forum IHM
    Réponses: 1
    Dernier message: 20/07/2008, 11h11
  4. [jsp] dessin static avec données dynamique dessus
    Par njac dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 01/07/2004, 16h24
  5. création base de données avec easyphp
    Par Battosaiii dans le forum Débuter
    Réponses: 5
    Dernier message: 29/06/2004, 18h50

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