How do I rotate a square /rectangle using line as the reference point? Thank you

2 visualizaciones (últimos 30 días)
clc
clear all
close all
polyin = polyshape([0 1 1 0],[0 0 10 10]); %original shape
c1=rotate(polyin,-1.64329,[1 0]);
[x,y]=centroid(polyin);
[x1,y1] = centroid(c1);
plot([polyin c1])
axis equal
hold on
plot(x,y,'r*',x1,y1,'r*')
hold off

Respuestas (1)

Adam Danz
Adam Danz el 15 de En. de 2023
Editada: Adam Danz el 23 de En. de 2023
I believe you're asking how to rotate the polyshape about its centerpoint. If so, specify the reference point of rotation using the thrid argument in polyout = rotate(polyin,theta,refpoint). The center point is returned by centroid().
polyin = polyshape([0 1 1 0],[0 0 10 10]); %original shape
[x,y]=centroid(polyin); % center point
c1=rotate(polyin,-1.64329,[x,y]); % rotate about center point
[x1,y1] = centroid(c1);
plot([polyin c1])
axis equal
hold on
plot(x,y,'r*',x1,y1,'r*')
hold off

Categorías

Más información sobre Elementary Polygons en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by