3차원 공간에 3개의 방향 코사인 l, m, n이 있다고 가정하면 이 방향 코사인으로 직선을 그릴 수 있는지 여부를 확인해야 합니다.
따라서 입력이 l =0.42426 m =0.56568 n =0.7071과 같으면 출력은 벡터 {3, 4, 5}의 방향 코사인이므로 True가 됩니다.
이를 해결하기 위해 다음과 같은 몇 가지 규칙을 따릅니다.
- l =cos(a), 여기서 a는 직선과 x축 사이의 각도입니다.
- m =cos(b), 여기서 b는 직선과 y축 사이의 각도입니다.
- n =cos(c), 여기서 c는 직선과 z축 사이의 각도입니다.
- l^2 + m^2 + n^2 =1
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 각도:=l * l + m * m + n * n
- angle :=소수점 이하 8자리까지 각도 값의 반올림
- if |1 - 각도| <0.0001, 그럼
- 참 반환
- 거짓을 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(l, m, n) : angle = l * l + m * m + n * n angle = round(angle, 8) if abs(1 - angle) < 0.0001: return True return False l = 0.42426 m = 0.56568 n = 0.7071 print (solve(l, m, n))
입력
0.42426, 0.56568, 0.7071
출력
True