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 :

Déplacer, zoomer, dessiner (sur) une image


Sujet :

2D Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Déplacer, zoomer, dessiner (sur) une image
    Bonjour à tous,

    Voilà j'aurais besoin de quelques indications. J'ai un projet de fin d'année qui en gros me demande de réaliser une application qui calcule le chemin le plus court entre deux points (les points en question sont des villes de Belgique). Un classique. Comme vous l'aurez compris, je devrai réaliser ce programme en java.

    Ce qui me plairait de faire c'est d'afficher une image de la Belgique que l'on pourrait zoomer et déplacer (si il y a un zoom). De +, je devrai "dessiner" les routes (qui sont des lignes droites) sur cette image. N'ayant jamais utiliser java en profondeur je ne sais pas comment je pourrais réaliser ça. Pour ceux qui auraient du mal à percevoir ce que je dois faire, c'est un peu comme les maps que génèrent www.mappy.fr ou alors comme carto un célèbre programme pour warcraft par exemple.

    Je ne demande pas que l'on fasse mon projet, bien sur que non mais j'aimerais savoir par où commencer. Je mets l'image dans un JComponent ? J'utilise mouseadapter savoir si l'image va vers la droite ou la gauche ? bref ce genre de questions.

    Un grand merci pour votre aide,
    charly

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2006
    Messages : 380
    Points : 314
    Points
    314
    Par défaut
    Marrante ton idée

    Personnellement je ne sais pas ce que je ferais comme ça à la volée...
    Sûrement un JPanel avec en fond la partie sélectionnée de l'image. Elle se recalculerait à chaque mouvement. Il suffirait de lui dire quelle partie de l'image à afficher...

    Tu le veux très en détail ta carte ? Parce que ça risque de bouffer de la mémoire tout ça !
    Mon idée est peut-être mauvaise.

    Ou alors tu fais un certain nombre d'images, tu ne charges en mémoire que le nécessaire...
    Peut-être meilleur.

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 870
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    53
    Par défaut
    Je te conseilles de lire un bon didacticiel sur Java2D ; tu peux commencer par celui de Sun par exemple. Tu peux egalement regarder la demo Java2Demo presente dans le JDK (demo\jfc\java2D\) pour te rendre compte des possibilites de la plateforme et regarder leur code source pour voir comment c'est fait. Il existe aussi les livres Java2D Graphics* (ancien mais toujours a 99% valide) et Killer Game Programming in Java (bien plus recent ~ les techniques 2D utilisees sont applicables en dehors de jeux bien sur. Ce bouquin aborde aussi la 3D) chez O'Reilly ainsi que le forum Java 2D de javagaming.org et bien sur le forum Java/Interfaces Graphiques de devellopez.com

    *Tiens ils sont revenus a une couverture O'Reilly plus classique avec des gravures de poissons alors que mon exemplaire achete en 2000 represente une palette d'aquarelle.

    Il y a 2 maniere de faire des transformations affines (zoom, rotation, translation, inclinaison) :
    - soit avec les primitives des classe Graphics et Graphics2D.
    - soit avec la classe AffineTransform.

    L'aspect du resultats de ces transformations peut-etre influence grace aux indices de rendu (RenderingHints) nottement ceux concernant l'antialias, l'antialias du texte et l'interpolation des couleurs.

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 870
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    53
    Par défaut
    Avoir des niveaux de details (LOD ~ Level Of Details) suivant les niveaux de zoom ce n'est pas pour les chiens (note : pas d'insultes suggeree c'est juste l'expression qui est comme ca). cf voir les niveaux de details suivant le zoom dans Google Earth avec des maps de plus en plus detaillees quand on zoome elles-memes divisees en plusieurs sous-maps de plus grand details.
    Idem utiliser la zone de clip du Graphics pour rendre uniquement le strict necessaire. Voir calculer les zones minimales a redessiner en cas de modif/mise-a-jour pour eviter une repeinte totale... Bref toutes les techniques habituelles d'optimisation du rendu 2D...

    J'oubliais : ce genre de projet (cartes de localisation, navigation GPS, ...) a deja fait l'objet de posts dans ce forum. Fait donc des recherches sur ces topics.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci à vous deux, je vais jeter un coup d'oeil à java2demo. Ca fait plaisir

Discussions similaires

  1. [WinDev 10]Dessin sur une image
    Par abrial dans le forum WinDev
    Réponses: 1
    Dernier message: 09/03/2007, 05h57
  2. comment dessiner sur une image
    Par baracouda dans le forum Graphisme
    Réponses: 2
    Dernier message: 26/05/2006, 01h21
  3. Dessiner sur une image
    Par cquadjul dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/04/2006, 11h44
  4. Dessiner sur une image
    Par alex6891 dans le forum Java ME
    Réponses: 1
    Dernier message: 16/04/2006, 03h45
  5. [Servlet] [Image] Dessiner sur une image
    Par gaia_dev dans le forum 2D
    Réponses: 5
    Dernier message: 01/09/2004, 18h11

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