游戏开发论坛

 找回密码
 立即注册
搜索
查看: 10941|回复: 14

45度斜角地图编辑器鼠标坐标

[复制链接]

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2007-9-3 12:09:00 | 显示全部楼层 |阅读模式
比如我们要做一个地图编辑器,

那么如何判断鼠标点中了哪一个碎片呢??如图:


也许你想到通过解两个直线方程(点斜式):


不过这是个苯办法,那么怎么算呢?
开门见山:
***********************************
N=int(x/TileW - y/TileH)
M=int(x/TileW + y/TileH)

***********************************
N,M是碎片的索引,从0开始。
TileW,TileH是碎片的长宽。
x,y是鼠标坐标,但是注意坐标系原点。
以上如图:


那么,是什么原理呢?

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2007-9-3 12:11:00 | 显示全部楼层

Re:45度斜角地图编辑器鼠标坐标

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


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

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2007-9-3 12:22:00 | 显示全部楼层

Re:45度斜角地图编辑器鼠标坐标

大家能看到图吗?我是链接ogdev的

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2007-9-3 15:37:00 | 显示全部楼层

Re:45度斜角地图编辑器鼠标坐标

同志,你的公式太复杂了!

0

主题

228

帖子

285

积分

中级会员

Rank: 3Rank: 3

积分
285
发表于 2007-9-3 16:17:00 | 显示全部楼层

Re:45度斜角地图编辑器鼠标坐标

把一个quad分解成两个三角形,看point在不在三角形内就行了

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2007-9-5 12:26:00 | 显示全部楼层

Re: Re:45度斜角地图编辑器鼠标坐标

hyzboy: Re:45度斜角地图编辑器鼠标坐标

同志,你的公式太复杂了!


使用的时候,只有这两行公式呀...直接用即可
***********************************
N=int(x/TileW - y/TileH)
M=int(x/TileW + y/TileH)
***********************************

证明过程比较复杂。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2007-9-5 12:27:00 | 显示全部楼层

Re: Re:45度斜角地图编辑器鼠标坐标

quanyy: Re:45度斜角地图编辑器鼠标坐标

把一个quad分解成两个三角形,看point在不在三角形内就行了


直接用代数方法最简约

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2007-9-5 18:21:00 | 显示全部楼层

Re:45度斜角地图编辑器鼠标坐标

那我想知道鼠标点的确切地图坐标有没有简单的公式?

3

主题

121

帖子

121

积分

注册会员

Rank: 2

积分
121
QQ
发表于 2007-9-5 19:21:00 | 显示全部楼层

Re: Re:45度斜角地图编辑器鼠标坐标

quanyy: Re:45度斜角地图编辑器鼠标坐标

把一个quad分解成两个三角形,看point在不在三角形内就行了

支持这个同志.

18

主题

631

帖子

660

积分

高级会员

Rank: 4

积分
660
发表于 2007-9-8 11:12:00 | 显示全部楼层

Re:45度斜角地图编辑器鼠标坐标

........
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 15:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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