xxxxxxxxxx
78
let cX = 400,
cY = 400;
let dX = cX / 1.5,
dY = cY;
function setup() {
createCanvas(2 * cX, 2 * cY);
}
function draw() {
background(220, 220, 0);
noFill();
stroke('green');
strokeWeight(2);
ellipse(cX, cY, cX, cY); //_________________________ circle
fill('lightblue');
ellipse(cX, cY, dX, dY); //_________________________ ellipse
strokeWeight(3);
stroke('blue');
for (let i = 0; i < 2 * PI; i += 0.05) { //_________ coded SAME ellipse for confirm
let eX = dX / 2 * sin(i);
let eY = -dY / 2 * cos(i);
point(cX + eX, cY + eY);
}
for (let i = PI / 8; i < 2 * PI; i += PI / 4) { //__ sectors circle
let eX = cX / 2 * sin(i);
let eY = -cY / 2 * cos(i);
noFill();
strokeWeight(2);
stroke('green');
line(cX, cY, cX + eX, cY + eY);
fill('red');
noStroke();
text(nf(i, 0, 2), cX + eX, cY + eY);
}
for (let i = 0.785398 / 2; i <= 6.6758843; i += 0.785398) { //___ sectors ellipse
let eX = dX/2 * sin(i);
let eY = -dY/2 * cos(i);
stroke('blue');
line(cX, cY, cX + eX, cY + eY);
}
//__________________________________________________ show mouse
let m = createVector(mouseX - cX, mouseY - cY); //__ where is mouse as vector from center...
mangle = m.heading();
stroke('red');
strokeWeight(1);
line(cX, cY, cX + m.x, cY + m.y);
strokeWeight(10);
point(cX + m.x, cY + m.y);
noStroke();
text('x ' + mouseX + ' y ' + mouseY + ' m ' + nf(mangle, 0, 2), cX + m.x + 7, cY + m.y)
//______________________________________________ there is a BUG in the angle ??
let aoff = PI / 2;
let eX = sin(mangle + aoff) / 2;
let eY = -cos(mangle + aoff) / 2;
let innerX = dX * eX;
let innerY = dY * eY;
let innerm = createVector(innerX, innerY); //____ ellipse point as vector from center...
//print('innerm',innerm.heading());
stroke('black');
point(cX + innerX, cY + innerY);
//_______________________________________________ make point / vector on the outer circle too
let outerX = cX * eX;
let outerY = cY * eY;
let outerm = createVector(outerX, outerY); //____ point as vector from center...
//print('outerm',outerm.heading());
stroke('black');
point(cX + outerX, cY + outerY);
}