# Cartesian Coordinates From Degree Angle in Java

## The challenge

Write a simple function that takes polar coordinates (an angle in degrees and a radius) and returns the equivalent cartesian coordinates (rounded to 10 places).

For example:

`coordinates(90,1)` `=> (0.0, 1.0)`

`coordinates(45, 1)` `=> (0.7071067812, 0.7071067812)`

## The solution in Java code

Option 1:

``````import java.awt.geom.Point2D;

class CoordinatesInspector {
Point2D.Double coordinates(Double degrees, Double radius) {
return new Point2D.Double(
}
}
``````

Option 2:

``````import java.awt.geom.Point2D;
import java.math.*;

public class CoordinatesInspector {

public Point2D coordinates(Double degrees, Double radius) {
double x = radius * Math.cos(rd);
double y = radius * Math.sin(rd);
BigDecimal xb = new BigDecimal(x).setScale(10, RoundingMode.HALF_UP);
BigDecimal yb = new BigDecimal(y).setScale(10, RoundingMode.HALF_UP);
return new Point2D.Double(xb.doubleValue(),yb.doubleValue());
}

}
``````

Option 3:

``````import java.awt.geom.Point2D;

public class CoordinatesInspector {

public static Point2D coordinates(Double degrees, Double radius) {
return new Point2D.Double(
);
}

}
``````

## Test cases to validate our solution

``````import java.awt.geom.Point2D;
import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class CoordinatesTest {

@Test public void test_1() {
Point2D result = new CoordinatesInspector().coordinates(90.0,1.0);
assertEquals("Incorrect coordinates", new Point2D.Double(0.0,1.0), result);
}

}
``````

``````import java.awt.geom.Point2D;
import static org.junit.Assert.*;
import org.junit.Test;

public class CoordinatesTest {

@Test public void test_1() {
Point2D result = new CoordinatesInspector().coordinates(90.0,1.0);
assertEquals("Incorrect coordinates", new Point2D.Double(0.0,1.0), result);
}

@Test public void test_2() {
Point2D result = new CoordinatesInspector().coordinates(90.0,2.0);
assertEquals("Incorrect coordinates", new Point2D.Double(0.0,2.0), result);
}

@Test public void test_3() {
Point2D result = new CoordinatesInspector().coordinates(0.0,1.0);
assertEquals("Incorrect coordinates", new Point2D.Double(1.0,0.0), result);
}

@Test public void test_4() {
Point2D result = new CoordinatesInspector().coordinates(45.0,1.0);
assertEquals("Incorrect coordinates", new Point2D.Double(0.7071067812,0.7071067812), result);
}

@Test public void test_5() {
Point2D result = new CoordinatesInspector().coordinates(1090.0,10000.0);
assertEquals("Incorrect coordinates", new Point2D.Double(9848.0775301221,1736.4817766693), result);
}

@Test public void test_6() {
Point2D result = new CoordinatesInspector().coordinates(-270.0,1.0);
assertEquals("Incorrect coordinates", new Point2D.Double(0.0,1.0), result);
}

}
``````