xxxxxxxxxx
class Spiral {
constructor(A, B, C) {
this.alpha=atan2(B.y-A.y, B.x-A.x);
this.theta=4*TWO_PI+atan2(B.y-C.y, B.x-C.x);
//this.v=PI+this.alpha-this.theta;
this.b=exp(abs((B.x-A.x)/(B.y-A.y)));
this.v=1/log(this.b);
this.A = A;
this.B = B;
this.C = C;
this.a=dist(B.x, B.y, C.x, C.y)/pow(this.b, this.theta);
}
display() {
textSize(32);
text("a: "+int(100*this.a)/100+" b: "+int(100*this.b)/100+" theta: "+int(100*this.theta)/100, 300, 300);
let mx=this.B.x-this.C.x;//this.a * pow(this.b,this.theta)*cos(this.theta);
let my = this.B.y-this.C.y;//this.a * pow(this.b, this.theta)*sin(this.theta);
translate(this.C.x, this.C.y);
ellipse(0, 0, 20, 20);
for (let i = this.theta; i >=0; i-=.1) {
let xi = this.a * pow(this.b, i)*cos(i);
let yi = this.a * pow(this.b, i)*sin(i);
line(mx, my, xi, yi);
mx=xi;
my=yi;
}
}
}