Moving, shrinking, expanding triangle by a fixed amount
Ältere Kommentare anzeigen
How can I write a program in Matlab to move a centre ( C ) of triangle to right or left and to shrink/expand its width (L-R) by a fixed amount?

2 Kommentare
Image Analyst
am 15 Jun. 2020
If you know the initial coordinates, simple addition and multiplication will work. It's trivial. Not sure what part you're unsure of - the math or the programming. And not sure why you tagged this as fuzzy membership.
VIVEK PURANIK
am 17 Jun. 2020
Antworten (1)
KSSV
am 17 Jun. 2020
Read about Affine Transofrmations.
A =rand(3,2) ; % A random triangle
patch(A(:,1),A(:,2),'r')
% Move center
for i = 1:10
C = rand(1,2) ;
patch(A(:,1)+C(1),A(:,2)+C(2),'r')
drawnow
endfor
title('Center moved')
% Shrinking
Cx = 1/2 ; Cy = 1/2 ;
C = [Cx 0 ; 0 Cy ] ;
B = (A-mean(A))*C+mean(A) ;
figure
patch(A(:,1),A(:,2),'r')
hold on
patch(B(:,1),B(:,2),'b')
title('Shrinking')
% Expanding
Cx = 2 ; Cy = 2 ;
C = [Cx 0 ; 0 Cy ] ;
B = (A-mean(A))*C+mean(A) ;
figure
patch(B(:,1),B(:,2),'b')
hold on
patch(A(:,1),A(:,2),'r')
title('expaning')
Kategorien
Mehr zu Fuzzy Logic Toolbox finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!