level 1
Afterend丿
楼主
Clear["Global`*"]
ho = 1; (*压入深度*)
r0 = 10; (*圆球半径*)
theta = pi/4 (*半个锥角 (O, Pi) *)
eta = pi/180*15 (*压入平面倾角[0, Pi/2] *)
If[eta == O,
{
(*一--一平面倾角为0一一---*)
(*相关运算*)
h = ho + r0/Sin[theta] - r0/Cos[eta];(*锥顶Z坐标*)
n = r0/Sin[theta] - h;(*球心Z坐标相反数*)
al = h*Tan[theta]; (*平面与圆锥圆半径*)
a2 = (r0^2 - n^2)^0.5;(*平面与球圆半径*)
If[r0*Sin[theta] - n < O,
{
{(*显示相贯形体*)
p1 =
ContourPlot3D[
x^2 + y^2 == (h - z)^2 *Tan[theta]^2, {x, -3 h, 3 h}, {y, 0,
6 h}, {z, -h, rO*Sin[theta] - n},
PlotRange \[RightArrow] All, Mesh \[RightArrow] False];
(*圆锥部分*)
p2 =
ContourPlot3D[
x^2 + y^2 + (z + n)^2 == r0^2, {x, -3 h, 3 h}, {y, 0,
6 h}, {z, r0*Sin[theta] - n, h},
PlotRange \[RightArrow] {-3 h,3 h},
Mesh \[RightArrow] False]; (*球部分*)
p3 =
ContourPlot3D[
z == 0, {x, -3 h, 3 h}, {y, 0, 6 h - 1}, {z, -3 h, 3 h},
PlotRange \[RightArrow] {-3h,3 h},
Mesh \[RightArrow] False]; (*压入平面*)
p4 =
ContourPlot3D[
z == r0*Sin[theta] - n, {x, -3 h, 3 h}, {y, -1,
0}, {z, -3 h, 3 h}, PlotRange \[RightArrow] {-3 h, 3 h},
Mesh \[RightArrow] False];(*切圆平面*) Show[p1, p2, p3, p4,
PlotRange \[RightArrow] {-3 h, 3 h},
BoxRatios \[RightArrow] {1, 1, 1},
Axes \[RightArrow] {FalseFalse, False},
Mesh \[RightArrow] False]
,
(*显示截交曲线*)
a := Sqrt[r0^2 - n^2]*Cos[k]; b := Sqrt[r0^2 - n^2]*Sin[k];
c := 0;(*圆球部分*)
q2 =
ParametricPlot3D[{a, b, c}, {k, O, Pi},
PlotStyle \[RightArrow] {Blue}];
Show[q2, PlotRange \[RightArrow] {-3 h, 3 h},
BoxRatios \[RightArrow] {1, 1, 1},
Axes \[RightArrow] {FalseFalse, False}]},
Print[平面与球相交投影面积为],(*求积公式1*)
Sqiu = N[Pi*a2^2], (*求积公式2*)
a := Sqrt[r0^2 - n^2]*Cos[k]; b := Sqrt[r0^2 - n^2]*Sin[k];
c := 0; SS2 =
2*Nlntegrate[b*D[a, k], {k, pi, O},
WorkingPrecision \[RightArrow] 1000,
PrecisionGoal \[RightArrow] 990]; SSqiu = N[Re[SS2],6],(*解析解*)
Clear ["Global`*"],
h = ho + r0/Sin[theta] - r0/Cos[eta];(*锥顶 Z 坐标*)
n = r0/Sin[theta] - h;(*球心 Z 坐标相反数*)
a2 = (r0^2 - n^2)^0.5 ;(*平面与球圆半径*)
Sqiu = Pi*a2*a2;
Simplify[Sqiu]},
{
{(*显示相贯形体*)
pl =
ContourPlot3D[
x^2 + y^2 == (h - z)^2 *Tan[theta]^2, { x, -3 h, 3 h}, { y,
0, 6 h}, { z, -h, rO*Sin[theta] - n} ,
PlotRange \[RightArrow] All,
Mesh \[RightArrow] False];(*圆锥部分*)
p2 =
ContourPlot3D[
x^2 + y^2 + (z + n)^2 == r0^2, {x, -3 h, 3 h}, {y, 0,
6 h}, {z, r0*Sin[theta] - n, h},
PlotRange \[RightArrow] {-3 h, 3 h},
Mesh \[RightArrow] False];(*球部分*)
p3 =
ContourPlot3D[
z == O, {x,-3 h,3 h}, {y,0, 6 h - 1}, {z,-3 h,3 h},
PlotRange \[RightArrow] {-3 h,3 h},
Mesh \[RightArrow] False];(*压入平面*)
p4 =
ContourPlot3D[
z == r0*Sin[theta] - n, {x, -3 h, 3 h}, {y, -1,
0}, {z, -3 h, 3 h}, PlotRange \[RightArrow] {-3 h, 3 h},
Mesh \[RightArrow] False];(*切圆平面*)
Show[p1, p2, p3, p4, PlotRange \[RightArrow] {-3 h, 3 h},
BoxRatios \[RightArrow] {1, 1, 1},
Axes \[RightArrow] {FalseFalse, False},
Mesh \[RightArrow] False]
,
(*显示截交曲线*)
u := h*Tan[theta]*Cos[t];
v := h*Tan[theta]*Sin[t];
w := 0;(*圆锥部分*)
q1 =
ParametricPlot3D[{u,v,w}, {t, O, Pi},
PlotStyle \[RightArrow] {Red}, PlotRange \[RightArrow] All,
DisplayFunction \[RightArrow] ldentity];
Show[q1, PlotRange \[RightArrow] {-3 h, 3 h},
BoxRatios \[RightArrow] {1, 1, 1},
DisplayFunction \[RightArrow] ldentity,
Axes \[RightArrow] {FalseFalse, False}]}, Print[平面与圆锥相交投影面积为],
(*求积公式1*)
Sqiu = N[Pi*al^2],
(*求积公式2*)
u := h*Tan[theta]*Cos[t]; v := h*Tan[theta]*Sin[t];
w := 0;(*圆锥部分*)
SS1 =
2*Nlntegrate[v*D[u, t], {t,pi,0},
WorkingPrecision \[RightArrow] 1000,
PrecisionGoal \[RightArrow] 990];
Szhui = N[Re[SS1], 6], (*解析解*)
Clear ["Global`*"],
h = ho + r0/Sin[theta] - r0/Cos[eta];(*锥顶 Z 坐标*)
n = r0/Sin[theta] - h;(*球心 Z 坐标相反数*)
a1 = h*Tan[theta];(*平面与圆锥圆半径*)
Szhui = Pi*al*al;
Simplify[Szhui]
}]
}]
2021年05月29日 13点05分
1
ho = 1; (*压入深度*)
r0 = 10; (*圆球半径*)
theta = pi/4 (*半个锥角 (O, Pi) *)
eta = pi/180*15 (*压入平面倾角[0, Pi/2] *)
If[eta == O,
{
(*一--一平面倾角为0一一---*)
(*相关运算*)
h = ho + r0/Sin[theta] - r0/Cos[eta];(*锥顶Z坐标*)
n = r0/Sin[theta] - h;(*球心Z坐标相反数*)
al = h*Tan[theta]; (*平面与圆锥圆半径*)
a2 = (r0^2 - n^2)^0.5;(*平面与球圆半径*)
If[r0*Sin[theta] - n < O,
{
{(*显示相贯形体*)
p1 =
ContourPlot3D[
x^2 + y^2 == (h - z)^2 *Tan[theta]^2, {x, -3 h, 3 h}, {y, 0,
6 h}, {z, -h, rO*Sin[theta] - n},
PlotRange \[RightArrow] All, Mesh \[RightArrow] False];
(*圆锥部分*)
p2 =
ContourPlot3D[
x^2 + y^2 + (z + n)^2 == r0^2, {x, -3 h, 3 h}, {y, 0,
6 h}, {z, r0*Sin[theta] - n, h},
PlotRange \[RightArrow] {-3 h,3 h},
Mesh \[RightArrow] False]; (*球部分*)
p3 =
ContourPlot3D[
z == 0, {x, -3 h, 3 h}, {y, 0, 6 h - 1}, {z, -3 h, 3 h},
PlotRange \[RightArrow] {-3h,3 h},
Mesh \[RightArrow] False]; (*压入平面*)
p4 =
ContourPlot3D[
z == r0*Sin[theta] - n, {x, -3 h, 3 h}, {y, -1,
0}, {z, -3 h, 3 h}, PlotRange \[RightArrow] {-3 h, 3 h},
Mesh \[RightArrow] False];(*切圆平面*) Show[p1, p2, p3, p4,
PlotRange \[RightArrow] {-3 h, 3 h},
BoxRatios \[RightArrow] {1, 1, 1},
Axes \[RightArrow] {FalseFalse, False},
Mesh \[RightArrow] False]
,
(*显示截交曲线*)
a := Sqrt[r0^2 - n^2]*Cos[k]; b := Sqrt[r0^2 - n^2]*Sin[k];
c := 0;(*圆球部分*)
q2 =
ParametricPlot3D[{a, b, c}, {k, O, Pi},
PlotStyle \[RightArrow] {Blue}];
Show[q2, PlotRange \[RightArrow] {-3 h, 3 h},
BoxRatios \[RightArrow] {1, 1, 1},
Axes \[RightArrow] {FalseFalse, False}]},
Print[平面与球相交投影面积为],(*求积公式1*)
Sqiu = N[Pi*a2^2], (*求积公式2*)
a := Sqrt[r0^2 - n^2]*Cos[k]; b := Sqrt[r0^2 - n^2]*Sin[k];
c := 0; SS2 =
2*Nlntegrate[b*D[a, k], {k, pi, O},
WorkingPrecision \[RightArrow] 1000,
PrecisionGoal \[RightArrow] 990]; SSqiu = N[Re[SS2],6],(*解析解*)
Clear ["Global`*"],
h = ho + r0/Sin[theta] - r0/Cos[eta];(*锥顶 Z 坐标*)
n = r0/Sin[theta] - h;(*球心 Z 坐标相反数*)
a2 = (r0^2 - n^2)^0.5 ;(*平面与球圆半径*)
Sqiu = Pi*a2*a2;
Simplify[Sqiu]},
{
{(*显示相贯形体*)
pl =
ContourPlot3D[
x^2 + y^2 == (h - z)^2 *Tan[theta]^2, { x, -3 h, 3 h}, { y,
0, 6 h}, { z, -h, rO*Sin[theta] - n} ,
PlotRange \[RightArrow] All,
Mesh \[RightArrow] False];(*圆锥部分*)
p2 =
ContourPlot3D[
x^2 + y^2 + (z + n)^2 == r0^2, {x, -3 h, 3 h}, {y, 0,
6 h}, {z, r0*Sin[theta] - n, h},
PlotRange \[RightArrow] {-3 h, 3 h},
Mesh \[RightArrow] False];(*球部分*)
p3 =
ContourPlot3D[
z == O, {x,-3 h,3 h}, {y,0, 6 h - 1}, {z,-3 h,3 h},
PlotRange \[RightArrow] {-3 h,3 h},
Mesh \[RightArrow] False];(*压入平面*)
p4 =
ContourPlot3D[
z == r0*Sin[theta] - n, {x, -3 h, 3 h}, {y, -1,
0}, {z, -3 h, 3 h}, PlotRange \[RightArrow] {-3 h, 3 h},
Mesh \[RightArrow] False];(*切圆平面*)
Show[p1, p2, p3, p4, PlotRange \[RightArrow] {-3 h, 3 h},
BoxRatios \[RightArrow] {1, 1, 1},
Axes \[RightArrow] {FalseFalse, False},
Mesh \[RightArrow] False]
,
(*显示截交曲线*)
u := h*Tan[theta]*Cos[t];
v := h*Tan[theta]*Sin[t];
w := 0;(*圆锥部分*)
q1 =
ParametricPlot3D[{u,v,w}, {t, O, Pi},
PlotStyle \[RightArrow] {Red}, PlotRange \[RightArrow] All,
DisplayFunction \[RightArrow] ldentity];
Show[q1, PlotRange \[RightArrow] {-3 h, 3 h},
BoxRatios \[RightArrow] {1, 1, 1},
DisplayFunction \[RightArrow] ldentity,
Axes \[RightArrow] {FalseFalse, False}]}, Print[平面与圆锥相交投影面积为],
(*求积公式1*)
Sqiu = N[Pi*al^2],
(*求积公式2*)
u := h*Tan[theta]*Cos[t]; v := h*Tan[theta]*Sin[t];
w := 0;(*圆锥部分*)
SS1 =
2*Nlntegrate[v*D[u, t], {t,pi,0},
WorkingPrecision \[RightArrow] 1000,
PrecisionGoal \[RightArrow] 990];
Szhui = N[Re[SS1], 6], (*解析解*)
Clear ["Global`*"],
h = ho + r0/Sin[theta] - r0/Cos[eta];(*锥顶 Z 坐标*)
n = r0/Sin[theta] - h;(*球心 Z 坐标相反数*)
a1 = h*Tan[theta];(*平面与圆锥圆半径*)
Szhui = Pi*al*al;
Simplify[Szhui]
}]
}]