求平面任意圆上一点A绕圆滑动θ角后的坐标B

% 圆圈上某点旋转θ角度后的圆上坐标。
x1=100;y1=200;
x0=10;y0=10;

p0=[x0;y0];
p1=[x1;y1];

radius=norm(p0-p1);
figure
plot(p0(1),p0(2),'ro')
hold on
plot(p1(1),p1(2),'b+')

theta=30/180*pi;
yaxis_new=[x1-x0 y1-y0];
xaxis_new=[1 (x0-x1)/(y1-y0)];

R=[xaxis_new;yaxis_new];
R=R/norm(R);
T=p0;
p2_new=[radius*sin(theta);radius*cos(theta)];

R_inv=inv(R);
R_inv=R_inv/norm(R_inv);
p2=R_inv*p2_new+T;

hold on
plot(p2(1),p2(2),'b*')
axis equal
norm(p1-p0)
norm(p2-p0)

p1_new=R*(p1-T);
p0_new=R*(p0-T);

vec1=p1_new-p0_new;
vec2=p2_new-p0_new;
norm(p1_new-p0_new)
norm(p2_new-p0_new)

theta_inv=acos(dot(vec1,vec2)/(norm(vec1)*norm(vec2)))/pi*180
figure
plot(p1_new(1),p1_new(2),'r*')
hold on
plot(p2_new(1),p2_new(2),'b*')
plot(p0_new(1),p0_new(2),'ro')
axis equal

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值