游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: 蜜蜂巢

位置如何转为角度?

[复制链接]

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-11-20 10:10:00 | 显示全部楼层

Re:位置如何转为角度?

我真的很努力当然猜了。。。没办法,真的猜不懂。。。你能不能举个更加好的例子,能用数学语言描述的就描述。。。
你画个图示意一下。我觉得你说的可能是大地方位角。

14

主题

283

帖子

293

积分

中级会员

Rank: 3Rank: 3

积分
293
QQ
发表于 2005-11-21 00:08:00 | 显示全部楼层

Re:位置如何转为角度?

如果用反正切函数求的话会有问题的...
放到平面直角坐标系中,当角度是90度时,也就是tan(angle) = (yb-ya)/(xb-xa)中,除数是0了,会出错..所以要事先判断xb-xa=0的情况

12

主题

423

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
 楼主| 发表于 2005-11-26 11:00:00 | 显示全部楼层

Re:位置如何转为角度?

  真不好意思,我的糊涂问题让大家糊涂了。
没想到位置转角度这么难算,要什么样才能把的我想法明确的表达出来呢?
好像wangh的:
  楼主的意思是求A点到B点的矢量的角度
  不应该说是"即两点的角度",两点确定不了角的l
说对,那是不是如lights所说的
  angle = atan( (yb-ya)/(xb-xa));
angle就是所得的角度了呢?
可是我试过了,这样好像只能算出90度以内的呀。
想象一下,场景中的某一个角色相对另一个角色的角度是多少,
该什么算出来?

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-11-26 20:48:00 | 显示全部楼层

Re:位置如何转为角度?

我确定其问题了,一个向量是AB,一个向量是X轴正方向。
知道AB点,求AB和x轴正方向的夹角。

算得出180度的,分象限判断补足另外的180度呀.
用三角函数的话一定要分象限判断了,一次求不出!

53

主题

419

帖子

451

积分

中级会员

Rank: 3Rank: 3

积分
451
发表于 2005-11-26 21:44:00 | 显示全部楼层

Re:位置如何转为角度?

我的射击游戏中一直用的方法,不知道效率怎么样,用起来很好

int ASK_a(int X1,int Y1,int X2,int Y2)   /*得到中心点到目标点的角度*/
{
   double duibian,linbian;

   double m=0;

   if(X1==X2&&Y1==Y2){return(-1);}

   if(X2>X1)
   linbian=X2-X1;
   else
   linbian=X1-X2;

   if(Y2>Y1)
   duibian=Y2-Y1;
   else
   duibian=Y1-Y2;


   m=atan2(duibian,linbian)/3.1415*180;  
  /*atan2返回y/x的反正切值*/

        if(X1>X2&&Y1>Y2) {m=180+m;}

   else if(X1<X2&&Y1>Y2) {m=360-m;}

   else if(X1>X2&&Y1<Y2) {m=180-m;}

   else if(X1>X2&&Y1<Y2) {;}

   else if(X1<X2&&Y1==Y2) {m=0;}

   else if(X1==X2&&Y1<Y2) {m=90;}

   else if(X1>X2&&Y1==Y2) {m=180;}

   else if(X1==X2&&Y1>Y2) {m=270;}

   return(m);




}


我的屏幕坐标是

         上270

左180           右0

         下90  


这个函数自己用了3年了,哈哈
如果大家觉得需要改进,可以说说~~~欢迎

12

主题

423

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
 楼主| 发表于 2005-12-8 12:11:00 | 显示全部楼层

Re:位置如何转为角度?

  谢谢你happysnoopy,谢谢大家!可是还是用不上因为J2ME里都没有atan2该什么办呢?
也没有浮点运算,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 21:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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