public class AngleDivider extends LineElement {

  PointElement C,D;	// n-sect angle CAD
  int n;

  AngleDivider (PointElement Cval, PointElement Aval, PointElement Dval, int nVal) {
    dimension = 1;
    A = Aval;  B = new PointElement();
    C = Cval;  D = Dval;  n = nVal;
  }

  protected void translate (double dx, double dy) {B.translate(dx,dy);}

  protected void rotate (PointElement pivot, double ac, double as) {
    B.rotate(pivot,ac,as);
  }

  protected void update() {
    double theta = A.angle(C,D);
    theta /= n;
    B.x = A.x + Math.cos(theta)*(C.x-A.x) - Math.sin(theta)*(C.y-A.y);
    B.y = A.y + Math.sin(theta)*(C.x-A.x) + Math.cos(theta)*(C.y-A.y);
    B.toIntersection(A,B,C,D);
  }
}
