clc;
clear all;
close all;
clf;
%建立单位球面
[x,y,z]=sphere();
h=surf(x,y,z);
h.FaceAlpha = 0.5;%控制球的透明度;
axis equal;
hold on;
%开始建立球面圆一
k=-1;%圆平面与赤道平面夹角的正切,可以说是圆的斜率;
d=0.95;%圆的平面偏离球心的程度;
gamma=pi/4;%给定初始角,类似于正弦曲线的初相
%alpha = 0:pi/100:2*pi;
a=asin(-(d.^2*(1+k.^2)-1).^(1/2)./k)-gamma;%为了确定自变量区间
b=asin((d.^2 *(1+k.^2)-1).^(1/2)./k)-gamma;%为了确定自变量区间
if a<=b
alpha = [-pi+b:pi/10000:a,NaN,b:pi/10000:pi+a];%定义自变量区间
else
alpha = [-pi+a:pi/10000:b,NaN,a:pi/10000:pi+b];
end;
beta=atan(k*sin(alpha+gamma))+asin(d*(1+k.^2).^(1/2)./(1+(k*sin(alpha+gamma)).^2).^(1/2));
%atan为反三角函数,反正切;
r=1;%球的半径,单位球面;
[x,y,z]=sph2cart(alpha,beta,r);
plot3(x,y,z,'Color','b', 'LineWidth',2);%画圆
hold on;
%———–————–—
%开始建立球面水平大圆二
k=0;%圆平面与赤道平面夹角的正切,可以说是圆的斜率;
d=0;%圆的平面偏离球心的程度;
gamma=pi/4;%给定初始角,类似于正弦曲线的初相
a=asin(-(d.^2*(1+k.^2)-1).^(1/2)./k)-gamma;%为了确定自变量区间
b=asin((d.^2 *(1+k.^2)-1).^(1/2)./k)-gamma;%为了确定自变量区间
if a<=b
alpha = [-pi+b:pi/10000:a,NaN,b:pi/10000:pi+a];%定义自变量区间
else
alpha = [-pi+a:pi/10000:b,NaN,a:pi/10000:pi+b];
end
beta=atan(k*sin(alpha+gamma))+asin(d*(1+k.^2).^(1/2)./(1+(k*sin(alpha+gamma)).^2).^(1/2));
%atan为反三角函数,反正切;
r=1;%球的半径,单位球面;
[x,y,z]=sph2cart(alpha,beta,r);
plot3(x,y,z,'Color','k', 'LineWidth',2);%画圆
hold on;
%———–————–—
%开始建立球面圆三
k=-1;%圆平面与赤道平面夹角的正切,可以说是圆的斜率;
d=0;%圆的平面偏离球心的程度;
gamma=pi/4;%给定初始角,类似于正弦曲线的初相
a=asin(-(d.^2*(1+k.^2)-1).^(1/2)./k)-gamma;%为了确定自变量区间
b=asin((d.^2 *(1+k.^2)-1).^(1/2)./k)-gamma;%为了确定自变量区间
if a<=b
alpha = [-pi+b:pi/10000:a,NaN,b:pi/10000:pi+a];%定义自变量区间
else
alpha = [-pi+a:pi/10000:b,NaN,a:pi/10000:pi+b];
end
beta=atan(k*sin(alpha+gamma))+asin(d*(1+k.^2).^(1/2)./(1+(k*sin(alpha+gamma)).^2).^(1/2));
%atan为反三角函数,反正切;
r=1;%球的半径,单位球面;
[x,y,z]=sph2cart(alpha,beta,r);
plot3(x,y,z,'Color','b', 'LineWidth',2);%画圆
hold on;
%———–————–—
axis equal;
hold on;
%—————————
%球的轴线
x= [0,0];
y= [0,0];
z= [-1,1];
plot3(x,y,z,'Color','b', 'LineWidth',2);
hold on;
%—————————
%观察角
view(60,20);
<< · Back Index ·>>