무슨 일 이니?파이썬 cos (90) 및 cos (270) 0이 아닙니다.
SVG 파일에 내 좌표를 출력 할 때 왜 잘못된 위치에서 너무 아름다운 위치를 얻는 지 알아보기 위해 sin 함수와 cos 함수를 테스트합니다. 그래서이 테스트 코드를 만들었습니다.이 테스트 코드는 왜 그 대답이 무엇인지 예측할 수 있습니다. 이상하게도 계산에 영향을 미치는 것은 아무 것도 없지만이 행동을 스스로 추가하지만 단순히 내가 머무를 위치에 대한 위치를 추가합니다. 위치가 0이고 계산 후 0이되면 작동하지 않지만 위치가 1이면 계산 후 1이됩니다.
첫 번째 테스트 :
import math
cX = 2
cY = 2
r = 2
rcX = cX + (r * math.cos(math.radians(0)))
rcY = cY + (r * math.sin(math.radians(0)))
print rcX #4
print rcY #2
r = 1
rlX = rcX + (r * math.cos(math.radians(90)))
rlY = rcY + (r * math.sin(math.radians(90)))
print rlX #4
print rlY #3
r = 4
flX = rlX + (r * math.cos(math.radians(180)))
flY = rlY + (r * math.sin(math.radians(180)))
print flX #0
print flY #3
r = 2
print r * math.cos(math.radians(270))
print flX + (r * math.cos(math.radians(270))) #-3.67394039744e-16 should be 0
print flY + (r * math.sin(math.radians(270))) #1
은 지금은 3 CX를 변경하고이 계산에 영향을주지 않는 경우에도 그것은 작동 :
r * math.cos(math.radians(270))
은 그 계산의 결과에 추가됩니다 the x 좌표
import math
cX = 3
cY = 2
r = 2
rcX = cX + (r * math.cos(math.radians(0)))
rcY = cY + (r * math.sin(math.radians(0)))
print rcX #5
print rcY #2
r = 1
rlX = rcX + (r * math.cos(math.radians(90)))
rlY = rcY + (r * math.sin(math.radians(90)))
print rlX #5
print rlY #3
r = 4
flX = rlX + (r * math.cos(math.radians(180)))
flY = rlY + (r * math.sin(math.radians(180)))
print flX #1
print flY #3
r = 2
print r * math.cos(math.radians(270))
print flX + (r * math.cos(math.radians(270))) #1
print flY + (r * math.sin(math.radians(270))) #1
"-3.67394039744e-16"은 충분히 가깝습니다. – Mysticial
당신은 어떤 결과물을 얻고 있습니까? – Wug
라디안으로 변환 할 때 반올림 오류가 발생한다는 것을 알고 계십니까? –