martaczaska

Licz

Dec 14th, 2020
766
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.44 KB | None | 0 0
  1. package eti.radio.pr_inz;
  2.  
  3. import javax.imageio.ImageIO;
  4. import javax.swing.*;
  5. import java.awt.event.MouseEvent;
  6. import java.awt.event.MouseListener;
  7. import java.awt.geom.*;
  8. import java.lang.Math;
  9. import java.awt.*;
  10. import java.awt.event.ActionEvent;
  11. import java.awt.event.ActionListener;
  12. import java.awt.image.BufferedImage;
  13. import java.io.File;
  14. import java.io.IOException;
  15.  
  16. public class Licz extends JPanel implements ActionListener, MouseListener {
  17.  
  18.     private JButton wykresy;
  19.     private JButton wyjscie;
  20.     private JLabel[] l_BS = new JLabel[19];
  21.     private JLabel tytul6, l_UT;
  22.     public BufferedImage tlo_dane;
  23.     public double BS0_x = 470, BS0_y = 400;
  24.     String str_UT = "";
  25.     int nw = 0;
  26.  
  27.     Wykresy rysuj_wykresy;
  28.  
  29.     public Licz(Wykresy rysuj_wykresy){
  30.         setLayout(null);
  31.         this.rysuj_wykresy = rysuj_wykresy;
  32.  
  33.         File zdj_menu = new File("zdjecia/strona_logo.png");
  34.         try{ tlo_dane = ImageIO.read(zdj_menu); }
  35.         catch(IOException e){ System.err.println("Blad odczytu obrazków"); }
  36.  
  37.         wyjscie = new JButton("Wyjście");
  38.         wyjscie.addActionListener(this);
  39.         wyjscie.setBounds(100, 620, 200, 60);
  40.         wyjscie.setFont(new Font("Sitka Text", Font.BOLD, 25));
  41.         wyjscie.setBackground(Color.white);
  42.  
  43.         wykresy = new JButton("Wykresy");
  44.         wykresy.addActionListener(this);
  45.         wykresy.setBounds(724, 620, 200, 60);
  46.         wykresy.setFont(new Font("Sitka Text", Font.BOLD, 25));
  47.         wykresy.setBackground(Color.white);
  48.  
  49.         System.out.println("Wybrany model: " + rysuj_wykresy.s);
  50.         System.out.println("Wybrany scenariusz O2I: " + nw);
  51.  
  52.         tytul6 = new JLabel( "Wskaż położenie terminala użytkownika w komórce zerowej", JLabel.CENTER);
  53.         tytul6.setSize(1000, 100);
  54.         tytul6.setLocation(5, 50);
  55.         tytul6.setFont(new Font("Sitka Text", Font.BOLD, 23));
  56.  
  57.         for(int i=0; i < 19; i++){
  58.             l_BS[i] = new JLabel( "BS" + i, JLabel.CENTER);
  59.             l_BS[i].setFont(new Font("Sitka Text", Font.BOLD, 23));
  60.             //add(l_BS[i]);
  61.         }
  62.         add(l_BS[0]);
  63.  
  64.  
  65.         l_UT = new JLabel( "UT", JLabel.CENTER);
  66.         l_UT.setFont(new Font("Sitka Text", Font.BOLD,23));
  67.         l_UT.setForeground(Color.RED);
  68.  
  69.         add(tytul6); add(l_UT); add(wyjscie); add(wykresy);
  70.         addMouseListener(this);
  71.     }
  72.  
  73.     public void actionPerformed(ActionEvent e){
  74.         Object source = e.getSource();
  75.         if(source == wykresy){
  76.             CardLayout CL =(CardLayout)(Main.noweOkno.karty.getLayout());
  77.             CL.show(Main.noweOkno.karty, "rysuj_wykresy");
  78.             double roznica_x = 0, roznica_y = 0;
  79.  
  80.             //ze względu na powiększony promień koła wyznaczającego powierzchnię komórki dla ułatwienia zaznacznia kliknięciem położenia UT,
  81.             //należy zmniejszyć odległość UT od BS0 aby była odpowiednia do proporcji względem wymiarów komórki
  82.             if((rysuj_wykresy.UT_x >= rysuj_wykresy.x[0]) &&(rysuj_wykresy.UT_y <= rysuj_wykresy.y[0])){ // I ćwiartka
  83.                 roznica_x = Math.abs(rysuj_wykresy.x[0] - rysuj_wykresy.UT_x);
  84.                 roznica_y = Math.abs(rysuj_wykresy.y[0] - rysuj_wykresy.UT_y);
  85.                 rysuj_wykresy.x_UT = rysuj_wykresy.x[0] + roznica_x/2;
  86.                 rysuj_wykresy.y_UT = rysuj_wykresy.y[0] - roznica_y/2;
  87.             }else if((rysuj_wykresy.UT_x < rysuj_wykresy.x[0]) &&(rysuj_wykresy.UT_y < rysuj_wykresy.y[0])){ // II ćwiartka
  88.                 roznica_x = Math.abs(rysuj_wykresy.x[0] - rysuj_wykresy.UT_x);
  89.                 roznica_y = Math.abs(rysuj_wykresy.y[0] - rysuj_wykresy.UT_y);
  90.                 rysuj_wykresy.x_UT = rysuj_wykresy.x[0] - roznica_x/2;
  91.                 rysuj_wykresy.y_UT = rysuj_wykresy.y[0] - roznica_y/2;
  92.             }else if((rysuj_wykresy.UT_x <= rysuj_wykresy.x[0]) &&(rysuj_wykresy.UT_y >= rysuj_wykresy.y[0])){ // III ćwiartka
  93.                 roznica_x = Math.abs(rysuj_wykresy.x[0] - rysuj_wykresy.UT_x);
  94.                 roznica_y = Math.abs(rysuj_wykresy.y[0] - rysuj_wykresy.UT_y);
  95.                 rysuj_wykresy.x_UT = rysuj_wykresy.x[0] - roznica_x/2;
  96.                 rysuj_wykresy.y_UT = rysuj_wykresy.y[0] + roznica_y/2;
  97.             }else if((rysuj_wykresy.UT_x > rysuj_wykresy.x[0]) &&(rysuj_wykresy.UT_y > rysuj_wykresy.y[0])){ // IV ćwiartka
  98.                 roznica_x = Math.abs(rysuj_wykresy.x[0] - rysuj_wykresy.UT_x);
  99.                 roznica_y = Math.abs(rysuj_wykresy.y[0] - rysuj_wykresy.UT_y);
  100.                 rysuj_wykresy.x_UT = rysuj_wykresy.x[0] + roznica_x/2;
  101.                 rysuj_wykresy.y_UT = rysuj_wykresy.y[0] + roznica_y/2;
  102.             }
  103.  
  104.             rysuj_wykresy.UT_odl = Math.sqrt(Math.pow((rysuj_wykresy.x_UT - rysuj_wykresy.x[0]), 2) + Math.pow((rysuj_wykresy.y_UT - rysuj_wykresy.y[0]), 2));
  105.  
  106.             rysuj_wykresy.pathLossDlaModelu(rysuj_wykresy.x_UT, rysuj_wykresy.y_UT, rysuj_wykresy.f_c, rysuj_wykresy.s);
  107.             rysuj_wykresy.licz_SINR();
  108.             rysuj_wykresy.daneNLOS();
  109.             rysuj_wykresy.daneLOS();
  110.             rysuj_wykresy.daneNLOS_zaniki();
  111.             rysuj_wykresy.daneLOS_zaniki();
  112.             rysuj_wykresy.Rysuj_wykres();
  113.  
  114.         }
  115.         else if(source == wyjscie){
  116.             System.exit(0);
  117.         }
  118.     }
  119.  
  120.     public void mouseClicked(MouseEvent e) {}
  121.  
  122.     public void mousePressed(MouseEvent e) {
  123.         rysuj_wykresy.UT_x = e.getX();
  124.         rysuj_wykresy.UT_y = e.getY();
  125.         str_UT = "UT";
  126.         System.out.println("Nacisnięty punkt: x = " + rysuj_wykresy.UT_x + " y = " + rysuj_wykresy.UT_y);
  127.         repaint();
  128.     }
  129.  
  130.     public void mouseReleased(MouseEvent e) {}
  131.     public void mouseEntered(MouseEvent e) {}
  132.     public void mouseExited(MouseEvent e) {}
  133.  
  134.     public void paintComponent(Graphics graphic) {
  135.         Graphics2D g2d = (Graphics2D) graphic;
  136.         Graphics2D g2d_BS0 = (Graphics2D) graphic;
  137.         g2d.drawImage(tlo_dane, 0, 0, this);
  138.  
  139.         Ellipse2D circle0 = new Ellipse2D.Double(274, 204, 196*2, 196*2);
  140.         Rectangle2D BS0 = new Rectangle2D.Double((int)circle0.getCenterX(), (int)circle0.getCenterY(), 5, 5);
  141.         l_BS[0].setBounds((int)BS0.getX()-15, (int)BS0.getY()-15, 100, 50);
  142.         g2d_BS0.setPaint(Color.RED);
  143.  
  144.         Ellipse2D UT = new Ellipse2D.Double(rysuj_wykresy.UT_x, rysuj_wykresy.UT_y, 5, 5);
  145.         l_UT.setBounds((int)UT.getX()-15, (int)UT.getY()-15, 80, 50);
  146.  
  147.         g2d_BS0.draw(BS0); g2d.draw(circle0); g2d.draw(UT);
  148.     }
  149.  
  150. }
Advertisement
Add Comment
Please, Sign In to add comment