This commit is contained in:
Star Brilliant
2017-07-04 00:58:45 +08:00
parent 73ce323271
commit ac1b0cfd31
2 changed files with 106 additions and 100 deletions

View File

@ -13,6 +13,7 @@ except (AttributeError, ImportError):
extcode = 0
def main():
logging.basicConfig(level=logging.INFO)
for Y in (120, 360):
@ -23,50 +24,54 @@ def main():
logging.info('(%3d, %3d), %4d, %4d => %4d, %4d, %4d, %4d%%' % (X, Y, rotY, rotZ, outX, outY, outZ, scaleX))
CompareMatrix(rotY, rotZ, outX, outY, outZ)
def CompareMatrix(rotY, rotZ, outX, outY, outZ):
def ApproxEqual(a, b, e=0.015):
assert e >= 0
a_b = a-b
a_b = a - b
if -e < a_b < e:
return 0
else:
return a_b
def FormatError(i, j, l, r):
global extcode
if ApproxEqual(l, r) != 0:
extcode = 1
logging.error('l[%s][%s]=%9.6f r[%s][%s]=%9.6f' % (i, j, l, i, j, r))
def sind(x):
return math.sin(x*math.pi/180.0)
def cosd(x):
return math.cos(x*math.pi/180.0)
l = cosd(rotY)*cosd(rotZ)
r = -sind(outX)*sind(outY)*sind(outZ)+cosd(outY)*cosd(outZ)
def sind(x):
return math.sin(x * math.pi / 180.0)
def cosd(x):
return math.cos(x * math.pi / 180.0)
l = cosd(rotY) * cosd(rotZ)
r = -sind(outX) * sind(outY) * sind(outZ) + cosd(outY) * cosd(outZ)
FormatError(0, 0, l, r)
l = cosd(rotY)*sind(rotZ)
r = -cosd(outX)*sind(outZ)
l = cosd(rotY) * sind(rotZ)
r = -cosd(outX) * sind(outZ)
FormatError(0, 1, l, r)
l = sind(rotY)
r = -sind(outX)*cosd(outY)*sind(outZ)-sind(outY)*cosd(outZ)
r = -sind(outX) * cosd(outY) * sind(outZ) - sind(outY) * cosd(outZ)
FormatError(0, 2, l, r)
l = -sind(rotZ)
r = sind(outX)*sind(outY)*cosd(outZ)+cosd(outY)*sind(outZ)
r = sind(outX) * sind(outY) * cosd(outZ) + cosd(outY) * sind(outZ)
FormatError(1, 0, l, r)
l = cosd(rotZ)
r = cosd(outX)*cosd(outZ)
r = cosd(outX) * cosd(outZ)
FormatError(1, 1, l, r)
l = 0
r = sind(outX)*cosd(outY)*cosd(outZ)-sind(outY)*sind(outZ)
r = sind(outX) * cosd(outY) * cosd(outZ) - sind(outY) * sind(outZ)
FormatError(1, 2, l, r)
l = -sind(rotY)*cosd(rotZ)
r = cosd(outX)*sind(outY)
l = -sind(rotY) * cosd(rotZ)
r = cosd(outX) * sind(outY)
FormatError(2, 0, l, r)
l = -sind(rotY)*sind(rotZ)
l = -sind(rotY) * sind(rotZ)
r = -sind(outX)
FormatError(2, 1, l, r)
l = cosd(rotY)
r = cosd(outX)*cosd(outY)
r = cosd(outX) * cosd(outY)
FormatError(2, 2, l, r)
if __name__ == '__main__':