# Affine transformation matrix doing translation

Greetings All

I have some test matlab code which can scale and do rotation but the translation (tl value) doesn't seem to be working. I expected the entire object to be moved over x=2 and y=0 but it doesn't move any ideas?

clf; clear all
rp=[0 4 2 -1 0; 0 1 -4 -3 0;0 0 0 0 0] %x-y values
scalenum=2 %scale factor
tx=2;ty=0; %translate values
%
for theta=0:45:90
tl=[1 0 tx; 0 1 ty;0 0 1] %translation
rot=[cosd(theta) -sind(theta) 0; sind(theta) cosd(theta) 0;0 0 1];
%rotation
scale=[scalenum 0 0;0 scalenum 0;0 0 1] %scale
rt=tl*rp %new translation
r=rot*rp %new rotation of points
rs=scale*r %new scale with rotation
hold off
plot(rt(1,:),rt(2,:))
axis([-8 8 -8 8])
grid on
pause(.5)
end;

-
There is no need for the "tia sal22" in the titles of yor questions. If you browse the site bit, you will surely notice that the local custom is to avoid SMS-ish acronyms and that no one signs titles. If you format your code in a legible way, you increase the chances that someone will actually look at it---the FAQ has links which explain how to do that. – Mariano Suárez-Alvarez Jan 25 '11 at 0:51
@Mariano Out of curiosity, what did tia sal22 mean? I've seen it a lot on matlab groups. – Please Delete Account Mar 21 '11 at 22:18

I'm highly suspicious of

rp=[0 4 2 -1 0; 0 1 -4 -3 0;0 0 0 0 0] %x-y values


If you want to do translation you don't need (x, y): you need (x, y, w), where w is the reciprocal scaling factor. So all your points are at infinity, and translating them isn't going to do much.

rp=[0 4 2 -1 0; 0 1 -4 -3 0;1 1 1 1 1] %(x,y,w) values


should get you somewhere.

-
thanks that helped :-) – Rick T Mar 22 '11 at 2:21