2d isometric 坐标变换

等轴游戏的坐标体系分成3种;

普通的笛卡尔坐标系;

2d isometric 坐标变换


正则网格坐标;

2d isometric 坐标变换

仿射网格坐标;

2d isometric 坐标变换


其中正则网格的宽度和高度是 仿射网格宽度 高度的一半;

关键就是找到这三种坐标的转换公式:

SIZEX, SIZEY 是菱形网格宽度高度的一半,

从笛卡尔坐标到正则网格

function cartesianToNormal(x, y)
    return round(x/SIZEX), round(y/SIZEY)
end

从正则网格到仿射网格
function normalToAffine(nx, ny)
    return round((ny-nx)/2), round((nx+ny)/2)
end


你可能感兴趣的:(2d isometric 坐标变换)