© Sofia ZAIDENBERGCNRS Mai 2007 1 Interfaces Graphiques Tracer une fonction y = f(x) avec JAVA 2D.

Slides:



Advertisements
Présentations similaires
Chaîne de Synthèse Réel Modélisation Rendu Image Fichier Scène
Advertisements

Hierarchical Z-Buffer Visibility
Projet Sample Orchestrator Réunion plénière, 10 octobre 2007 SP2 - Indexation audio et navigation par le contenu Application prototype de navigation et.
Homothétie Auteures : Nathalie Charest et Chantal Prince
QUEUE D’ARONDE CALCUL THEORIQUE
VI50 – TP3 Introduction à Virtools. Virtools Virtools Media Design 3DS, Maya, Lightwave… Sound Design wav, mp3… Texture, 2D interface jpg, bmp… Specific.
Chapitre II.Rappels mathématiques et complexité

Module SIG-Santé 6. Géoréférencement Marc SOURIS Florent DEMORAES
L’aire, limite d’une somme
Transformations de visualisation en OpenGL
SUJETS SPÉCIAUX EN INFORMATIQUE I PIF Contenu du cours Transformations géométriques des objets –Transformations 2D –Transformations entre systèmes.
Auteures : Nathalie Charest et Chantal Prince Enseignantes de mathématique, CSRS.
Gestion des événements liés à la fenêtre et aux périphériques dentrée.
Graphical User Interface
Vers la fonction exponentielle.
Des révisions et des constructions.
Mais en mathématiques, qu'est ce qu'une ligne de niveau?
DESS CCI POO-JAVA TD n°7 exercice n°1
Modélisation géométrique à l’aide d’un maillage
Transformations de corps rigides
Visualisation de surfaces décrites analytiquement
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
IFT3730 : Infographie 3D Systèmes et modèles graphiques Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.
IFT2740 : Outils de l'infographie 3D Systèmes et modèles graphiques
MODULE 3 Transformations GÉOMÉTRIQUES dans le plan cartésien
Design dun système de vision embarqué. Application:
Formation Développeur Java Applet et interfaces graphiques avec AWT
TYPES DE COMPOSANTES SWING Cours 420-B43. On peut distinguer 3 Niveaux 3 niveaux Haut niveau : toute application graphique doit comprendre au moins une.
Extraction Automatique de formes complexes : Application à la création de modèle anatomique de la tête J. Piovano, T. Papadopoulo Séminaire Odyssee 9,
TRAITEMENT D’IMAGE SIF-1033.
IFT3355: Infographie Transformations Géométriques
PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL
Structures de données IFT-2000
Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire.
Transformations ponctuelles des objets
Création et présentation d’un tableau avec Word 2007
Formation SIG-Santé Géoréférencement Marc SOURIS Elisabeth HABERT
Programmation en Java Tableaux NGUYEN Thi Minh Tuyen
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
GRAPHISME PAR ORDINATEUR
Interfaces graphiques. Composants d'interface utilisateur graphique (GUI) 1 Bibliothèques Awt et Swing Procédures communes pour l'utilisation de ces clases.
Intervalles de confiance pour des proportions L’inférence statistique
CHAPITRE 1: LES FONCTIONS.
Mathématiques CST - Géométrie des figures planes -
Les différents modèles
ITI Lab # 11 Adapté de versions antérieures créées par: Daniel Amyot et Alan Williams.
LIFI-Java 2004 Séance du Mercredi 29 sept. Cours 4.
Introduction à la programmation objet avec java
TUTORIAL PHOTOSHOP CS1/2 Par Onilink Spécialement créé pour Bereblue :3.
Elaboration d’un tableau de variation
Echelles.
STATISTIQUES DESCRIPTIVES
Le Jeu et l’intelligence artificielle
CONSTRUCTION D’UN TABLEAU DE VARIATION
Limites des fonctions de référence
Chapitre 5 Les intégrales multiples
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
Introduction aux technologies du jeux-vidéo Steve Gury
Traitement du signal (images) u Sujets –Détection des droites –Transformée de Hough (espace paramétré) *avec la pente et l’ordonnée à l’origine *avec.
REDIMENSIONNER UNE IMAGE © 2010 Frederic DAVID. Le but est de redimensionner une image Image redimensionnée Image originale.
Premières notions de la 3D
Les solides Définition:
Dreamweaver le retour Avec Les Formulaires Les Calques
OSSIA Open Scenario Systems for Interactive Application Contrôle de paramètres spatiaux Jean-Michel Couturier, Blue Yeti, mai 2014.
Java Swing. Principes de base  Des composants graphiques (exemple: JFrame, JButton …)  Hiérarchie de classes  Des événements et les actions à effectuer.
Les vues O.Legrand G.Seront. Les vues Dans Android, une ihm est composée de vues. Ces vues.
De la Terre à la carte: Projections et Géoréférencement
III Résolution graphique d’équations et inéquations
Transcription de la présentation:

© Sofia ZAIDENBERGCNRS Mai Interfaces Graphiques Tracer une fonction y = f(x) avec JAVA 2D

© Sofia ZAIDENBERGCNRS Mai Java 2D Afficher la courbe d’une fonction dans un fenêtre (un JPanel ou un JComponent ) y x Espace utilisateur (« World Coordinate System ») Espace écran : (« Device Coordinate System ») F(x) = sin(x) x y Réel Non borné Entier Borné

© Sofia ZAIDENBERGCNRS Mai Java 2D Afficher la courbe d’une fonction dans une fenêtre (un JPanel ou un JComponent ) y x x y 1 Définir la région de l’espace utilisateur à afficher 2 Appliquer au coordonnées exprimées dans WCS une transformation vers DCS Espace utilisateur (« World Coordinate System ») F(x) = sin(x) Réel Non borné Espace écran : (« Device Coordinate System ») Entier Borné

© Sofia ZAIDENBERGCNRS Mai Java 2D l Définir la région de l'espace utilisateur à afficher y x x y xWmin yWmin xWmax yWmax.. Définition d’une fenêtre dans l’espace utilisateur : XWmin, YWmin coordonnées dans WCS du coin inférieur gauche de la fenêtre XWmax,YWmax coordonnées dans WCS du coin supérieur droit de la fenêtre WCS DCS

© Sofia ZAIDENBERGCNRS Mai Java 2D l Transformation coordonnées WCS  coordonnées DCS y x x y xWmin yWmin xWmax yWmax.... xw yw xd yd xw yw = T T dépend de xWin, yWmin, xWmax, yWmax et de ld (largeur) et hd (hauteur) de la région d’affichage ld hd WCS DCS

© Sofia ZAIDENBERGCNRS Mai Java 2D l Transformation coordonnées WCS  coordonnées DCS y x x y xWmin yWmin xWmax yWmax.... xw yw xd yd xw yw = T ld hd WCS DCS.. xWmin yWmin 0 hd T xWmax yWmax ld 0 T

© Sofia ZAIDENBERGCNRS Mai Java 2D l Transformation coordonnées WCS  coordonnées DCS y x x y xWmin yWmin xWmax yWmax.... xw yw xd yd xw yw = T ld hd WCS DCS xw - xWmin lw xd ld = Les proportions doivent être conservées : La position relative de (xd,yd) par rapport à la région d’affichage doit être la même que la position relative de (xw,xw) par rapport à la fenêtre utilisateur yd hd yWmax - yw hw = hw =(yWmax – yWmin) lw =(xWmax – xWmin)

© Sofia ZAIDENBERGCNRS Mai Java 2D l Transformation coordonnées WCS  coordonnées DCS y x x y xWmin yWmin xWmax yWmax.... xw yw xd yd xw yw = T ld hd WCS DCS xd ld xw - xWmin lw = yd hd yWmax - yw hw = xd = xw * - xWmin * ld lw hd hw yd = - yw * + yWmax * hd hw homothétie translation ld lw hd hw ld lw - xWmin * hd hw yWmax * xw yw 1 xd yd 1 = * T

© Sofia ZAIDENBERGCNRS Mai Java 2D l Transformation coordonnées WCS  coordonnées DCS y x x y xWmin yWmin xWmax yWmax.... xw yw xd yd ld hd WCS DCS.. ld lw hd hw ld lw - xWmin * hd hw yWmax * xWmin yWmin 1 0 hd 1 = * ld lw hd hw ld lw - xWmin * hd hw yWmax * ld 0 1 = xWmax yWmax 1 *

© Sofia ZAIDENBERGCNRS Mai Java 2D l Transformation WCS  DCS : prise en charge par Java2D public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; int ld = this.getWidth(); int hd = this.getEight(); double lw = xWmax - xWmin;... double m00 = ld / lw;... AffineTransform t = new AffineTransform( m00,0.0,0.0, m11,m02,m12); g2.transform(t);... g2.setStroke(new BasicStroke(0.0f));... g2.draw(aShape); } ld lw hd hw ld lw - xWmin * hd hw yWmax * xw yw 1 xd yd 1 = * T [ x'] = [ m00 m01 m02 ] [ x ] = [ m00x + m01y + m02 ] [ y'] = [ m10 m11 m12 ] [ y ] = [ m10x + m11y + m12 ] [ 1 ] = [ ] [ 1 ] = [ 1 ] T définie par un objet java.awt.AffineTransform Cette transformation est combinée à la transformation courante maintenue par le contexte graphique Les coordonnées des primitives graphiques (« Shape ») sont ensuite exprimées dans WCS et seront automatiquement transformée lors du rendu.

© Sofia ZAIDENBERGCNRS Mai Java 2D public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; int ld = this.getWidth(); int hd = this.getWidth(); double lw = xWmax - xWmin;... double m00 = ld / lw;... AffineTransform t = new AffineTransform( m00,0.0,0.0, m11,m02,m12); g2.transform(t); g2.setStroke(new BasicStroke(0.0f)); } l Échantillonnage de la courbe for (double x = xWmin; x <= xWmax; x += pasX) { tracer segment (x,f(x)) (x + pasX, f(x + pasX); } l La courbe va être approximée par des segments de droite. l Prendre garde de ne pas tracer des primitives géométriques trop petites ( < 1 pixel) l Le pas d’échantillonnage doit être fixé en fonction des dimension de l’espace d’affichage double pasX = lw / ld * 3.0;