Wtransf compute_xf(CWpt_list& p) { Wpt c = p.average(); double s = p.spread(); ARRAY<Wvec> v(p.num()); for (int i=0; i<p.num(); i++) { v += (p[i] - c)/s; } assert(v.num() == p.num()); return Wtransf::translation(c) * compute_xf(v) * Wtransf::translation(-c); }
Wtransf compute_xf(CWpt_list& p) { Wpt c = p.average(); double s = p.spread(); vector<Wvec> v(p.size()); for (Wpt_list::size_type i=0; i<p.size(); i++) { v[i] = (p[i] - c)/s; } assert(v.size() == p.size()); return Wtransf::translation(c) * compute_xf(v) * Wtransf::translation(-c); }