【转】 45度斜角地图与鼠标坐标转换

[url]http://hi.baidu.com/leexper/blog/item/9b6cce10350d1e0f203f2ecc.html[/url]


转载自 lossless1009
最终编辑 lossless1009
45度斜角地图在开发游戏时经常需要使用。
如何进行坐标之间的转换呢?

[img]http://dl.iteye.com/upload/attachment/371157/d18edaa3-149b-3017-9691-8b9802646aa3.jpg[/img]


基本的公式为:

***********************************
N=int(x/TileW – y/TileH)
M=int(x/TileW + y/TileH)
***********************************
N,M 是碎片的索引,从0开始。
TileW,TileH是碎片的长宽。
x,y是鼠标坐标,但是注意坐标系原点。

以上如图:

[img]http://dl.iteye.com/upload/attachment/371161/dd3bf10e-1bf5-3ca6-aa44-1e83c5803fb1.jpg[/img]


原理如下:

我们建立一个新的坐标系。以花体字的u,v为新的基向量。

[img]http://dl.iteye.com/upload/attachment/371159/8720ef93-1ec2-36fd-b4a4-2df5c5e6e12e.jpg[/img]


然后把鼠标坐标(注意原点!)(x,y)转换成基于新的基集t={u,v}的展开式:

[img]http://dl.iteye.com/upload/attachment/371155/4bac9fd6-3cff-3f23-b05d-8f9a41e337b1.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值