Advertisement
Seryyd

datorgrafika ld4

Nov 24th, 2015
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.14 KB | None | 0 0
  1. package pakete;
  2.  
  3. import java.awt.Graphics;
  4. import java.awt.Color;
  5. import static java.lang.Math.pow;
  6. import java.util.Random;
  7.  
  8. public class ld4 extends javax.swing.JFrame {
  9.    
  10.     public static int WIDTH;
  11.     public static int HEIGHT;
  12.     private Graphics g;
  13.     int sel;
  14.     private float t;
  15.     private float tStep;
  16.  
  17.    
  18.     /**
  19.      * Creates new form ld4
  20.      */
  21.     public ld4() {
  22.         initComponents();
  23.         WIDTH = jPanel1.getWidth();
  24.         HEIGHT = jPanel1.getHeight();
  25.         g = jPanel1.getGraphics();
  26.        
  27.        
  28.        // drawPanel();
  29.     }
  30.  
  31. //private void drawPanel() {
  32.   //    
  33.     //    g.setColor(new Color(245, 245, 245));
  34.       //  g.fillRect(0, 0, WIDTH, HEIGHT);
  35.         //g.setColor(new Color(200, 200, 200));
  36.         //g.drawLine(WIDTH / 4, 0, WIDTH / 4, HEIGHT);
  37.         //g.drawLine(WIDTH / 2, 0, WIDTH / 2, HEIGHT);
  38.         //g.drawLine(WIDTH / 4 + WIDTH / 2, 0, WIDTH / 4 + WIDTH / 2, HEIGHT);
  39.         //g.drawLine(0, HEIGHT / 4, WIDTH, HEIGHT / 4);
  40.         //g.drawLine(0, HEIGHT / 2, WIDTH, HEIGHT / 2);
  41.         //g.drawLine(0, HEIGHT / 4 + HEIGHT / 2, WIDTH, HEIGHT / 4 + HEIGHT / 2);
  42. //
  43.   //  }
  44.  
  45. public int Fact(int n)
  46. {
  47.     if (n == 0)
  48.         return 1;
  49.     else
  50.         return n * Fact(n-1);
  51. }
  52.  
  53.  
  54.  
  55.  
  56. private void Bezje() {
  57.        
  58.         int x, y, i;
  59.         tStep = Float.parseFloat(tTextField.getText());
  60.         t = 0;
  61.      ////   drawPanel();
  62.        
  63.  
  64.         while (t <= 1) {
  65.            
  66.                 for (int j = 0; j <= sel; j++){
  67.                     P.B[j] = (float) ( ( Fact(sel)/( Fact(j)*Fact(sel-j) )) * (pow((1-t), sel - j)) * (pow(t,j)) );
  68.                     //jTextArea1.append(String.valueOf(P.B[j]) + "\n");
  69.                 }
  70.             int xc = 0;
  71.             int yc = 0;
  72.             for (int c = 0; c <=sel; c++){
  73.                 xc += P.B[c] * P.x[c];
  74.                 yc += P.B[c] * P.y[c];
  75.             }
  76.             x = xc;
  77.             y = yc;
  78.  
  79.             g.setColor(Color.green);
  80.             g.drawRect(x, y, 1, 1);
  81.  
  82.             t = (float) (t + tStep);
  83.         }
  84.  
  85.         for (i = 0; i <= sel; i++) {
  86.  
  87.             if (i < sel) {
  88.                 g.setColor(Color.blue);
  89.                 g.drawLine(P.x[i], P.y[i], P.x[i + 1], P.y[i + 1]);
  90.             }
  91.             g.setColor(Color.red);
  92.             g.drawString(String.valueOf(i + 1), P.x[i], ((P.y[i]) - 6));
  93.             g.drawOval(P.x[i], P.y[i], 3, 3);
  94.  
  95.         }
  96.  
  97.     }
  98.  
  99. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  100.         Random val = new Random();
  101.         sel = jComboBox1.getSelectedIndex() + 2;
  102.         for (int i = 0; i <= sel; i++) {
  103.             P.x[i] = val.nextInt(jPanel1.getWidth());
  104.             P.y[i] = val.nextInt(jPanel1.getHeight());
  105.         }
  106.         Bezje();
  107.     }                                        
  108.  
  109.     private void jPanel1MousePressed(java.awt.event.MouseEvent evt) {                                    
  110.         int n;
  111.         n = jComboBox2.getSelectedIndex() ;
  112.         int x = evt.getX();
  113.         int y = evt.getY();
  114.         P.x[n] = x;
  115.         P.y[n] = y;            
  116.         Bezje();
  117.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement