Bonjour,
la méthode DrawLine de Graphics ne prend que des INT en paramètre, est-il possible de tracer des lignes avec des float en parametre?
Merci!!
Bonjour,
la méthode DrawLine de Graphics ne prend que des INT en paramètre, est-il possible de tracer des lignes avec des float en parametre?
Merci!!
salut,
utilise la méthode draw(Shape s) de Graphics2D, et tu lui passes comme paramètre un Line2D.Float ou Line2D.Double
J'ai essayé en faisant sa
Malheuresement, aucun trait ne se dessine :'(
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 public void paint(Graphics g) { super.paint(g); Graphics2D g2D = (Graphics2D) g; Image image=createImage(this.getWidth(),this.getHeight()); Graphics2D buffer=(Graphics2D) image.getGraphics(); for (int i = 0; i < enumcoord2.size()-1; i++) { Point point1 = (Point) enumcoord2.get(i) Point point2 = (Point) enumcoord2.get(i+1); Double valX1=point1.getX(); Double valY1=point1.getY(); Double valX2=point2.getX(); Double valY2=point2.getY(); buffer.draw(new Line2D.Double(valX1,valY1,valX2,valY2)); } }
Avec la méthode Graphics, jai une série de trait qui se dessine, ici je ne vois rien
les coordonnées sont de cette ordre la :
X1 ->48.34390
Y1 -> -4.46402
X2 -> 48.34392
Y2 -> -4.46388
Donc voila je suppose que c'est trop précis pour mon dessin, y a til un moyen d'initialisé les valeurs du repaire ou l'échelle du dessin?
Ben vioui là quand même c'est un peu petit pour être visible à l'oeil nu à une échelle 1:1. Pour des remises à l'échelle tu peux utilliser soit la méthode scale() soit la méthode setTransform() avec une AffineTransforme.getScaleInstance(), après bien sur faudra bien caller le repère pour afficher l'intervalle qui t'interresse (donc voir aussi translate() et AffineTransforme.getTranslateInstance()).
ps : au cas où tu ne le sais pas sur un écran d'ordi l'axe des Y va vers le bas et l'origine est en haut à gauche contrairement à sur une feuille de papier.
ps2: penser à remettre le repère à celui d'origine (faire les transformations inverses) après le dessin (surtout utile si on dessine d'autres trucs dessus après et un peu obligatoire lorsqu'on dessine sur le graphics de l'écran).
ps3: penser à faire dispose() sur un Graphics2D créé manuellement sous peine de fuite mémoire.
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
Merci sa m'as l'air interessant,
Maiss aurais tu le temps de me faire un petit exemple, car je ne suis pas forcement au point avec l'utilisation de toute ces fonctions !
j'ai essayé sa :
mais je ne vois toujours rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 buffer.scale(0.0001,0.0001); buffer.translate(48.3400,-4.4500);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager