I have a Line(P1, P2)
and a point NP(x,y)
, what I want is to create a parallel Line(A,B)
pass through NP
I need a function in JavaScript for getting Line (A, B)
Solved: I write the function in JavaScript code with help of @MBo
function parallel(pt1, pt2, newPoint) {
let NP = new THREE.Vector2(newPoint.x, newPoint.y)
let p1 = new THREE.Vector2(pt1.x, pt1.y)
let p2 = new THREE.Vector2(pt2.x, pt2.y)
let dir = new THREE.Vector2(p2.x-p1.x, p2.y-p1.y);
let W = new THREE.Vector2(NP.x-p1.x, NP.y-p1.y);
let dw = dir.clone().dot(W);
let dd = dir.clone().dot(dir);
let dmw = dir.clone().multiplyScalar(dw).divideScalar(dd);
let PP = p1.clone().add(dmw)
let V = NP.clone().sub(PP)
let pi1 = p1.add(V)
let pi2 = p2.add(V)
return {A:{x:pi1.x,y:pi1.y}, B:{x:pi2.x,y:pi2.y}}
}