Experimental rotation conversion
This commit is contained in:
parent
6abc7338e2
commit
a18c90d7c3
@ -542,7 +542,7 @@ def ConvertFlashRotation(rotY, rotZ, X, Y, FOV=math.tan(2*math.pi/9.0)):
|
||||
Y = 2*Y-1
|
||||
rotY = WrapAngle(rotY)
|
||||
rotZ = WrapAngle(rotZ)
|
||||
if rotY in (0, 180) or rotZ in (0, 180):
|
||||
if rotY == 0 or rotZ == 0:
|
||||
outX = 0
|
||||
outY = -rotY # Positive value means clockwise in Flash
|
||||
outZ = -rotZ
|
||||
@ -551,19 +551,7 @@ def ConvertFlashRotation(rotY, rotZ, X, Y, FOV=math.tan(2*math.pi/9.0)):
|
||||
rotZ = rotZ*math.pi/180.0
|
||||
outY = math.atan2(-math.sin(rotY)*math.cos(rotZ), math.cos(rotY))*180/math.pi
|
||||
outZ = math.atan2(-math.cos(rotY)*math.sin(rotZ), math.cos(rotZ))*180/math.pi
|
||||
#outX = math.asin(math.sin(rotY)*math.sin(rotZ))*180/math.pi
|
||||
outX = math.acos(math.cos(rotY)/math.cos(outY*math.pi/180.0))*180/math.pi
|
||||
#outX = math.atan2(-math.sin(rotY)*math.cos(rotZ)*abs(math.cos(outY*math.pi/180.0)*(1 if math.sin(outY*math.pi/180.0) >= 0 else -1)), math.cos(rotY)*abs(math.sin(outY*math.pi/180.0)*(1 if math.cos(outY*math.pi/180.0) >= 0 else -1)))*180/math.pi
|
||||
'''
|
||||
print(
|
||||
(rotY*180.0/math.pi, rotZ*180.0/math.pi),
|
||||
(outX, outY, outZ),
|
||||
(
|
||||
math.sin(rotY)*math.sin(rotZ),
|
||||
-(math.sin(rotY)+math.sin(outY*math.pi/180.0)*math.cos(outZ*math.pi/180.0))/math.cos(outY*math.pi/180.0)/math.sin(outZ*math.pi/180.0)
|
||||
)
|
||||
)
|
||||
'''
|
||||
outX = math.asin(math.sin(rotY)*math.sin(rotZ))*180/math.pi
|
||||
if FOV is not None:
|
||||
outX = CalcPerspectiveCorrection(outX, -Y, FOV*0.75)
|
||||
outY = CalcPerspectiveCorrection(outY, X, FOV)
|
||||
|
Loading…
Reference in New Issue
Block a user