我有一个2-D矩形,我想逆时针旋转45度。我使用了MatLab帮助,但那里的功能没有给我我想要的结果。我基本上有这样的数字: Simple MatLab plot 我想将它旋转45度。我怎样才能做到这一点?
根据评论,我决定尝试手动计算所有点,只是为了检查我是否可以做到这一点,结果证明我无法获得旋转的矩形。代码是:
function []=stress_rate_tensor(t)
clear all
clc
plot(0.5, -0.5, 'ob')
plot(-0.5, -0.5, 'ob')
plot(0.5, 0.5, 'ob')
plot(-0.5, 0.5, 'ob')
line([-0.5 0.5], [-0.5 -0.5],'Color','k','LineWidth',1)
line([0.5 0.5], [-0.5 0.5],'Color','k','LineWidth',1)
line([-0.5 0.5], [0.5 0.5],'Color','k','LineWidth',1)
line([-0.5 -0.5], [-0.5 0.5],'Color','k','LineWidth',1)% prints the first rectangle
hold off
axis([-1.5 1 -1 1])
hold on
plot(0.5, 0.5, 'ob')
plot(-0.5, -0.5, 'og')
plot(-1.16, 0.25, 'or')
plot(-0.41, 0.91, 'oy')
line([-1.16 0.25], [-0.5 -0.5],'Color','k','LineWidth',1)
line([-0.41 0.91], [-1.16 0.25],'Color','k','LineWidth',1)
line([-1.16 0.25], [-0.41 0.91],'Color','k','LineWidth',1)
line([-0.5 -0.5], [-1.16 0.25],'Color','k','LineWidth',1) % prints the second rectangle
这不是我想要的。我的代码有问题吗?
答案 0 :(得分:2)
以下是使用hgtransform
的一段代码(一个可以包含其他对象的对象,可让您将hgtransform及其子视为单一实体,其可见性,大小,方向等)和makehgtform
(围绕z轴旋转pi/4
弧度)。
% draw square in subplot 1
x1=0.5;
x2=-0.5;
y1=0.3;
y2=-0.3;
x = [x1, x2, x2, x1, x1];
y = [y1, y1, y2, y2, y1];
h = plot(x, y, 'b-', 'LineWidth', 3); % handle of the plot is h
xlim([-1, 1]);
ylim([-1, 1]);
axis square
pause % press the space bar
%rotate square
t = hgtransform('Parent',gca);
set(h,'Parent',t)
Txy = makehgtform('zrotate',pi/4); % define a transform matrix
set(t,'Matrix',Txy)