计算图上两点之间的交点 Javascript
Calculate intersection between two points on a graph Javascript
给定下图,我将如何提供 x,y 坐标的函数对,以及 return 基于该对在图上的 x,y 交点的新 x,y 坐标(保留顺序给出了原始的 x,y 对)?
代码段似乎不允许 console.table
,所以这里用 console.log
代替:
var points=[
{name:"A", x:6, y:8},
{name:"B", x:-6, y:2},
{name:"C", x:4, y:-4}
];
function intersection(pntsArr) {
var returnValue=[];
for(var i=0; i<pntsArr.length-1; i++) {
for(var j=i+1; j<pntsArr.length; j++) {
returnValue.push( {
name:pntsArr[i].name+"->"+pntsArr[j].name,
x:pntsArr[i].x,
y:pntsArr[j].y
} );
returnValue.push( {
name:pntsArr[j].name+"->"+pntsArr[i].name,
x:pntsArr[j].x,
y:pntsArr[i].y
} );
}
}
return returnValue;
}
console.log(intersection(points));
应该可以处理任意数量的点。
可能会产生重复点,具体取决于输入。
给定下图,我将如何提供 x,y 坐标的函数对,以及 return 基于该对在图上的 x,y 交点的新 x,y 坐标(保留顺序给出了原始的 x,y 对)?
代码段似乎不允许 console.table
,所以这里用 console.log
代替:
var points=[
{name:"A", x:6, y:8},
{name:"B", x:-6, y:2},
{name:"C", x:4, y:-4}
];
function intersection(pntsArr) {
var returnValue=[];
for(var i=0; i<pntsArr.length-1; i++) {
for(var j=i+1; j<pntsArr.length; j++) {
returnValue.push( {
name:pntsArr[i].name+"->"+pntsArr[j].name,
x:pntsArr[i].x,
y:pntsArr[j].y
} );
returnValue.push( {
name:pntsArr[j].name+"->"+pntsArr[i].name,
x:pntsArr[j].x,
y:pntsArr[i].y
} );
}
}
return returnValue;
}
console.log(intersection(points));
应该可以处理任意数量的点。
可能会产生重复点,具体取决于输入。