import java.math.*; import java.awt.*; import javax.swing.*; class PolarPoint { // Punkt polaarkordinaatides private double a=0, l=0; // Pööre ja kaugus PolarPoint() { a = 0.0; l = 0.0; return; } PolarPoint(double a, double l) { this.a = a; this.l = l; return; } public void set(double a, double l) { this.a = a; this.l = l; return; } public void setA(double a) { this.a = a; return; } public void setv(double a) { this.a = a; return; } public double a() { return a; } public double l() { return l; } public int x() { return (int) (Math.acos(a)*l); } public int y() { return (int) (Math.asin(a)*l); } // Ristkordinaatidest public void setCross(int x, int y) { this.a = (x!=0?Math.atan(y/x):(y==0?0:(y>0?90:-90))); this.l = Math.pow(Math.pow(x,2)+Math.pow(y,2), 0.5); return; } // Suhteline ristkordinaatidest public void setCrossFrom(int x, int y, int u, int o) { x-=u; y-=o; this.a = Math.atan(y/x); this.l = Math.pow(Math.pow(x,2)+Math.pow(y,2), 0.5); return; } // Operaatorid /* ftw? Javas pole operaatoreid? OMG. Ma mässasin sellega 2h (kuigi oleks ilma saanud) ja seepärast ei saanud kodutööga õigeks ajaks valmis. :/ public boolean operator==(PolarPoint &other) { if ((this.a() != other.a()) || (this.l() != other.l()) return false; else return true; } public static PolarPoint operator +(PolarPoint p1, PolarPoint p2) { return new PolarPoint((p1.a()+p2.a())%360, p1.l() + p2.l()); } PolarPoint operator-(PolarPoint other) { return new PolarPoint((other.a()-this.a())%360, other.l() - this.l()); }*/ public String cordsAsString(){ return "a:"+a+" l:"+l; } } class Kolmnurk { Color serv; PolarPoint a, b, c; Kolmnurk(PolarPoint a, PolarPoint b, PolarPoint c) { this.a = a; this.b = b; this.c = c; serv = Color.black; return; } Kolmnurk(int x, int y) { this.a = new PolarPoint(); this.b = new PolarPoint(); this.c = new PolarPoint(); this.a.setCross(x/2,0); System.out.println(" Kolmnurga nurga a kordinaadid on: "+a.cordsAsString()); this.b.setCross(x,y); System.out.println(" Kolmnurga nurga b kordinaadid on: "+b.cordsAsString()); this.c.setCross(0,y); System.out.println(" Kolmnurga nurga c kordinaadid on: "+c.cordsAsString()); serv = Color.black; } void joonista (Graphics g) { g.setColor(serv); g.drawLine(a.x(),a.y(),b.x(),b.y()); g.drawLine(b.x(),b.y(),c.x(),c.y()); g.drawLine(c.x(),c.y(),a.x(),a.y()); return; } } class Tahvel extends JPanel { Kolmnurk a; Tahvel(int max_x, int max_y){ a = new Kolmnurk(max_x, max_y); } public void paintComponent(Graphics g) { super.paintComponent(g); a.joonista(g); } } class Animatsioon { private static final int MAX_X=300, MAX_Y=300; public static void main(String[] args) { JFrame raam = new JFrame("Kolmnurgad"); raam.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); raam.setLocation(new Point(300, 200)); raam.setSize(new Dimension(MAX_X, MAX_Y)); Tahvel t = new Tahvel(MAX_X, MAX_Y); raam.getContentPane().add(t); raam.setVisible(true); } }