Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. package grafika_lab1;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.*;
  6. import javax.imageio.ImageIO;
  7. import java.awt.image.BufferedImage;
  8. import java.io.IOException;
  9. import java.lang.Math.*;
  10.  
  11.  
  12. public class grafika_lab1 extends JPanel {
  13.  
  14. private class Display extends JPanel {
  15. protected void paintComponent(Graphics g) {
  16. super.paintComponent(g);
  17. Graphics2D g2 = (Graphics2D)g;
  18. g2.translate(300,300); // Moves (0,0) to the center of the display.
  19. int whichTransform = transformSelect.getSelectedIndex();
  20.  
  21. switch(whichTransform)
  22. {
  23. case 0:
  24. break;
  25. case 1:
  26. g2.scale(0.5,0.5);
  27. break;
  28. case 2:
  29. g2.rotate(Math.toRadians(45));
  30. break;
  31. case 3:
  32. g2.rotate(Math.toRadians(180));
  33. g2.scale(0.5, 1);
  34. break;
  35. case 4:
  36. g2.shear(0.4,0.0);
  37. break;
  38. case 5:
  39. g2.scale(1, 0.5);
  40. g2.translate(0, -433);
  41. break;
  42. case 6:
  43. g2.shear(0.4, 0.0);
  44. g2.rotate(Math.toRadians(110));
  45. case 7:
  46. g2.rotate(Math.toRadians(180));
  47. g2.scale(0.5, 1);
  48. break;
  49. case 8:
  50. g2.shear(0.4, 0.0);
  51. g2.rotate(Math.toRadians(110));
  52. case 9:
  53. g2.shear(0.4,0.0);
  54. break;
  55. }
  56.  
  57.  
  58. // TODO Apply transforms here, depending on the value of whichTransform! 10.2
  59. g2.drawImage(pic, 0, 0, null); // Draw image with center at (0,0).
  60.  
  61.  
  62. Polygon p = new Polygon();
  63. for (int i = 0; i < 13; i++)
  64. p.addPoint((int) (0 + 50 * Math.cos(i * 2 * Math.PI / 13)),
  65. (int) (0 + 50 * Math.sin(i * 2 * Math.PI / 13)));
  66. g2.setColor(Color.BLUE);
  67. g.drawPolygon(p);
  68. g2.fillPolygon(p);
  69.  
  70. }
  71. }
  72.  
  73. private Display display;
  74. private BufferedImage pic;
  75. private JComboBox<String> transformSelect;
  76.  
  77. public grafika_lab1() throws IOException {
  78. //pic = ImageIO.read(getClass().getClassLoader().getResource("shuttle.jpg"));
  79. display = new Display();
  80. display.setBackground(Color.YELLOW);
  81. display.setPreferredSize(new Dimension(600,600));
  82. transformSelect = new JComboBox<String>();
  83. transformSelect.addItem("None");
  84. for (int i = 1; i < 10; i++) {
  85. transformSelect.addItem("No. " + i);
  86. }
  87. transformSelect.addActionListener( new ActionListener() {
  88. public void actionPerformed(ActionEvent e) {
  89. display.repaint();
  90. }
  91. });
  92. setLayout(new BorderLayout(3,3));
  93. setBackground(Color.GRAY);
  94. setBorder(BorderFactory.createLineBorder(Color.GRAY,10));
  95. JPanel top = new JPanel();
  96. top.setLayout(new FlowLayout(FlowLayout.CENTER));
  97. top.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
  98. top.add(new JLabel("Transform: "));
  99. top.add(transformSelect);
  100. add(display,BorderLayout.CENTER);
  101. add(top,BorderLayout.NORTH);
  102. }
  103.  
  104.  
  105.  
  106. public static void main(String[] args) throws IOException {
  107. JFrame window = new JFrame("2D Transforms");
  108. window.setContentPane(new grafika_lab1());
  109. window.pack();
  110. window.setResizable(false);
  111. window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  112. Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
  113. window.setLocation( (screen.width - window.getWidth())/2, (screen.height - window.getHeight())/2 );
  114. window.setVisible(true);
  115. }
  116.  
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement