예제 #1
0
    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
예제 #2
0
 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