设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2416|回复: 7
打印 上一主题 下一主题

[已经过期] 数学问题——如何获得倾斜后地图的坐标

[复制链接]

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
22472
在线时间
2336 小时
注册时间
2005-10-15
帖子
1160

开拓者

1
发表于 2022-2-19 03:04:49 | 显示全部楼层
先说结论:无法获得精确的坐标,因为倾斜后,每个方块形的格子,会对应多达3个倾斜后的格子,并且对应关系是有奇偶性的,导致将方块形的格式变换为倾斜后的格子的一一对应成为不可能
但如果需求是获得3个倾斜后的格子中的任何一个,倒是可以,因为可以反过来映射
对于倾斜后的座标(x,y),它永远会对应方块形格子中的2或4个
地图的高h是18,宽w是22
观察(0,0),它对应的是(17, 0)和(18, 0),可以计为(17.5, 0)
而(0, 1)它对应的(16, 0), (17, 0), (16, 1)和(17,1)一共4个格子的四角,这可以计为(16.5, 0.5)
于是(0, 2)对应的是(15.5, 1),(1, 2)对应(16.5, 0.5),(2, 2)对应(17.5, 1), (1,1)对应(17,5, 0.5)
(9, 14)对应哪里呢,横坐标9需要对x补偿+9,纵坐标14需要对x补偿-14,一共是-5
横坐标9需要对y补偿+4.5,纵坐标14需要对y补偿+7,一共是11.5
所以从(17.5, 0)偏移(-5, 11.5)是(12.5, 11.5),观察图中,(9,14)占据的是(12, 11)(13,11)(12,12)和(13,12)四个格子的四角,结论正常。

好了,现在可以建立一个映射公式:
(x, y) => (h - x + y - 0.5, (x + y) / 2)
这是从斜向坐标到直角坐标的公式
然后把这个映射反过来——注意这里不惟一
即可

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-4 17:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表