20个点,偏斜30度。 借鉴了别忘记点赞哦。
1、效果
2、代码
function ellipse_point = get_ellipse(center_point, r_a_b, angle_in, point_num)
% 调用例子
% r_a = 20;%长半径
% r_b = 10;%短半径
% angle = 30; % 旋转角度
% a = 20;%圆心横坐标
% b = 10;%圆心纵坐标
% point_num = 20; % 取样点数
% point = get_ellipse([a b], [r_a, r_b],angle,20);
% figure(2)
% plot(point(:,1)',point(:,2)','-')
% axis equal
r_a = r_a_b(1);%长半径
r_b = r_a_b(2);%短半径
angle = deg2rad(angle_in);
a = center_point(1);%圆心横坐标
b = center_point(2);%圆心纵坐标
theta = 0:2*pi/point_num:2*pi; %角度[0,2*pi]
x = a+r_a*cos(theta);
y = b+r_b*sin(theta);
R = [cos(angle) sin(angle) 0; -sin(angle) cos(angle) 0; 0 0 1]; % 旋转矩阵
data_length = length(x);
for i&