package untitled7; import java.awt.*; import java.awt.image.*; import java.awt.event.*; import javax.swing.*; public class Frame1 extends JFrame { JPanel contentPane; BorderLayout borderLayout1 = new BorderLayout(); /*joonistan pildi aknale*/ public void paint(Graphics g){ Image img=looPilt(); g.drawImage(img, 0, 0, null); } public Image looPilt(){ int[] punktid=new int[200*200]; //originaal pildi andmed int[] punktid2=new int[200*200]; //pööratud pildi andmed int xk = 100, yk = 100, diameeter; //ringi keskkoht x ja y teljel double x,x2,y,y2,nurk,samm; //panen originaal pildile tausta for(int i = 0; i < punktid.length; i++){ punktid[i] = (255<<24) + 100; punktid2[i] = (255<<24) + 100; } //panen originaal pildile kasti for(int i = 70; i <= 130; i++)for(int ii = 70; ii <= 130; ii++) punktid[i*200+ii] = (255<<8) + 200; //pööran pildi pööratud pildi andmetesse - punktid2[200*200] for(diameeter = 2; diameeter <= 80; diameeter++){ //alustan ringi keskelt ja hakkan punkt haaval väljapoole diameetriga nihkuma nurk = 0; samm = 2 * Math.PI / (2 * Math.PI * diameeter); //arvutan ringi pikkuse järgi sammu, iga mille tagant tuleb uus piksel while (nurk <= 6.28){ //teen ringi peale 0 kraadist kuni 360 kraadini ehk kahe Pi-ni nurk = nurk + samm; x = Math.cos(nurk) * diameeter + xk; y = Math.sin(nurk) * diameeter + yk; x2 = Math.cos(nurk-0.8) * diameeter + xk; y2 = Math.sin(nurk-0.8) * diameeter + yk; punktid2[(int)x2*200+(int)y2] = punktid[(int)x*200+(int)y]; //panen pööratud pildi punktid2[200*200]-te } } return createImage(new MemoryImageSource(200, 200, punktid2, 0, 200)); //saadan pööratud pildi } /*konstrueerin freimi*/ public Frame1() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } /*initsialiseerin komponendid*/ private void jbInit() throws Exception { //setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]"))); contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(borderLayout1); this.setSize(new Dimension(400, 300)); this.setTitle("Frame Title"); } /*ülekirjutatud nii, et me saame lahkuda kui aken on suletud*/ protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } }