题目:
相似三角形是True
链接:
https://py.checkio.org/en/mission/similar-triangles/
代码:
def angle_s(a):
v01 = (a[1][0]- a[0][0], a[1][1]- a[0][1])
v02 = (a[2][0]- a[0][0], a[2][1]- a[0][1])
s0 = (v01[0]*v02[0] + v01[1]*v02[1])/(v01[0]**2+v01[1]**2)**0.5/(v02[0]**2+v02[1]**2)**0.5
v10 = (-v01[0], -v01[1])
v12 = (a[2][0]- a[1][0], a[2][1]- a[1][1])
s1 = (v10[0]*v12[0] + v10[1]*v12[1])/(v10[0]**2+v10[1]**2)**0.5/(v12[0]**2+v12[1]**2)**0.5
v20 = (-v02[0], -v02[1])
v21= (-v12[0], -v12[1])
s2 = (v20[0]*v21[0] + v20[1]*v21[1])/(v20[0]**2+v20[1]**2)**0.5/(v21[0]**2+v21[1]**2)**0.5
b = []
b.append(s0)
b.append(s1)
b.append(s2)
c = sorted(b)
return c
q = ([(-2,0), (2,4), (-4,-4)], [(-1,0), (3,8), (-9,-8)])
m = 1E-12
if angle_s(q[0])[0] - angle_s(q[1])[0] < m and \
angle_s(q[0])[1] - angle_s(q[1])[1] < m and \
angle_s(q[0])[2] - angle_s(q[1])[2] < m:
r = True
else:
r = False
print(r)