Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Parallel curve
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Generalizations == The problem generalizes fairly obviously to higher dimensions e.g. to offset surfaces, and slightly less trivially to [[pipe surface]]s.<ref name="PottmannWallner2001">{{cite book|first1=Helmut|last1=Pottmann|first2=Johannes|last2=Wallner|title=Computational Line Geometry|url=https://books.google.com/books?id=6ZrqcYKgtE0C&pg=PA303|year=2001|publisher=Springer Science & Business Media|isbn=978-3-540-42058-3|pages=303β304}}</ref> Note that the terminology for the higher-dimensional versions varies even more widely than in the planar case, e.g. other authors speak of parallel fibers, ribbons, and tubes.<ref name="Chirikjian2009">{{cite book|author1-link=Gregory S. Chirikjian|first=Gregory S.|last=Chirikjian|title=Stochastic Models, Information Theory, and Lie Groups, Volume 1: Classical Results and Geometric Methods|year=2009|publisher=Springer Science & Business Media|isbn=978-0-8176-4803-9|pages=171β175}}</ref> For curves embedded in 3D surfaces the offset may be taken along a [[geodesic]].<ref name="Sarfraz2003">{{cite book|editor-first=Muhammad|editor-last=Sarfraz|title=Advances in geometric modeling|url=https://books.google.com/books?id=kfZQAAAAMAAJ&pg=PA72|year=2003|publisher=Wiley|isbn=978-0-470-85937-7|page=72}}</ref> Another way to generalize it is (even in 2D) to consider a variable distance, e.g. parametrized by another curve.<ref name="barn"/> One can for example stroke (envelope) with an ellipse instead of circle<ref name="barn"/> as it is possible for example in [[METAFONT]].<ref>{{Cite journal |last=Kinch |first=Richard J. |date=1995 |title=MetaFog: Converting METAFONT Shapes to Contours |url=https://www.tug.org/TUGboat/tb16-3/tb48kinc.pdf |journal=TUGboat |volume=16 |issue=3 |pages=233-243}}</ref> [[File:Envelope of ellipses.png|thumb|An envelope of ellipses forming two general offset curves above and below a given curve]] More recently [[Adobe Illustrator]] has added somewhat similar facility in version [[CS5]], although the control points for the variable width are visually specified.<ref>http://design.tutsplus.com/tutorials/illustrator-cs5-variable-width-stroke-tool-perfect-for-making-tribal-designs--vector-4346 application of the generalized version in Adobe Illustrator CS5 (also [http://tv.adobe.com/watch/learn-illustrator-cs5/using-variablewidth-strokes/ video])</ref> In contexts where it's important to distinguish between constant and variable distance offsetting the acronyms CDO and VDO are sometimes used.<ref name="jarek"/> ===General offset curves=== Assume you have a regular parametric representation of a curve, <math> \vec x(t) = (x(t),y(t))</math>, and you have a second curve that can be parameterized by its unit normal, <math> \vec d(\vec n)</math>, where the normal of <math>\vec d(\vec n) = \vec n</math> (this parameterization by normal exists for curves whose curvature is strictly positive or negative, and thus convex, smooth, and not straight). The parametric representation of the general offset curve of <math>\vec x(t)</math> offset by <math> \vec d(\vec n)</math> is: :<math> \vec x_d(t)=\vec x(t)+ \vec d(\vec n(t)), \quad</math> where <math>\vec n(t)</math> is the unit normal of <math>\vec x(t)</math>. Note that the trival offset, <math>\vec d(\vec n) = d\vec n</math>, gives you ordinary parallel (aka, offset) curves. ====Geometric properties:<ref name="barn"/>==== *<math>\vec x'_d(t) \parallel \vec x'(t),\quad</math> that means: the tangent vectors for a fixed parameter are parallel. *As for [[parallel (geometry)|parallel lines]], a normal to a curve is also normal to its general offsets. *<math>k_d(t)=\dfrac{k(t)}{1+\dfrac{k(t)}{k_n(t)}},\quad</math> with <math>k_d(t)</math> the [[curvature]] of the general offset curve, <math>k(t)</math> the curvature of <math>\vec x(t)</math>, and <math>k_n(t)</math> the curvature of <math>\vec d(\vec n(t))</math> for parameter <math>t</math>. *<math>R_d(t)=R(t) + R_n(t),\quad</math> with <math>R_d(t)</math> the [[curvature#Curvature of plane curves|radius of curvature]] of the general offset curve, <math>R(t)</math> the radius of curvature of <math>\vec x(t)</math>, and <math>R_n(t)</math> the radius of curvature of <math>\vec d(\vec n(t))</math> for parameter <math>t</math>. *When general offset curves are constructed they will have [[Cusp (singularity)|cusp]]s when the [[curvature]] of the curve matches curvature of the offset. These are the points where the curve touches the [[evolute]]. ===General offset surfaces=== General offset surfaces describe the shape of cuts made by a variety of cutting bits used by three-axis end mills in [[numerically controlled]] [[machining]].<ref name="Brechner1990"/> Assume you have a regular parametric representation of a surface, <math> \vec x(u,v) = (x(u,v),y(u,v),z(u,v))</math>, and you have a second surface that can be parameterized by its unit normal, <math> \vec d(\vec n)</math>, where the normal of <math>\vec d(\vec n) = \vec n</math> (this parameterization by normal exists for surfaces whose [[Gaussian curvature]] is strictly positive, and thus convex, smooth, and not flat). The parametric representation of the general offset surface of <math>\vec x(t)</math> offset by <math> \vec d(\vec n)</math> is: :<math> \vec x_d(u,v)=\vec x(u,v)+ \vec d(\vec n(u,v)), \quad</math> where <math>\vec n(u,v)</math> is the unit normal of <math>\vec x(u,v)</math>. Note that the trival offset, <math>\vec d(\vec n) = d\vec n</math>, gives you ordinary parallel (aka, offset) surfaces. ====Geometric properties:<ref name="barn"/>==== *As for [[parallel (geometry)|parallel lines]], the tangent plane of a surface is parallel to the tangent plane of its general offsets. *As for [[parallel (geometry)|parallel lines]], a normal to a surface is also normal to its general offsets. *<math>S_d = (1 + SS_n^{-1})^{-1} S, \quad</math> where <math>S_d, S,</math> and <math>S_n</math> are the [[shape operator]]s for <math>\vec x_d, \vec x,</math> and <math>\vec d(\vec n)</math>, respectively. :The principal curvatures are the [[Eigenvalues and eigenvectors|eigenvalues]] of the [[shape operator]], the principal curvature directions are its [[Eigenvalues and eigenvectors|eigenvectors]], the [[Gaussian curvature]] is its [[determinant]], and the mean curvature is half its [[trace (linear algebra)|trace]]. *<math>S_d^{-1} = S^{-1} + S_n^{-1}, \quad</math> where <math>S_d^{-1}, S^{-1}</math> and <math>S_n^{-1}</math> are the inverses of the [[shape operator]]s for <math>\vec x_d, \vec x,</math> and <math>\vec d(\vec n)</math>, respectively. :The principal radii of curvature are the [[Eigenvalues and eigenvectors|eigenvalues]] of the inverse of the [[shape operator]], the principal curvature directions are its [[Eigenvalues and eigenvectors|eigenvectors]], the reciprocal of the [[Gaussian curvature]] is its [[determinant]], and the mean radius of curvature is half its [[trace (linear algebra)|trace]]. Note the similarity to the geometric properties of [[#General offset curves|general offset curves]]. ===Derivation of geometric properties for general offsets=== The geometric properties listed above for general offset curves and surfaces can be derived for offsets of arbitrary dimension. Assume you have a regular parametric representation of an n-dimensional surface, <math> \vec x(\vec u)</math>, where the dimension of <math>\vec u</math> is n-1. Also assume you have a second n-dimensional surface that can be parameterized by its unit normal, <math> \vec d(\vec n)</math>, where the normal of <math>\vec d(\vec n) = \vec n</math> (this parameterization by normal exists for surfaces whose [[Gaussian curvature]] is strictly positive, and thus convex, smooth, and not flat). The parametric representation of the general offset surface of <math>\vec x(\vec u)</math> offset by <math> \vec d(\vec n)</math> is: :<math> \vec x_d(\vec u) = \vec x(\vec u)+ \vec d(\vec n(\vec u)), \quad</math> where <math>\vec n(\vec u)</math> is the unit normal of <math>\vec x(\vec u)</math>. (The trival offset, <math>\vec d(\vec n) = d\vec n</math>, gives you ordinary parallel surfaces.) First, notice that the normal of <math>\vec x(\vec u) = </math> the normal of <math>\vec d(\vec n(\vec u)) = \vec n(\vec u),</math> by definition. Now, we'll apply the differential w.r.t. <math>\vec u</math> to <math>\vec x_d</math>, which gives us its tangent vectors spanning its tangent plane. :<math> \partial\vec x_d(\vec u) = \partial\vec x(\vec u)+ \partial\vec d(\vec n(\vec u))</math> Notice, the tangent vectors for <math>\vec x_d</math> are the sum of tangent vectors for <math>\vec x(\vec u)</math> and its offset <math> \vec d(\vec n)</math>, which share the same unit normal. Thus, '''the general offset surface shares the same tangent plane and normal with''' <math>\vec x(\vec u)</math> and <math>\vec d(\vec n(\vec u))</math>. That aligns with the nature of envelopes. We now consider the [[Weingarten equations]] for the [[shape operator]], which can be written as <math>\partial\vec n = -\partial\vec xS</math>. If <math>S</math> is invertable, <math>\partial\vec x = -\partial\vec nS^{-1}</math>. Recall that the principal curvatures of a surface are the [[Eigenvalues and eigenvectors|eigenvalues]] of the shape operator, the principal curvature directions are its [[Eigenvalues and eigenvectors|eigenvectors]], the Gauss curvature is its [[determinant]], and the mean curvature is half its [[trace (linear algebra)|trace]]. The inverse of the shape operator holds these same values for the radii of curvature. Substituting into the equation for the differential of <math>\vec x_d</math>, we get: :<math> \partial\vec x_d = \partial\vec x - \partial\vec n S_n^{-1},\quad</math> where <math>S_n</math> is the shape operator for <math>\vec d(\vec n(\vec u))</math>. Next, we use the [[Weingarten equations]] again to replace <math>\partial\vec n</math>: :<math>\partial\vec x_d = \partial\vec x + \partial\vec x S S_n^{-1},\quad</math> where <math>S</math> is the shape operator for <math>\vec x(\vec u)</math>. Then, we solve for <math>\partial\vec x</math> and multiple both sides by <math>-S</math> to get back to the [[Weingarten equations]], this time for <math>\partial\vec x_d</math>: :<math>\partial\vec x_d (I + S S_n^{-1})^{-1} = \partial\vec x,</math> :<math>-\partial\vec x_d (I + S S_n^{-1})^{-1}S = -\partial\vec xS = \partial\vec n.</math> Thus, <math>S_d = (I + S S_n^{-1})^{-1}S</math>, and inverting both sides gives us, <math>S_d^{-1} = S^{-1} + S_n^{-1}</math>.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)