普通网站成微网站开发,什么是网络营销最不能忽视的市场细分标准,东南亚vps,怎么查网站注册时间目录
理论公式
matlab代码 理论公式 matlab代码
function [dis,P,Q,L]Circle2PlaneDistance(T,R,n,Pn)
% output
% dis 为最短距离#xff0c;P为距离最短时圆上的点 Q为P对应的投影点 L为最小值有几个
% input
% T为园心到基坐标系的变换矩阵 R为圆半径 n为平面的单位法向…目录
理论公式
matlab代码 理论公式 matlab代码
function [dis,P,Q,L]Circle2PlaneDistance(T,R,n,Pn)
% output
% dis 为最短距离P为距离最短时圆上的点 Q为P对应的投影点 L为最小值有几个
% input
% T为园心到基坐标系的变换矩阵 R为圆半径 n为平面的单位法向量Pn为平面上一点
d 1000;
alf 0;
sym i;
y0;
P[];
Q[];
L 0;
A R*(n(1)*T(1,1)n(2)*T(2,1)n(3)*T(3,1));
B R*(n(1)*T(1,2)n(2)*T(2,2)n(3)*T(3,2));
C n(1)*T(1,4)n(2)*T(2,4)n(3)*T(3,4)-(n(1)*Pn(1)n(2)*Pn(2)n(3)*Pn(3));
if(B0)theta(1) 0;theta(2) pi;i2;if(-1CC1)theta(3) acos(-C);i3;endfor t1:ib sqrt((A*cos(theta(t))B*sin(theta(t))C)^2);if(bd)db;alf theta(t);endif(abs(b) 1e-8)alf theta;P [R*T(1,1)*cos(alf)R*T(1,2)*sin(alf)T(1,4),R*T(2,1)*cos(alf)R*T(2,2)*sin(alf)T(2,4),R*T(3,1)*cos(alf)R*T(3,2)*sin(alf)T(3,4)];tt n(1)*P(1)n(2)*P(2)n(3)*P(3)-(n(1)*Pn(1)n(2)*Pn(2)n(3)*Pn(3));Q [Q;P(1)-n(1)*tt,P(2)-n(2)*tt,P(3)-n(3)*tt];LL1;endend
end
if(A0)theta(1) pi/2;theta(2) -pi/2;i2;if(-1CC1)theta(3) asin(-C);i3;endfor t1:ib sqrt((A*cos(theta(i))B*sin(theta(i))C)^2);if(bd)db;alf theta(t);endif(abs(b) 1e-8)alf theta;P [R*T(1,1)*cos(alf)R*T(1,2)*sin(alf)T(1,4),R*T(2,1)*cos(alf)R*T(2,2)*sin(alf)T(2,4),R*T(3,1)*cos(alf)R*T(3,2)*sin(alf)T(3,4)];tt n(1)*P(1)n(2)*P(2)n(3)*P(3)-(n(1)*Pn(1)n(2)*Pn(2)n(3)*Pn(3));Q [Q;P(1)-n(1)*tt,P(2)-n(2)*tt,P(3)-n(3)*tt];LL1;endend
end
u A*B-B*C;
v 2*A*A-2*B*B-2*A*C;
w -6*A*B;
g 2*B*B-2*A*A-2*A*C;
h A*BB*C;
[u,v,w,g,h];if(u 0v0w0)root 0;i 1;else if(u 0v0)[root,y,i] Solve2OrderEquaton([v,w,g,h]);else if(u 0)[root,y,i] Solve3OrderEquaton([v,w,g,h]);else[root,y,i] Solve4OrderEquaton([u,v,w,g,h]);endendendfor t1:itheta 2*atan(root(t));b sqrt((A*cos(theta)B*sin(theta)C)^2);if(bd)db;alf theta;endif(abs(b) 1e-8)alf theta;P [R*T(1,1)*cos(alf)R*T(1,2)*sin(alf)T(1,4),R*T(2,1)*cos(alf)R*T(2,2)*sin(alf)T(2,4),R*T(3,1)*cos(alf)R*T(3,2)*sin(alf)T(3,4)];tt n(1)*P(1)n(2)*P(2)n(3)*P(3)-(n(1)*Pn(1)n(2)*Pn(2)n(3)*Pn(3));Q [Q;P(1)-n(1)*tt,P(2)-n(2)*tt,P(3)-n(3)*tt];LL1;endend
TB alf*180/pi;
dis d;
if(abs(dis) 1e-8)P [R*T(1,1)*cos(alf)R*T(1,2)*sin(alf)T(1,4),R*T(2,1)*cos(alf)R*T(2,2)*sin(alf)T(2,4),R*T(3,1)*cos(alf)R*T(3,2)*sin(alf)T(3,4)];tt n(1)*P(1)n(2)*P(2)n(3)*P(3)-(n(1)*Pn(1)n(2)*Pn(2)n(3)*Pn(3));Q [P(1)-n(1)*tt,P(2)-n(2)*tt,P(3)-n(3)*tt];LL1;
end
endfunction [root,y,i] Solve4OrderEquaton(parameter)
aparameter(2)/parameter(1);
bparameter(3)/parameter(1);
cparameter(4)/parameter(1);
dparameter(5)/parameter(1);a31;
b3-b;
c3(a*c-4*d);
d3-(a^2*d-4*b*dc^2);
parameter3[a3,b3,c3,d3];
[root3,y3,i3] Solve3OrderEquaton(parameter3);
i0;
root[];
for j1:length(root3)if(a^2/4-broot3(j)0||root3(j)^2/4-d0)continue;endalphasqrt(a^2/4-broot3(j));betasqrt(root3(j)^2/4-d);if(a*root3(j)/2-c0)a211;b21a/2-alpha;c21root3(j)/2-beta;parameter21[a21,b21,c21];[root21,y21,i21] Solve2OrderEquaton(parameter21);a221;b22a/2alpha;c22root3(j)/2beta;parameter22[a22,b22,c22];[root22,y22,i22] Solve2OrderEquaton(parameter22);elsea211;b21a/2-alpha;c21root3(j)/2beta;parameter21[a21,b21,c21];[root21,y21,i21] Solve2OrderEquaton(parameter21);a221;b22a/2alpha;c22root3(j)/2-beta;parameter22[a22,b22,c22];[root22,y22,i22] Solve2OrderEquaton(parameter22);endroot4{j}[root21,root22];i4{j}[i21,i22];root[root,root4{j}];iii21i22;break
end
for i_indexlength(root):-1:1for ji_index-1:-1:1if(abs(root(i_index)-root(j))0.00001)rootroot(1:length(root)-1);ii-1;break;endend
end
yroot.^4a*root.^3b*root.^2c*rootd;
end
function [root,y,i] Solve3OrderEquaton(parameter)
aparameter(1);
bparameter(2);
cparameter(3);
dparameter(4);
a_2a*a;
a_3a_2*a;
b_2b*b;
b_3b_2*b;
pc/3/a-b_2/9/a_2;
qd/2/ab_3/27/a_3-b*c/6/a_2;
deltaq*qp^3;
if(delta0)i1;rootnthroot(-qsqrt(delta),3)nthroot(-q-sqrt(delta),3)-b/3/a;
elseif(delta0)i2;root(1)-2*nthroot(q,3)-b/3/a;root(2)nthroot(q,3)-b/3/a;
elsei3;alpha1/3*acos(-q*sqrt(-p)/p^2);root(1)2*sqrt(-p)*cos(alpha)-b/3/a;root(2)2*sqrt(-p)*cos(alpha2/3*pi)-b/3/a;root(3)2*sqrt(-p)*cos(alpha4/3*pi)-b/3/a;
end
ya*root.^3b*root.^2c*rootd;
endfunction [root,y,i] Solve2OrderEquaton(parameter)
aparameter(1);
bparameter(2);
cparameter(3);
deltab^2-4*a*c;
if(delta0)i2;root(1)(-bsqrt(delta))/2/a;root(2)(-b-sqrt(delta))/2/a;
elseif(delta0)i1;root-b/2/a;
elsei0;root[];
end
ya*root.^2b*rootc;
end测试代码
Tc1 [ -0.5662 0.7741 0.2831 1.0000;-0.6924 -0.6330 0.3462 1.0000;0.4472 0 0.8944 1.0000;0 0 0 1.0000];
R 3;
n [0 0 1];
pn [0 0 0];
[dis,P,Q] Circle2PlaneDistance(Tc1,R,n,Pn)
测试结果