浪子終回頭 2022-07-05 03:49 采纳率: 75%
浏览 52
已结题

游戏开发 玩家移动到怪物背后 如何获取背后坐标

img

看图 由右上图示例:

  1. 中心蓝色为玩家,怪物可以为360度任意方向
  2. 右上圆心的蓝色为怪物
  3. 玩家需要移动到怪物背后的红色区域的大圆位置,位置与圆相交,不在圆内或圆外
  4. 移动位置可以为 包含不限于 ABC 的任意角度

已知数据:

  1. 玩家坐标
  2. 怪物坐标

可变数据:

  1. 怪物外圆半径,此半径用于移动后距离怪物的距离
  2. 移动到怪物后方的角度,比如正后方B点(假设为0度), A点(假设为45度) C点(假设为-40度)

如何根据已知数据,获取ABC的坐标,

帮忙看下,给个思路,谢谢

  • 写回答

1条回答 默认 最新

  • 於黾 2022-07-05 08:13
    关注

    用怪物坐标减去玩家坐标,得到一个向量
    向量的y值比x值求反tan就是角度
    然后根据到底是A还是C,加上或减去一个角度,假设角度是a
    现在问题就是求从怪物坐标出发,角a的射线与怪物圆相交的交点
    圆方程是(x-x0)^2+(y-y0)^2=r^2
    射线方程是y-y0=k(x-x0),k=tan(a)
    其中x0,y0是怪物坐标
    联合一下,把2带入1,即可求得x,y

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月14日
  • 已采纳回答 7月6日
  • 创建了问题 7月5日

悬赏问题

  • ¥15 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错