How do I rotate a square /rectangle using line as the reference point? Thank you
Show older comments
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
1 Comment
DGM
on 15 Jan 2023
Using what line? Using it as a reference in what way?
Answers (1)
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
1 Comment
Juan Jiménez
on 28 May 2025
Thank u crack! You will be part of my thesis
Categories
Find more on Polygonal Shapes in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
