def transform_point(point, transform): """transform a point from from_cs to to_cs""" hpoint = Vec(point) hpoint.append(1.0) hres = transform.mmul(hpoint) res = vector(hres[1:-1]) / hres[-1] return res
def transform(self, t): """returns a new configuration, which is this one transformed by matrix t""" newmap = {} for v in self.map: p = self.map[v] ph = Vec(p) ph.append(1.0) ph = t.mmul(ph) p = vector(ph[0:-1]) / ph[-1] newmap[v] = p return Configuration(newmap)