python逆时针旋转一个角度

时间:2016-03-10 00:45:40

标签: python rotation point

我有这种方法可以逆时针旋转一个点。

def rotate(self, rad):
    self.x = math.cos(rad)*self.x - math.sin(rad)*self.y
    self.y = math.sin(rad)*self.x + math.cos(rad)*self.y

但是当我向它传递一个旋转点时,只有x坐标正确旋转。例如,我试图将点(0,25)旋转π/ 3。我应该得到(-22,13)因为我正在回答答案。相反,我得到了(-22,-6)。

2 个答案:

答案 0 :(得分:0)

此处的问题是您保存function run(callback){ for(var i = 0; i < urls.length; i++){ request(url, function(error, resp, body){ //uses cheerio to iterate through some elements on the page //then saves to an object for a future response callback(); }); } 的新值并使用相同的值作为计算self.x的输入

试试这个:

self.y

答案 1 :(得分:0)

是的,您在第一个等式中更改了x。因此

self.x = math.cos(rad)*self.x - math.sin(rad)*self.y

self.x = 0 - 6

所以第二个等式是

 self.y = math.sin(rad)*self.x + math.cos(rad)*self.y
 self.y = math.sin(math.pi/3)*(-6) + math.cos(math.pi/3)*25

>>> def rotate(x, y, rad):
        print x, y, rad
        xx = math.cos(rad)*x - math.sin(rad)*y
        yy = math.sin(rad)*x + math.cos(rad)*y
        print xx, yy
        return(xx, yy)

>>> rotate(0, 25, math.pi/3)
0 25 1.0471975512
-21.6506350946 12.5
(-21.650635094610966, 12.500000000000004)