斜45度游戏地图,坐标系转换问题
2017-03-16 17:04
471 查看
感谢xingwu同志美化的图片
![](https://img-blog.csdn.net/20170317150505541?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWF5YW8xMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
—————————————下面是原文,图片太丑删掉了,看上面的就可以了————————————————————————————————
注:文字推导过程UI 坐标系的Y方向是相反的,上图W、H是菱形宽高,所以最后要除以2,下面的推导菱形宽、高是2W,2H
如图,屏幕坐标系用红色表示,逻辑坐标系用蓝色表示。逻辑坐标系记作 X, Y, 屏幕(UI)坐标系记作UX, UY
菱形宽度为 2W 像素,高度 2H 像素
推导过程
从屏幕坐标系到逻辑坐标系:
如果一个菱形逻辑坐标(X, Y), 那么右侧的菱形逻辑坐标是(X+1, Y-1)
同理,它下边的菱形坐标是(X+1, Y+1)
UI坐标 (UX, UY) 转逻辑坐标(X, Y),UX和UY都对X有影响,UX和UY都对Y也有影响。
清晰起见,X分成两部分分开算,Y也分开算
X1 = UX / w (UX对X有加的影响)
X2 = UY / h (UY也对X有加的影响)
X = X1 + X2 = UX / w + UY / h
再看Y
Y1 = - UX / w (注意负号,UX增加,Y减少)
Y2 = UY / h (UY增加,Y增加)
Y = Y1 + Y2 = - UX / w + UY / h
这样UI坐标转逻辑坐标就完成了。
上面两个结果联立求UX, UY,最简单的二元一次方程
UX = (X - Y) * w / 2
UY = (X+Y) * h / 2
逻辑转UI也完成。
注:只要两个坐标系原点重叠,那么就不需要偏移,简化了问题。
—————————————下面是原文,图片太丑删掉了,看上面的就可以了————————————————————————————————
注:文字推导过程UI 坐标系的Y方向是相反的,上图W、H是菱形宽高,所以最后要除以2,下面的推导菱形宽、高是2W,2H
如图,屏幕坐标系用红色表示,逻辑坐标系用蓝色表示。逻辑坐标系记作 X, Y, 屏幕(UI)坐标系记作UX, UY
菱形宽度为 2W 像素,高度 2H 像素
推导过程
从屏幕坐标系到逻辑坐标系:
如果一个菱形逻辑坐标(X, Y), 那么右侧的菱形逻辑坐标是(X+1, Y-1)
同理,它下边的菱形坐标是(X+1, Y+1)
UI坐标 (UX, UY) 转逻辑坐标(X, Y),UX和UY都对X有影响,UX和UY都对Y也有影响。
清晰起见,X分成两部分分开算,Y也分开算
X1 = UX / w (UX对X有加的影响)
X2 = UY / h (UY也对X有加的影响)
X = X1 + X2 = UX / w + UY / h
再看Y
Y1 = - UX / w (注意负号,UX增加,Y减少)
Y2 = UY / h (UY增加,Y增加)
Y = Y1 + Y2 = - UX / w + UY / h
这样UI坐标转逻辑坐标就完成了。
上面两个结果联立求UX, UY,最简单的二元一次方程
UX = (X - Y) * w / 2
UY = (X+Y) * h / 2
逻辑转UI也完成。
注:只要两个坐标系原点重叠,那么就不需要偏移,简化了问题。
相关文章推荐
- 斜45度地图简介、坐标系转换以及数据碰撞
- 斜45度地图简介、坐标系转换以及数据碰撞
- 斜45度地图简介、坐标系转换以及数据碰撞
- 斜45度地图简介、坐标系转换以及数据碰撞
- 游戏中45度地图的坐标转换
- 斜45度地图简介、坐标系转换以及数据碰撞
- 如何通过界面屏幕的UI坐标,转换成45度叫的地图坐标?
- 大战2013之六:解决3DSMax右手坐标系转换左手坐标系的问题
- 关于84坐标系与54坐标系转换问题
- 游戏地图与人物移动问题
- 将MapInfo数据转换成OpenStreetMap地图的一种尝试(未完全解决问题)
- 【DirectX游戏编程】游戏中摄像机类的实现(上篇:如何获得观察坐标系转换矩阵)
- 国内地图坐标系介绍及常见地图(百度、高德、凯立德)之间的坐标系转换
- 国内地图坐标系介绍及常见地图(百度、高德、凯立德)之间的坐标系转换
- 游戏地图文件的破解与转换
- AS3-45度角地图坐标转换一(Diamond)
- 45度地图游戏的地图拖动和主角跟随
- [置顶] android手机google地图开发时与实际地图上经纬度的转换问题
- 45度地图遮挡问题解决方案(cocos2d-x)
- winform中坐标系转换的问题,获取某点在屏幕中的绝对位置等