У меня две строчки по три js. Я пытаюсь найти пересечение двух линий, если они растянуты. Я не хочу на самом деле удлинять линии, просто хочу получить точку (?,?). Код ниже всегда дает новую точку в (1,1)
extend() {
const objactArray = this.object.geometry.attributes.position.array;
const objectX1:number = objactArray[0];
const objectY1:number = objactArray[1];
const objectX2:number = objactArray[3];
const objectY2:number = objactArray[4];
const extendingObjactArray = this.extendingObject.geometry.attributes.position.array;
const extendingObjectX1:number = extendingObjactArray[0];
const extendingObjectY1:number = extendingObjactArray[1];
const extendingObjectX2:number = extendingObjactArray[3];
const extendingObjectY2:number = extendingObjactArray[4];
const A1:number = extendingObjectY2-extendingObjectY1;
const B1:number = extendingObjectX1-extendingObjectX2;
const C1:number = A1+B1;
const A2:number = objectY2-objectY1;
const B2:number = objectX1-objectX2;
const C2:number = A2+B2;
const delta:number = A1 * B2 - A2 * B1;
if (delta == 0)
console.log("Lines are parallel");
const x:number = (B2 * C1 - B1 * C2) / delta;
const y:number = (A1 * C2 - A2 * C1) / delta;
const geometry:BoxBufferGeometry = new BoxBufferGeometry( 1, 1, 0);
const material:MeshBasicMaterial = new MeshBasicMaterial( {color: this.MS.color.LINE_POINT, wireframe: false, opacity: 0.5, transparent: true} );
let point:Mesh = new Mesh( geometry, material );
point.position.setX( x );
point.position.setY( y );
point.position.setZ( 0 );
point.name = "test";
this.engServ.group.add( point );
}
введите описание изображения здесь