凯恩之角_暗黑破坏神3论坛_夺魂之镰

标题: 游戏与屏幕坐标转换公式 [打印本页]

作者: 絕對水餃    时间: 2019-9-17 00:22
标题: 游戏与屏幕坐标转换公式
本帖最后由 絕對水餃 于 2019-9-17 00:30 编辑

首先附上一张老图

161157w0mzw87kyh4t4z88.jpg


很久以前写过传送后陨石相对位置计算公式
游戏坐标偏移计算公式
http://bbs.d.163.com/forum.php?m ... 3637&fromuid=886696
(出处: http://bbs.d.163.com/)

不过这只能解决屏幕坐标问题,最近仙林大佬提出可能需要游戏坐标与屏幕坐标的转换,所以研究了一番,
以下是换算公式:

BiLi={16,9}——屏幕分辨率比例
H=96235
Xo=32768——人物中心 X 坐标
Yo=30700——人物中心 Y 坐标
X,Y 为位移前陨石坐标
ShenMuX,ShenMuY 为位移前神目坐标
Yo_M=100*(65535-Yo)/(65535+Yo)——人物脚底距离屏幕下沿码数
X_M=4*(X-Xo)/(65535+Y)*40*BiLi[1]/BiLi[2]*9/16——当前陨石位置 X 轴码数
Y_M=100*(65535-Y)/(65535+Y)-100*(65535-Yo)/(65535+Yo)——当前陨石位置 Y 轴码数
ShenMuX_M=4*(ShenMuX-Xo)/(65535+ShenMuY)*40*BiLi[1]/BiLi[2]*9/16——当前神目位置 X 轴码数
ShenMuY_M=100*(65535-ShenMuY)/(65535+ShenMuY)-100*(65535-Yo)/(65535+Yo)——当前神目位置 Y 轴码数
YunShiX_M=X_M-ShenMuX_M——跑神目后陨石相对位置 X 轴码数
YunShiY_M=Y_M-ShenMuY_M——跑神目后陨石相对位置 Y 轴码数
YunShiY=65535*(100-YunShiY_M-Yo_M)/(100+YunShiY_M+Yo_M)——跑神目后陨石相对位置 Y 坐标
YunShiX=YunShiX_M*(65535+YunShiY)/40/4*BiLi[2]/BiLi[1]*16/9+Xo——跑神目后陨石相对位置 X 坐标
M=(YunShiX_M^2+YunShiY_M^2)^(1/2)——跑神目后陨石相对位置距离人物脚底码数

若是没有具体鼠标位置,只有鼠标与人物脚底角度 α 和所需要的码数 M',则可以通过三角函数计算出
X_M=cos α * M'
Y_M=sin α * M'
其中 α 可以根据当前鼠标位置 (X',Y') 得出
tan α=(Y'-Yo)/(X'-Xo)
之后带入计算即可算出角度 α 时距离人物 M' 码的鼠标位置

几何模型(侧视图)
幻灯片1.png

其中 P 为游戏默认的观察者位置,FB 为屏幕 45° 相交于游戏地面B点
O 为人物脚底在屏幕 Y 轴位置,M 为人物脚底在游戏 Y 轴位置
Q 为任意鼠标位置 (x,y) 在屏幕 Y 轴 AB 上的投影,N 为鼠标在游戏 Y 轴位置
已知 AF=FB,PB=PF,BC=100 码,FQ=y,求 MN 之间的码数

公式推导
X_M 参考游戏坐标偏移计算公式中的图即可得出

Y_M=MN=NB-MB——Y 轴码数
NB/PA=BQ/AQ
其中 PA=BC=100 码,AQ=65535+y,BQ=65535-y

思路总结
首先计算出鼠标位置在 X,Y 轴上的投影码数,平方和开跟即可得出鼠标距离人物码数
若有多次位移或传送+陨石此类情况,则分别计算出每个步骤在 X,Y 轴上的投影码数,相加后平方和开跟即可
作者: 微软肉肉    时间: 2019-9-17 00:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: firstjourney    时间: 2019-9-17 00:45
先当马来人,等到哪天有兴趣改双黑宏再仔细研究研究
作者: 猫猫猫仔仔    时间: 2019-9-17 00:48
打字的 有详细说明吗
作者: 铁匠铺    时间: 2019-9-17 02:21
不错,很好的技术帖,可惜看不懂也学不来。
作者: 女高中生    时间: 2019-9-17 05:34
看起来不错
作者: liyu2799    时间: 2019-9-17 07:08
前排          学习
作者: 冰火红黑    时间: 2019-9-17 08:00
每个字我都认识,然而不知道说的啥{:7_358:}
作者: 昵称7e73da    时间: 2019-9-17 08:12
大佬,你吃啥长大的?这么优秀
作者: Nutwall_A    时间: 2019-9-17 12:34
先收藏后看系列
作者: 泪眼婆娑5309    时间: 2019-9-17 13:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: 山老大    时间: 2019-9-17 13:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: rollinghzm    时间: 2019-9-17 17:16
65535这个数为啥这么眼熟。。。
作者: 法师小豆    时间: 2019-9-17 17:29
现算来得及吗?不会走路了
作者: wcwc    时间: 2019-9-17 17:41
大佬66666,真的是太厉害了
作者: hightsaint    时间: 2019-9-17 18:16
厉害了                                 
作者: iVoxing    时间: 2019-9-20 14:33
收藏了,也許有天用得着。

比如,直接在LCD屏上報鼠標指向的位置距離人物的距離。。。我知道某航有這功能,但 mac 用戶用不了那個
作者: 山东将军    时间: 2019-9-20 15:46
第一次见到水饺大佬,好兴奋。




欢迎光临 凯恩之角_暗黑破坏神3论坛_夺魂之镰 (https://bbs.d.163.com/) Powered by Discuz! X3.3