Java graphics 2D
13 pages

Java graphics 2D

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
13 pages
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Applications graphiques en Java JAVA Graphique 2D ● L'objet Graphics2D de Java Swing permet : – la transformation affine ● (rotation, basculement, étirement, ...) – la gestion de couleurs JAVA 2D ● (contraste, luminosité, netteté, saturation...) – La gestion du rendu E. ADAM ● (texture, dégradé de couleurs, ...) UVHC - ISTV – L'édition de texte améliorée E. ADAM – ISTV - UVHC E. ADAM – ISTV - UVHC Applications graphiques en Java Applications graphiques en Java Transformations Transformations ● ● G2D permet : AffineTransform : appliquer une transformation affine sous forme de matrice à chaque point (x, y) d'un – la rotation (rotate), le redimensionnement (scale), graphique : le basculement (shear), la translation (translate) de graphiques a c tx x ' x a.x c.y tx =[ ]. = – b d ty Il est possible de combiner les transformations : y' y b.x d.y ty ● Utilisation de la classe de Transformation Affine : – AffineTransform Redimensionnement 2 0 0 [ ] 0 0.5 0 E. ADAM – ISTV - UVHC E. ADAM – ISTV - UVHC Applications graphiques en Java Applications graphiques en Java Transformations Transformations Translation Rotation PI/2 1 0 10 0 1 0 [ ] [ ] 20 1 0 0 0 1 20 0 10 0 0 0 Basculement Rotation Téta cos tetha sin tetha 0 1 0.5 0 [ ] [ ] sin tetha cos tetha 0 0 1 0 0 0 0 0 E. ADAM – ISTV - UVHC E.

Informations

Publié par
Publié le 13 juin 2013
Nombre de lectures 41
Poids de l'ouvrage 2 Mo

Extrait

     
Applications graphiques en Java
JAVA
JAVA 2D
E. ADAM
UVHC - ISTV
Transformations
G2D permet :
la rotation (rotate), le redimensionnement (scale), le basculement (shear), la translation (translate) de graphiques
Il est possible de combiner les transformations :
     
Utilisation de la classe de Transformation Affine : AffineTransform
Applications graphiques en Java
Graphique 2D
L objet Graphics2D de Java Swing permet : '
la transformation affine (rotation, basculement, étirement, ...)
la gestion de couleurs (contraste, luminosité, netteté, saturation...)
La gestion du rendu (texture, dégradé de couleurs, ...)
L'édition de texte améliorée
     
Applications graphiques en Java
Transformations
AffineTransform : appliquer une transformation affine sous forme de matrice à chaque point (x, y) d'un graphique : ' x'=[caxtydtb].x=x.a.by.cd.txt
Redimensionnement
     
[2 0 0] 0 0.5 0
Applications graphiques en Java
Translation
0
Basculement
0
     
Transformations
[2 1  0 0 10 01]
[ 05. 0 0 11 0]
Applications graphiques en Java
0
20
Transformations
0 10
Utilisation de TransformAffine : Dans la méthode paint ou paintComponent :
public void aipContnopmtne(Graphics g) { super.paintComponent(g); if (!tracker.)(0DIkcehc)return;
}
Graphics2D g2d = (Graphics2D) g; AffineTransform atOld = g2d.getTransform(); AffineTransform atT = new AffineTransform(); atT.rotate(Math.PI/6);
g2d.radamIweg(imgFixe, atT,this);
    
Applications graphiques en Java
Rotation PI/2
0
Rotation Téta
0
     
Transformations
01 0 [1 0 0]
[snisoctethaahtetoscsinhaettahtet 0  0]
Rendu : Qualité
      
0
   ColorSpace Graphics2D g2d = (Graphics2D) g; RenderingHintsqualityHints = newneRngHiderints( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS ON); _ qualityHints.put(NGRI_REYDEENniHgK.stdneRnire, RenderingHints.VALUE_RENDER QUALITY); _ g2d.sntHingiredneRtesytHsiitnal)q;u(
     
g2d.drawImage(img2, 30, 30, 100, 100, this);  .. .  
// definition d'une transparence à 50% pour les prochains dessins AlphaCompositeac =  AlaCphpoomtesi.nItsgtenaec(mposhaCoSRC_ite.REVOApl, 0.5f); g2d.poomtCsetesi(ac);
Rendu : Transparences
   ! + ,-.
  ! !# $!%
Rendu : Transparence
*  ! ) ... // dessin en mode plein g2d.drawImage(img1, 0, 0, 480, 360, this);
   AlphaCompsotie &' !(     ) CLEAR, SRC, DST, SRC_OVER, DST_OVER, SRC_IN, DST_IN, SRC_OUT, DST_OUT, SRC_ P, DST_ATOP, or XOR ATO
     
 
Rendu : Qualité
      
     
Rendu d'images
/  012 + ! /     ! / ) 2""  2""$ 5 #5 2""678089*2%: 42""  3  2""67 0 9*2%:2"" 02 3 4 2""$5 # 5 8 8
   RenderingHinst ! #! ) "5 !  ; ) "5 5     9) "5 !  ;  ) "5 5    !;) "5 5   !) ! !# 5 (5 ((; 9) "5 !  ;   <) "5 5           *!#' * 3 *!#$%: 9 # 3 '9$%: *4$5 -5 -5 #%:      
 ! "
Rendu d'images : N & B
 /  012 + ! /  
   parSceloCo 0  5'=  :5 :   :  6:...
 ColorSpace.getInstance(ColorSpace.CS_GRAY);ColorSpace cs =
   ColoOprtveonrC Réalise une conversion pixel à pixel de l'image initiale
ColorConvertOp theOp = new ColorConvertOp(cs, rhs);
theOp.filter(imgCouleur, imgNB);
     
Rendu d'images : filtres
7> ?4
' " !   2""  9 $  !<% ) 2""@!  9@!
 """@!5 ) !  " 2(@!5 @!5 @!5 A>!@!5 9@!
    !  " ;5 /5  "5  5  5    /
     
     
Rendu d'images : N & B
Rendu d'images : filtres
7> ?4
A Kernel!  "  " )  "   " #; $!! !  % "    #; !<  "          + ! /  $  % pi1,j1p ji ,1pi1,j1 Matrice=pi1,jpi , jpi1,jpi1,j1p ji ,1pi1,j1 1 1 coulpx , y=∑ ∑pi , j×coulpxi , yj j=1i=1
     
Rendu d'images : filtres
<! )   (
A  !    (  ) "BC  3 D --"5 &-"5 --"5 &-"5 E"5 &-"5  --"5 &-"5 --"F:
2"" G 3 4 2""$5#52""678089*2%:        > 3 $=5 =5 %:
! 3 $>5%$#"$!&!5 %:
!"$5G%:
'4$G5 -5 -5 5 #5%:
     
Rendu d'images : filtres
<! )   
 LookupOp; !!; < =   +  ! $   "%  "  !  (<  H! ByteLookupTable
(H BC 3 4 (HB',IC: " $ ?3-: ?J',I: ?KK% B?C3$(H%$',I?%:
'()*+ (34 )*+'($-5 %:
)*! 3 4)*$(5 %:
!$5 %:
'4$5 -5 -5 5 #5 #%:
     
     
    
Rendu d'images : filtres
Rendu d'images : filtres
Rendu d'images : filtres
<! ) A  
 RescaleOp; !!; < =   +  ! $   "%  "  !  ""   
" # !< "  (? D  " # (L! " # !< D   3 $M""% K   F F
,! 3 4,$'"5 &--"5 %: !$%:(5
'4$(5 -5 -5 5 #5 #%:      
Rendu d'images : filtres
 G< )
     = < = !  N " O  
5 /(?"  /"  
     
Rendu d'images : filtres
<! ) A  
     
Rendu d'images : filtres
 G< )
  = < = !  N " O      ) &LP &LP &LP &LP &LP &LP &LP &LP &LP
float[] elements = new float[9]; Arrays.fill(elements, 1.f/9.f);
Kernelkernel = newKernel(3, 3, elements); ConvolveOpcop = newpOevlovnCo(kernel, ConvolveOp.EDGE NO OP, null); _ _ cop.filter,ruegmib;)mg(iulCo
g2d.drawImage(bimg, 0, 0, largeur, hauteur, this);
     
    
Rendu d'images : filtres
Rendu d'images : filtres
< ) 7 0
  = < = !  N  O      ) & & & & P & & & &
float[] elements = new float[9]; Arrays.fill(elements, -1.f); elements[4] = 9.f;
Kernelkernel = newKernel(3, 3, elements); ConvolveOpcop = newCoveOpnvol(kernel, ConvolveOp.EDGE_NO_OP, null); cop.filter(imgCouleur,)b;img
g2d.drawImage(bimg, 0, 0, largeur, hauteur, this);
     
Rendu d'images : filtres
< ) 7 0
Q   = < = !   !   
5  !     
    
Rendu d'images : filtres
 7 0< )
     
Gestion de lignes
(  ! ) A
 BasicStroke) !  (
!  &' !< ) $  # ! ! <!% .... BasicStrokepinceauLarge = newBasicStroke(12.0f); g2.setStroke(pinceauLarge); g2.drawLine(0, 0, 400, 300); ....
     
Gestion de lignes
(  ! ) !
"  ! ! ( ) D&-F R !   &- !< D&-5 '-F R !  '- !<   &- !< D&-5 '-5 ,5 'F R   &- !<5 !  '- !<5   , !<5 !  ' !<5 
$  # ! ! <!% .... BasicStrokepinceauPointille = newrtkoisScBae0.,f(21 BasicStroke.CAP ROUND,asicStroBORNU,D ekJ.IO_N10f, _ new float[]{10, 20, 5, 2}, 0f); g2.keStroset(p;ll)eniituaoPniec
g2.drawLine( 0, 0, 300, 400); ....
       
début des pointillés
Gestion de lignes
(  ! ) ?
Programmer’s Guide to theJava 2D™ API Enhanced Graphics and Imaging for Java JavaTM 2 SDK, Standard Edition, 1.4 Version April 24, 2001 "  / + ! ;   ?
10° ! + (  ? ) $  # ! ! <!% .... BasicStrokepinceauRond = newektSorasicB(12.0f, BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND, 10f); g2.esStrtkoe(ip;)dnoRuaecn
g2.drawPolyline( new int[]{0, 10, 20, 30}, new int[]{0, 10, 0, 10}, 4);  ....  
Gestion de lignes
(  ! ) !
     
Remplissage de formes
   
 GradientPaint
 "
@ $2%
 $%
  /    !         !  (
H
$  # ! ! <!% .... GradientPaintgp = newGradientPaint Color.White,(0f, 0f,  0f, (float)hauteur/2f, Color.RED, true); g2d.setPaint(gp);
g2d.fillRect(0, 0, larg2, haut2); ....
     
Cycle activé
Remplissage de formes
  
7&) & $9&5 *&5 2&% R
   ' ! 3 
7') ' $9'5 *'5 2'%
3 $*'  *&%5 2 3 $2'  2&%N  O   9 3 $9'  9&%5 *
  7& + 7' )   !  : * 3 *L : 2 3 2L :9 3 9L
     
Remplissage de formes
   
     
Remplissage de formes
!!  <   TexturePaint
! "   ! $BufferedImage%   " $!  (?Graphics2D% "     < $Rectangle%   < $TexturePaint%
     
Remplissage de formes
!!  <  LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL  <   3 '-:
'-( 3 4'-$5 5 2""678089*2%: #."'2 3 (#$%: '2$*0%: '2"9$-5-55%: '2$%: '2"@$-5-55%:
     
Remplissage de formes
!!  < 
     
Remplissage de formes
!!  <  LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL < , 3 4,%:55-$5-+&! 3 4+&$(5 %:
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL  !   < '&$!%:
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL < ',#5:%-5$-5
     
Remplissage de formes
!!  < ?!  TexturePaint
! 9! /  $  >% 9 / $"""% "   ! $BufferedImage%  / "     <   < $TexturePai
     
Remplissage de formes
!!  < ?!   3 &--:  3 S#$#%: # 3#$#%:       <3$R#T)#%:     ()3 $(%L$(%<: (/3 $(%#L$(%<:    0           '-( 3 4'-"A%5$$%$M $%$M"%5  2"" 8 089 %: 67  *2 *!#' ' 3 (#$%:
     
!!
     
Remplissage de formes
Remplissage de formes
!!  < ?!       01+ 3 41+$%: ( 2 :(L$%M%A" ($3$%( 3%($3$ "M%#%($L : 4+$U5 6%: '+$%:    0  0  '-$5 -5 -5 #%:
"   , 3 4,55-5-$%:+&! 3 4+&$(5 %: '&$!%: '5%#$-:5-5
     
Zone de dessin : Clipage
 zone délimitant l'affichage du graphique =Zone de clipping  
Définition de zone géométriques issues de : Arc2D, Ellipse2D, Rectangle2D, RoundRectangle2D
Exemple: Arc2D :xo, yo, largeur, hauteur, °départ, °arrivée, type (xo, yo)= coordonnées haut gauche du rectangle contenant l'arc °departet°arrivée: origines le centre du rectangle type : corde (CHORD), camembert (PIE), ouvert (OPEN)
     
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents