In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

Solved

Posted on 2008-10-09

Hello Experts,

I have the following code which shows the rotation of a 2D polygon and what i want is to modify it using a compound matrix transformation so that the square rotates about an arbitrary point.

Can anyone help me how can i do such a thing ??

Thanks in advance

I have the following code which shows the rotation of a 2D polygon and what i want is to modify it using a compound matrix transformation so that the square rotates about an arbitrary point.

Can anyone help me how can i do such a thing ??

Thanks in advance

```
close all;
clear all;
% a 2D pologyon
p=[-1 1 1 -1 -1 ; -1 -1 1 1 -1];
% points p = in homogeneous coord
p(3,:)=1;
% axes for plotting the animation
figure;
hold on;
axis([-6 6 -6 6]);
axis equal;
for theta=0:0.005:2*pi
R=[cos(theta) -sin(theta) 0 ; sin(theta) cos(theta) 0 ; 0 0 1];
pdash=R*p;
pdash(1,:)=pdash(1,:)./pdash(3,:);
pdash(2,:)=pdash(2,:)./pdash(3,:);
cla;
plot(pdash(1,:),pdash(2,:),'b');
drawnow;
end
```

3 Comments

Here you are the modified code:

You can learn more here:

Transforming Objects - MATLAB

```
function rotsquare
close all;
clear all;
% a 2D pologyon
p=[-1 1 1 -1 -1 ; -1 -1 1 1 -1];
% points p in XY plane
p(3,:)=0;
% points p = in homogeneous coord
p(4,:)=1;
% axes for plotting the animation
figure;
hold on;
axis([-6 6 -6 6]);
axis equal;
%Rotate about the upper right corner (1,1)
Tx1 = makehgtform('translate',[-1 -1 0]);
Tx2 = makehgtform('translate',[ 1 1 0]);
for theta=0:0.005:2*pi
R=makehgtform('zrotate',theta);
pdash=Tx2*R*Tx1*p;
cla;
plot(pdash(1,:),pdash(2,:),'b');
drawnow;
end
```

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will show, step by step, how to integrate R code into a R Sweave document

This is a research brief on the potential colonization of humans on Mars.

Course of the Month11 days, 16 hours left to enroll

Join the community of 500,000 technology professionals and ask your questions.