Polar coordinate system
극좌표계(極座標系, 영어: polar coordinate system)는 평면 위의 위치를 각도와 거리를 써서 나타내는 2차원 좌표계이다. 극좌표계는 두 점 사이의 관계가 각이나 거리로 쉽게 표현되는 경우에 가장 유용하다. 데카르트 좌표계에서는 삼각함수로 복잡하게 나타나는 관계가 극좌표계에서는 간단하게 표현되는 경우가 많다. 2차원 좌표계이기 때문에 극좌표는 반지름 성분과 각 성분의 두 성분으로 결정되며 주로 \(r\)로 나타내는 반지름 성분은 극(데카르트 좌표에서 원점)에서의 거리를 나타낸다. 주로 \(\theta\) 로 나타내는 각 성분은 0°(데카르트 좌표계에서 x축의 양의 방향에 해당)에서 반시계 방향으로 잰 각의 크기를 나타낸다.
How does it work?
As you know, a line in the image space can be expressed with two variables. For example:
- In the Cartesian coordinate system: Parameters: (m,b).
- In the Polar coordinate system: Parameters: (r,θ)
Hough_Lines_Tutorial_Theory_0.jpg
\(y = (−cosθ * sinθ)x + (r sinθ)\)
극좌표와 데카르트 좌표 사이의 변환
r와 θ는 삼각함수를 이용해 데카르트 좌표의 x와 y로 변환할 수 있다:
\(\begin{align} x &= r \cos \theta \\ y &= r \sin \theta \end{align}\)
데카르트 좌표의 x와 y는 극좌표의 r로 변환할 수 있다:
\(r^{2} = x^{2} + y^{2} (피타고라스 정리 사용)\)
중점(cx,cy) 에서 임의의 각도(a)로 x만큼 이동한 좌표 (x2,y2) 를 구하는 python 코드
import math
def polar_to_cartesian(cx, cy, x, a):
x2 = cx + x * math.cos(math.radians(a))
y2 = cy + x * math.sin(math.radians(a))
return x2, y2