[list=1][*]Find a set of lengths for the bars AB, BC, AD and CD such that the point E is moving on a straight line (not necessarily on its full movement, just partially). [color=#cccccc]This is not possible.[/color][br][/*][*]Learn the order of the appearing curves. [color=#cccccc]They are sextics.[/color][/*][*]Construct Chebyshev's linkage (1854) by choosing suitable lengths for the bars. [color=#cccccc]AB=4, BC=AD=5, CD=2.[/color][/*][*]Construct Watt's linkage by putting B=(7,-2) and choosing BC=AD=4 and CD=2.[/*][/list]
It is a bit tricky to disallow moving [i]D[/i] over the possible domain. Here is how you can achieve that in GeoGebra:[br][list=1][*]Define a variable to store the path parameter for [i]D[/i] in a variable, by entering say [code]ppd=PathParameter[D][/code].[/*][*]Type [code]i=1[/code].[/*][*]Make sure that point C is defined as [code]C=Intersect[c,e,i][/code].[/*][*]You need to edit the [b]Scripting/On Update[/b] setting for the point D by using the following piece of code:[br][/*][code] [/code][code]if (ggbApplet.getValue("x(E)")) {[br] var ppD = ggbApplet.getValue("ppD");[br] ggbApplet.evalCommand("ppDok="+ppD);[br] } else {[br] var ppDok = ggbApplet.getValue("ppDok");[br] ggbApplet.evalCommand("SelectObjects[]");[br] ggbApplet.evalCommand("SetValue[D,Point[d,"+ppDok+"]]"); [br] ggbApplet.evalCommand("SetValue[i,3-i]");[br] }[/code][/list]Now the variable [i]ppD[/i] will store the current position of [i]D[/i]. The script also helps storing a valid value of it as [i]ppDok[/i]. The variable [i]i[/i] stores the current branch to play with (by dragging [i]D[/i]).[br]This trick was created by using J.-V. Sánchez's idea.