private void fixedRotate(int o,int i,double t,double x,double y)
{
translate(o, i, -x, -y);
rotate(o, i, t);
translate(o, i, x, y);
}
private void rotate(int o,int i,double t)
{
double x1, y1;
x1 = x[o, i];
y1 = y[o, i];
x[o, i] = x1 * Math.Cos(t) - y1 * Math.Sin(t);
y[o, i] = x1 * Math.Sin(t) + y1 * Math.Cos(t);
}
因此,从 translate() 方法,该点指向 (0,0) 点。然后旋转完成,点再次平移。但是在 rotate() 方法中,x1 和 x2 将始终为 0。所以 x[o,i] y[o,i] 都是 0。据我所知,这段代码应该将点返回到同一个地方。但是代码运行良好。请解释。提前致谢!
守候你守候我
相关分类