Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package mainPackage;
- import javax.swing.*;
- import java.awt.*;
- import java.util.Vector;
- public class Main extends JComponent {
- static class Canvas extends JPanel{
- int ny = 40;// цена деления по шкалам
- double ky = 0.5; // коэф шкалы по у
- double kx = 0.5; // коэф шкалы по x
- int oyn = 250; // начальный отступ по y
- int oxn = 350 ; //начальный отступ по х
- int ly = 500; // длина оси у
- int lx = 700; // длина оси х
- // по умолчанию в начале на экран выводится график y=x
- int sw = 1; // свич для переключения графика функции
- double hx = 0.011;
- public static double evaluate(double x) {
- return x*Math.sin(x);
- }
- public void paintComponent(Graphics g){
- super.paintComponents(g);
- double a = -10;
- double b = 10;
- double l = a;
- double interv = 0.1;
- //Vector<Double> x1 = new Vector<Double>();
- Vector<Integer> x1 = new Vector<Integer>();
- // Vector<Double> y1 = new Vector<Double>();
- Vector<Integer> y1 = new Vector<Integer>();
- //ny = (int)(lx /(Math.abs((int)b) * 2 * Math.abs((int)b)));
- ny = (int) (lx/(2*Math.abs((int)b - (int)a)));
- double nx = (ly /(2*Math.abs((int)b - (int)a)));
- int maxC = 0;
- //double tempY;
- int tempY;
- while(l <= b) {
- //x1.add(l);
- tempY = (int)(evaluate(l)*(-1)*nx + oyn);
- //tempY = evaluate(l)*(-1);
- x1.add((int)(l*ny + oxn));
- y1.add(tempY);
- maxC = Math.abs((int)(evaluate(l)));
- l += interv;
- }
- //ny = (int)(lx/(2*maxC));
- //int[]xr = new int[x1.size()];
- //int[] yr = new int[y1.size()];
- double n_ny = (ly / ((int)(maxC)));
- for (int i = 0; i < x1.size() - 1; i++) {
- int curr_y = (int)((y1.get(i) - oyn) / n_ny + oyn);
- y1.get(i) = curr_y;
- //xr[i] = x1.get(i).intValue();
- //yr[i] = y1.get(i).intValue();
- g.drawLine(x1.get(i), y1.get(i),
- x1.get(i + 1), y1.get(i + 1));
- /* g.drawLine((int)(x1.get(i) * ny + oxn),
- (int)(y1.get(i)* ny + oyn),
- (int)(x1.get(i + 1)* ny + oxn),
- (int)(y1.get(i+1)* ny + oxn));*/
- }
- g.drawLine(oxn, (int)ly/2 - oyn,
- oxn, (int)ly/2 + oyn);
- g.drawLine( oxn , -1 ,
- oxn - 3 , 10 );
- g.drawLine(oxn, -1,
- oxn + 3, 10);
- g.drawLine( (int)(lx/2) - oxn, oyn,
- (int)(lx/2) + oxn, oyn);
- g.drawLine( (int)(lx/2)+ oxn , oyn,
- (int)(lx/2) + oxn - 10 , oyn - 3 );
- g.drawLine(lx, oyn,
- lx - 10, oyn + 3);
- // System.out.println(ny);
- for (int i = 0; i < lx; i += ny){
- g.drawLine(i, oyn - 1, i, oyn + 1);
- }
- //
- // ny = (int)(ly/(2*maxC*maxC));
- // System.out.println(maxC);
- //
- for (int i = 0; i < ly; i += nx) {
- g.drawLine(oxn - 1, i, oxn + 1, i);
- }
- super.repaint();
- }
- }
- public static void main(String[] args) {
- double a = 0;
- double b = 5;
- double intev = (b - a)/1000000;
- double ind = 0;
- JFrame w=new JFrame("Function");
- w.setLayout(new BorderLayout());
- w.setSize(715, 500);
- w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- Canvas canv=new Canvas();
- w.add(canv);
- w.setVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement