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:​
σ
d
​[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 plane: {-2, 4, 5} + u{4, -4, -6} + v{5, 3, -5} with d = 3.​ References: Peternell, M. et al. Offsets, Conchoids and Pedal Surfaces​; Personal. ";
Development:
In[]:=
σ[u_,v_]:={-2,4,5}+u{4,-4,-6}+v{5,3,-5};​​
σ
u
[u_,v_]=D[σ[u,v],u];​​
σ
v
[u_,v_]=D[σ[u,v],v];​​d=3;n[u_,v_]:=
σ
u
[u,v]
σ
v
[u,v]
Norm[
σ
u
[u,v]
σ
v
[u,v]]
;​​σ[u,v]+dn[u,v]//FullSimplify​​σ[u,v]-dn[u,v]//FullSimplify​​​​
-2+19
3
214
+4u+5v,4-5
3
214
-4u+3v,5+8
6
107
-6u-5v;
-2-19
3
214
+4u+5v,4+5
3
214
-4u+3v,5-8
6
107
-6u-5v;
Animation:
In[]:=
SwatchLegend[{Orange,Blue,Yellow},{"Positive Offset surface","Negative Offset surface","Base surface"}]​​Manipulateσ[u_,v_]:={-2,4,5}+u{4,-4,-6}+v{5,3,-5};​​
σ
dp
[u_,v_]:=-2+19
3
214
+4u+5v,4-5
3
214
-4u+3v,5+8
6
107
-6u-5v;
σ
dn
[u_,v_]:=-2-19
3
214
+4u+5v,4+5
3
214
-4u+3v,5-8
6
107
-6u-5v;​​Show[ParametricPlot3D[σ[u,v],{u,-5,5},{v,-5,5},PerformanceGoal"Quality",MeshStyleDirective[AbsoluteThickness[0.5],Opacity[0.2]],PlotStyle{Opacity[0.8],Yellow},Mesh->False,PlotPoints60],​​ParametricPlot3D[
σ
dp
[u,v],{u,-5,k1},{v,-5,5},PerformanceGoal"Quality",MeshStyleDirective[AbsoluteThickness[0.5],Opacity[0.4]],PlotStyle{Opacity[0.8],Orange},PlotPoints60],​​ParametricPlot3D[
σ
dn
[u,v],{u,-5,k1},{v,-5,5},PerformanceGoal"Quality",MeshStyleDirective[AbsoluteThickness[0.5],Opacity[0.8]],PlotStyle{Opacity[0.4],Blue},PlotPoints60],AxesLabel->(Style[#,15,Blue]&/@{"X","Y","Z"}),AxesOrigin{0,0,0},AxesTrue,BoxedFalse,ViewPoint{1.3,-2.4,-1},PlotLabelStyle[Framed["Offset surfaces"],16,Blue,BackgroundYellow],PlotRange{{-8,8},{-8,8},{-7,9}},ImageSize700​​],{k1,-5+0.00001,5,0.00001},SaveDefinitionsTrue,ControlPlacementTop
Out[]=
Positive Offset surface
Negative Offset surface
Base surface
Out[]=
​
k1
Explanation :
In[]:=
Eliminate[{x==-2+4u+5v,y==4-4u+3v,z==5-6u-5v},{u,v}]
22+5y-16z19x;​​19x-5y+16z-22==0;
Cutting the surface:
19x-5y+16z-22==0;
with the plane y = 0, results:
t,0,
11
8
-
19
16
t;
In[]:=
SwatchLegend[{Orange,Blue,DarkYellow,Black},{"Positive Offset","Negative Offset","Original function","Generatrix line"}]​​Manipulateζ[t_]:=t,0,
11
8
-
19
16
t;d=3;N1=1,0,
16
19
;​​
ζ
+
[t_]:=ζ[t]+dN1;​​
ζ
-
[t_]:=ζ[t]-dN1;​​Show[{ParametricPlot3D[
ζ
+
[t],{t,-5,t1},PlotStyle{Orange,Thick},PerformanceGoal->"Quality",PlotPoints60],ParametricPlot3D[
ζ
-
[t],{t,-5,t1},PlotStyle{Blue,Thick},PerformanceGoal->"Quality",PlotPoints60],ParametricPlot3D[ζ[t],{t,-5,5},PlotStyle{DarkYellow,Thick}],Graphics3D[{Orange,Ball[
ζ
+
[t1],0.2]}],Graphics3D[{Blue,Ball[
ζ
-
[t1],0.2]}],Graphics3D[{Black,Thick,Line[{
ζ
-
[t1],ζ[t1],
ζ
+
[t1]}]}],Graphics3D[{DarkYellow,Ball[ζ[t1],0.2]}]},AxesTrue,AxesLabel->(Style[#,15,Blue]&/@{"X","Y","Z"}),BoxedFalse,AxesOrigin{0,0,0},BoxRatiosAutomatic,ImageSize700,PlotRange{{-8,8},{-8,8},{-7,9}},ViewPoint{1.3,-2.4,-1},PlotLabelStyle[Framed["Offset curves"],16,Blue,BackgroundYellow]],{{t1,-5+0.00002,"Value (t1)"},-5+0.00001,5-0.00001,0.00001},ControlPlacement->Top​​
Out[]=
Positive Offset
Negative Offset
Original function
Generatrix line
Out[]=
​
Value (t1)