Advertisement
SquirrelInBox

CGGM1

Nov 3rd, 2015
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.04 KB | None | 0 0
  1. package mainPackage;
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5. import java.util.Vector;
  6.  
  7. public class Main extends JComponent {
  8.     static class Canvas extends JPanel{
  9.  
  10.         int ny = 40;// цена деления  по шкалам
  11.         double ky = 0.5; // коэф шкалы по у
  12.         double kx = 0.5; // коэф шкалы по x
  13.         int oyn = 250; // начальный отступ по y
  14.         int oxn = 350 ; //начальный отступ по х
  15.         int ly = 500; // длина оси у
  16.         int lx = 700; // длина оси х
  17.         // по умолчанию в начале на экран выводится график y=x
  18.         int sw = 1; // свич для переключения графика функции
  19.         double hx = 0.011;
  20.  
  21.         public static double evaluate(double x) {
  22.             return x*Math.sin(x);
  23.         }
  24.  
  25.         public void paintComponent(Graphics g){
  26.             super.paintComponents(g);
  27.  
  28.             double a = -10;
  29.             double b = 10;
  30.  
  31.             double l = a;
  32.             double interv = 0.1;
  33.  
  34.             //Vector<Double> x1 = new Vector<Double>();
  35.             Vector<Integer> x1 = new Vector<Integer>();
  36. //            Vector<Double> y1 = new Vector<Double>();
  37.             Vector<Integer> y1 = new Vector<Integer>();
  38.             //ny = (int)(lx /(Math.abs((int)b) * 2 * Math.abs((int)b)));
  39.             ny = (int) (lx/(2*Math.abs((int)b - (int)a)));
  40.             double nx = (ly /(2*Math.abs((int)b - (int)a)));
  41.             int maxC = 0;
  42.             //double tempY;
  43.             int tempY;
  44.             while(l <= b) {
  45.                 //x1.add(l);
  46.                 tempY = (int)(evaluate(l)*(-1)*nx + oyn);
  47.                 //tempY = evaluate(l)*(-1);
  48.                 x1.add((int)(l*ny + oxn));
  49.                 y1.add(tempY);
  50.                 maxC = Math.abs((int)(evaluate(l)));
  51.                 l += interv;
  52.             }
  53.  
  54.             //ny = (int)(lx/(2*maxC));
  55.             //int[]xr = new int[x1.size()];
  56.             //int[] yr = new int[y1.size()];
  57.  
  58.             double n_ny = (ly / ((int)(maxC)));
  59.             for (int i = 0; i < x1.size() - 1; i++) {
  60.                 int curr_y = (int)((y1.get(i) - oyn) / n_ny + oyn);
  61.                 y1.get(i) = curr_y;
  62.                 //xr[i] = x1.get(i).intValue();
  63.                 //yr[i] = y1.get(i).intValue();
  64.  
  65.                  g.drawLine(x1.get(i), y1.get(i),
  66.                          x1.get(i + 1), y1.get(i + 1));
  67.  
  68. /*                g.drawLine((int)(x1.get(i) * ny + oxn),
  69.                         (int)(y1.get(i)* ny + oyn),
  70.                         (int)(x1.get(i + 1)* ny + oxn),
  71.                         (int)(y1.get(i+1)* ny + oxn));*/
  72.             }
  73.  
  74.  
  75.             g.drawLine(oxn, (int)ly/2 - oyn,
  76.                          oxn, (int)ly/2 + oyn);
  77.             g.drawLine( oxn , -1 ,
  78.                         oxn - 3 , 10 );
  79.             g.drawLine(oxn, -1,
  80.                     oxn + 3, 10);
  81.  
  82.             g.drawLine( (int)(lx/2) - oxn, oyn,
  83.                     (int)(lx/2) + oxn, oyn);
  84.             g.drawLine( (int)(lx/2)+ oxn , oyn,
  85.                     (int)(lx/2) + oxn - 10 , oyn - 3 );
  86.             g.drawLine(lx, oyn,
  87.                     lx - 10, oyn + 3);
  88. //            System.out.println(ny);
  89.             for (int i = 0; i < lx; i += ny){
  90.                 g.drawLine(i, oyn - 1, i, oyn + 1);
  91.             }
  92. //
  93. //            ny = (int)(ly/(2*maxC*maxC));
  94. //            System.out.println(maxC);
  95. //
  96.             for (int i = 0; i < ly; i += nx) {
  97.                 g.drawLine(oxn - 1, i, oxn + 1, i);
  98.             }
  99.  
  100.             super.repaint();
  101.         }
  102.     }
  103.  
  104.     public static void main(String[] args) {
  105.         double a = 0;
  106.         double b = 5;
  107.         double intev = (b - a)/1000000;
  108.         double ind = 0;
  109.  
  110.         JFrame w=new JFrame("Function");
  111.         w.setLayout(new BorderLayout());
  112.  
  113.         w.setSize(715, 500);
  114.  
  115.         w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  116.  
  117.         Canvas canv=new Canvas();
  118.         w.add(canv);
  119.         w.setVisible(true);
  120.     }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement