【问题标题】:Convert negative polygons to positive coordinates - Javascript将负多边形转换为正坐标 - Javascript
【发布时间】:2017-09-01 09:46:39
【问题描述】:

我希望我的积分 (x, y) 始终为正数。

我有一个包含这些值的数组:

(points) [-916, 214, 10, 214, 10, 362, 200, 362, 200, 764, -916, 764]
            X    Y    X   Y    X   Y    X    Y    X    Y     X    Y

有没有一种算法可以将这些点移动到它们的原点,从而使坐标始终保持正值?

【问题讨论】:

    标签: javascript math polygon snap.svg


    【解决方案1】:

    您可以先获取xy 的最小值,然后使用更正映射一个新数组。

    最小值

    [-916, 0]
    

    转化

    [-916,  214,   10,  214,   10,  362,  200,  362,  200,  764, -916,  764] original
    [   0,  214,  926,  214,  926,  362, 1116,  362, 1116,  764,    0,  764] updated
    

    var data = [-916, 214, 10, 214, 10, 362, 200, 362, 200, 764, -916, 764];
        min = [0, 0];
        
    data.forEach(function (v, i) {
        if (v < min[i % 2]) {
            min[i % 2] = v;
        }
    });
    
    console.log(min);
    console.log(data.map(function (v, i) {
        return v - min[i % 2];
    }));
    .as-console-wrapper { max-height: 100% !important; top: 0; }

    【讨论】:

    • 是否可以将绝对坐标的响应再次反转为相对坐标?
    • 是的,通过存储最小值。那么你需要在循环中添加值。
    猜你喜欢
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 2020-01-20
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多