数学 {旋转}
旋轉
性質
#將左下角位於原點的 正方形 繞正方形中心 逆時針旋轉90度#
公式為(x,y) -> (L-y,x)
(L為正方形邊長), 這個公式 可以直接通過 點 繞正方形的中心(L/2, L/2)
旋轉的公式來計算出來;
.
舉個例子, 對於N*N
的陣列 (點位於[0,1,...,N-1]
), 她裡面的點(x,y)
(雖然是整數 但我們上面的公式 是更泛化的 既包含整數 也可以包含小數), 此時正方形邊長為N-1
, 即逆時針旋轉 的結果是 (N-1-y, x)
;
@DELI;
#點A 繞點B 逆時針旋轉#
void Point::Set_rotate( const Point & _center, Tools::Double _radian){
//< @IF:[`radian= [0, +infty)`] 将当前点 绕着`center`点 *逆时针*旋转 `radian`弧度; @ELSE:[`radian= (0, -infty)`] 表示順时针旋转`|radian|`;
Tools::Double dx = X - _center.X, dy = Y - _center.Y;
X = _center.X + dx * cos( _radian) - dy * sin( _radian);
Y = _center.Y + dx * sin( _radian) + dy * cos( _radian);
}
@DELI;
#將整個坐標系 繞源點 逆時針旋轉X#
其實這就等價於, 讓空間的任意點 繞原點 順時針旋轉X;