def RotateByRadians(points, radians): newPoints = [] c = Utils.Centroid(points) cos = math.cos(radians) sin = math.sin(radians) cx = c.X cy = c.Y counts = len(points) for i in range(counts): p = points[i] dx = p.X - cx dy = p.Y - cy q = PointR() q.X = dx * cos - dy * sin + cx q.Y = dx * sin + dy * cos + cy newPoints.append(q) return newPoints
def RotatePoint(p, c, radians): q = PointR() q.X = (p.X - c.X) * math.cos(radians) - (p.Y - c.Y) * math.sin(radians) + c.X q.Y = (p.X - c.X) * math.sin(radians) + (p.Y - c.Y) * math.cos(radians) + c.Y return q