This article contains a sample program for Math.Sin(), Math.Cos() and Math.ArcTan() operations.

# Subroutine Using Math.Sin() and Math.Cos()

Subroutine Math_PolarToCartesian() uses Math.Sin() and Math.Cos() operations to calculate Cartesian coordinate from polar coordinate.

```Sub ````Math_PolarToCartesian`
`  ``' Math | convert polar coordinate to Cartesian coordinate`
`  ``' param r, a - polar Coordinate`
`  ``' return x, y - Cartesian coordinate`
`  ````_a ````= ``Math``.``GetRadians``(``a``)`
`  ````x ````= ``r ` `* ``Math``.``Cos``(``_a``)`
`  ````y ````= ``r ` `* ``Math``.``Sin``(``_a``)`
`EndSub`

# Subroutine Using Math.ArcTan()

Subroutine Math_CartesianToPolar() uses Math.ArcTan() operation to calculate polar coordinate from Cartesian coordinate.

```Sub ````Math_CartesianToPolar`
`  ``' Math | convert Cartesian coordinate to polar coordinate`
`  ``' param x, y - Cartesian coordinate`
`  ``' return r, a - polar Coordinate (0<=a<360)`
`  ````r ````= ``Math``.``SquareRoot``(````x ````* ``x ` `+ ``y ````* ````y``)`
`  ````If ````x ``= ` `0 ``And ````y ````> ``0 ` `Then`
`    ````a ````= ``90 ` `' [degree]`
`  ````ElseIf ````x ``= ` `0 ``And ````y ````< ``0 ` `Then`
`    ````a ````= ``-``90`
`  ````ElseIf ````x ``= ` `0 ``And ````y ````= ``0 ` `Then`
`    ````a ````= ``0`
`  ``Else`
`    ````a ````= ``Math``.``ArcTan``(````y ````/ ``x````) ````* ``180 ` `/ ``Math``.``Pi`
`  ``EndIf`
`  ``' at this point -90<=a<=90`
`  ````If ````x ``< ` `0 ``Then`
`    ````a ````= ``a ` `+ ``180`
`  ````ElseIf ````x ``>````= ````0 ``And ` `y ``< ````0 ````Then`
`    ````a ````= ``a ` `+ ``360`
`  ``EndIf`
`  ``' at this point 0<=a<360`
`EndSub`

# Test Program

Program JXB040 is a test code for these subroutines above.  The usage is just moving mouse on the program window.  The top x, y are got by Mouse.X and Mouse.Y .  The second r and a are calculated with Math_CartesianToPolar().  The last x and y are calculated with Math_PolarToCartesian(). 