From 9f040197e23bea10574bf9469cfdf9161bb1df11 Mon Sep 17 00:00:00 2001 From: niklasBr <104077966+bretzNiklas@users.noreply.github.com> Date: Sat, 7 Jan 2023 22:20:19 +0100 Subject: [PATCH] Gui (schlecht) --- Aufgabe4/Plotter.java | 93 +++++++++++++++++++++++++++++ Aufgabe4/SwingPaintDemo3.java | 2 + Aufgabe4/ValuesToDraw.java | 28 +++++++++ Aufgabe4/main.java | 20 +++++++ out/production/inf3_git/main.class | Bin 3885 -> 4310 bytes 5 files changed, 143 insertions(+) create mode 100644 Aufgabe4/Plotter.java create mode 100644 Aufgabe4/ValuesToDraw.java diff --git a/Aufgabe4/Plotter.java b/Aufgabe4/Plotter.java new file mode 100644 index 0000000..f9bedbd --- /dev/null +++ b/Aufgabe4/Plotter.java @@ -0,0 +1,93 @@ +import javax.swing.SwingUtilities; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.BorderFactory; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.event.MouseEvent; +import java.awt.event.MouseAdapter; +import java.awt.geom.Line2D; +import java.util.Arrays; + +public class Plotter { + + + public static void plot(ValuesToDraw valuesToDraw) { + + + SwingUtilities.invokeLater(new Runnable() { + + public void run() { + createAndShowGUI(valuesToDraw); + } + + }); + } + + + + public static void createAndShowGUI(ValuesToDraw valuesToDraw) { + + JFrame f = new JFrame("Function Plotter"); + f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + f.add(new PlotterPanel(valuesToDraw)); + f.pack(); + f.setVisible(true); + + } +} + +class PlotterPanel extends JPanel { + + final int ZERO_POINT_X = 400; + final int ZERO_POINT_Y = 300; + + ValuesToDraw valuesToDraw; + + + PlotterPanel(ValuesToDraw valuesToDraw) { + this.valuesToDraw = valuesToDraw; + } + + + public Dimension getPreferredSize() { + return new Dimension(800,600); + } + + protected void paintComponent(Graphics g) { + super.paintComponent(g); + + + g.drawLine(400, 0, 400, 600); + g.drawLine(0, 300, 800, 300); + + + int[] xCords = valuesToDraw.getXCords(); + int[] yCords = valuesToDraw.getYCords(); + + System.out.println(Arrays.toString(xCords)); + + int[] xCordsFromZeroPoint = new int[41]; + int[] yCordsFromZeroPoint = new int[41]; + + + for(int i = 0; i < 41; i++) { + xCordsFromZeroPoint[i] = xCords[i] + ZERO_POINT_X; + } + + for(int i = 0; i < 41; i++) { + yCordsFromZeroPoint[i] = yCords[i] + ZERO_POINT_Y; + } + + + + g.drawPolyline(xCordsFromZeroPoint, yCordsFromZeroPoint, 21); + + + } + + +} + + diff --git a/Aufgabe4/SwingPaintDemo3.java b/Aufgabe4/SwingPaintDemo3.java index 2fdf3f3..6df66ef 100644 --- a/Aufgabe4/SwingPaintDemo3.java +++ b/Aufgabe4/SwingPaintDemo3.java @@ -109,4 +109,6 @@ class MyPanel extends JPanel { g.setColor(Color.BLACK); g.drawRect(squareX,squareY,squareW,squareH); } + + } diff --git a/Aufgabe4/ValuesToDraw.java b/Aufgabe4/ValuesToDraw.java new file mode 100644 index 0000000..ace35f7 --- /dev/null +++ b/Aufgabe4/ValuesToDraw.java @@ -0,0 +1,28 @@ +import java.util.ArrayList; + +public class ValuesToDraw { + + private ArrayList<int[]> xCordArrays; + + int i = 0; + + ValuesToDraw(ArrayList<int[]> xCordArrays) { + this.xCordArrays = xCordArrays; + + } + + public int[] getXCords() { + + return xCordArrays.get(i++); + + } + + public int[] getYCords () { + + return new int[]{-20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, + -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}; + + } + +} diff --git a/Aufgabe4/main.java b/Aufgabe4/main.java index 4aac734..b56a7ca 100644 --- a/Aufgabe4/main.java +++ b/Aufgabe4/main.java @@ -8,6 +8,11 @@ public class main { public static void main(String[] args) throws IOException { + + + + + // values above integer space will produce errors ArrayList<String> stringsFromFile = new ArrayList<>(); @@ -57,17 +62,32 @@ public class main { Evaluator e = new Evaluator(); + ArrayList<int[]> arraysOfXValues = new ArrayList<>(); + for(AstExpression astExpression : rootAstExpressions) { + int[] xCords = new int[41]; + + int j = 0; + for(int i = -20; i < 21; i++) { e.setCounter(i); + + xCords[j] = (int) e.visit(astExpression); + System.out.println(e.visit(astExpression)); + j++; } + arraysOfXValues.add(xCords); + System.out.println("------------"); } + ValuesToDraw valuesToDraw = new ValuesToDraw(arraysOfXValues); + + Plotter.plot(valuesToDraw); //printAst(result); diff --git a/out/production/inf3_git/main.class b/out/production/inf3_git/main.class index 30c986cdc3065702569085f00fe7a7ea4446b4c2..3623c2b8f2866a0612ae6e474e1cc569363d8d5a 100644 GIT binary patch delta 1842 zcmaJ>X;@TM7=914+?hLf04dbTL`;#zf-pD0#{wmuu~B@KaDVECgAEQ#GlPPuW2KZ@ zw%o$h%Ay6S%+P7TCAA_l&B`)u-&eJ=tSl?&y)!&!fBJFHIp6uV_xry0p3O-|2Fm-p zcI*a_Ck(CfXoD=niKz-oaJ9C|(BE#wG)$K;L%~eU(uxh2X)T7LpoDS(rBwCSy8R{9 z<9+Hv8E#y!zyyy#-!xZ+x<JjU4S2j+`97ao@ACKqdFiDx=EEzYQb84}1*FN|>OjEl z6EN2BB+x6(b#6?0SmDAA3ViSj*j0a^u&&1E_G@Ni-@&y4B2C5|EL2d31OZcx&r=nU zu?ROxSgc?PmTCpY^tfd-OxFY5tl$<b*A^Ksur=UT3AZU&iB;N0W2)_T+#z9&f;(}S zcF1_K?H*_n?p1If8a0b)XrKG_9P0=)&8dTGzy<{m;6ZJIDcQCW4@-DNmz%U&Q%ZIN z9#il*o)D0Uc)YvJQ>l8{E?53pDbI>cXp!)wf~Sb!fGH()6E-V&2CD=TbT7|5PawaX z%^6o+S*a#)K+h^@#a6A4d6YS%;5me~5_7Vx9or@BP_PqzEodHSX~**lc4LpW$(%gs z1-vNXC0%Y3urYmcjoYUNs(n_p<7EY%bUJR{8gH%}SM8h27RStTvRM_{25ECvoT^XG zUtB&tIull~;GBUA#QtYkTA^jXaA;dBi5at;WAiw!sR6ZY{zSE=M7_@ImT*+UVYZ~O zuFPE%@Kjg%CH$maVl9mQO~z^bF5wToz%$x1Ylq`60fWdCOzEtuVh_Bk-|wbFw>C#k zHwh||v}@%gtwmO5FG38v0~kOGz|8d(N?F_mcT+|iL@N(5*vC~@>+7prm8b#s;{YWq z7UMNq(b=$;f#Lu$QR`*v2=0V5qYc(vt3wJSJ6Cqd+c8359aQ}^T3|0+xwiQ9U2?8s z7-^3`F)}tWHa@WlnGQ>0Y(p5697>|yVR6{Pn6kQfD@uFLVa#4`7t3QsbN3;K)uDuu zG>zH>HH@<6?hQNPp5d^z1u;+0*^Y`<!n0#IMj@qVPlYj3RwHkK1XyrBZ0Jp`1O3qt zgSlRcf%HkC*C6EZW-QWCgrS&>On9lS$1s*Y0xM{-2Dv0;9@#O5jJg~h$Vc!X#^D$W zaguJQ_&Ri9f-u7+&ch^;jAAhePLYl&A{!+l2c=>Rri&uX6fRs7>2sLCa@f&>c%5*) z1osA-ATg00Z{iR;f0_{9LL*|C!-=<Xn6o*BEAbBR>_H|k)?WZt#*yF%j<QyZD8##T zCa*;S-eW-aMqGjS@d24oM1UXSBc_{-zwt5cOssDoKEbCP{u=DTXS|bG-%7&zoP9fp zW%xn|L+ECFiLW5zYvvh_98(X{Z-_LS_FJZn2L6tLqv4J*Tr|jW+MS?lqqfvOEZBv< z5}Xnw2_w645#l6#ACbmLP$XnV&IOUR$4Y`r!Vly)&LF#+&6EG%g{gkzXC$bTOwDJH zC(>A?vJ*j_@1cwkYC6$RCs!bh1-jUddR+`sY^8itC%pO=!ir8fsOb?xSRKOMVXSS& zRne>Uo#=g5zdnSA7@--NXRjU&p*iZM+XqA7#naJ?9oPbp+<L-oA+$v?M1@@;?2SUB zrh^*&r!_>_U4VF=%h=$#{4L$&cR7+U4+BtvArTH&kt{VFiH}yb97sJM^2Pi^mtay0 z+p&$q{r8U#MaYE6j3k%_47o5v&-62M#E^EsaJR67zw-N&>;ah|(8cE@29AFKDF?ZA delta 1423 zcmYk5X>b%(6otReWTtz%I}lJPri6iLSP~Ev*$fsU6k>{K5HKR5Rby(@z?g(2AP73B z;D!dZRYb)FmxwWHa2$5m5ES<f#RZ9qqN4uMA6g=wo~9^&^n3Tbch9}2@4atNQCr;J z{qNS7f${v_ZjTEUM48DflM7s`xX@b^I?XEQB9}Q_>{W#Nc`c!GJ4ywYyIjGQUUhzP z@jL@#h|MLWT&|+0LAbu5rnbqZj(U>?E)6t#t@$OR7Rs^2CtvNdm?Z{QqOqweky@BE zuq)0wYLAbylw~H@x?D%vv%-U&>$$<?Mwb<=^vc4+oSV7D<W`s4SmiAU51n*}pSal| ze@J;rl~2FZ<u2|vaB>M6Y7&>Fl%pWX5kRH6hkH%#^Ig|?`@#dQrL1*%fCoJ%5_i_| zu*oAXk4nR+$Utiy>s=lfNJL_hCtaSR#akX38`<FU46WXd$N;B}=S-e=c|nCa7%8&a z*y!>i8Lx*q;G`^@Og8&?jdbZ}E9;XDiKe=SC~a(Y*(TB~bEDVCYW4oKcEt;3HYKX( zpPQ(k6^OT|EUr%0H`UbDHky3x{S%$i?OU7g_}=7zujU7@((Z^IGzb~P4Fk8lwl>)? zIhAN^Op5S}H_Rys^Q%GJ8{x#g#g03-jy&}pLa1d#v~Cv~q216PF5QIDE+dZ}TK#K( z^+&}G9C(FSg`zCrHF=4gw?lzkFpl%~J00nmndQ{7Xe_#g(FSXo=v(6qu`0^!!b4-6 zUQS`J^~7UVFXyH#=WS$0%!=7rW@nkZ!ZBKobm^#PB1?74k?rluQNSq1GVtg=nEaf! zMf8)70xY`Y&_mYoI_aIJm_D3BUy%lg7Uy*OGeM_Q8N_r-NHLTpoXj$Ltz;z4jHZ<_ zY?k*n%IM$>y2Lodnf$>-m34w)GTG?P6r(58a>Zz-o8pFfoi`*WrQ{u~!Bm`d0Xykb zeGYIUyI3V{T@3f14Ypq+-sCOmwhV{e^3zlp7H^BJ|1=`J!@FwDRPFEazCuq|f)C^u zmegiG<Rf*XS@y>|GnKSb5<XE4K2^+8`L_;}mYwX8fFQ+ZN)ZJ4TtNcrUQxdg;T&&o zw~^_?bT=tC8FQGJNrmw@MSn@_mvYD#`74FeTb89>8-sI$1DVnc$xcr2TUC=~z7IE3 z>%%6&cHu>xr2H+zHJ!wCa};D)o<W_zy@hEyO3Pt&C%un3tj^#mL<_@@9o?Vdp@0^| z5PmGcTX_OBDt^MJGdvq;2ta#=mjY?J*`gbNutT}wnM9%NO4VU{TJv*0y_um=nW<5! z(wNNFXw2bk=Bjj;QcXgIOR`!$TuTibn5PGw`roU_<oZjls3zh5gZh^Gnf5719^bHE VyQKnl>HCqNglt(qYr=jb_8$nHP;CGJ -- GitLab