static double COORD_CAM_ANGLE_deg = 1.38;
public static void Main()
double COORD_CAM_ANGLE_rad = COORD_CAM_ANGLE_deg * Math.PI / 180.0d;
double focus_distance = 0.1895d;
double refference_radius = 0.03d;
double ref_y = -0.02651d;
double ref_z = -0.03050d;
double ref_Rx_rad = 0.0340d;
double ref_Ry_rad = 0.0000d;
double ref_Rz_rad = 0.0230d;
double ref_R = focus_distance + refference_radius;
double ref_rot_deg = 90.0;
double ref_rot_rad = ToRadians(ref_rot_deg);
Point3d O = new Point3d(0, 0, 0);
Point3d O_cam = new Point3d();
Point3d O_cam_shifted = new Point3d();
double Xrand_on_cam_x = -1.0d;
double Xrand_on_cam_y = Math.Abs(Xrand_on_cam_x) * Math.Tan(COORD_CAM_ANGLE_rad);
double[] Xrand_on_cam = new double[] {Xrand_on_cam_x, Xrand_on_cam_y, 0.0d};
double XYrand_on_cam_x = 2.0d;
double XYrand_on_cam_y = 2.0d;
double[] XYrand_on_cam = new double[] {XYrand_on_cam_x, XYrand_on_cam_y, 0.0d};
Coord3d coord_cam = new Coord3d( O, Xrand_on_cam, XYrand_on_cam, "Cam coordinate");
Console.WriteLine(coord_cam);
double Xrand_on_cam_x = -1.0d;
double Xrand_on_cam_y = Math.Abs(Xrand_on_cam_x) * Math.Tan(COORD_CAM_ANGLE_rad);
double[] Xrand_on_cam = new double[] {Xrand_on_cam_x, Xrand_on_cam_y, 0.0d};
double XYrand_on_cam_x = 2.0d;
double XYrand_on_cam_y = 2.0d;
double[] XYrand_on_cam = new double[] {XYrand_on_cam_x, XYrand_on_cam_y, 0.0d};
Coord3d coord_cam = new Coord3d( O, Xrand_on_cam, XYrand_on_cam, "Cam coordinate");
Console.WriteLine(coord_cam);
Point3d One_on_cam = new Point3d(1,0,0,coord_cam);
Console.WriteLine(One_on_cam);
Console.WriteLine("[ " + One_on_cam.X + ", " + One_on_cam.Y + ", " + One_on_cam.Z + " ]" );
Console.WriteLine(Coord3d.GlobalCS);
Console.WriteLine("Hello World");
public static double ToRadians(double val)
return (Math.PI / 180) * val;