Reflect a triangle given a mirror line

9 次查看(过去 30 天)
please help me to write the program for the above mentioned question.

采纳的回答

David Sanchez
David Sanchez 2014-8-19
Create a m-file with this function:
function S = symetric_P_about_line(P,m,n)
% line of symmetry: y = m*x + n;
Md = zeros(2,1); % Middle point between given point and its symmetric
Md(1) = (P(1) + m*P(2) - m*n)/(m^2 + 1);
Md(2) = m*Md(1) + n;
S = 2*Md - P; % symmetric point of P about given line
And this gives you the symmetric points of your triangle vertices about the symmetry line y=m*x+n:
% triangle (add your points)
A = [1 2];
B = [5 7];
C = [2 9];
M = [A; B; C]; % matrix to hold points
plot(M(:,1),M(:,2),'*')
% line of symmetry (add your m and n)
m = .5;
n = -1;
x = [-100 100];
y = m.*x+n;
hold on
plot(x,y)
hold off
As = symetric_P_about_line(A,m,n);
Bs = symetric_P_about_line(B,m,n);
Cs = symetric_P_about_line(C,m,n);
Ms = [As; Bs; Cs]; % matrix to hold symmetric points
hold on
plot(Ms(:,1),Ms(:,2),'r*')
hold off
axis([-10 20 -10 20])
axis square
  1 个评论
DINESH RAMACHANDRAN
sir, it shows the first statement as error, i.e. Input argument "P" is undefined.

请先登录,再进行评论。

更多回答(2 个)

Ahmet Cecen
Ahmet Cecen 2014-8-19
Look at householder reflectors on wikipedia. The function "flip" might also help.

Roger Stafford
Roger Stafford 2014-8-19
I suggest you look at John D'Errico's advice on this kind or problem at:
https://www.mathworks.com/matlabcentral/newsreader/view_thread/337038

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by