00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "PSCalib/SegGeometry.h"
00017
00018
00019
00020
00021 #include <math.h>
00022
00023
00024 #include <iostream>
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 namespace PSCalib {
00035
00036
00037
00038
00039
00040 void rotation_ang(const double* x, const double* y, unsigned size, double angle_deg, double* xrot, double* yrot)
00041 {
00042 const double angle_rad = angle_deg * DEG_TO_RAD;
00043 const double C = cos(angle_rad);
00044 const double S = sin(angle_rad);
00045 rotation_cs(x, y, size, C, S, xrot, yrot);
00046 }
00047
00048
00049
00050 void rotation_cs(const double* x, const double* y, unsigned size, double C, double S, double* xrot, double* yrot)
00051 {
00052 for (unsigned i=0; i<size; i++, xrot++, yrot++, x++, y++) {
00053 *xrot = *x *C - *y *S;
00054 *yrot = *y *C + *x *S;
00055 }
00056 }
00057
00058
00059
00060 double min_of_arr(const double* arr, unsigned size)
00061 {
00062 double min=arr[0]; for(unsigned i=1; i<size; ++i) { if(arr[i] < min) min=arr[i]; }
00063 return min;
00064 }
00065
00066
00067
00068 double max_of_arr(const double* arr, unsigned size)
00069 {
00070 double max=arr[0]; for(unsigned i=1; i<size; ++i) { if(arr[i] > max) max=arr[i]; }
00071 return max;
00072 }
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089 }
00090
00091