kempe s universality theorem @xcite is one of the great theorems of theoretical mechanism science ( `` beautiful '' @xcite , `` surprising '' @xcite , `` incredible theoretical significance '' @xcite , `` shocking '' @xcite ) .
it states that any bounded portion of a planar algebraic curve can be traced out by one joint of a planar linkage with revolute joints .
discovered only shortly after the invention of the first straight line linkages , kempe s theorem must have been a true surprise to his contemporary kinematicians . throughout the 20th centry
, it was considered a milestone result .
kempe s constructive proof can be used to actually compute a linkage that draws a planar algebraic curve .
however , it was clear from the beginning that this construction is of no practical relevance .
it requires an excessive number of links and joints , even for curves of low degree .
nowadays , an asymptotic bound of @xmath3 for the number of links necessary to draw an algebraic curve of degree @xmath0 in an ambient space of dimension @xmath4 is known @xcite .
nonetheless , drawing an ellipse with a kempe linkage already requires hundreds of links @xcite
. a wealth of more practical examples for algebraic curve generation can be found in the monograph @xcite . however , the constructions there are rather specific to certain classes of curves and , more importantly , use mechanical constraints different from rigid links and revolute joints .
kempe s theorem talks about algebraic curves and it is natural to ask for simplifications in case of rational curves . this was done recently in @xcite where the authors constructed scissor - like linkages to draw rational planar curves .
their construction is based on the factorization of certain polynomials over a non - commutative ring that describe the motion of one of the links .
the upper bounds on the number of links and joints for curves of degree @xmath0 reduce dramatically to @xmath5 and @xmath6 , respectively . in this article
, we extend the ideas of @xcite to rational space curves .
our aim is to provide a construction that works for all rational space curves and , at the same time , to reduce the number of links and joints as far as possible . for this purpose ,
we introduce several new ideas that also improve the planar case .
we use rational motions of minimal degree in the dual quaternion model of rigid body displacements for the link that draws the given space curve .
this acknowledges the importance of circularity .
if the rational space curve is entirely circular , the motion degree is particularly low @xcite and factorization of the motion polynomial is straightforward , without the need for prior degree elevation . in the non - circular case ,
a degree elevation is necessary but in contrast to @xcite , we only preserve one relevant trajectory , not the complete rational motion .
this allows to keep the degree lower and saves links and joints .
if the curve is of degree @xmath0 and circularity @xmath1 , the bounds for links and joints are @xmath7 and @xmath8 , respectively .
another advantage of our spatial approach concerns a certain defect in kempe s original construction that later was even considered a flaw ( * ? ? ?
* section  3.2 ) .
kempe used parallelogram and anti - parallelogram linkages as basic building blocks of his linkages .
it is well known that the configuration curves of these linkages consists of two irreducible algebraic components that intersect at flat folded positions .
that is , the linkage may switch between parallelogram and anti - parallelogram mode , thus entering unwanted components of the configuration curve .
the effect is that kempe s linkages draw more than the originally intended curve . at the cost of introducing additional links and joints ,
this defect can be overcome by the `` bracing constructions '' of @xcite .
the approach of @xcite uses anti - parallelograms and is therefore subject to the same defect and its resolution .
the basic building blocks of our approach are bennett linkages whose configuration curve has only one irreducible component .
thus , no additional links and joints are needed to prevent the linkage from switching modes .
we also capture this in the phrase `` the configuration curve is free of spurious components '' .
this article uses several results from other , recently published , papers .
whenever we use such a result we give a concise summary and references .
moreover , we provide algorithmic descriptions so that a reader of this paper will be able to construct linkages for drawing an arbitrary rational space curve .
we continue this article with a formulation of the main theorem and an overview of its proof in . in
we provide a concise introduction to dual quaternions and motion polynomials .
the proof of our main theorem is done in .
it is subdivided into several steps : construction of a minimal motion to the given rational curve , factorization of this motion , and subsequent linkage construction by means of `` bennett flips '' . in
we present several examples to illustrate important points of our construction .
our main result in this paper is a statement about linkages and bounded rational curves in three - space .
a rational curve is a curve admitting a parametric equation of the shape @xmath9 with polynomials @xmath10 $ ] and @xmath11 .
it is no restriction to assume that this parametric equation is _ reduced , _ that is , @xmath12 because we may always divide by a common factor .
the _ circularity _ of a reduced parametric equation is @xmath13 .
it counts the number of intersection points with the absolute conic of euclidean geometry , is a positive integer and invariant with respect to rational re - parameterizations and similarity transformations . finally , the rational curve is called _ bounded , _ if @xmath14 has no real zeros and @xmath15 .
note that in this sense bounded segments of unbounded rational curves are bounded rational curves .
a linkage in our context consists of a set of lines in space , called the _ joints _ , and links ( rigid bodies which could have different shapes ) that connect two or more axes .
whenever two links are connected by a joint , their relative position is constrained to a rotation about their common joint .
more precisely , the relative position is determined by the rotation angle about this joint with respect to a given reference configuration .
the set of all tuples of possible rotation angles is called the linkage s _ configuration space . _
if it is of dimension one , we call it a _ configuration curve _ and say the linkage has _ one degree of freedom .
_ if this is the case , we designate one link as fixed and another as moving and call them _ fixed _ and _ moving frame , _ respectively .
we view the relative displacements of the moving frame with respect to the fixed frame as a curve in @xmath16 .
the _ orbit _ or _ trajectory _ of a point attached to the moving frame is the locus of all positions in space when the point is subject to all possible displacements in this curve .
a linkage is called _ spherical , _ if all axes are concurrent and _ planar _ if they are parallel .
the trajectories of spherical linkages are spherical curves and the trajectories of planar linkage are curves in parallel planes . for a more formal definition of ( at least planar ) linkages
we refer to @xcite .
let us illustrate some of these concept at hand of a bennett linkage @xcite which will play a crucial role in our linkage construction in .
a bennett linkage is a spatial four - bar linkage with one degree of freedom .
its four axes @xmath17 , @xmath18 , @xmath19 , @xmath20 are the perpendiculars to two incoming edges in the vertices of a spatial parallelogram , that is , a spatial quadrilateral with equal opposite edge lengths .
displays an abstract representation and a 3d model of a bennett linkage .
the joint axes @xmath17 and @xmath20 are in the fixed frame while @xmath18 and @xmath19 are in the moving frame .
two things about bennett linkages are important to us :    * bennett linkage constitute the only type of spatial four - bar linkages with one degree of freedom and * their configuration curve consists of only one component .
img / bennett ( 14,45)@xmath17 ( 16,19)@xmath18 ( 38,3)@xmath19 ( 49,36)@xmath20 ( 58,45)@xmath17 ( 61,19)@xmath18 ( 85,3)@xmath19 ( 94,36)@xmath20    here is our main result :    [ th:1 ] for every bounded rational curve of degree @xmath0 and circularity @xmath1 in three space , there exists a spatial revolute linkage with one degree of freedom with at most @xmath7 links and @xmath8 joints such that the trajectory of one point attached to the moving frame is precisely the given rational curve .    before we embark on a proof of this theorem ( which will consume large parts of this paper ) , we would like to make a few remarks :    * the theorem talks about _ bounded _ rational curves .
this is necessary because all trajectories of a linkage with only revolute joints are bounded .
it is , however , admissible that the rational curve parameterizes a bounded portion of an unbounded curve , for example a line segment .
* boundedness also implies that @xmath0 is even and @xmath1 is an integer so that our bounds on the number of links and joints are integers as well . *
the linkage of is not unique .
in fact , uncountably many linkages exist .
even planar or spherical curves may be drawn by spatial linkages .
* however , our approach is capable of producing planar linkages for planar curves ( ) .
thus , improves the bound of @xmath21 links and @xmath22 joints given by @xcite even for non - circular ( @xmath23 ) planar rational curves .
* our approach can also produce spherical linkages for spherical curves . for them
, the number of links and joints reduces to @xmath24 and @xmath25 , respectively ( ) . *
the linkages can be constructed in such a way , that their configuration curve is free of spurious components .
this is however not the case if the linkage is required to be planar or spherical .
our proof of is constructive and can be translated into algorithms , mostly based on polynomial algebra over the dual quaternions .
our presentation pays attention to these algorithmic approach and gives ample information for actual implementation .
the proof consists of several steps .
we begin by constructing a rational motion such that one point has the given rational curve as trajectory . in order to keep small the number of links and joints , it is advantageous to require a minimal motion degree in the dual quaternion model of rigid body displacements . in @xcite
, we proved that these properties determine a unique rational motion which may be computed in rather straightforward manner by .
this rational motion is parameterized by a certain polynomial with dual quaternion coefficients which we call a `` motion polynomial '' .
general motion polynomials can be written , in several ways , as products of linear motion polynomials @xcite .
these factorizations correspond to the decomposition of the rational motion into products of rotations .
the axes are determined by the linear motion polynomials and the rotation angles are linked by a common parameter . on these open chains of revolute joints we base our linkage construction . unfortunately , there are motion polynomials that do not allow factorizations .
even worse , the motion polynomials of minimal degree with prescribed trajectory typically fall into this category .
therefore , we have to artificially raise their degree in such a way that factorizations exist .
this can be done by multiplying them with real polynomials as in @xcite .
this does not change the underlying motion and may be advantageous in certain applied situations .
however , the bounds in are only obtained by a refinement of this procedure .
we right - multiplying the motion polynomial with a certain quaternion polynomial .
this changes the motion but not the trajectory in question .
a curious side - effect of this approach is that it may turn a planar or spherical motion into a spatial motion .    having constructed a factorizable motion polynomial to the prescribed trajectory , we have to construct a linkage . in general , it is possible to combine the open chains obtained from different factorizations to form a linkage with one degree of freedom @xcite .
we do , however , not pursue this approach because , it seems difficult to prove that the resulting linkage has _ always _
( not just in general ) only a single degree of freedom .
moreover , spurious motion components do exist @xcite .
instead , we adapt the scissor - linkage construction of @xcite to the spatial case , replacing the anti - parallelograms of planar linkages by spatial bennett linkages .
this automatically guarantees that the configuration space is of dimension one and has no spurious components .
this section provides an introduction to dual quaternions and their relation to space kinematics . in particular
, we introduce a homomorphism between a certain subgroup of dual quaternions into @xmath16 and the important concept of motion polynomials .
denote by @xmath26 the non - commutative ring of quaternions .
an element @xmath27 can be written as @xmath28 .
the quaternion units @xmath29 , @xmath30 , and @xmath31 satisfy the multiplication rules @xmath32 by @xmath33 we denote the ring @xmath34/\langle { \varepsilon}^2 \rangle$ ] .
its elements are called _ dual numbers . _
the scalar extension @xmath35 of @xmath26 by @xmath33 gives the ring of dual quaternions .
a dual quaternion @xmath36 may be written as @xmath37 with quaternions @xmath38 and @xmath39 , the _ primal _ and _ dual part _ of @xmath36 , respectively .
the conjugate dual quaternion is @xmath40 and quaternions in @xmath26 are conjugated by multiplying the coefficients of @xmath29 , @xmath30 , and @xmath31 with @xmath41 .
the dual quaternions with non - zero primal part are invertible .
the inverse of @xmath36 is @xmath42 . here
, @xmath43 denotes the _ dual quaternion norm . _
it is a dual number and , provided @xmath44 , the inverse of number @xmath45 is @xmath46 .
denote by @xmath47 the multiplicative subgroup of dual quaternions with real , nonzero norm .
it acts on @xmath48 according to @xmath49 this equation defines a homomorphism from @xmath47 to @xmath16 .
it is surjective and the kernel is the real multiplicative group @xmath50 .
now we make this group homomorphism parametric .
denote by @xmath51 $ ] the skew ring of polynomials over @xmath52 with indeterminate @xmath53 .
we define multiplication in this ring by the convention that @xmath53 commutes with all coefficients .
this is a natural convention because @xmath53 will later act as a real motion parameter and @xmath54 is in the center of @xmath52 .
some notions that have already been defined for @xmath52 can be transferred to @xmath51 $ ] . for @xmath55 $ ]
the _ conjugate polynomial _
@xmath56 is obtained by conjugating all coefficients of @xmath57 .
if @xmath58 with @xmath59 $ ] , then @xmath60 and @xmath61 are called _ primal _ and _ dual part , _ respectively .
the norm polynomial is @xmath62 .
its coefficients are dual numbers . if @xmath63 , the value of @xmath57 at @xmath64 is defined as @xmath65 . with these definitions , evaluation of polynomials at a fixed value @xmath64 is not a ring homomorphism .
still , the dual quaternion zeros of polynomials over @xmath52 have a meaning in our algorithms .
the polynomial @xmath55 $ ] is called a _ motion polynomial , _ if @xmath66 \setminus \{0\}$ ] and if its leading coefficient @xmath67 is invertible .
motion polynomials are a central concept in this article .
their introduction is motivated by the fact that for every @xmath68 , the value @xmath69 is an element of @xmath47 so that @xmath57 acts on @xmath70 .
varying @xmath71 , we get a one - parametric set of rigid body displacements , that is , a motion . by virtue of ,
the orbit of any point is ( part of ) a rational curve , whence the motion itself is called _ rational .
_ in order to get the complete rational curve as trajectory , we should extend the parameter range from @xmath54 to @xmath72 . with the definition @xmath73
the trajectories are complete rational curve .    of particular importance to us
are linear motion polynomials .
the linear polynomial @xmath74 is a motion polynomial if @xmath75 is real .
this is the case if both @xmath76 and @xmath77 are real .
it is well - known that the motion parameterized by @xmath57 is either a rotation about a fixed axis or , if the primal part of @xmath36 is real , a translation in fixed direction . in either case , the parameter value @xmath78 corresponds to the identity transformation , that is , zero rotation angle or translation distance .    in this article
, we often assume that a given motion polynomial has no nontrivial real factor .
we call those motion polynomials _ reduced . _ from a kinematic viewpoint , this is no restriction as @xmath57 and @xmath79 with @xmath80 \setminus \{0\}$ ] parameterize the same motion .
note , however , that multiplication with a real polynomial is a useful technique to ensure existence of a factorization ( see @xcite and ) .
in this section we prove . for each step in our constructive proof
we provide a theoretical justification , often with references to existing literature , and an algorithmic description .
given is a bounded rational curve by a reduced rational parametric equation @xmath81 .
we also encode it as polynomial @xmath82 $ ] .
the parametric equation @xmath83 and the polynomial @xmath84 are of the same degree  @xmath0 .
the first step is the construction of a rational motion such the trajectory of one point equals the parametric curve @xmath84 .
an obvious and simple choice is the curvilinear translation along @xmath84 , given by the motion polynomial @xmath85 .
however , in order to keep low the number of links and joints , we try to find a motion polynomial @xmath57 of minimal degree with trajectory @xmath84 .
the main result in this context states uniqueness of this motion and characterizes curves for which the trivial curvilinear translation is not optimal @xcite . in order to fully appreciate it , we need a definition :    [ def : trajectory - degree ] the _ trajectory degree _ of a reduced rational motion @xmath86 $ ] is the maximal degree of its trajectories
. the _ quaternion degree _ is the degree of @xmath57 as polynomial in @xmath51 $ ] .
the _ spherical degree defect _ of @xmath57 is the degree of the real polynomial factor of maximal degree of the primal part @xmath60 .
some authors refer to the trajectory degree of a reduced rational motion as just the `` degree ''
. however , we have to distinguish between this trajectory degree and the degree of @xmath57 as polynomial in @xmath51 $ ] .
the latter was called the motion s `` quaternion degree '' in @xcite and we follow this convention .
the spherical degree defect accounts for a difference in the respective trajectory degrees of @xmath57 and its spherical motion component @xmath60 .
if the motion polynomial is monic ( or at least its leading coefficient is invertible ) , the spherical degree defect can be computed as degree of @xmath87 where @xmath88 denotes the monic real polynomial factor of maximal degree .
[ th:2 ] the rational motion of minimal quaternion degree with a prescribed rational trajectory is _ unique . _
if the trajectory is of degree @xmath0 and circularity @xmath1 , this minimal motion is of degree @xmath89 and has a spherical degree defect of @xmath90 .
lets call the motion of the trajectory s _ minimal motion .
_ tells us that in general ( if the trajectory is of circularity zero ) , the curvilinear translation is minimal .
but for curves with positive circularity , we can do better .
this has effects on our linkage construction : curves of high circularity lead to minimal motions of low degree and low spherical degree defect and lend themselves well to a realization by a linkage with few links and joints .
the constructive proof of in @xcite can be turned into a short algorithm to actually compute minimal motions .
we make a few technical assumptions :    * the reduced rational curve @xmath91 satisfies @xmath92 .
this can always be accomplished by a suitable translation of the coordinate frame .
* we want to find a motion polynomial @xmath58 of minimal degree @xmath93 such that @xmath94 . in view of this
means that @xmath84 is the trajectory of the affine origin in  @xmath70 .
* we assume that @xmath57 is monic which is consistent with the assumption @xmath95 and entails that @xmath96 is the identity .
this can always be accomplished by a suitable rotation of the coordinate frame about its origin .
an important ingredient in the computation of minimal motions is right division of quaternion polynomials .
given @xmath97 $ ] , there exist unique polynomials @xmath98 $ ] , called ( right ) quotient and ( right ) remainder , with @xmath99 and @xmath100 . in case of monic @xmath101
, they can be computed by .
we denote the right quotient by @xmath102 and the right remainder by @xmath103 .
the latter is used in ( euclidean algorithm ) for computing the left gcd of two quaternion polynomials @xmath97 $ ] in case of monic @xmath101 .
the left gcd is the unique monic polynomial @xmath104 of maximal degree such that there exist polynomials @xmath98 $ ] with @xmath105 and @xmath106 .
the function @xmath107 in line  [ line : lcoeff ] of returns the leading coefficient of a polynomial so that @xmath108 is monic .    two polynomials @xmath97 $ ] , @xmath101 is monic .
polynomials @xmath98 $ ] such that @xmath100 and @xmath99 .
@xmath109 , @xmath110 @xmath111 , @xmath112 @xmath113 leading coefficient of @xmath114 @xmath115 [ line : gct]@xmath116 @xmath117 @xmath118    two polynomials @xmath119 , @xmath120 $ ] , @xmath101 is monic .
monic polynomial @xmath121 $ ] such that there exist polynomial @xmath98 $ ] with @xmath105 and @xmath106 .
@xmath122 @xmath101 [ line : lcoeff]@xmath123    the computation of the minimal degree rational motion with the prescribed trajectory @xmath84 is illustrated in .
it computes a monic rational motion polynomial @xmath57 such that the trajectory of the affine origin is parameterized by @xmath84 .
the correctness of has been proved in @xcite .
the function @xmath124 in line  [ line : quo ] denotes the quotient of polynomial division for real polynomials .
it may also be computed by .    reduced rational parameteric equation @xmath125 with @xmath95 .
monic motion polynomial @xmath57 of minimal degree such that @xmath126 ( trajectory of affine origin is parameterized by @xmath84 ) .
@xmath127 [ line : quo]@xmath128 quotient of polynomial division in @xmath129 $ ] @xmath130 @xmath131 , @xmath132 , @xmath133    if the rational curve is planar or spherical , then the minimal motion is also planar or spherical , respectively . if a planar curve with a non - planar minimal motion existed , we could reflect the motion in the curve s plane and obtain a contraction to uniqueness .
for spherical curves , this follows from folgerung  9 and the proof of satz  6 of @xcite .
let s look at some examples of minimal motions :    [ ex:1 ] consider the parameteric curve @xmath134 with @xmath135 . for @xmath136
, it is an ellipse and the minimal motion polynomial is @xmath137 .
it parameterizes the curvilinear translation along the ellipse .
if @xmath138 , the curve degenerates to a straight line segment and the minimal motion is the translation @xmath139 ( back and forth along this segment ) . if @xmath140 , the parametric curve is a circle .
its circularity is one and the minimal motion polynomial @xmath141 is linear , as predicted by .
it parameterizes the rotation around the circle axis .
[ ex:2 ] as a second example , consider viviani s curve @xmath142 , given by @xmath143 it lies on the sphere of radius @xmath144 with center @xmath145 and our parameterization satisfies @xmath95 .
the minimal motion is @xmath146 .
it is a spherical motion because it fixes the sphere center @xmath145
. we call it _
viviani motion .
_      having constructed a monic motion polynomial @xmath57 with trajectory @xmath84 , we have converted our trajectory generation problem to a motion generation problem : we are looking for a linkage with one degree of freedom such that one link follows the motion parameterized by @xmath57 .
this we do by decomposing the motion into the product of rotations about certain axes .
the rotation angles are linked by the common motion parameter @xmath53 .
the basic tool for this is the factorization theory for motion polynomials as introduced in @xcite and its extension to non - generic cases in @xcite .
[ def : factorization ] a bounded motion polynomial @xmath57 is said to _ admit a factorization _ if there exist bounded linear motion polynomials @xmath147 ,
, @xmath148 such that @xmath149    we already said that each linear factor @xmath150 in parameterizes a rotation with fixed axes or translation in fixed direction . because @xmath150 is bounded , the later can not occur here .
hence , the product parameterizes the composition of such rotations .
note that a factorization of the shape need not exist and if it exists , it need not be unique .
call a motion polynomial `` generic '' if its spherical degree defect ( ) is zero .
a generic motion polynomial can always be factored ( * ? ? ? * theorem  1 ) but the factorization is in general not unique .
elliptic and circular translation and the viviani motion serve as examples :    [ ex:3 ] the elliptic translation of does not admit a factorization if @xmath151 . if @xmath140 , it admits infinitely many factorizations @xmath152 with @xmath153 , @xmath154 .
the viviani motion in admits only the factorization @xmath155 by considering primal parts only ( the dual parts are merely there because the sphere center is not the affine origin ) , we see that it is the composition of rotations with equal angular speed about the second and the third coordinate axis .
an algorithm for computing factorizations of generic motion polynomials has been presented in @xcite .
it is displayed in and .
the non - uniqueness of the factorization comes from the undetermined order of the quadratic factors in line  [ line : quadfac ] of . in line  [ line : lquo ]
we compute the quotient of polynomial left division .
this can be done by a variant of but with @xmath156 in line  [ line : gct ] replaced by @xmath157 .
monic , bounded motion polynomial @xmath158 $ ] , quadratic factor @xmath159 of @xmath160
. bounded linear motion polynomial @xmath161 such that @xmath162 .
@xmath163 @xmath164 with @xmath165 .
[ li : zero]@xmath166 unique zero of @xmath114 @xmath167 ( @xmath168 is invertible ) @xmath36 .    @xmath169 $ ] , a generic , monic motion polynomial . a list @xmath170 $ ] of bounded linear motion polynomials such that @xmath171 .
@xmath172 $ ] initialize empty list [ line : quadfac]@xmath173 $ ] each @xmath174 $ ] , @xmath175 is a + quadratic , irreducible factor of @xmath176 $ ] .
@xmath177 $ ] .
remove @xmath178 from list @xmath119 .
[ line : czero]@xmath179 @xmath180 + l$ ] add @xmath181 to start of list .
[ line : lquo]@xmath182 quotient of left division , variant of .
@xmath183 .
[ ex:4 ] can not be used to factor the elliptic or circular translation of examples  [ ex:1 ] and [ ex:3 ] because its primal part @xmath184 is real .
it fails in line  [ li : zero ] of where the dual quaternion @xmath168 is not invertible .
we can , however , use to obtain the factorization of the viviani motion . because of @xmath185 the quadratic factors of @xmath160 are all equal ( @xmath186 ) and the output of is , indeed , unique .
our linkage construction requires existence of at least one factorization of the motion polynomial @xmath57 .
thus , we have to find a way `` factorize '' non - generic motion polynomials as well .
one possibility to do this has been presented in @xcite .
there , we showed that for every bounded motion polynomial @xmath58 of degree @xmath4 a polynomial @xmath80 $ ] of degree @xmath187 exists such that @xmath79 admits a factorization .
this statement for planar motion polynomials this has already been proved in @xcite .
although not reduced , the motion polynomial @xmath79 parameterizes the same motion as @xmath57 .
thus , at the cost of possibly doubling the degree of @xmath57 , we can find a factorized representation to base our linkage construction upon .
in fact , the worst case @xmath188 occurs for curvilinear translations , that is , for generic ( non - circular ) trajectories .
multiplication with @xmath80 $ ] changes the algebraic properties of the motion polynomial but not the motion itself .
however , for our purpose it is sufficient to preserve just one particular trajectory .
therefore , the following refinement is conceivable .
if @xmath189 $ ] is a quaternion polynomial , the orbit of the affine origin with respect to @xmath190 is the same as the orbit with respect to @xmath57 . indeed ,
if @xmath58 , this orbit is parameterized by @xmath191 but , because of @xmath192 $ ] , also by @xmath193 in order to retain the orbit of a point different from the affine origin , we can similarly right - multiply with a motion polynomial that fixes that point . besides the extension to three - dimensions ,
a major contribution in this article over @xcite is to base our linkage construction on factorizations of @xmath190 instead of @xmath79 , thus improving the bounds on the number of links and joints , even in the planar case .
but before doing so we have to answer three questions :    * given a motion polynomial @xmath57 , does there always exist a quaternion polynomial @xmath194 such that @xmath190 admits a factorization ? * assuming a positive answer to the previous question : how can we determine @xmath189 $ ] ?
* finally , how can we compute the factorization of @xmath190 . note that will not do unless it can already be used to factorize @xmath57 ( in which case we simply have @xmath195 ) .
the first question will be positively answered in , below .
its proof answers the second and third question ( and ) .
our solution is based on ( part of ) the factorization algorithm of @xcite for non - generic motion polynomials .
we are going to present just its relevant details .
the factorization algorithm of @xcite incrementally builds a polynomial @xmath80 $ ] and populates lists @xmath196 $ ] , @xmath197 $ ] of bounded linear motion polynomials such that @xmath198 .
it is displayed in but we omit an else - branch that we do not need hereafter .
@xmath58 , a monic , bounded motion polynomial ; @xmath80 $ ] , lists @xmath199 , @xmath200 of linear , bounded motion polynomials .
initially , @xmath201 , @xmath202 $ ] @xmath203 $ ] .
@xmath80 $ ] , @xmath196 $ ] , @xmath204 $ ] such that @xmath198 .
[ line : gfactor ] @xmath114 , @xmath199 , @xmath205 use @xmath206 of .
@xmath207 [ line : ifgcd ] [ line : p1 ] @xmath208 quadratic real divisor of @xmath209 @xmath210 , @xmath211 [ line : prpl ] @xmath212 , @xmath213 @xmath214 @xmath215 $ ] @xmath216 @xmath217 @xmath218 + f_r$ ] @xmath219 [ line : endif ] [ line : else ]  irrelevant for this paper .
the important part is in lines  [ line : p1][line : prpl ] .
note that boundedness implies that @xmath209 in line  [ line : p1 ] is strictly positive .
hence , its real quadratic divisor @xmath220 is irreducible over @xmath54 .
we compute rotation quaternions @xmath221 , @xmath222 that are zeros of @xmath220 ( see , below ) and polynomials @xmath223 , @xmath224 such that @xmath225 depending on the respective degrees of @xmath223 and @xmath224 , we either augment the list of left factors or the list of right factors and recursively call @xmath226 with new arguments . note , however , that the polynomial factor @xmath114 remains unchanged in these parts of .
( it changes in the `` else''-branch in line  [ line : else ] which is irrelevant for this paper : once the `` if''-condition in line  [ line : ifgcd ] is satisfied , the recursive never enters that `` else''-branch , see below . )
[ th:3 ] given a bounded monic motion polynomial @xmath86 $ ] there exists a polynomial @xmath189 $ ] of degree @xmath227 such that @xmath190 admits a factorization .
the bound on the degree of @xmath194 given by is strictly lower than the bound on the degree of the real factor produced by ( the complete version of ) unless @xmath228 .
this is the generic case , we trivially have @xmath229 and factorization is passed on to .
our proof of uses the following auxiliary result :    [ lem:1 ] the motion polynomial @xmath58 with @xmath230 $ ] admits a factorization if @xmath231 divides @xmath232 .
the lemma s claim follows from inspection of . in lines  [ line :
p1][line : endif ] we compute quaternions @xmath221 , @xmath222 and quaternion polynomials @xmath223 , @xmath233 , @xmath224 , @xmath234 such that @xmath235 either @xmath236 or @xmath237 are used in the next iteration of .
both cases are similar , so lets focus on the `` left '' case .
the quadratic factor @xmath220 of @xmath231 and @xmath232 can be factored as @xmath238 .
thus , if we write @xmath231 as @xmath239 , then @xmath240 and @xmath241 .
because of @xmath242 @xmath243 still divides @xmath244 . iterating this procedure , we reduce the degree of the primal part s maximal real polynomial factor to zero , whence the factorization is completed by a call to @xmath245 in line  [ line : gfactor ] of .    for the proof of some facts about quaternion zeros of polynomials
are useful . to begin with , a polynomial @xmath246 $ ] of degree @xmath4 and without non - trivial real factors
can have at most @xmath4 quaternion zeros .
if @xmath60 has real factors , the situation is slightly more complicated .
however , we will only encounter the simpler situation that @xmath231 is a _ strictly positive _ real polynomial , i.e. , it is irreducible over @xmath54 .
then the quaternion zeros of @xmath231 are precisely the quaternion zeros of the irreducible , real , quadratic factors of @xmath231 and these are well known :    [ lem:2 ] if the real polynomial @xmath247 is irreducible over @xmath54 ( @xmath248 ) , the set of its quaternion zeros is @xmath249    one consequence of is existence of a unique zero whose vector part ( the projection onto @xmath250 ) equals a positive multiple of an arbitrary non - zero vector @xmath251 .
we call this a zero in _ direction of @xmath252
. _    in view of , we have to determine @xmath189 $ ] such that @xmath253 divides @xmath254 .
set @xmath255 , @xmath256 and @xmath257 .
there exist polynomials @xmath258 $ ] such that @xmath259 and @xmath260 . because @xmath57 is bounded , @xmath101 is strictly positive and the same is true for @xmath261 .
we select @xmath194 subject to the constraints @xmath262 and @xmath263 .
the second is a equivalent to @xmath264 .
this is always possible : write @xmath265 with quadratic , irreducible polynomials @xmath266 and initiate an iteration procedure ( ) . allows us to pick a quaternion zero @xmath267 for a quadratic factor @xmath178 such that @xmath268 is not among the finitely many zeros of @xmath269 .
after / before each iteration , we have @xmath270 . after @xmath271 iterations , we have @xmath272 and the claim follows .
@xmath58 , a monic , bounded motion polynomial .
@xmath189 $ ] such that @xmath190 admits a factorization .
@xmath273 , @xmath274 , @xmath275 , @xmath276 @xmath277 $ ] where each @xmath178 is an irreducible quadratic factor of @xmath261 @xmath278 , @xmath279 , @xmath280 [ line : pickhi]@xmath281 quaternion zero of @xmath178 , @xmath282 [ line : pickh]@xmath283 and @xmath284 @xmath194    at several points in and we are free to pick one among infinitely many zeros of irreducible quadratic polynomials .
this freedom is quite advantageous for applications of our algorithm in order to fulfull engineering needs .
[ ex:5 ] we continue and illustrate algorithms  [ alg : afactor ] and [ alg : ffactor ] at hand of the elliptic translation @xmath137 with @xmath285 . by
, there exists a linear polynomial @xmath189 $ ] such that @xmath190 admits a factorization . using the notation of
, we have @xmath286 and @xmath287 .
hence , the only restriction on @xmath288 is @xmath289 .
one possible factor is @xmath290 .
we have @xmath291 where @xmath292 our theory guarantees that @xmath190 admits a factorization .
we use for computing a factorization .
because @xmath293 , we enter the `` if''-branch in lines  [ line : ifgcd][line : endif ] where we have @xmath294 thus , we have found the representation @xmath295 where @xmath296 upon the next iteration , defers factorization of @xmath236 to the function @xmath206 of . we obtain the lists @xmath297,\\      f_r = \bigl [        t + \frac{2b((a^2-b^2){\mathbf{i}}+ 2ab{\mathbf{k } } ) + { \varepsilon}{\mathbf{j}}(a^2+b^2)^2}{2b(a^2+b^2 ) } ,        t - \frac{2b{\mathbf{i}}+ ( a^2-b^2){\varepsilon}{\mathbf{j}}}{2b }        \bigr ]
\end{gathered}\ ] ] which immediately yields the factorization @xmath298    however , there are other choices for @xmath194 . considering the planarity of @xmath57
it is natural to pick @xmath299 . running , we obtain the lists @xmath300 ,
\quad      f_r = [ t - { \mathbf{k}}- \tfrac{1}{2}{\varepsilon}{\mathbf{j}}(a - b ) , t - { \mathbf{k}}+ \tfrac{1}{2}{\varepsilon}{\mathbf{j}}(a + b)].\ ] ] and the rather simple factorization @xmath301 in contrast to the factorization , this is a _ planar motion polynomial .
_    one can show that all trajectories of the motion are ellipses ( or line segments ) in non - parallel plane .
this is a characterizing property of the _ darboux - motion _ whose factorizations have already been discussed in @xcite .      in we showed how to factor a bounded motion polynomial ,
possibly after right multiplication with a quaternion polynomial , into the product of bounded linear motion polynomials .
this section is a little intermezzo before constructing linkages from these factorizations in .
it introduces a technique we call `` bennett flip ''
. it will be an essential component of our linkage construction .
in general , a motion polynomial admits several factorizations , each giving rise to an open chain of revolute joints that is capable of performing the motion parameterized by @xmath57 .
the distal joints of different factorizations can be attached to a common link and the resulting multi - looped linkage can still perform the motion @xmath57 .
adding sufficiently many factorizations one can reasonably expect to reduce the dimension of the linkages configuration space to one .
this idea has already been successfully applied for constructing linkages for engineering applications @xcite but it is not really suitable for proving the general statement of because it may fail to produce linkages with only one degree of freedom .
consider , as a warning , the viviani motion .
it admits only one factorization and hence gives raise to just one single chain with two revolute joints and two degrees of freedom .
it is , however , possible to use above idea in the special case of quadratic motion polynomials .
they are sufficiently simple to allow a complete discussion of all unwanted cases .
once this is available we can combine degree two motion polynomials and their linkages to generate mechanisms that satisfy the criteria of .
[ def : bflip ] the _ bennett flip _ is the map @xmath302 where @xmath303 and @xmath304 .    in order to understand the idea behind , set @xmath305 and consider the polynomials @xmath306 , @xmath307 where @xmath308 and @xmath309 . from @xmath310
we see that @xmath311 is the zero of @xmath312 and @xmath313 is the zero of @xmath314 . in other words , @xmath313 and @xmath311
are obtained by applying to @xmath306 and yield the second factorization @xmath315 .
this interpretation accounts for the name `` bennett flip '' : given a rotation quaternion @xmath36 , denote its axes by @xmath316 . in general the axes @xmath317 , @xmath318 , @xmath319 , and
@xmath320 form a bennett linkage .
exceptional cases exist and will be described in detail .
[ prop : bflip ] consider two rotation quaternions @xmath321 , @xmath322 with @xmath323 and let @xmath324 . then the following hold :    1 .   also @xmath313 and @xmath311 are rotation quaternions .
the restriction of the bennett flip to pairs of rotation quaternions is an involution , that is , @xmath325 .
the restriction of the bennett flip to pairs of rotation quaternions is birational .
we have @xmath326 and @xmath327 where @xmath328 is the _ minimal polynomial _ of @xmath64 .
we have @xmath329 , @xmath330 and @xmath331 .
items  1 and 2 follow from the interpretation of the bennett flip as application of to @xmath306 .
item  2 implies item  3 .
item  4 follows again from because @xmath332 in line  [ line : czero ] of that algorithm . in order to see the last item
, we may multiply the equation @xmath333 with @xmath334 from the left and with @xmath335 from the right . with @xmath336
we obtain @xmath337 . because @xmath338 commutes with the other factors , the first equation of item  5 follows .
the other equations follow by iterating this argument .
the statements of on the restriction of @xmath339 to pairs of rotation quaternions are also true for @xmath339 itself . here , we only need the weaker formulation that allows a simpler proof .    with @xmath305 we have @xmath333 .
this ensures that the four - bar linkage with axes @xmath317 , @xmath318 , @xmath319 , and @xmath320 moves with at least one degree of freedom .
moreover , it is elementary to see that it moves with at most one degree of freedom , if these axes are all different .
if this is not the case , we have @xmath340 and @xmath341 ( this comprises the case where all axes coincide ) .
the following lemma provides a sufficient criterion to exclude this .
[ lem:3 ] given are rotation quaternions @xmath321 , @xmath342 , @xmath313 , @xmath311 with @xmath343 .
* we have @xmath344 if and only if @xmath345 and @xmath346 are linearly dependent . in this case , @xmath347 . * provided @xmath348 , we have @xmath340 and @xmath341 if and only if @xmath349 .
the dual quaternion @xmath350 has zero scalar part .
hence , there exist real numbers @xmath351 such that @xmath352 and the plcker line coordinates of @xmath317 are @xmath353 $ ] .
this implies the first claim .
now we turn to the second claim . by it
is obvious that @xmath349 implies equality of axes .
conversely , we have to show @xmath354 and @xmath355 for @xmath356 under the assumption of @xmath340 and @xmath341 .
this equality of axes implies linear dependence of their plcker vectors .
hence , there exist real numbers @xmath357 , @xmath358 , @xmath359 , @xmath360 such that @xmath361 and @xmath362 . by comparing coefficients on both sides of @xmath333
we obtain @xmath363 the first equation minus its conjugate is @xmath364 . because @xmath365 and @xmath366 are linearly independent , this implies @xmath367 .
but then , we are left with @xmath368 and @xmath369 follows .
thus , @xmath370 and @xmath371 .
but then .4 implies @xmath372 .
[ rem : flip - mobility ] summarizing the result of , we can say that the four - bar linkage with axes @xmath317 ,
@xmath318 , @xmath319 , and @xmath320 has exactly one degree of freedom if @xmath350 and @xmath346 are linearly independent and @xmath373 .    under the assumptions of the previous remark ,
a four - bar linkage obtained by a bennett flip is of one of the following types :    * a bennett linkage , * a planar anti - parallelogram linkage , or * a spherical linkage where the connections of opposite joint pairs are of equal length .
the spatial case is clear since bennett linkages are the only movable spatial four - bar linkages . in particular , the orthogonal distances and angles of opposite axes pairs
are equal .
the statement on the planar case has been proved in @xcite .
the spherical situation is similar but a distinction between parallelogram and anti - parallelogram linkages is neither possible nor necessary .
the reason is that a joint may equally well be realized by a circular arc or its supplementary arc .
equal distance of joint pairs follows from projection of the spatial case on the primal part , that is , by considering only the spherical motion component . at any rate ,
the configuration curve of planar or spherical linkages consists of two irreducible components and only one of them is relevant to us .
[ rem : circular - flip ] it is worth mentioning that techniques similar to bennett flips are conceivable . for the circular translation @xmath374 one can find infinitely many different factorizations and two of them may be combined , similar to the bennett flip , to form a parallelogram linkage .
this was used to construct new overconstrained 6r linkages in @xcite .
now we come to the actual construction of a linkage  last step in our proof of . in the preceding sections
we have shown how to    1 .
compute a motion polynomial @xmath58 of minimal degree @xmath93 ( where @xmath0 is the curve s degree and @xmath1 is its circularity ) such that the trajectory of the affine origin equals the given trajectory and 2 .   determine a quaternion polynomial
@xmath189 $ ] of degree @xmath375 such that @xmath190 admits the factorization @xmath376 with rotation quaternions @xmath377 and @xmath378 .
this factorization gives rise to an open chain of revolute axes that can generate the motion parameterized by @xmath190 in the following way .
* for @xmath379 , the quaternion @xmath380 describes a rotation about the axis @xmath381 whose plcker coordinates @xmath382 $ ] can be computed from @xmath383 . * the lines @xmath384 determine the configuration of the linkage at parameter time @xmath78 ( zero rotation angle ) .
the configuration at parameter time @xmath385 is obtained from this configuration by successively subjecting @xmath386 to the rotation @xmath387 for @xmath388 .
this open revolute chain has @xmath4 degrees of freedom .
it is our aim to constrain its motion in such a way that a link attached to the last joint ( with axis @xmath389 ) performs a motion that can be parameterized by @xmath190 . the basic technique for doing this is the bennett flip of .
we can constrain the motion of this chain to the motion parameterized by @xmath190 by    1 .   picking a `` suitable '' motion polynomial @xmath390 and 2 .
recursively defining @xmath391    this gives us rotation quaternions @xmath392 , @xmath393 , and @xmath394 that can be assembled to a linkage whose link graph is depicted in .
the vertices of the linkgraph correspond to links and the edges correspond to joints .
two vertices ( links ) are connected by an edge ( joint ) if relative motion of the two links is constrained by the corresponding revolute joint .
the recursion builds the linkage from the bottom row of edges ( labeled @xmath321 ,  , @xmath395 ) and the first vertical edge ( labeled @xmath396 ) but
it is clear that we may equally well start from any other vertical edge @xmath397 , @xmath379 .
also shows the joint hypergraph ( not a graph because the joint triples @xmath398 and @xmath399 belong to the same links for @xmath400 ) .
the structure of this hypergraph suggests the name `` scissor linkage '' for the resulting linkage type .
the axes of @xmath321 and @xmath396 are attached to the base frame , while @xmath395 and @xmath401 are attached to the moving frame .
their link performs the motion parameterized by the given motion polynomial . in general , each loop @xmath380 , @xmath397 , @xmath402 , @xmath403 forms a bennett linkage . in this case
the linkage has just one degree of freedom and its configuration curve has a single component .
in other words , it satisfies all requirements of .
it is , however , possible , that planar or spherical four - bar linkages occur .
this may be desirable , acceptable , or not acceptable , depending on circumstances . in order to prove
we must , however , avoid coinciding axes , that is , we have to show that one can pick @xmath396 in such a way that the conditions of are never fulfilled .
+     [ lem:4 ] given rotation quaternions @xmath404 there exists a rotation quaternion @xmath396 such that the quaternions @xmath405 and @xmath393 obtained from the recursion are well - defined and the four - bar linkage with axes @xmath406 , @xmath381 , @xmath407 , @xmath408 has precisely one degree of freedom for any @xmath409 .    by , we have to avoid linear dependency of @xmath410 and @xmath411 as well as equality @xmath412 of minimal polynomials .
by we have @xmath413 .
thus , in order to ensure different minimal polynomials , we just have to avoid the set @xmath414 when picking @xmath396 .
this is the union of at most @xmath4 algebraic sets of positive codimension .    in order to avoid linearly dependent vector parts , we recursively define maps @xmath415 for @xmath379 .
they are well - defined birational maps by and satisfy @xmath416 .    the vectors @xmath417 and @xmath411 are linearly dependent if the projection of @xmath397 onto the vector part is in the span of the projection of @xmath380 onto its vector part .
this defines a vector subspace @xmath418 of dimension three that @xmath397 should avoid .
this is the case if and only if @xmath396 avoid the union @xmath419 , that is , another finite union of varieties of positive codimension .
this is certainly possible .
this finishes our proof of .
we just want to explain how to bound the number of links and joints . the minimal degree motion polynomial with a given rational curve of degree @xmath0 and circularity @xmath1 as trajectory is of degree @xmath93 and spherical degree defect @xmath90 ( ) .
by , there exist a polynomial @xmath189 $ ] of degree not larger than @xmath420 such that @xmath190 admits a factorization .
the product @xmath190 is of degree @xmath421 and this is the same number @xmath4 as in .
the numbers of links and joints are the numbers of vertices and edges , respectively , in the linkgraph , that is , @xmath422 and @xmath423 , respectively .
we conclude this section with a discussion of planar and spherical four - bar linkages as components of the scissor linkage .
the summary is that they can be avoided if wanted but can also be enforced if the given rational curve is planar or spherical .
[ cor:1 ] under the assumptions of we may pick @xmath396 in such a way that none of the quadruples @xmath424 is planar or spherical .
in particular , our construction yields linkages such that the configuration space is free of spurious components .    the quadruple will be spherical or planar , respectively , if and only if the axes of @xmath403 and @xmath380 intersect or are parallel . similar as in the proof of , this defines subvariaties of positive codimension that @xmath403 should avoid for @xmath425 . mapping back this
subvariaties via the maps @xmath426 adds finitely many further components of positive codimension to the set that @xmath396 should avoid .
shows that we can avoid planar or spherical quadrilaterals in the scissor linkage if we wish .
this ensures that the configuration space of the resulting linkage is free from spurious components .
this is an important difference to planar versions of kempe s universality theorem where `` bracing constructions '' for anti - parallelograms are necessary in order to suitable constrain the configuration space .
of course , this then yields spatial linkages even for planar or spherical motions which may not always be desirable .
the next corollary states that it is also possible to generate planar or spherical linkages if the input data is suitable .
[ cor:2 ] if , under all assumptions of , the axes of @xmath392 are incident with the same point or are parallel to the same direction , we may pick @xmath396 in such a way that all axes of @xmath405 and @xmath393 are incident with the this point or parallel to this direction , respectively .    for the planar case ,
this is ( * ? ? ?
* lemma  6.5 ) . as to the spherical case ,
assume , without loss of generality that all dual parts are zero .
the proof of shows that we can pick @xmath427 which then implies @xmath428 and the claim follows .    finally , we mention two ways to improve our bounds on the number of links and joints .
the first is just a hint that will often work for spatial linkages without a formal proof .
the second is a substantial improvement of kempe s universality theorem for rational spherical curves .    if two successive four - bars @xmath381 , @xmath407 , @xmath408 , @xmath406 and @xmath429 , @xmath430 , @xmath431 , @xmath407 are in a scissor linkage are both bennett linkages , it is , in general , possible to eliminate their common joint @xmath397 without increasing the mobility .
the two bennett linkages are replaced by a closed - loop linkage with six revolute joints and one degree of freedom .
( it is of type `` waldron s double bennett hybrid '' @xcite . )
we refrain from any attempts to formalizing this idea because it is a little tricky to guarantee that neither the number of irreducible components nor dimension of the configuration space increases in non - generic situations .
[ cor : spherical ] a spherical rational curve of degree @xmath0 appears as trajectory of linkage with at most @xmath24 links and @xmath25 joints .
the statement follows from the bounds of and the observation that spherical rational curves are of maximal circularity  @xmath432 .
in this section we present several examples of linkages to given rational curves .
they are meant to illustrate type and properties of the linkages we obtain , the degrees of freedom we have in our construction , and how to use them in the design of linkages .
some of them continue previous examples .
[ ex : pascal ] the limacon of pascal , parameterized by @xmath433 where @xmath434 has the minimal motion @xmath435 because of @xmath185 , this is the only factorization .
we select @xmath436 and , using the recursion , obtain @xmath437 the resulting linkage for @xmath438 is depicted in , left and bottom . in this case , the curve is a cardioid .
the joints are labeled by their corresponding rotation quaternions .
the special geometry allows to realize the links connecting @xmath321 , @xmath342 , @xmath439 and @xmath313 , @xmath311 , @xmath439 , respectively , by straight line segments .
the linkage has two flat positions where all joints are collinear .
there , either of the two anti - parallelograms ( @xmath380 , @xmath397 , @xmath402 , @xmath403 for @xmath356 ) can switch to parallelogram mode .
thus , the motion has four components and only one of them is relevant for drawing the cardioid . using @xmath440 , we obtain a different , less symmetric , linkage to draw the same curve ( , right ) . here , the triangles @xmath321 , @xmath439 , @xmath342 and @xmath313 , @xmath439 , @xmath311 act as links , that is , they are rigid throughout the motion .
the motion of the link attached to @xmath342 and @xmath441 is the same for both linkages .    ' '' ''        ' '' ''
we continue the discussion of viviani s curve .
however , we not use but the simpler motion polynomial @xmath442 which is obtained from by a translation . based on this minimal motion
we construct a linkage .
we initialize the construction with @xmath443 and , using the recursion , compute @xmath444 it is already apparent that this linkage has a flat folded position in the plane spanned by @xmath30 and @xmath31 .
one of its configurations is depicted in , left .
we may as well construct a different linkage by starting with @xmath445 whence we get @xmath446 the corresponding linkage is shown in , right . here , the joint triples @xmath447 and @xmath448 are not collinear . note that maybe more natural choices like @xmath449 or @xmath450 would violate the condition @xmath451 .
img / viviani3b ( 50,91 ) ( 17,92 ) ( 59,44 ) ( 28,21 ) ( 80,24 ) ( 40,59 ) ( 96,33 )    img / viviani4b ( 47,86 ) ( 76,89 ) ( 8,66 ) ( 0,55 ) ( 90,29 ) ( 81,70 ) ( 86,9 )    in our next example , we return to the elliptic translation of and start with the planar factorization .
we assume @xmath452 , choose @xmath453 and compute @xmath454 the centers of the rotation quaternions in describe the linkage in the configuration at @xmath78 and we can verify that all joints lie on the first coordinate axis .
the linkage is quite similar to the linkage of but requires eight links and ten joints and it is similar to the example of @xcite which was constructed in a similar manner .
the linkage has two flat positions at which any of the three anti - parallelograms @xmath403 , @xmath402 , @xmath397 , @xmath380 may switch to parallelogram mode .
thus , the configuration curve has six components and only one is relevant for drawing the ellipse .
we may also construct a spatial linkage based on the factorization and the rotation quaternion @xmath455 .
we refrain from displaying the values of @xmath439 , @xmath441 , @xmath456 , @xmath313 , @xmath311 , and @xmath457 ( which would still be possible , even without specifying @xmath168 and @xmath458 ) and rather discuss the resulting spatial linkage ( ) .
it shares the linkgraph with the previous example and can be thought of as a scissor linkage made of bennett linkages .
displays a schematic representation where the four links and joints of one bennett linkage are displayed in the same color ( blue , gray , and red , respectively ; note that the joints @xmath439 and @xmath441 belong to two bennett linkages ) .
the axis triples @xmath459 , @xmath460 , @xmath461 , and @xmath462 are rigidly connected and one point attached to @xmath463 and @xmath456 draws the ellipse .
in contrast to all other examples so far , the configuration curve of this linkage is irreducible .
one can show that not only one but all trajectories are ellipses ( or line segments ) but in non - parallel plane .
thus , the linkage generates a so - called darboux motion @xcite .
it is possible to remove @xmath439 or @xmath441 without increasing the dimension of the configuration curve but this may come at the cost of introducing spurious components of the configuration curve .
img / elliptic - translation - b ( 5,33 ) ( 25,33 ) ( 15,34 ) ( 1,22 ) ( 49,10 ) ( 62,17 ) ( 79,1 ) ( 89,2 ) ( 95,10 ) ( 93,20 )    finally , we illustrate how to draw a bounded portion of an unbounded rational curve . using with @xmath464
is prevented because then the choice @xmath453 is invalid . but using the curve @xmath465 , the minimal motion @xmath466 , the factor , @xmath299 and the rotation quaternion @xmath467 produces the linkage shown in .
this work was supported by the austrian science fund ( fwf ) : p  26607 ( algebraic methods in kinematics : motion factorisation and bond theory ) .
j.  e. baker , _ on the motion geometry of the bennett linkage _ , proceedings of the 8th international conference on engineering computer graphics and descriptive geometry ( austin , texas , usa ) , 1998 , pp .  433437 .
alexander kobel , _ automated generation of kempe linkages for algebraic curves in a dynamic geometry system _ , bachelor s thesis , university of saarbrcken , 2008 , available at https://people.mpi-inf.mpg.de/~akobel/publications/kobel08-kempe-linkages.pdf .