Reflect a triangle given a mirror line

6 ビュー (過去 30 日間)
DINESH RAMACHANDRAN
DINESH RAMACHANDRAN 2014 年 8 月 19 日
please help me to write the program for the above mentioned question.
  2 件のコメント
David Sanchez
David Sanchez 2014 年 8 月 19 日
How is the triangle given, by three point or three lines?
DINESH RAMACHANDRAN
DINESH RAMACHANDRAN 2014 年 8 月 19 日
its three point triangle....

サインインしてコメントする。

採用された回答

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
DINESH RAMACHANDRAN 2014 年 8 月 19 日
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 Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by