如何将一条线分成n个相等的部分,例如 - 5个相等的部分。
例如,我需要根据下面给出的起点和终点XY坐标在直线上添加5个点: 起点:
X1 : 0.27176220806794055
Y2 : 0.7258064516129032
结束点
X1 : 0.6303191489361702
Y2 : 0.348993288590604
如何找到将线分成5个相等部分的所有点的坐标值。
答案 0 :(得分:2)
分别为每个组件划分起点和终点之间的距离5,并使用它来计算所有内部点:
function divideIntoFiveSegments(startPoint, endPoint) {
let {x: x1, y: y1} = startPoint;
let {x: x2, y: y2} = endPoint;
let dx = (x2 - x1) / 5;
let dy = (y2 - y1) / 5;
let interiorPoints = [];
for (let i = 1; i < 5; i++)
interiorPoints.push({x: x1 + i*dx, y: y1 + i*dy});
return [startPoint, ...interiorPoints, endPoint];
}
这将返回一个包含6个点(2个端点+ 4个内部点)的数组,它定义了一个包含5个段的行。
你可以这样调用这个函数:
divideIntoFiveSegments({x: 0.27176220806794055, y: 0.7258064516129032}, {x: 0.6303191489361702, y: 0.348993288590604});
答案 1 :(得分:1)
请查看以下链接,了解公式以一定比例划分一条线:
http://www.teacherschoice.com.au/Maths_Library/Analytical%20Geometry/AnalGeom_3.htm
现在,在您的情况下,比率将是1:5,2:5,3:5和4:5。应用公式并获得积分。
现在要在JAVA / javascript中对此进行编码,您需要创建一个既能使用坐标又能满足比例的函数。然后,此函数将返回所需的点。然后你可以调用这个函数来获得所有不同的比率。