V2d Correlator::centroid() { V2d centroid=V2d(0,0); for (int i=1;i<=xs.len;i++) { centroid=centroid+V2d(xs.num(i),ys.num(i))*ws.num(i); } centroid=centroid/totalweight(); return centroid; }
float Correlator::angerror(float a) { V2d ctr=centroid(); float error=0; for (int i=1;i<=xs.len;i++) { V2d v=V2d(xs.num(i),ys.num(i))-ctr; error+=sqrt(square(v.x*sin(a)+v.y*cos(a)))*ws.num(i); } return error/totalweight(); }
/** * \brief Construct Disk image adapter * * \param size image size * \param center center of the image * \param r radial angle of the disk * \param angularpixelsize size of a pixel in radians per pixel */ DiskImage::DiskImage(const ImageSize& size, const ImagePoint& center, double r, double angularpixelsize, double weight) : CircularImage(size, center, angularpixelsize, weight), _r(r) { _interiorvalue = CircularImage::weight() / totalweight(); }