找回密码
 点一下
查看: 7884|回复: 2

求助,如何判断角度左右

[复制链接]
发表于 2022-6-5 12:43:07 | 显示全部楼层 |阅读模式
本帖最后由 竹子 于 2022-6-14 11:48 编辑

假如我目前面对方向90度方向   我的目标在180度方向   如何计算我出我应该往左转呢
发表于 2022-6-9 23:37:15 | 显示全部楼层
作差判断角度
回复

使用道具 举报

 楼主| 发表于 2022-6-14 11:48:08 | 显示全部楼层
已解决,方法如下
function 角度转换 takes real x  returns real   //-180 - 180 转 0-360
    local real r = x
    if((x < 0))then
        set r = 0 - x
        set r = 180 - r
        set r = 180 + r
    endif
    if((x > 180))then
        set r = 180 - x
        set r = r + 180
        set r = 0 - r
    endif
    return r
endfunction
function 角度计算 takes real x , real j , real jd returns real  //自动计算角度 辨别方向  
   local real array r
   local integer i
   if((x != j))then
   set r[1] = GetJdzh(x)
   set r[2] = GetJdzh(j)
   set r[3] = 360 - r[1]
   set r[3] = r[3] + r[2]
   set r[4] = 360
   if((r[3] > 360))then
     set r[3] = r[3] - 360
   endif
   if((r[3] > 180))then
     set r[4] = r[4] - r[3]
     set r[5] = 0 - jd
     set i = 4
     else
     set i = 3
     set r[5] = jd
   endif
   set Wyss[9] = (180 - r[i]) / 180
   if((r[i] <= jd))then
     set Wyss[9] = 1
     return j
   endif
   set r[6] = x + r[5]
   if((r[6] < 0))then
      set r[6] = 360 + r[6]
   endif         
   if((r[6] > 360))then
     set r[6] = r[6] - 360
   endif   
   else
   set Wyss[9] = 1
   return j
   endif   
   return GetJdzh(r[6])
endfunction
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-4 01:28 , Processed in 0.126528 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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