Is it possible to express any planar transformation in terms of rotation?

In summary: The question is whether any general planar transformation can be expressed just by rotating the square.In summary, the conversation discusses the calculation of the radius of curvature in a 2-dimensional plane using Frenet-Serret formulas and perpendicular bisector approach. It is noted that for a trajectory generated using just rotation, both approaches lead to the same answer. However, when a trajectory is generated using a mixed transformation involving both rotation and translation, the answers are significantly different. The possibility of expressing any general planar transformation solely by rotation is also questioned. MATLAB code is provided to support the discussion.
  • #1
priyansh
17
0
Hi,

I'm am trying to calculate the radius of curvature of a trajectory in a plane. I am using Frenet-Serret formulas and perpendicular bisector approach to calculate the radius. It comes out that both the approaches lead to same answer when I calculate the radius for a trajectory generated using just rotation transformation. However, when I calculate the radius for a trajectory generated using mixed transformation (involving both rotation and translation) the answers are significantly different. This seems to me as strange as the trajectory must have only one radius at each point though it might vary along the arc length. So, the question boils down to whether it is possible to express any general planar transformation by just rotation?

Thanks.

Regards,
Priyanshu
 
Mathematics news on Phys.org
  • #2
Any comments guys!
 
  • #3
What do you mean by "a trajectory generated using mixed transformation (involving both rotation and translation)"?
 
  • #4
I mean the homogeneous transformation matrix contains entry for both rotation and translation. Also, the rotation and translation vary as the trajectory is generated.
 
  • #5
In 2 dimensions, the answer is yes except for the case of translation without rotation (infinite radius of curvature).

In 3 dimensions, a transformation that consists of a nontrivial rotation and a translation is not necessarily equivalent to a simple rotation. A counterexample is a rotation about some axis combined with translation along the same axis.
 
  • #6
Thanks hamster. But I'm not clear about why is the radius obtained using both the approaches are significantly different when I increase the complexity of the curve in 2 dimensions. Say for t degrees of rotation, I translate by t^n and I vary t from 0 to 100. As I increase the value of n, the answer from both the approaches vary significantly. However, for a rotation+constant translation the radius by two approaches match exactly.
 
  • #7
can you show your calculations?
 
  • #8
Here is the MATLAB Code. Basically I'm applying the calculations to four corners of a square which is being transformed.

clear all
close all
clc

dt = 1;
Scale = 3; % Just defined to care of the plotting stuff
Sx = [0 0 1 1 0];
Sy = [0 1 1 0 0];
Sz = [0 0 0 0 0];
P1 = [];
P2 = [];
P3 = [];
P4 = [];
K = [];
X = [];
Y = [];
Z = [];
Radius = [];
Radius_PB = [];
Tprev = 0;

figure
plot(Sx,Sy)
axis(2*[-10 10 -10 10]*Scale);
grid on;
P = 2*Scale*[Sx; Sy; Sz;ones(size(Sx))];
Pprev = P;

for t = 1:dt:80
% R = makehgtform('zrotate',deg2rad(t),'translate',[(t/40) (t/40) 0]);
R = makehgtform('zrotate',deg2rad(t),'translate',[(t/50)^3 (t/50) 0]); % Homogeneous Transformation matrix
% R = makehgtform('zrotate',deg2rad(t),'translate',[2 4 0]);
% R = makehgtform('zrotate',deg2rad(t));
Pnew = R*P; % Evaluation of transformed points
P1 = [P1 Pnew(1:2,1)];
P2 = [P2 Pnew(1:2,2)];
P3 = [P3 Pnew(1:2,3)];
P4 = [P4 Pnew(1:2,4)];
PC = [P1 P2 P3 P4];

%Radius calculation using Frenet-Serret formulas
dr = (Pnew-Pprev); %Calculating dr
Tnew = [dr(:,1)/(sum(dr(:,1).^2))^0.5,...
dr(:,2)/(sum(dr(:,2).^2))^0.5,...
dr(:,3)/(sum(dr(:,3).^2))^0.5,...
dr(:,4)/(sum(dr(:,4).^2))^0.5,...
dr(:,5)/(sum(dr(:,5).^2))^0.5]; %Calculating dr/ds
dT = (Tnew-Tprev);
dTds = [dT(:,1)/(sum(dr(:,1).^2))^0.5,...
dT(:,2)/(sum(dr(:,2).^2))^0.5,...
dT(:,3)/(sum(dr(:,3).^2))^0.5,...
dT(:,4)/(sum(dr(:,4).^2))^0.5,...
dT(:,5)/(sum(dr(:,5).^2))^0.5];

k = [(sum(dTds(:,1).^2))^0.5,...
(sum(dTds(:,2).^2))^0.5,...
(sum(dTds(:,3).^2))^0.5,...
(sum(dTds(:,4).^2))^0.5]
radius = [1/k(1),1/k(2),1/k(3),1/k(4)]
K = [K; k];
Radius = [Radius; radius];

%Radius calculation using Perperndicular bisector method
drxyz = [dr(1:3,1), dr(1:3,2), dr(1:3,3), dr(1:3,4)];
Z = repmat([0; 0; 1],1,4);
Nr = cross(drxyz,Z);
Nr = [Nr(1:2,1)/sum(Nr(1:2,1).^2)^0.5, -Nr(1:2,2)/sum(Nr(1:2,2).^2)^0.5,...
Nr(1:2,3)/sum(Nr(1:2,3).^2)^0.5, -Nr(1:2,4)/sum(Nr(1:2,4).^2)^0.5];
MP = (Pnew+Pprev)/2;
DMP12 = [MP(1:2,2)-MP(1:2,1)];
DMP34 = [MP(1:2,4)-MP(1:2,3)];
lambda = [inv(Nr(:,1:2))*DMP12, inv(Nr(:,3:4))*DMP34]
r1 = MP(1:2,1)+lambda(1)*Nr(:,1)-Pnew(1:2,1); %Calculating the radius for 1st corner
r2 = MP(1:2,2)+lambda(2)*Nr(:,2)-Pnew(1:2,2);
r3 = MP(1:2,3)+lambda(3)*Nr(:,3)-Pnew(1:2,3);
r4 = MP(1:2,4)+lambda(4)*Nr(:,4)-Pnew(1:2,4);
Radius_PB = [Radius_PB; sum(r1.^2)^0.5, sum(r2.^2)^0.5,sum(r3.^2)^0.5, sum(r4.^2)^0.5 ]

%Plotting and annotating
plot(Pnew(1,:),Pnew(2,:),'-k',P1(1,:),P1(2,:),'-r',P2(1,:),P2(2,:),'-b',P3(1,:),...
P3(2,:),'-g',P4(1,:),P4(2,:),'-y');
text(Pnew(1,1),Pnew(2,1),'1');
text(Pnew(1,2),Pnew(2,2),'2');
text(Pnew(1,3),Pnew(2,3),'3');
text(Pnew(1,4),Pnew(2,4),'4');
axis(2*[-10 10 -10 10]*Scale);
grid on;
pause(0.01);
Pprev = Pnew;
Tprev = Tnew;
% pause;
end

figure
s = length(K)
h = plot(1:s,K(1:s,1),'-b',1:s,K(1:s,2),'-r',1:s,K(1:s,3),'-g',1:s,K(1:s,4),'-y');
axis tight
xlabel('Sample No \rightarrow','fontsize',12)
ylabel('\kappa \rightarrow','fontsize',12);
legend(h,'Vertex 1','Vertex 2','Vertex 3','Vertex 4');
grid on

figure
h = plot(1:s,Radius(1:s,1),'-b',1:s,Radius(1:s,2),'-r',1:s,Radius(1:s,3),'-g',1:s,Radius(1:s,4),'-y');
axis tight
xlabel('Sample No \rightarrow','fontsize',12)
ylabel('Radius of Curvature \rightarrow','fontsize',12);
legend(h,'Vertex 1','Vertex 2','Vertex 3','Vertex 4');
grid on

figure
h = plot(1:s,Radius_PB(1:s,1),'-b',1:s,Radius_PB(1:s,2),'-r',1:s,Radius_PB(1:s,3),'-g',1:s,Radius_PB(1:s,4),'-y');
axis tight
Title(' Radius of Curvature from perpendicular bisector','fontsize',12);
xlabel('Sample No \rightarrow','fontsize',12)
ylabel('Radius of Curvature \rightarrow','fontsize',12);
legend(h,'Vertex 1','Vertex 2','Vertex 3','Vertex 4');
grid on
 
  • #9
Is this related to the navigational problem of moving about the surface of the earth, at sea, say? There are many routes from A to B. One of them requires the navigator to set a single bearing direction, but, in general this is not the shortest route, which would be part of a great circle. The shortest route requires the navigator to keep changing the bearing.
 
  • #10
No, this is just a square in an XY plane which is being transformed in plane.
 

1. Can all planar transformations be expressed as rotations?

Yes, it is possible to express any planar transformation as a combination of rotations. This is known as the rotation theorem.

2. What is a planar transformation?

A planar transformation is a mathematical function that maps points in a plane to new points in the same plane. It can include translations, rotations, reflections, and scaling.

3. What is the rotation theorem?

The rotation theorem states that any planar transformation can be expressed as a combination of rotations around a fixed point. This means that any transformation can be broken down into a series of rotations, making it easier to understand and manipulate.

4. Are there any limitations to the rotation theorem?

Yes, the rotation theorem only applies to planar transformations. It does not work for three-dimensional transformations, as they require more complex operations such as shearing and skewing.

5. How does the rotation theorem apply to computer graphics?

In computer graphics, the rotation theorem is used to simplify and optimize the process of transforming objects in a two-dimensional space. By breaking down a transformation into rotations, it becomes easier to compute and implement in a computer program.

Similar threads

Replies
17
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
4
Views
1K
  • Mechanical Engineering
Replies
5
Views
3K
  • Introductory Physics Homework Help
Replies
9
Views
710
  • Special and General Relativity
Replies
5
Views
961
  • Special and General Relativity
Replies
3
Views
1K
  • Linear and Abstract Algebra
2
Replies
43
Views
5K
  • Mechanical Engineering
Replies
3
Views
2K
Back
Top