You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
876 B
Java

package gab.opencv;
import processing.core.*;
public class Line {
public PVector start, end;
public double angle;
public double x1, y1, x2, y2;
public Line(double x1, double y1, double x2, double y2){
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
start = new PVector((float)x1, (float)y1);
end = new PVector((float)x2, (float)y2);
// measure the angle between this line
// and a vertical line oriented up
angle = angleBetween(x1, y1, x2, y2, 0, 0, 0, -1);
}
public double angleFrom(Line other){
return angleBetween(x1, y1, x2, y2, other.x1, other.y1, other.x2, other.y2);
}
public static double angleBetween(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4){
double angle1 = Math.atan2(y1 - y2, x1 - x2);
double angle2 = Math.atan2(y3 - y4, x3 - x4);
return angle1-angle2;
}
}