查看: 2600|回复: 1

[已经解决] 已知2点坐标求角度

[复制链接]
梦石
0
星屑
66
在线时间
91 小时
注册时间
2012-8-15
回帖
43
发表于 2012-10-23 16:11:11 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 虾米£浪子 于 2012-10-24 08:20 编辑

用在角色行走上,由于初中数学没毕业,想请教一下计算方法。
主要实现12方向行走,真八方向+伪八方的部分
根据角度计算跑的方式
真八方以45度斜跑(改变图形),伪八方以30度斜跑(不改变图形),移动x+=2 , y+=1,形成30度
mx,my 鼠标的坐标
x,y 角色坐标
现在只知道函数Math的使用方法。如何得到两点之间的角度。




梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
回帖
638
发表于 2012-10-23 20:03:14 | 显示全部楼层
本帖最后由 沙漠点灰 于 2012-10-23 20:05 编辑

{:2_258:}两点之间怎么求角度......求距离吧........
或者说是与X正半轴的夹角...?若是的话...用反三角函数..
角色坐标必须是屏幕像素坐标...而不是地图坐标..
  1. tan = (y-my).abs.to_f/(x-mx).abs
  2. r = Math.atan(tan)
复制代码
r就是结果,不过是弧度制,弧度转角度是
π=180°
也就是
d = r / Math::PI * 180
d就是角度..
不过值得说明的是,方向得自己判断,因为游戏
是0~360°,在这是0~90°..

当然,这是高中老师说的,
先判定值,再判定象限...


比如mx>x且my>y,就在第一象限,当然,游戏中第一象限在右下方...
自己判断吧

(如果脑筋好使的话,就把求绝对值去掉好了)

点评

Math.atan 反函数无法正常使用,结果还是跟Math.tan一样 无法直接得到角度,弧度制什么的听不懂,尝试着试下,结果出来了,感谢!  发表于 2012-10-24 08:15

评分

参与人数 1梦石 +2 收起 理由
hcm + 2 认可答案

查看全部评分

>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部