How to rotate points on 2D coordinate systems

299 次查看(过去 30 天)
I have some points on a 2D Cartesian coordinate system. I want to rotate all these points 90 degrees counterclockwise. What is the best solution? (When I work with 3D coordinates, I use “view” to change the view direction, but apparently, it doesn’t work with 2D coordinates)

采纳的回答

John Chilleri
John Chilleri 2017-2-6
Hello,
You can rotate your points with a rotation matrix:
Here's a simple implementation,
% Create rotation matrix
theta = 90; % to rotate 90 counterclockwise
R = [cosd(theta) -sind(theta); sind(theta) cosd(theta)];
% Rotate your point(s)
point = [3 5]'; % arbitrarily selected
rotpoint = R*point;
The rotpoint is the 90 degree counterclockwise rotated version of your original point.
Hope this helps!
  4 个评论
Ria
Ria 2024-2-12
Hello, if you needed the rotation clockwise, could you just reverse each sign of cosd and sind?
George Abrahams
George Abrahams 2024-2-12
@Ria You have two options. First option, set theta, the angle of rotation, to -90. Second option, the inverse of a rotation matrix is its transpose, , so transpose the matrix. In MATLAB this is typically achieved with the .' syntax.
R = [cosd(-90) -sind(-90); sind(-90) cosd(-90)]
R = 2×2
0 1 -1 0
R = [cosd(90) -sind(90); sind(90) cosd(90)].'
R = 2×2
0 1 -1 0

请先登录,再进行评论。

更多回答(3 个)

Amit
Amit 2023-3-29
Write and execute a MATLAB program for geometric modeling of a parametric circle with center at any point {xc,yc}, radius R and lying in the X-Y plane. Test your program with R=40 mm and center at both the origin and at {10,10} for estimating the point and tangent vector at any given parameter value 0<=u<=1.

Amit
Amit 2023-3-29
Write and execute a MATLAB program for geometric modeling of a parametric circle with center at any point {xc,yc}, radius R and lying in the X-Y plane. Test your program with R=40 mm and center at both the origin and at {10,10} for estimating the point and tangent vector at any given parameter value 0<=u<=1.
Write the Matlab code for both the original parametric equation and computationally efficient parametric equation. Compare the computational times.

Amit
Amit 2023-3-29
a) Write and execute a MATLAB program to plot a planar parametric curve whose x- and y- axis modeled using cubic polynomial of the form: X(u) =A*u^3+B*u+C Y(u) =E*u^3+F* u^2+G Where 0 ≤ u ≤ 1 is the parameter, and A, B, C, E, F, G are the polynomial coefficients. Your program should work for any user supplied input of these polynomial coefficients.
b) Write Matlab program to generate and plot a the Hermite cubic curve for any set of two control points and two tangent vectors. Validate your code with sample data given below: P0 = [1, 1], P’0 = [0.6, 0.8], P1= [8, 2] and P’1 = [-0.4472, -0.8944].
Also include in the program the facility of putting point at the specified u-value and an arrow for the tangent vector at that point.

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by