我有这种方法可以逆时针旋转一个点。
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)。
答案 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)