图像X和; Y轴

时间:2014-03-27 17:46:59

标签: javascript image map scripting sa-mp

我有一张图片(1536x1536),它是一张地图。

我希望X和Y轴在图像max x:3000.0,max y:3000.0,min x:-3000.0,min y:-3000.0。

我想将我的坐标(X,Y)转换为地图上的位置(上/下和左/右)

1 个答案:

答案 0 :(得分:0)

从评论中我假设你没有通过CSS调整图像大小,但保持它的自然状态。因此,您可以使用具有比率差异的translate对象。如果这是非常资源依赖,我建议使用对象上的数组(对于下面显示的代码)。

它指向像素转换。

var translate = {
    x: 1536 / 6000,
    y: 1536 / 6000
};

function pt_translate(pt) {
    return {
        x: Math.round((pt.x + 3000) * translate.x),
        y: Math.round((pt.y + 3000) * translate.y)
    };
}

// Sample coordinate input:
pt = {
    x: -1029.3652,
    y:  369.122
};

var ptt = pt_translate(pt);

结果:

{x: 504, y: 862}

更多样本:

<强> Various console log samples

console.log(pt_translate({x:0,y:0}), 'vs', 1536 / 2, 1536 / 2);
console.log(pt_translate({x:3000,y:3000}), 'vs', 1536, 1536);
console.log(pt_translate({x:-3000,y:-3000}), 'vs', 0,0);
console.log(pt_translate({x:910,y:-1045}), 'vs', 1000,500);
console.log(ptt);

收率:

{x: 768, y: 768} "vs" 768 768
{x: 1536, y: 1536} "vs" 1536 1536
{x: 0, y: 0} "vs" 0 0
{x: 1000, y: 500} "vs" 1000 500
{x: 504, y: 862}