| using System;
public class Point {
public enum PointRepresentation {Polar, Rectangular}
private double r, a; // polar data repr: radius, angle
// Construct a point with polar coordinates
public Point(double r, double a){
this.r = r;
this.a = a;
}
// Construct a point, the representation of which depends
// on the third parameter.
public Point(double par1, double par2, PointRepresentation pr){
if (pr == PointRepresentation.Polar){
r = par1; a = par2;
}
else {
r = RadiusGivenXy(par1,par2);
a = AngleGivenXy(par1,par2);
}
}
private static double RadiusGivenXy(double x, double y){
return Math.Sqrt(x * x + y * y);
}
private static double AngleGivenXy(double x, double y){
return Math.Atan2(y,x);
}
// Remaining Point operations not shown
} |