我在Matlab中定义了以下矩形:
A = [-4,-4,4,4,-4;-2,2,2,-2,-2;]
我定义了一个变换矩阵(特殊欧氏(2)),如下:
function T = se2(x, y, theta)
T = [cosd(theta), -sind(theta), x;
sind(theta), cosd(theta), y;
0, 0, 1];
现在,我想将我的形状逆时针旋转45度,使其围绕中心旋转,并相对于新坐标系在新y方向上移动2个单位。 第一个问题是:当像下面这样做时:...
B = se2(0,2,45)*[A;1 1 1 1 1]
当我进行变换时,矩形会正确地旋转但位置不对。这是我的矩形(蓝色),错误的变换(红色)和正确的变换(绿色):
第二个问题是:假设我将该形状在y方向上平移了6个单位。我想绕其新中心逆时针旋转-30度,但按照我展示的方法会导致绕原来的中心旋转。
我应该如何解决这些问题?在Matlab中是否有预定义的函数可以完成这些任务?
以下是我用于绘制形状的代码:
A =
-4 -4 4 4 -4
-2 2 2 -2 -2
plot(A(1,:),A(2,:),'blue')