giovedì 29 gennaio 2009

Parallele

questo è l'esercizio che consente di tracciare la retta parallela di un'altra retta:

2)

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Parallele {
private JFrame f= new JFrame("traccia parallele");
private Pannello p=new Pannello();
private Point sPoint=new Point();
private Point ePoint=new Point();
private Point cPoint=new Point();
int x0=100;
int y0=150;
int w=100;
int h=150;
int x1=10;
int y1=50;
int x2=300;
int y2=150;
int xx1=10;
int yy1;
int xx2=400;
int yy2;
private boolean intersecato=false;


public Parallele(){
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(450,450);
f.add(p);
f.setVisible(true);
f.addMouseListener(new Linea());
f.addMouseMotionListener(new Linea1());
}



public class Pannello extends JPanel{
public void paintComponent(Graphics g){
g.drawLine(x1,y1,x2,y2);
g.drawLine(sPoint.x,sPoint.y,ePoint.x,ePoint.y);
g.drawLine(xx1,yy1,xx2,yy2);
}
}

public Color getColor(){
int rosso=(int) (Math.random()*255);
int verde=(int) (Math.random()*255);
int blu=(int) (Math.random()*255);
Color colore=new Color(rosso,verde,blu);
return colore;
}

public void interseca() {
intersecato=false;
if ((sPoint.xx0+w)&&(sPoint.y>y0)&&(sPoint.yy0)&&(ePoint.y intersecato=true;
}
}
public class Linea implements MouseListener{
public void mouseClicked(MouseEvent e) {
cPoint.x=e.getX()-9;
cPoint.y=e.getY()-34;
tracciaParallela();
f.repaint();
}
public void tracciaParallela(){
double m=((double)y2-(double)y1)/((double)x2-(double)x1);
yy1=(int) (m*(xx1-cPoint.x)+cPoint.y);
yy2=(int) (m*(xx2-cPoint.x)+cPoint.y);
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {
sPoint.x=e.getX()-9;
sPoint.y=e.getY()-34;
} //------------->inizio linea
public void mouseReleased(MouseEvent e) {
ePoint.x=e.getX()-9;
ePoint.y=e.getY()-34;
interseca();
f.repaint();
}
}

public class Linea1 implements MouseMotionListener{
public void mouseMoved(MouseEvent e) {}
public void mouseDragged(MouseEvent e) {
intersecato=false;
ePoint.x=e.getX()-9;
ePoint.y=e.getY()-34;
f.repaint();
}
}
public static void main(String[] args){
Parallele t=new Parallele();
}



}

Nessun commento:

Posta un commento