adding getShortestRotation(): useful for preventing spins in camera lerps
This commit is contained in:
parent
596a1867c3
commit
3ff1c7a8a7
|
|
@ -1653,6 +1653,21 @@ def lerp(v0, v1, t):
|
|||
"""
|
||||
return v0 + ((v1 - v0) * t)
|
||||
|
||||
def getShortestRotation(start, end):
|
||||
"""
|
||||
Given two heading values, return a tuple describing
|
||||
the shortest interval from 'start' to 'end'. This tuple
|
||||
can be used to lerp a camera between two rotations
|
||||
while avoiding the 'spin' problem.
|
||||
"""
|
||||
start, end = start % 360, end % 360
|
||||
if abs(end - start) > 180:
|
||||
if end < start:
|
||||
end += 360
|
||||
else:
|
||||
start += 360
|
||||
return (start, end)
|
||||
|
||||
def average(*args):
|
||||
""" returns simple average of list of values """
|
||||
val = 0.
|
||||
|
|
|
|||
Loading…
Reference in New Issue