SHARE
TWEET

Ekz

swagbitch Jun 30th, 2020 (edited) 1,081 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4.  
  5. public class Main {
  6.     public static void main(String[] args) {
  7.         new Form();
  8.         //new Paint(80,240,80);
  9.     }
  10. }
  11.  
  12. class Form extends JFrame {
  13.     JLabel[] jl = new JLabel[2];
  14.     JTextField[] jtf = new JTextField[2];
  15.     JButton[] jb = new JButton[1];
  16.     GridBagLayout gbl = new GridBagLayout();
  17.     GridBagConstraints c = new GridBagConstraints();
  18.     JPanel p = new JPanel(gbl);
  19.     JFrame jf = new JFrame();
  20.  
  21.     Form() {
  22.         jf.setTitle("Экзамен Фаткуллин");
  23.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24.         jf.setBounds(300, 300, 300, 120); // 300 120
  25.         jf.setResizable(false);
  26.  
  27.         jf.add(p);
  28.         jf.pack();
  29.  
  30.         jf.setVisible(true);
  31.         jb[0].addActionListener(this::listener);
  32.     }
  33.  
  34.     private void listener(ActionEvent e) {
  35.         if (e.getSource() == jb[0]) {
  36.             p.add(new Panel(), c);
  37.             p.repaint();
  38.             p.revalidate();
  39.             jf.pack();
  40.         }
  41.     }
  42. }
  43.  
  44.  
  45. class Panel extends JPanel {
  46.     Panel() {
  47.  
  48.     }
  49.  
  50.     public void paint(Graphics g) {
  51.     }
  52.  
  53.     public Dimension getPreferredSize() {
  54.         return new Dimension(300, 200);
  55.     }
  56.  
  57. }
  58.  
  59.  
  60.         /*Треугольник 5 (по трем сторонам и радиусу вписанной окружности)*/
  61.         p = (a + b + c) / 2; // полупидар
  62.         S = Math.sqrt(p * (p - a) * (p - b) * (p - c)); // Героин
  63.         double r1 = S / p; // нужный радиус
  64.  
  65.         if(r != (int) r1) { // чекаем введенный радиус
  66.             JOptionPane.showMessageDialog(null,"В таккой треугольник можно вписать в окружность радиусом: "+(int)r1, "Ошибка", JOptionPane.ERROR_MESSAGE);
  67.         }else {
  68.             double S_1 = p * r1; // по трем сторонам и радиусу вписанной окружности
  69.             h = S_1 / (0.5 * c); // высота
  70.             g.drawLine(0, 0, (int) c, 0); // top side
  71.             g.drawLine(0, 0, (int) Math.sqrt(Math.pow(a, 2) - Math.pow(h, 2)), (int) h); // left side
  72.             g.drawLine((int) c, 0, (int) c - (int) Math.sqrt(Math.pow(b, 2) - Math.pow(h, 2)), (int) h); //right side
  73.         }
  74.  
  75.  
  76.  
  77.         /*Треугольник 4 (по трем сторонам и радиусу описанной окружности)*/
  78.         p = (a + b + c) / 2; // полупидар
  79.         S = Math.sqrt(p * (p - a) * (p - b) * (p - c)); // Героин
  80.         double r1 = (a * b * c) / (S * 4); // радиус
  81.  
  82.         if(r != (int) r1) { // чекаем введенный радиус
  83.             JOptionPane.showMessageDialog(null,"Такой треугольник можно вписать в окружность радиусом: "+(int)r1, "Ошибка", JOptionPane.ERROR_MESSAGE);
  84.         }else {
  85.             double S_1 = (a * b * c) / (4 * r1); // Площадь по 3м сторонам и радиусу
  86.             h = S_1 / (0.5 * c); // высота
  87.             g.drawLine(0, 0, (int) c, 0); // top side
  88.             g.drawLine(0, 0, (int) Math.sqrt(Math.pow(a, 2) - Math.pow(h, 2)), (int) h); // left side
  89.             g.drawLine((int) c, 0, (int) c - (int) Math.sqrt(Math.pow(b, 2) - Math.pow(h, 2)), (int) h); //right side
  90.         }
  91.  
  92.  
  93.  
  94.  
  95.         /*Треугольник 3 (по двум сторонам и углу между ними)*/
  96.         S = 0.5 * a * b * Math.sin(Math.toRadians(ygol));
  97.         h = S / (0.5 * a);
  98.         c = Math.sqrt(Math.pow(a, 2) - Math.pow(h, 2)) + Math.sqrt(Math.pow(b, 2) - Math.pow(h, 2));
  99.         if(c<a+b) {
  100.             System.out.println("c: " + c);
  101.             g.drawLine(0, 0, (int) c, 0); // top side
  102.             g.drawLine(0, 0, (int) Math.sqrt(Math.pow(a, 2) - Math.pow(h, 2)), (int) h); // left side
  103.             g.drawLine((int) c, 0, (int) c - (int) Math.sqrt(Math.pow(b, 2) - Math.pow(h, 2)), (int) h); //right side
  104.         }
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.         /*Параллелограмм 7 (по длине стороны и высоте)*/
  115.         S = a * h; // Площадь
  116.         g.drawLine(0, (int) h, 20, 0);//left side
  117.         g.drawLine(20, 0, 20 + (int) a, 0);//top side
  118.         g.drawLine(20 + (int) a, 0, (int) a, (int) h);//right side
  119.         g.drawLine(0, (int) h, (int) a, (int) h);//bottom side
  120.  
  121.         /*Параллелограмм 8 (по двум сторонам углу между ними)*/
  122.         S = Math.abs(a * b * Math.sin(Math.toRadians(ygol)));
  123.         double h_p = (S / b); // Высота
  124.         double AE = Math.sqrt(Math.pow(a, 2) - Math.pow(h_p, 2));
  125.  
  126.         g.drawLine(0, (int) h_p, (int) AE, 0); //left side
  127.         g.drawLine((int) AE, 0, (int) AE + (int) b, 0); // top side
  128.         g.drawLine((int) AE + (int) b, 0,(int) b, (int) h_p); // right side
  129.         g.drawLine(0,(int) h_p,(int) b,(int) h_p); // bottom side      
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.         /*Параллелограмм 9 (по двум диагоналям и углу между ними)*/
  153.         double S, ygol;
  154.         int a, b, d1, d2;
  155.         S = Math.abs(0.5 * d1 * d2 * Math.sin(Math.toRadians(ygol)));
  156.  
  157.         a = (int) Math.sqrt(Math.pow(d1, 2) + Math.pow(d2, 2) + 2 * d1 * d2 * Math.cos(Math.toRadians(ygol))) / 2; //Left side
  158.         b = (int) Math.sqrt(Math.pow(d1, 2) + Math.pow(d2, 2) - 2 * d1 * d2 * Math.cos(Math.toRadians(ygol))) / 2; // Top side
  159.  
  160.         int h_p = (int) (S / b); // Высота
  161.         int AE = (int) Math.sqrt(Math.pow(a, 2) - Math.pow(h_p, 2));
  162.  
  163.         g.drawLine(0, h_p, AE, 0); //left side
  164.         g.drawLine(AE, 0, AE + b, 0); // top side
  165.         g.drawLine(AE + b, 0, b, h_p); // right side
  166.         g.drawLine(0, h_p, b, h_p); // bottom side
  167.  
  168.         /*Треугольник (а, h)*/
  169.         g.drawLine(0, 0, 0 + a, 0);//top side
  170.         g.drawLine(0, 0, 0, 0 + h);//left side
  171.         g.drawLine(0 + a, 0, 0, 0 + h);
  172.        
  173.         /*Треугольник по трем сторонам (a, b, c)*/
  174.         int p = (a + b + c) / 2;
  175.         double S = Math.sqrt(p * (p - a) * (p - b) * (p - c));
  176.         double h = S / (0.5 * c);
  177.  
  178.         int h_t = (int) Math.sqrt(Math.pow(a, 2) - Math.pow(h, 2));
  179.         g.drawLine(h_t, 0, 0, (int) h); // left side
  180.         g.drawLine(0, (int) h, c, (int) h); // bottom side
  181.         g.drawLine(h_t, 0, c, (int) h); // right side
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top