OffsetSurfaceCylinder::usage="An Offset surface, is a smooth surface (without edges, peaks, or singular points, where each point has a tangent plane. Examples: Spheres, ellipsoids, toroids, cylinders and planes), it is defined as follows: [u, v] = σ[u, v] ± d n[u, v] σ[u, v] it is a smooth surface, d = distance, n[u, v] it is the normal unitary vector to the surface σ[u, v]. In this notebook we will obtain the offset surface of the cylinder: {Cos[u],Sin[u],v} with d = 1.5. References: Peternell, M. et al. Offsets, Conchoids and Pedal Surfaces; Personal. ";
σ
d
Development:
In[]:=
σ[u_,v_]:={Cos[u],Sin[u],v};[u_,v_]=D[σ[u,v],u];[u_,v_]=D[σ[u,v],v];d=1.5;n[u_,v_]:=[u,v][u,v];σ[u,v]+dn[u,v]//FullSimplifyσ[u,v]-dn[u,v]//FullSimplify
σ
u
σ
v
σ
u
σ
v
Norm[[u,v][u,v]]
σ
u
σ
v
1++Cos[u],1++Sin[u],0.`+v;
1.5`
2
Abs[Cos[u]]
2
Abs[Sin[u]]
1.5`
2
Abs[Cos[u]]
2
Abs[Sin[u]]
1-+Cos[u],1-+Sin[u],0.`+v;
1.5`
2
Abs[Cos[u]]
2
Abs[Sin[u]]
1.5`
2
Abs[Cos[u]]
2
Abs[Sin[u]]
Animation:
In[]:=
SwatchLegend[{Orange,Blue,Yellow},{"Positive Offset surface","Negative Offset surface","Base surface"}]Manipulate[σ[u_,v_]:={Cos[u],Sin[u],v};[u_,v_]:={(1+1.5`)Cos[u],(1+1.5`)Sin[u],0.`+v};[u_,v_]:={(1-1.5`)Cos[u],(1-1.5`)Sin[u],0.`+v};Show[ParametricPlot3D[σ[u,v],{u,0,2π},{v,-5,5},PerformanceGoal"Quality",MeshStyleDirective[AbsoluteThickness[0.5],Opacity[0.2]],PlotStyle{Opacity[0.8],Yellow},Mesh->False,PlotPoints60],ParametricPlot3D[[u,v],{u,0,k1},{v,-5,5},PerformanceGoal"Quality",MeshStyleDirective[AbsoluteThickness[0.5],Opacity[0.4]],PlotStyle{Opacity[0.4],Orange},PlotPoints60],ParametricPlot3D[[u,v],{u,0,k1},{v,-5,5},PerformanceGoal"Quality",MeshStyleDirective[AbsoluteThickness[0.5],Opacity[0.4]],PlotStyle{Opacity[0.4],Blue},PlotPoints60],AxesLabel->(Style[#,15,Blue]&/@{"X","Y","Z"}),AxesOrigin{0,0,0},AxesTrue,BoxedFalse,ViewPoint{1.3,-2.4,2.},PlotLabelStyle[Framed["Offset surfaces"],16,Blue,BackgroundYellow],PlotRange{{-3,3},{-3,3},{-5,5}},ImageSize700],{k1,0.00001,2π,0.00001},SaveDefinitionsTrue,ControlPlacementTop]
σ
dp
σ
dn
σ
dp
σ
dn
Out[]=
Out[]=
Explanation :
In[]:=
Eliminate[{x==Cos[u],y==Sin[u],z==v},{u,v}]
1-;
2
y
2
x
Cutting the surface:
2
x
2
y
with the plane z = 1, results:
{Cos[t],Sin[t],1};
In[]:=
SwatchLegend[{Orange,Blue,DarkYellow,Black},{"Positive Offset","Negative Offset","Original function","Generatrix line"}]Manipulateζ[t_]:={Cos[t],Sin[t],1};d=1.5;N1[t_]:=;[t_]:=ζ[t]+dN1[t];[t_]:=ζ[t]-dN1[t];;Show[{ParametricPlot3D[[t],{t,0,t1},PlotStyle{Orange,Thick},PerformanceGoal->"Quality",PlotPoints60],ParametricPlot3D[[t],{t,0,t1},PlotStyle{Blue,Thick},PerformanceGoal->"Quality",PlotPoints60],ParametricPlot3D[ζ[t],{t,0,2π},PlotStyle{DarkYellow,Thick}],Graphics3D[{Orange,Ball[[t1],0.05]}],Graphics3D[{Blue,Ball[[t1],0.05]}],Graphics3D[{Black,Thick,Line[{[t1],ζ[t1],[t1]}]}],Graphics3D[{DarkYellow,Ball[ζ[t1],0.05]}]},AxesTrue,AxesLabel->(Style[#,15,Blue]&/@{"X","Y","Z"}),BoxedFalse,AxesOrigin{0,0,0},BoxRatiosAutomatic,ImageSize700,PlotRange{{-3,3},{-3,3},{-1,2}},ViewPoint{1.3,-2.4,2.},PlotLabelStyle[Framed["Offset curves"],16,Blue,BackgroundYellow]],{{t1,0.00002,"Value (t1)"},0.00001,2π,0.00001},ControlPlacement->Top
(ζ'[t]ζ''[t])ζ'[t]
Norm[ζ'[t]ζ''[t]]Norm[ζ'[t]]
ζ
+
ζ
-
ζ
+
ζ
-
ζ
+
ζ
-
ζ
-
ζ
+
Out[]=
Out[]=

