Advertisement
LuaPacyk

Is vector watching to dot(0, 0, 0)

Nov 3rd, 2023
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.00 KB | Gaming | 0 0
  1. function isVectorWatchingMe(startPoint, endPoint, error)
  2.     function isInSphere(pointArr, radius)
  3.         return math.sqrt(pointArr[1]^2+pointArr[2]^2+pointArr[3]^2) <= radius
  4.     end
  5.     function len(point1, point2)
  6.         return math.sqrt((point1[1]-point2[1])^2+(point1[2]-point2[2])^2+(point1[3]-point2[3])^2)
  7.     end
  8.     function threshold(from, to, value)
  9.         if value <= to or value >= from then
  10.             return true
  11.         end
  12.         return false
  13.     end
  14.     local ang = {
  15.         {
  16.             math.atan2(startPoint[1], startPoint[2]),
  17.             math.atan2(startPoint[3], startPoint[2])
  18.         },
  19.         {
  20.             math.atan2(endPoint[1], endPoint[2]),
  21.             math.atan2(endPoint[3], endPoint[2])
  22.         }
  23.     }
  24.     if error == 0 or error == nil then
  25.         return ang[1][1] == ang[2][1] and ang[1][2] == ang[2][2]
  26.     else
  27.         return math.sqrt((ang[1][1] - ang[2][1])^2 + (ang[1][2] - ang[2][2])^2) <= error^2  
  28.     end
  29.     return false
  30. end
  31. -- next code you do not need, this is just for test.
  32. info = {        
  33. {0, 0, 0},
  34. {4, 4, 4},
  35. {3, 3, 3}
  36. }
  37. print(isVectorWatchingMe(info[2], info[3], 0.1))
Tags: lua Stormworks
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement