Rotation about a point
75 次查看(过去 30 天)
显示 更早的评论
Hi there I have been given a problem:
"A triangle is defined by the points (1, 1), (2, 4) and (7, 2). Using the three constituent simple transformations, transform the triangle with a rotation about the point (1, 3) by 60◦ anti-clockwise".
If I am being honest I have no idea how to start this
Any help would be great
Daniel
2 个评论
采纳的回答
Jim Riggs
2018-11-15
编辑:Jim Riggs
2018-11-15
If you want the equations they are as follows;
X = [1 2 7 1];
Y = [1 4 2 1];
ang = -60 % degrees
Xc = 1; % X cener of rotation
Yc = 3; % Y center of rotation
% Shift X/Y to the rotation center
Xshift = X - Xc;
Yshift = Y - Yc;
% Rotate the coordinates
Xsrot = Xshift*cosd(ang) + Yshift*sind(ang);
Ysrot = -Xshift*sind(ang) + Yshift*cosd(ang);
% Shift the rotated coordinates back to the original reference center
Xrot = Xsrot + Xc;
Yrot = Ysrot + Yc;
Now X,Y is the original triangle and Xrot,Yrot is the rotated triangle
This can be shortened to:
X = [1 2 7 1];
Y = [1 4 2 1];
ang = -60; % degrees
Xc = 1;
Yc = 3;
Xrot = (X-Xc)*cosd(ang) + (Y-Yc)*sind(ang) + Xc;
Yrot = -(X-Xc)*sind(ang) + (Y-Yc)*cosd(ang) + Yc;
0 个评论
更多回答(1 个)
madhan ravi
2018-11-15
编辑:madhan ravi
2018-11-15
x=[1 2 7 1];
y=[1 4 2 1];
fig=figure
h=plot(x,y)
center = [1 3];
rotate(h,center,-60)
title('ROTATED TRIANGLE @CENTER (1,3) anticlockwise')
print(fig,'Rotated_triangle','-dpng')
fig1=figure
plot(x,y)
title('ORIGINAL TRIANGLE')
print(fig1,'Orignal_triangle','-dpng')
4 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!