From ca833fec2f557997b5f403dd15a4d871d41b0b8f Mon Sep 17 00:00:00 2001 From: Simoes Lukas Date: Thu, 16 Oct 2025 12:33:25 +0200 Subject: [PATCH] tp3 --- .../ControleurParallelogramme.class | Bin 0 -> 2293 bytes .../ControleurParallelogramme.java | 45 +++++++++++++++++ DEV3.2/TP03/01_Luminance/Fenetre.class | Bin 0 -> 1233 bytes DEV3.2/TP03/01_Luminance/Fenetre.java | 39 +++++++++++++++ .../TP03/01_Luminance/JParallelogramme.class | Bin 0 -> 1634 bytes .../TP03/01_Luminance/JParallelogramme.java | 47 ++++++++++++++++++ DEV3.2/TP03/01_Luminance/Main.class | Bin 0 -> 322 bytes DEV3.2/TP03/01_Luminance/Main.java | 6 +++ 8 files changed, 137 insertions(+) create mode 100644 DEV3.2/TP03/01_Luminance/ControleurParallelogramme.class create mode 100644 DEV3.2/TP03/01_Luminance/ControleurParallelogramme.java create mode 100644 DEV3.2/TP03/01_Luminance/Fenetre.class create mode 100644 DEV3.2/TP03/01_Luminance/Fenetre.java create mode 100644 DEV3.2/TP03/01_Luminance/JParallelogramme.class create mode 100644 DEV3.2/TP03/01_Luminance/JParallelogramme.java create mode 100644 DEV3.2/TP03/01_Luminance/Main.class create mode 100644 DEV3.2/TP03/01_Luminance/Main.java diff --git a/DEV3.2/TP03/01_Luminance/ControleurParallelogramme.class b/DEV3.2/TP03/01_Luminance/ControleurParallelogramme.class new file mode 100644 index 0000000000000000000000000000000000000000..7732050ca3fc58e3ca88a1df9c2c661b045d6b5e GIT binary patch literal 2293 zcmX^0Z`VEs1_pD6RxSo<24hYJDFzb|Vam>6#>K$GV9dp!&0r29EI?dKZU!p`Yi;KSg{#o))_&(074 zQXj~{5X8<9%+3(P&JfDTz?+j{YrC_Qj00t;u#Wn7!nzhco>oyQjm3kBZG$_l_8CtA)SXIgCUcLAq%84 z8${$VL@_c5IOXS;6qghw7Wk%?WaOt5^RqGJaxmoaFyu27urn0$FcdKq^DvZvj40({ zC}SvRXQ<#|sAPy>WDtcr%`rU0wIVsSpd>RtkB6a(A(N3o$hD{_wX{efrBtD~vbf~% ziriF221%TrXJilno0gN9m#*)hl$DxX!pI;476SPlDW*W_F*Pr>h><}On>08g85xAY za^S?}S&~|mSdw4F$iS=tieR4f)RGAQyx`=b)YLq%peG{(NH7v1$eW&85|CMungb3( zMg|cLPftxqf(1DTENTr4YOpOJXE8ExWWp^I(|~FKOT!!i$`~1m#eS(3C19(g7#Udd zz#I{ndZZu#Wth~$(!`u%Mg~!6!bO(W1jQiOr(n_G%HopLTt)`w{L&Ie22qH6GxPNW ziZb&`f=h~06LUc(rl*z!fzl~QdTNO~BoNrsQ%jt3N>jNQsu^k+8F+n4b2IZ2^O92) ztP~g-8N_oFvs0b(^O6%w!ZS-Uob&UFOA_-+z^;OY3&aH_MVWc&){G3oU{|5q&B(xB z0CGuA9-420A-X`3!&a1l{4lvItE1sDF$fpU17?>Ft82GieGcamt zZ)IT8(%H(uype%{fssLtfq_AYfrWvAftP`WfscWcfuDhoK@e)BIs+qv27@L8Bgh~| zSq2scb_NE9X}cL%BDXWJ`s!$JV_?(X#=yRffy0l{ibZP+1Jh0hPDTbRR!P>K3|x#1 zGZ|b!EN(`I0}MP?Y?5rc+ZcFfGU!OMS+Q(l;FDzA#=tKingOB(1UxblKny_v_KbvG z3_=VH+ZcqG|KB0Wa*RO|WV9s9P6iPshH$Md49wdYM7J@BEob2I-NYavB)N@2cq0QN z0|P@RLl1*E0~6R^b`1Os3=EQyJ74v=|r|G#S|bGbl5#u`@`qGib9ju&^`mfRPRZ z!*2%nUkpq?7^Ixo8N@jl7#Vb7LB${mju8e1MnousA_Zg~BZD4cWm*i34EltXX)`b~ s7!X#b!@$g72zHSXLjwZ?0~Z4$LmfjCLp_5egDV3A1IX=e42%r!0LRiV>i_@% literal 0 HcmV?d00001 diff --git a/DEV3.2/TP03/01_Luminance/ControleurParallelogramme.java b/DEV3.2/TP03/01_Luminance/ControleurParallelogramme.java new file mode 100644 index 0000000..e07efe9 --- /dev/null +++ b/DEV3.2/TP03/01_Luminance/ControleurParallelogramme.java @@ -0,0 +1,45 @@ +import java.awt.*; +import javax.swing.*; +import java.awt.event.MouseListener; +import java.awt.event.MouseEvent; +import java.util.List; +import java.util.ArrayList; + +public class ControleurParallelogramme implements MouseListener { + + private List listeCouleurs; + private Fenetre fenetre; + + public ControleurParallelogramme(List listeCouleurs, Fenetre fenetre) { + this.listeCouleurs = listeCouleurs; + this.fenetre = fenetre; + + } + + public void mouseClicked(MouseEvent e) { + try { + Robot robot = new Robot(); + Color couleurPixel = robot.getPixelColor(e.getXOnScreen(), e.getYOnScreen()); + Color aSupprimer = null; + for (Color couleur : this.listeCouleurs) { + if (couleur.equals(couleurPixel)) { + aSupprimer = couleur; + System.out.println("Luminance : " + (couleur.getRed()*21 + couleur.getGreen()*72 + couleur.getBlue()*7)); + } + } + if (aSupprimer != null) { + this.listeCouleurs.remove(aSupprimer); + this.fenetre.getP().repaint(); + } + } catch (AWTException exception) { + System.err.println("Erreur du système"); + } + + } + + + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) {} + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) {} +} \ No newline at end of file diff --git a/DEV3.2/TP03/01_Luminance/Fenetre.class b/DEV3.2/TP03/01_Luminance/Fenetre.class new file mode 100644 index 0000000000000000000000000000000000000000..8c9bb782fe9138f1bf54b0c3dc7b32d17b47efc1 GIT binary patch literal 1233 zcmX^0Z`VEs1_pD6U@it01~o1QNd|Qgp~23e38J;w8ML_=*cfy`99?z>JuU`L1~qmD zeJ%!WkaBJY11<(b1|xO`V=e}M1`}=uMFvxL1~V=OAqI0!21y1Bb_Po>22lnpkcc(N z6dQI1TSf-P0!9WQAFqJKqQsn>)SUeEqQu0x+MQ!H$uEB|WtyfRRB&Llc|9T*3LJ zMaijdnIPRfZmD^xB}J)vS&3zdJPa}nvOEm-3=TXDjtmZr3_>8$3jN~p%)E4cFSnw^ z+*BS0CkAIm24RqleqwovzFSUyxldwcerX9vyE6}i3xg|6zO*DWN8hoiD6!Hfv$%wj zK>(}^EE<%Umy(~$!{El?&d%V$!{Eu_#mK-1mIs;YoS&0l1TxT@hrx%zmytmLJ%~V( zemo3P4AP7YlFs>gB}Mr;sij3|0SQv&&%+SF5C}3Sh>?LE>S35=V8=jQ$6lOT5}a9; z%E-W~;pqtqbnfER5}*9!#FEVXJVpkI;?xqC)U?FXoD%1p{Nhyqg480Y6pIE}Jts&# zI4l?$q&0ltzJY{~Z(?3zdTNn1$Yl1s)QS?%yb^Hqdcqu&lbDyT@0(bX!N|azm{iQj z05aE;k%3La6XGD|#FP|922rTdVCDWvS*gh-)|yd_48l-xxSzmQ$zX{3K*InmEs&U! z;+tPuoC*qr)V$OpMg~Qw4p2m-mZj#E=%XkAYtuqfDS7NP+@H0Y?L6Jd{ zfrWvAfsug;6kiMs3``7+ptQ!o$RNkSz$nMS#=y?Nz_46vI|HMZAft{z$~FcjErApe z&8)??je%8bHv?NF%XS9#Z44Z{88{=iGjRFrX5fz8&cI{E%526a$|k@ypTSv@bsGck z4hB9!hW`b&$Q(Oljv0&gZU+8H8Cg-5?F<4t83dUa!duuFm;c|RwVOdGQhPgt@Ky#9 ztt|{9yBS0ywY9c0h;3sK*8&M_V~_~n2=;(H0|SE_gCGL~12+Q;0}lf)122Op10RDF z13!ZrgCK(*g9w8;gBXJ&gE)g9g9Jk~gCs*HgA_wGgBU|2gDgWYgFM4r21SNt3`z_N z3=9mC3{3wStQgqY86?>m6d4#8*crGP85n*sxG^v?C^0BQ!iqtbfsuicfq{V) listeCouleurs = new ArrayList(); + + int r, g, b; + Random aleatoire = new Random(); + + for (int i = 0; i != 10; i++) { + r = Math.abs(aleatoire.nextInt()) % 255; + g = Math.abs(aleatoire.nextInt()) % 255; + b = Math.abs(aleatoire.nextInt()) % 255; + listeCouleurs.add(new Color(r, g, b)); + } + + this.p = new JParallelogramme(listeCouleurs); + + p.addMouseListener(new ControleurParallelogramme(listeCouleurs, this)); + + this.add(p); + } + + public JParallelogramme getP() { + return this.p; + } +} \ No newline at end of file diff --git a/DEV3.2/TP03/01_Luminance/JParallelogramme.class b/DEV3.2/TP03/01_Luminance/JParallelogramme.class new file mode 100644 index 0000000000000000000000000000000000000000..beefbb113c7d6a6514f98c0c667f152d8a25e736 GIT binary patch literal 1634 zcmX^0Z`VEs1_pD6L@owV1|4<=T`mSD20bnY5e9uu1`!4WE(R3_LlD;pL>Pm(CLoq6 zh%f_j&AAyY7%aIN)EKNlgf%;Z4M^CQlR<#N4#cu&XK-L=aAaiQ&B-h-Np;RI%}FgS zDrRI5@X1OnOVlqd$;{FB$t*6hW@O+D&P>lsEGaEYWn@r7leU5I6U$5Vo%3_@i>&Re z85#J%W(MTvRHoo4!Vsf@`Vgc9&b_OSQ24{8#7e)qw^wbhiupot)kcK9@YZ)0-Fa)u< ziIIUTIKQ+gIn^x_P*m_R$S}AvG6;d#`XGn8Wag&k z6=&w>fn?lx7~B~=co@VO#CaGz8N7HHycv9W7U+um>8Hq$%uiGK?2N^WME>DVi1S(r5TtR7#U<3 zWEq$k=;-Xm>3usq_nm(Fly~)V2TuEln}7l&cM8lfkjJuD+B9B1_lO326+Ys z1|bF(1_lNm1{MZh1`!5+21y11s4WT%j0}nlN(_u3GZ{4*SQ$7N7#P-RZ)0Hd)!N3u zK9fOGM{64c$2JB|9cE^&Z46vm+ZedFG4QbO;fiDykn@jZ5is(PWEBwck7Q%^_X7(v z`$w`c`$w{Zl=?@qfhj8%tt||!I~jNx8LU_(S$8t listeCouleurs; + private List listePolygones; + + public JParallelogramme(List listeCouleurs) { + this.setPreferredSize(new Dimension(280, 60)); + + this.listeCouleurs = listeCouleurs; + } + + @Override + public void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + + if (this.isOpaque()) { + secondPinceau.setColor(this.getBackground()); + secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + + int[] x = {30, 50, 20, 0}; + int[] y = {0, 0, this.getHeight(), this.getHeight()}; + + + for (Color couleur : this.listeCouleurs) { + secondPinceau.setColor(couleur); + secondPinceau.fillPolygon(x, y, 4); + secondPinceau.setColor(Color.DARK_GRAY); + secondPinceau.drawPolygon(x, y, 4); + + for (int j = 0; j != 4; j++) { + x[j] += 25; + } + } + + } + + public List getListeCouleurs() { + return this.listeCouleurs; + } +} \ No newline at end of file diff --git a/DEV3.2/TP03/01_Luminance/Main.class b/DEV3.2/TP03/01_Luminance/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..04767172ca9acd6808f50405523f567f17342f41 GIT binary patch literal 322 zcmX^0Z`VEs1_pBmF)ju+27Y!10WJn627VAB$j%_d&LGUlz-E(~msw)R$iS?j8OF%K z;+&t7%E-X)lbM(5SDKrYS`?C)l#|NHz>=Gona9W=rV;Ivl~|UjpOcuEt{+@dl$n=q z4bsRJoL^d$oa&YdQq1X_n3<;sQpdx<&cMOQ!0wisms(Pk%EKVSAj-(V0+MHB5CExw znB3vA#xXE5a56A3$TBc8FfuSO zuxf2*VBE;Sz`)4B#lXP81{MS<;b!20D%E3PVqjumVBp)$z!bTif!Rl!Wg7zvLJuDU bGXnzyGXn<$3j;3$D+40~F9QPu69XRrAlEgc literal 0 HcmV?d00001 diff --git a/DEV3.2/TP03/01_Luminance/Main.java b/DEV3.2/TP03/01_Luminance/Main.java new file mode 100644 index 0000000..2768c3d --- /dev/null +++ b/DEV3.2/TP03/01_Luminance/Main.java @@ -0,0 +1,6 @@ +public class Main { + public static void main(String[] args) { + Fenetre fenetre = new Fenetre(); + fenetre.setVisible(true); + } +} \ No newline at end of file