如何找到将线分为5个相等部分的所有点的坐标值

时间:2016-09-13 05:27:24

标签: javascript java math

如何将一条线分成n个相等的部分,例如 - 5个相等的部分。

例如,我需要根据下面给出的起点和终点XY坐标在直线上添加5个点: 起点:

X1 : 0.27176220806794055
Y2 : 0.7258064516129032

结束点

X1 : 0.6303191489361702
Y2 : 0.348993288590604

如何找到将线分成5个相等部分的所有点的坐标值。

2 个答案:

答案 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中对此进行编码,您需要创建一个既能使用坐标又能满足比例的函数。然后,此函数将返回所需的点。然后你可以调用这个函数来获得所有不同的比率。