1
$\begingroup$

Conical Frustum Its parameters are as follows:

In the right -angle trapezoid AA1B1B, A1B1 is parallel to AB, AA1 is vertical and AB, AB = AA1 = 2A1B1 = 6, right -angle trapezoid AA1B1B around the straight corner AA1 to get the round platform A1A in the picture above. On the BC, the size of the two-sided angle B1-AA1-C1 is α, and the size of α can be adjusted, and it is not sure

The final effect I want is to draw the image below without coloring the surface. Draw the corresponding lines. Just the same as in the figure below.

enter image description here

My personal attempt is to use parametric equations to draw the contour of a circular frustum.

The code is as follows:

With[{a = 6, b = 3, h = 6}, 
 ParametricPlot3D[{((a (h - u) + b u) Cos[v])/
   h, ((a (h - u) + b u) Sin[v])/h, u}, {v, 0, 2 \[Pi]}, {u, 0, h}]]

enter image description here

The generated image has been colored on the surface, and there are still many generatrix lines on the surface. None of these are needed. According to the given target picture, add the middle right angled trapezoid, several line segments and three coordinate axes of the space Cartesian coordinate system system.

Update1:@cvgmt Thanks for your help. Now the vertex letter annotation has been added.

Clear["Global`*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-(\[Pi]/2)];
b = circle[-(\[Pi]/2)];
c1 = circle1[-(\[Pi]/2) + \[Alpha]];
c = circle[-(\[Pi]/2) + \[Alpha]];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}], 
   Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}], 
   Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}], 
   Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}], 
   Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}], 
   Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}], 
   Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
   Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}], 
   Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]}, 
   PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
    MeshShading -> {Directive@{Dashed, Black}, Black}];
dashLines = {Dashed, AbsoluteThickness[2], 
   Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
       q}, {n, q}, {p, n}}]};
realLines = {AbsoluteThickness[2], 
   Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2], 
   Line[{circle[-(\[Pi]/2) + \[Alpha] + \[Pi]], 
     circle1[-(\[Pi]/2) + \[Alpha] + \[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines, 
   labels}], cir1, cir2, Boxed -> False, Axes -> False, 
 ViewPoint -> {-0.29, -3.26, 0.84}]

enter image description here

UPDATE 2:

Clear["Global`*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 120 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}], 
   Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}], 
   Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}], 
   Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}], 
   Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}], 
   Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}], 
   Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
   Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}], 
   Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]}, 
   PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
    MeshShading -> {Directive@{Dashed, Black}, Black}];
dashLines = {Dashed, AbsoluteThickness[2], 
   Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
       q}, {n, q}, {p, n}}]};
realLines = {AbsoluteThickness[2], 
   Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2], 
   Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines, 
   labels}], cir1, cir2, Boxed -> False, Axes -> False, 
 ViewPoint -> {-0.29, -3.26, 0.84}]

UPDATE 3:

Clear["Global`*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 120 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 2/3}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/3}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}], 
   Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}], 
   Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}], 
   Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}], 
   Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}], 
   Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}], 
   Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
   Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}], 
   Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]}, 
   PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
    MeshShading -> {Directive@{Dashed, Black}, Black}];
dashLines = {Dashed, AbsoluteThickness[2], 
   Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
       q}, {n, q}, {p, n}, {c1, n}}]};
realLines = {AbsoluteThickness[2], 
   Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2], 
   Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines, 
   labels}], cir1, cir2, Boxed -> False, Axes -> False, 
 ViewPoint -> {-0.29, -3.26, 0.84}]

Update 4:

Clear["Global`*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 120 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 2/3}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/3}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}], 
   Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}], 
   Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}], 
   Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}], 
   Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}], 
   Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}], 
   Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}], 
   Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}], 
   Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]}, 
   PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
    MeshShading -> {Directive@{Dashed, Black}, Black}];
dashLines = {Dashed, AbsoluteThickness[2], 
   Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
       q}, {n, q}, {p, n}, {c1, n}}]};
realLines = {AbsoluteThickness[2], 
   Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2], 
   Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines, 
   labels}], cir1, cir2, Boxed -> False, Axes -> False, 
 ViewPoint -> {-0.29, -3.26, 0.84}]

Update 5:

Clear["Global`*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/3}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}], 
   Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}], 
   Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}], 
   Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}], 
   Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}], 
   Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}], 
   Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}], 
   Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}], 
   Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]}, 
   PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
    MeshShading -> {Directive@{Dashed, Black}, Black}];
dashLines = {Dashed, AbsoluteThickness[2], 
   Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
       q}, {n, q}, {p, n}, {c1, n}}]};
realLines = {AbsoluteThickness[2], 
   Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2], 
   Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines, 
   labels}], cir1, cir2, Boxed -> False, Axes -> False, 
 ViewPoint -> {-0.29, -3.26, 0.84}]

Update 6:


Clear["Global`*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 4/5}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}], 
   Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}], 
   Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}], 
   Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}], 
   Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}], 
   Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}], 
   Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}], 
   Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}], 
   Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]}, 
   PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
    MeshShading -> {Directive@{Dashed, Black}, Black}];
dashLines = {Dashed, AbsoluteThickness[2], 
   Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
       q}, {n, q}, {p, n}, {c1, n}}]};
realLines = {AbsoluteThickness[2], 
   Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2], 
   Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines, 
   labels}], cir1, cir2, Boxed -> False, Axes -> False, 
 ViewPoint -> {-0.29, -3.26, 0.84}]

UPDATE 7:

Clear["Global`*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 4/5}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}], 
   Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}], 
   Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}], 
   Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}], 
   Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}], 
   Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}], 
   Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}], 
   Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}], 
   Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]}, 
   PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
    MeshShading -> {Directive@{Dashed, Black}, Black}];
dashLines = {Dashed, AbsoluteThickness[2], 
   Line[{{a, b1}, {a, b}, {a1, a}, {b, c}, {n, q}, {p, n}, {c1, 
      n}}]};
realLines = {AbsoluteThickness[2], 
   Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2], 
   Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines, labels}], 
 Graphics3D[{Thick, Dashed, 
   Line[{a, p}, VertexColors -> {Blue, Orange}]}], 
 Graphics3D[{Thick, Dashed, Red, Line[{q, p}]}], 
 Graphics3D[{Thick, Dashed, Red, Line[{a, q}]}], 
 Graphics3D[{Thick, Dashed, Green, Line[{a, c}]}], 
 Graphics3D[{Thick, Dashed, Green, Line[{p, c}]}], cir1, cir2, 
 Boxed -> False, Axes -> False, ViewPoint -> {-0.29, -3.26, 0.84}]

UPDATE 8:

Clear["Global`*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-(\[Pi]/2)];
b = circle[-(\[Pi]/2)];
c1 = circle1[-(\[Pi]/2) + \[Alpha]];
c = circle[-(\[Pi]/2) + \[Alpha]];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}], 
   Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}], 
   Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}], 
   Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}], 
   Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}], 
   Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}], 
   Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}], 
   Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}], 
   Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]}, 
   PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
    MeshShading -> {Directive@{Dashed, Black}, Black}];
dashLines = {Dashed, 
   AbsoluteThickness[2], {Thick, Dashed, Green, Line[{a, c}], 
    Line[{a, p}]}, 
   Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
       q}, {n, q}, {p, n}}]};
realLines = {AbsoluteThickness[2], 
   Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2], 
   Line[{circle[-(\[Pi]/2) + \[Alpha] + \[Pi]], 
     circle1[-(\[Pi]/2) + \[Alpha] + \[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines, 
   labels}], cir1, cir2, Boxed -> False, Axes -> False, 
 ViewPoint -> {-0.29, -3.26, 0.84}]

Update 9:

Clear["Global`*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-(\[Pi]/2)];
b = circle[-(\[Pi]/2)];
c1 = circle1[-(\[Pi]/2) + \[Alpha]];
c = circle[-(\[Pi]/2) + \[Alpha]];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}], 
   Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}], 
   Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}], 
   Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}], 
   Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}], 
   Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}], 
   Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}], 
   Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}], 
   Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]}, 
   PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
    MeshShading -> {Directive@{Dashed, Black}, Black}];
dashLines = {Dashed, 
   AbsoluteThickness[2], {Blue, Line[{a, c}]}, {Red, 
    Line[{{a, p}, {c, p}, {a, q}, {c, q}}]}, 
   Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
       q}, {n, q}, {p, n}}]};
realLines = {AbsoluteThickness[2], 
   Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2], 
   Line[{circle[-(\[Pi]/2) + \[Alpha] + \[Pi]], 
     circle1[-(\[Pi]/2) + \[Alpha] + \[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines, 
   labels}], cir1, cir2, Boxed -> False, Axes -> False, 
 ViewPoint -> {-0.29, -3.26, 0.84}]

Update 10:

Clear["Global`*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 120 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}], 
   Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}], 
   Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}], 
   Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}], 
   Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}], 
   Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}], 
   Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}], 
   Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}], 
   Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]}, 
   PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
    MeshShading -> {Directive@{Dashed, Black}, Black}];
dashLines = {Dashed, 
   AbsoluteThickness[2], {Blue, Line[{a, c}]}, {Red, 
    Line[{{a, p}, {c, p}, {a, q}, {c, q}}]}, 
   Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
       q}, {n, q}, {p, n}}]};
realLines = {AbsoluteThickness[2], 
   Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2], 
   Line[{circle[-\[Pi]], circle1[-\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines, 
   labels}], cir1, cir2, Boxed -> False, Axes -> False, 
 ViewPoint -> {-0.29, -3.26, 0.84}]
$\endgroup$
1
  • $\begingroup$ I think, you can draw by 3dtools here. $\endgroup$ Commented Aug 16, 2023 at 0:29

1 Answer 1

3
$\begingroup$
Clear["Global`*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; α = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-(π/2)];
b = circle[-(π/2)];
c1 = circle1[-(π/2) + α];
c = circle[-(π/2) + α];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 π}, 
   PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 π}, Mesh -> {{π}},
    MeshShading -> {Directive@{Dashed, Black}, Black}];
dashLines = {Dashed, AbsoluteThickness[2], 
   Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
       q}, {n, q}, {p, n}}]};
realLines = {AbsoluteThickness[2], 
   Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2], 
   Line[{circle[-(π/2) + α + π], 
     circle1[-(π/2) + α + π]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines}], cir1, cir2, 
 Boxed -> False, Axes -> False, ViewPoint -> {-0.29, -3.26, 0.84}]

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.