jsxgraph 1.10.0 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/distrib/docs/files.html +2 -61
  3. package/distrib/docs/index.html +2 -58
  4. package/distrib/docs/static/jsxgraphcore.js +2 -2
  5. package/distrib/docs/symbols/Angle.html +2 -18
  6. package/distrib/docs/symbols/Arc.html +2 -18
  7. package/distrib/docs/symbols/Arrow.html +2 -18
  8. package/distrib/docs/symbols/Arrowparallel.html +2 -18
  9. package/distrib/docs/symbols/Axes3D.html +2 -18
  10. package/distrib/docs/symbols/Axis.html +2 -18
  11. package/distrib/docs/symbols/Axis3D.html +2 -18
  12. package/distrib/docs/symbols/Bisector.html +2 -18
  13. package/distrib/docs/symbols/Bisectorlines.html +2 -18
  14. package/distrib/docs/symbols/Boxplot.html +2 -18
  15. package/distrib/docs/symbols/Button.html +2 -18
  16. package/distrib/docs/symbols/Cardinalspline.html +2 -18
  17. package/distrib/docs/symbols/Chart.html +2 -18
  18. package/distrib/docs/symbols/Checkbox.html +2 -18
  19. package/distrib/docs/symbols/Circle.html +2 -18
  20. package/distrib/docs/symbols/Circle3D.html +2 -18
  21. package/distrib/docs/symbols/Circumcenter.html +2 -18
  22. package/distrib/docs/symbols/Circumcircle.html +2 -18
  23. package/distrib/docs/symbols/CircumcircleArc.html +2 -18
  24. package/distrib/docs/symbols/CircumcircleSector.html +2 -18
  25. package/distrib/docs/symbols/Comb.html +2 -18
  26. package/distrib/docs/symbols/Conic.html +2 -18
  27. package/distrib/docs/symbols/Curve.html +2 -18
  28. package/distrib/docs/symbols/Curve3D.html +2 -18
  29. package/distrib/docs/symbols/CurveDifference.html +2 -18
  30. package/distrib/docs/symbols/CurveIntersection.html +2 -18
  31. package/distrib/docs/symbols/CurveUnion.html +2 -18
  32. package/distrib/docs/symbols/Derivative.html +2 -18
  33. package/distrib/docs/symbols/Ellipse.html +2 -18
  34. package/distrib/docs/symbols/ForeignObject.html +2 -18
  35. package/distrib/docs/symbols/Functiongraph.html +2 -18
  36. package/distrib/docs/symbols/Functiongraph3D.html +2 -18
  37. package/distrib/docs/symbols/Glider.html +2 -18
  38. package/distrib/docs/symbols/Grid.html +2 -18
  39. package/distrib/docs/symbols/Group.html +2 -18
  40. package/distrib/docs/symbols/Hatch.html +2 -18
  41. package/distrib/docs/symbols/Hyperbola.html +2 -18
  42. package/distrib/docs/symbols/Image.html +2 -18
  43. package/distrib/docs/symbols/ImplicitCurve.html +2 -18
  44. package/distrib/docs/symbols/Incenter.html +2 -18
  45. package/distrib/docs/symbols/Incircle.html +2 -18
  46. package/distrib/docs/symbols/Inequality.html +2 -18
  47. package/distrib/docs/symbols/Input.html +2 -18
  48. package/distrib/docs/symbols/Integral.html +2 -18
  49. package/distrib/docs/symbols/Intersection.html +2 -18
  50. package/distrib/docs/symbols/IntersectionCircle3D.html +2 -18
  51. package/distrib/docs/symbols/IntersectionLine3D.html +2 -18
  52. package/distrib/docs/symbols/JXG.AbstractRenderer.html +2 -18
  53. package/distrib/docs/symbols/JXG.Board.html +4 -20
  54. package/distrib/docs/symbols/JXG.Board.infobox.html +2 -18
  55. package/distrib/docs/symbols/JXG.C.html +2 -18
  56. package/distrib/docs/symbols/JXG.CA.html +2 -18
  57. package/distrib/docs/symbols/JXG.CanvasRenderer.html +2 -18
  58. package/distrib/docs/symbols/JXG.Chart.html +2 -18
  59. package/distrib/docs/symbols/JXG.Circle.html +2 -18
  60. package/distrib/docs/symbols/JXG.Circle3D.html +2 -18
  61. package/distrib/docs/symbols/JXG.Complex.html +2 -18
  62. package/distrib/docs/symbols/JXG.Composition.html +2 -18
  63. package/distrib/docs/symbols/JXG.Coords.html +2 -18
  64. package/distrib/docs/symbols/JXG.CoordsElement.html +98 -22
  65. package/distrib/docs/symbols/JXG.Curve.html +2 -18
  66. package/distrib/docs/symbols/JXG.Curve3D.html +2 -18
  67. package/distrib/docs/symbols/JXG.Dump.html +2 -18
  68. package/distrib/docs/symbols/JXG.EventEmitter.html +2 -18
  69. package/distrib/docs/symbols/JXG.Expect.html +2 -18
  70. package/distrib/docs/symbols/JXG.ForeignObject.html +2 -18
  71. package/distrib/docs/symbols/JXG.GeometryElement.html +2 -18
  72. package/distrib/docs/symbols/JXG.GeometryElement3D.html +2 -18
  73. package/distrib/docs/symbols/JXG.GeonextParser.html +2 -18
  74. package/distrib/docs/symbols/JXG.Group.html +2 -18
  75. package/distrib/docs/symbols/JXG.Image.html +2 -18
  76. package/distrib/docs/symbols/JXG.JSXGraph.html +2 -18
  77. package/distrib/docs/symbols/JXG.JessieCode.html +2 -18
  78. package/distrib/docs/symbols/JXG.Legend.html +2 -18
  79. package/distrib/docs/symbols/JXG.Line.html +2 -18
  80. package/distrib/docs/symbols/JXG.Line3D.html +2 -18
  81. package/distrib/docs/symbols/JXG.Math.BoxQuadtree.html +2 -18
  82. package/distrib/docs/symbols/JXG.Math.Clip.html +2 -18
  83. package/distrib/docs/symbols/JXG.Math.Extrapolate.html +2 -18
  84. package/distrib/docs/symbols/JXG.Math.Geometry.html +2 -18
  85. package/distrib/docs/symbols/JXG.Math.ImplicitPlot.html +2 -18
  86. package/distrib/docs/symbols/JXG.Math.IntervalArithmetic.html +2 -18
  87. package/distrib/docs/symbols/JXG.Math.Metapost.html +2 -18
  88. package/distrib/docs/symbols/JXG.Math.Nlp.html +2 -18
  89. package/distrib/docs/symbols/JXG.Math.Numerics.html +2 -18
  90. package/distrib/docs/symbols/JXG.Math.Plot.html +2 -18
  91. package/distrib/docs/symbols/JXG.Math.Poly.Monomial.html +2 -18
  92. package/distrib/docs/symbols/JXG.Math.Poly.Polynomial.html +2 -18
  93. package/distrib/docs/symbols/JXG.Math.Poly.Ring.html +2 -18
  94. package/distrib/docs/symbols/JXG.Math.Poly.html +2 -18
  95. package/distrib/docs/symbols/JXG.Math.ProbFuncs.html +2 -18
  96. package/distrib/docs/symbols/JXG.Math.Quadtree.html +2 -18
  97. package/distrib/docs/symbols/JXG.Math.Statistics.html +22 -34
  98. package/distrib/docs/symbols/JXG.Math.html +2 -18
  99. package/distrib/docs/symbols/JXG.NoRenderer.html +2 -18
  100. package/distrib/docs/symbols/JXG.Options.html +2 -18
  101. package/distrib/docs/symbols/JXG.Plane3D.html +2 -18
  102. package/distrib/docs/symbols/JXG.Point.html +2 -18
  103. package/distrib/docs/symbols/JXG.Point3D.html +2 -18
  104. package/distrib/docs/symbols/JXG.Polygon.html +2 -18
  105. package/distrib/docs/symbols/JXG.Polygon3D.html +2 -18
  106. package/distrib/docs/symbols/JXG.PrefixParser.html +2 -18
  107. package/distrib/docs/symbols/JXG.SVGRenderer.html +2 -18
  108. package/distrib/docs/symbols/JXG.Sphere3D.html +2 -18
  109. package/distrib/docs/symbols/JXG.Surface3D.html +2 -18
  110. package/distrib/docs/symbols/JXG.Text.html +2 -18
  111. package/distrib/docs/symbols/JXG.Text3D.html +2 -18
  112. package/distrib/docs/symbols/JXG.Ticks.html +2 -18
  113. package/distrib/docs/symbols/JXG.Transformation.html +2 -18
  114. package/distrib/docs/symbols/JXG.Turtle.html +2 -18
  115. package/distrib/docs/symbols/JXG.Util.Base64.html +2 -18
  116. package/distrib/docs/symbols/JXG.Util.UTF8.html +2 -18
  117. package/distrib/docs/symbols/JXG.Util.Unzip.html +2 -18
  118. package/distrib/docs/symbols/JXG.Util.html +2 -18
  119. package/distrib/docs/symbols/JXG.VMLRenderer.html +2 -18
  120. package/distrib/docs/symbols/JXG.View3D.html +4 -19
  121. package/distrib/docs/symbols/JXG.XML.html +2 -18
  122. package/distrib/docs/symbols/JXG.html +2 -18
  123. package/distrib/docs/symbols/Label.html +2 -18
  124. package/distrib/docs/symbols/Legend.html +2 -18
  125. package/distrib/docs/symbols/Line.html +2 -18
  126. package/distrib/docs/symbols/Line3D.html +2 -18
  127. package/distrib/docs/symbols/MajorArc.html +2 -18
  128. package/distrib/docs/symbols/MajorSector.html +2 -18
  129. package/distrib/docs/symbols/Measurement.html +2 -18
  130. package/distrib/docs/symbols/Mesh3D.html +2 -18
  131. package/distrib/docs/symbols/Metapostspline.html +2 -18
  132. package/distrib/docs/symbols/Midpoint.html +2 -18
  133. package/distrib/docs/symbols/MinorArc.html +2 -18
  134. package/distrib/docs/symbols/MinorSector.html +2 -18
  135. package/distrib/docs/symbols/Mirrorpoint.html +2 -18
  136. package/distrib/docs/symbols/NonReflexAngle.html +2 -18
  137. package/distrib/docs/symbols/Normal.html +2 -18
  138. package/distrib/docs/symbols/Orthogonalprojection.html +2 -18
  139. package/distrib/docs/symbols/OtherIntersection.html +2 -18
  140. package/distrib/docs/symbols/Parabola.html +2 -18
  141. package/distrib/docs/symbols/Parallel.html +2 -18
  142. package/distrib/docs/symbols/Parallelogram.html +2 -18
  143. package/distrib/docs/symbols/Parallelpoint.html +2 -18
  144. package/distrib/docs/symbols/ParametricSurface3D.html +2 -18
  145. package/distrib/docs/symbols/Perpendicular.html +2 -18
  146. package/distrib/docs/symbols/PerpendicularPoint.html +2 -18
  147. package/distrib/docs/symbols/PerpendicularSegment.html +2 -18
  148. package/distrib/docs/symbols/Point.html +2 -18
  149. package/distrib/docs/symbols/Point3D.html +2 -18
  150. package/distrib/docs/symbols/PolarLine.html +2 -18
  151. package/distrib/docs/symbols/PolePoint.html +2 -18
  152. package/distrib/docs/symbols/Polygon.html +2 -18
  153. package/distrib/docs/symbols/PolygonalChain.html +2 -18
  154. package/distrib/docs/symbols/RadicalAxis.html +2 -18
  155. package/distrib/docs/symbols/Reflection.html +2 -18
  156. package/distrib/docs/symbols/ReflexAngle.html +2 -18
  157. package/distrib/docs/symbols/RegularPolygon.html +2 -18
  158. package/distrib/docs/symbols/Riemannsum.html +2 -18
  159. package/distrib/docs/symbols/Sector.html +2 -18
  160. package/distrib/docs/symbols/Segment.html +2 -18
  161. package/distrib/docs/symbols/Semicircle.html +2 -18
  162. package/distrib/docs/symbols/Slider.html +2 -18
  163. package/distrib/docs/symbols/Slopefield.html +2 -18
  164. package/distrib/docs/symbols/Slopetriangle.html +2 -18
  165. package/distrib/docs/symbols/Smartlabel.html +2 -18
  166. package/distrib/docs/symbols/Sphere3D.html +2 -18
  167. package/distrib/docs/symbols/Spline.html +2 -18
  168. package/distrib/docs/symbols/Stepfunction.html +2 -18
  169. package/distrib/docs/symbols/Tangent.html +2 -18
  170. package/distrib/docs/symbols/TangentTo.html +2 -18
  171. package/distrib/docs/symbols/Tapemeasure.html +2 -18
  172. package/distrib/docs/symbols/Text.html +12 -26
  173. package/distrib/docs/symbols/Text3D.html +2 -18
  174. package/distrib/docs/symbols/Ticks.html +2 -18
  175. package/distrib/docs/symbols/Ticks3D.html +2 -18
  176. package/distrib/docs/symbols/Tracecurve.html +2 -18
  177. package/distrib/docs/symbols/Transformation.html +2 -18
  178. package/distrib/docs/symbols/Turtle.html +2 -18
  179. package/distrib/docs/symbols/Vectorfield.html +2 -18
  180. package/distrib/docs/symbols/Vectorfield3D.html +53 -18
  181. package/distrib/docs/symbols/View3D.html +2 -18
  182. package/distrib/docs/symbols/_global_.html +2 -18
  183. package/distrib/docs/symbols/mirrorelement.html +2 -18
  184. package/distrib/docs/symbols/src/src_3d_box3d.js.html +261 -259
  185. package/distrib/docs/symbols/src/src_3d_curve3d.js.html +205 -156
  186. package/distrib/docs/symbols/src/src_3d_linspace3d.js.html +337 -327
  187. package/distrib/docs/symbols/src/src_3d_point3d.js.html +204 -187
  188. package/distrib/docs/symbols/src/src_3d_text3d.js.html +189 -177
  189. package/distrib/docs/symbols/src/src_3d_view3d.js.html +1246 -1236
  190. package/distrib/docs/symbols/src/src_base_board.js.html +2058 -2057
  191. package/distrib/docs/symbols/src/src_base_constants.js.html +1 -1
  192. package/distrib/docs/symbols/src/src_base_coordselement.js.html +383 -274
  193. package/distrib/docs/symbols/src/src_element_sector.js.html +1 -1
  194. package/distrib/docs/symbols/src/src_math_geometry.js.html +609 -604
  195. package/distrib/docs/symbols/src/src_math_statistics.js.html +418 -411
  196. package/distrib/docs/symbols/src/src_options.js.html +504 -502
  197. package/distrib/docs/symbols/src/src_options3d.js.html +952 -944
  198. package/distrib/docs.zip +0 -0
  199. package/distrib/geogebra.min.js +1 -1
  200. package/distrib/geonext.min.js +1 -1
  201. package/distrib/intergeo.min.js +1 -1
  202. package/distrib/jsxgraph.zip +0 -0
  203. package/distrib/jsxgraphcore.js +2 -2
  204. package/distrib/jsxgraphcore.mjs +2 -2
  205. package/distrib/jsxgraphcore.mjs.map +1 -1
  206. package/distrib/jsxgraphsrc.js +15405 -16038
  207. package/distrib/jsxgraphsrc.mjs +15405 -16038
  208. package/distrib/jsxgraphsrc.mjs.map +1 -1
  209. package/distrib/sketch.min.js +1 -1
  210. package/package.json +1 -1
  211. package/src/3d/box3d.js +2 -0
  212. package/src/3d/curve3d.js +53 -4
  213. package/src/3d/linspace3d.js +17 -7
  214. package/src/3d/point3d.js +20 -3
  215. package/src/3d/text3d.js +20 -8
  216. package/src/3d/view3d.js +17 -7
  217. package/src/base/board.js +1 -0
  218. package/src/base/constants.js +1 -1
  219. package/src/base/coordselement.js +119 -10
  220. package/src/element/sector.js +1 -1
  221. package/src/index.js +0 -3
  222. package/src/math/geometry.js +27 -22
  223. package/src/math/statistics.js +29 -22
  224. package/src/options.js +8 -6
  225. package/src/options3d.js +10 -2
  226. package/src/{server → unused/server}/JXGServer.py +4 -9
  227. package/src/{server → unused/server}/JXGServerModule.py +2 -2
  228. package/src/{server → unused/server}/README.md +25 -14
  229. package/src/{server → unused/server}/RStats.py +1 -1
  230. package/src/{server → unused/server}/YahooFinance.py +4 -4
  231. package/src/{server → unused/server}/fft.py +6 -6
  232. package/src/{server → unused/server}/geoloci.py +17 -17
  233. package/src/{server → unused/server}/jxggroebner.py +22 -22
  234. package/src/index2.js +0 -105
  235. /package/src/{element → unused}/locus.js +0 -0
  236. /package/src/{server → unused/server}/JXG.py +0 -0
  237. /package/src/{server → unused/server}/jxgtestplugin.py +0 -0
  238. /package/src/{server → unused/server}/server.js +0 -0
  239. /package/src/{math → unused}/symbolic.js +0 -0
@@ -1910,287 +1910,396 @@
1910
1910
  <span class='line'>1903</span> * @param {Number} [time] Number of milliseconds the animation should last.
1911
1911
  <span class='line'>1904</span> * @param {Object} [options] Optional settings for the animation
1912
1912
  <span class='line'>1905</span> * @param {function} [options.callback] A function that is called as soon as the animation is finished.
1913
- <span class='line'>1906</span> * @param {String} [options.effect='&lt;>'] animation effects like speed fade in and out. possible values are
1914
- <span class='line'>1907</span> * '&lt;>' for speed increase on start and slow down at the end (default) and '--' for constant speed during
1913
+ <span class='line'>1906</span> * @param {String} [options.effect='&lt;>'|'>'|'&lt;'] animation effects like speed fade in and out. possible values are
1914
+ <span class='line'>1907</span> * '&lt;>' for speed increase on start and slow down at the end (default), '&lt;' for speed up, '>' for slow down, and '--' for constant speed during
1915
1915
  <span class='line'>1908</span> * the whole animation.
1916
1916
  <span class='line'>1909</span> * @returns {JXG.CoordsElement} Reference to itself.
1917
1917
  <span class='line'>1910</span> * @see JXG.CoordsElement#moveAlong
1918
1918
  <span class='line'>1911</span> * @see JXG.CoordsElement#visit
1919
1919
  <span class='line'>1912</span> * @see JXG.GeometryElement#animate
1920
- <span class='line'>1913</span> */</span><span class="WHIT">
1921
- <span class='line'>1914</span> </span><span class="WHIT"> </span><span class="NAME">moveTo</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">where</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">time</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1922
- <span class='line'>1915</span> </span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1923
- <span class='line'>1916</span> </span><span class="WHIT"> </span><span class="NAME">where</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Coords</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">where</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1924
- <span class='line'>1917</span>
1925
- <span class='line'>1918</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
1926
- <span class='line'>1919</span> </span><span class="WHIT"> </span><span class="NAME">delay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board.attr.animationdelay</span><span class="PUNC">,</span><span class="WHIT">
1927
- <span class='line'>1920</span> </span><span class="WHIT"> </span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.ceil</span><span class="PUNC">(</span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">delay</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1928
- <span class='line'>1921</span> </span><span class="WHIT"> </span><span class="NAME">coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1929
- <span class='line'>1922</span> </span><span class="WHIT"> </span><span class="NAME">X</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1930
- <span class='line'>1923</span> </span><span class="WHIT"> </span><span class="NAME">Y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1931
- <span class='line'>1924</span> </span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">X</span><span class="PUNC">,</span><span class="WHIT">
1932
- <span class='line'>1925</span> </span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Y</span><span class="PUNC">,</span><span class="WHIT">
1933
- <span class='line'>1926</span> </span><span class="WHIT"> </span><span class="COMM">/** @ignore */</span><span class="WHIT">
1934
- <span class='line'>1927</span> </span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1935
- <span class='line'>1928</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"&lt;>"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1936
- <span class='line'>1929</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Math.pow</span><span class="PUNC">(</span><span class="NAME">Math.sin</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1937
- <span class='line'>1930</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1938
- <span class='line'>1931</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">;</span><span class="WHIT">
1939
- <span class='line'>1932</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1940
- <span class='line'>1933</span>
1941
- <span class='line'>1934</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1942
- <span class='line'>1935</span> </span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">time</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
1943
- <span class='line'>1936</span> </span><span class="WHIT"> </span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
1944
- <span class='line'>1937</span> </span><span class="WHIT"> </span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT">
1945
- <span class='line'>1938</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1946
- <span class='line'>1939</span> </span><span class="WHIT"> </span><span class="NAME">this.setPosition</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1947
- <span class='line'>1940</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1948
- <span class='line'>1941</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1949
- <span class='line'>1942</span>
1950
- <span class='line'>1943</span> </span><span class="WHIT"> </span><span class="COMM">// In case there is no callback and we are already at the endpoint we can stop here</span><span class="WHIT">
1951
- <span class='line'>1944</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1952
- <span class='line'>1945</span> </span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">options.callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1953
- <span class='line'>1946</span> </span><span class="WHIT"> </span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">dX</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1954
- <span class='line'>1947</span> </span><span class="WHIT"> </span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">dY</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT">
1955
- <span class='line'>1948</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1956
- <span class='line'>1949</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1957
- <span class='line'>1950</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1958
- <span class='line'>1951</span>
1959
- <span class='line'>1952</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1960
- <span class='line'>1953</span> </span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
1961
- <span class='line'>1954</span> </span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1962
- <span class='line'>1955</span> </span><span class="WHIT"> </span><span class="NAME">X</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1963
- <span class='line'>1956</span> </span><span class="WHIT"> </span><span class="NAME">Y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT">
1964
- <span class='line'>1957</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1965
- <span class='line'>1958</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1966
- <span class='line'>1959</span>
1967
- <span class='line'>1960</span> </span><span class="WHIT"> </span><span class="NAME">this.animationPath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">;</span><span class="WHIT">
1968
- <span class='line'>1961</span> </span><span class="WHIT"> </span><span class="NAME">this.animationCallback</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.callback</span><span class="PUNC">;</span><span class="WHIT">
1969
- <span class='line'>1962</span> </span><span class="WHIT"> </span><span class="NAME">this.board.addAnimation</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1970
- <span class='line'>1963</span>
1971
- <span class='line'>1964</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1972
- <span class='line'>1965</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1973
- <span class='line'>1966</span>
1974
- <span class='line'>1967</span> </span><span class="WHIT"> </span><span class="COMM">/**
1975
- <span class='line'>1968</span> * Starts an animated point movement towards the given coordinates &lt;tt>where&lt;/tt>. After arriving at
1976
- <span class='line'>1969</span> * &lt;tt>where&lt;/tt> the point moves back to where it started. The animation is done after &lt;tt>time&lt;/tt>
1977
- <span class='line'>1970</span> * milliseconds.
1978
- <span class='line'>1971</span> * @param {Array} where Array containing the x and y coordinate of the target location.
1979
- <span class='line'>1972</span> * @param {Number} time Number of milliseconds the animation should last.
1980
- <span class='line'>1973</span> * @param {Object} [options] Optional settings for the animation
1981
- <span class='line'>1974</span> * @param {function} [options.callback] A function that is called as soon as the animation is finished.
1982
- <span class='line'>1975</span> * @param {String} [options.effect='&lt;>'] animation effects like speed fade in and out. possible values are
1983
- <span class='line'>1976</span> * '&lt;>' for speed increase on start and slow down at the end (default) and '--' for constant speed during
1984
- <span class='line'>1977</span> * the whole animation.
1985
- <span class='line'>1978</span> * @param {Number} [options.repeat=1] How often this animation should be repeated.
1986
- <span class='line'>1979</span> * @returns {JXG.CoordsElement} Reference to itself.
1987
- <span class='line'>1980</span> * @see JXG.CoordsElement#moveAlong
1988
- <span class='line'>1981</span> * @see JXG.CoordsElement#moveTo
1989
- <span class='line'>1982</span> * @see JXG.GeometryElement#animate
1990
- <span class='line'>1983</span> */</span><span class="WHIT">
1991
- <span class='line'>1984</span> </span><span class="WHIT"> </span><span class="NAME">visit</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">where</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">time</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1992
- <span class='line'>1985</span> </span><span class="WHIT"> </span><span class="NAME">where</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Coords</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">where</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1993
- <span class='line'>1986</span>
1994
- <span class='line'>1987</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
1995
- <span class='line'>1988</span> </span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">,</span><span class="WHIT">
1996
- <span class='line'>1989</span> </span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">,</span><span class="WHIT">
1997
- <span class='line'>1990</span> </span><span class="WHIT"> </span><span class="NAME">delay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board.attr.animationdelay</span><span class="PUNC">,</span><span class="WHIT">
1998
- <span class='line'>1991</span> </span><span class="WHIT"> </span><span class="NAME">coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1999
- <span class='line'>1992</span> </span><span class="WHIT"> </span><span class="NAME">X</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2000
- <span class='line'>1993</span> </span><span class="WHIT"> </span><span class="NAME">Y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2001
- <span class='line'>1994</span> </span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">X</span><span class="PUNC">,</span><span class="WHIT">
2002
- <span class='line'>1995</span> </span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Y</span><span class="PUNC">,</span><span class="WHIT">
2003
- <span class='line'>1996</span> </span><span class="WHIT"> </span><span class="COMM">/** @ignore */</span><span class="WHIT">
2004
- <span class='line'>1997</span> </span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2005
- <span class='line'>1998</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">;</span><span class="WHIT">
2006
- <span class='line'>1999</span>
2007
- <span class='line'>2000</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"&lt;>"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2008
- <span class='line'>2001</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Math.pow</span><span class="PUNC">(</span><span class="NAME">Math.sin</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2009
- <span class='line'>2002</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2010
- <span class='line'>2003</span>
2011
- <span class='line'>2004</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">;</span><span class="WHIT">
2012
- <span class='line'>2005</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2013
- <span class='line'>2006</span>
2014
- <span class='line'>2007</span> </span><span class="WHIT"> </span><span class="COMM">// support legacy interface where the third parameter was the number of repeats</span><span class="WHIT">
2015
- <span class='line'>2008</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isNumber</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2016
- <span class='line'>2009</span> </span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">repeat</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2017
- <span class='line'>2010</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2018
- <span class='line'>2011</span> </span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2019
- <span class='line'>2012</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">options.repeat</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2020
- <span class='line'>2013</span> </span><span class="WHIT"> </span><span class="NAME">options.repeat</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
2021
- <span class='line'>2014</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2022
- <span class='line'>2015</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2023
- <span class='line'>2016</span>
2024
- <span class='line'>2017</span> </span><span class="WHIT"> </span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.ceil</span><span class="PUNC">(</span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delay</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">options.repeat</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1920
+ <span class='line'>1913</span> * @example
1921
+ <span class='line'>1914</span> * // moveTo() with different easing options and callback options
1922
+ <span class='line'>1915</span> * let yInit = 3
1923
+ <span class='line'>1916</span> * let [A, B, C, D] = ['==', '&lt;>', '&lt;', '>'].map((s) => board.create('point', [4, yInit--], { name: s, label: { fontSize: 24 } }))
1924
+ <span class='line'>1917</span> * let seg = board.create('segment', [A, [() => A.X(), 0]]) // shows linear
1925
+ <span class='line'>1918</span> *
1926
+ <span class='line'>1919</span> *let isLeftRight = true;
1927
+ <span class='line'>1920</span> *let buttonMove = board.create('button', [-2, 4, 'left',
1928
+ <span class='line'>1921</span> *() => {
1929
+ <span class='line'>1922</span> * isLeftRight = !isLeftRight;
1930
+ <span class='line'>1923</span> * buttonMove.rendNodeButton.innerHTML = isLeftRight ? 'left' : 'right'
1931
+ <span class='line'>1924</span> * let x = isLeftRight ? 4 : -4
1932
+ <span class='line'>1925</span> * let sym = isLeftRight ? 'triangleleft' : 'triangleright'
1933
+ <span class='line'>1926</span> *
1934
+ <span class='line'>1927</span> * A.moveTo([x, 3], 1000, { callback: () => A.setAttribute({ face: sym, size: 5 }) })
1935
+ <span class='line'>1928</span> * B.moveTo([x, 2], 1000, { callback: () => B.setAttribute({ face: sym, size: 5 }), effect: "&lt;>" })
1936
+ <span class='line'>1929</span> * C.moveTo([x, 1], 1000, { callback: () => C.setAttribute({ face: sym, size: 5 }), effect: "&lt;" })
1937
+ <span class='line'>1930</span> * D.moveTo([x, 0], 1000, { callback: () => D.setAttribute({ face: sym, size: 5 }), effect: ">" })
1938
+ <span class='line'>1931</span> *
1939
+ <span class='line'>1932</span> *}])
1940
+ <span class='line'>1933</span> *
1941
+ <span class='line'>1934</span> &lt;/pre>&lt;div id="JXG0f35a50e-e99d-11e8-a1ca-04d3b0c2aad4" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
1942
+ <span class='line'>1935</span> &lt;script type="text/javascript">
1943
+ <span class='line'>1936</span> {
1944
+ <span class='line'>1937</span> * let board = JXG.JSXGraph.initBoard('JXG0f35a50e-e99d-11e8-a1ca-04d3b0c2aad4')
1945
+ <span class='line'>1938</span> let yInit = 3
1946
+ <span class='line'>1939</span> let [A, B, C, D] = ['==', '&lt;>', '&lt;', '>'].map((s) => board.create('point', [4, yInit--], { name: s, label: { fontSize: 24 } }))
1947
+ <span class='line'>1940</span> let seg = board.create('segment', [A, [() => A.X(), 0]]) // shows linear
1948
+ <span class='line'>1941</span>
1949
+ <span class='line'>1942</span> let isLeftRight = true;
1950
+ <span class='line'>1943</span> let buttonMove = board.create('button', [-2, 4, 'left',
1951
+ <span class='line'>1944</span> () => {
1952
+ <span class='line'>1945</span> isLeftRight = !isLeftRight;
1953
+ <span class='line'>1946</span> buttonMove.rendNodeButton.innerHTML = isLeftRight ? 'left' : 'right'
1954
+ <span class='line'>1947</span> let x = isLeftRight ? 4 : -4
1955
+ <span class='line'>1948</span> let sym = isLeftRight ? 'triangleleft' : 'triangleright'
1956
+ <span class='line'>1949</span>
1957
+ <span class='line'>1950</span> A.moveTo([x, 3], 1000, { callback: () => A.setAttribute({ face: sym, size: 5 }) })
1958
+ <span class='line'>1951</span> B.moveTo([x, 2], 1000, { callback: () => B.setAttribute({ face: sym, size: 5 }), effect: "&lt;>" })
1959
+ <span class='line'>1952</span> C.moveTo([x, 1], 1000, { callback: () => C.setAttribute({ face: sym, size: 5 }), effect: "&lt;" })
1960
+ <span class='line'>1953</span> D.moveTo([x, 0], 1000, { callback: () => D.setAttribute({ face: sym, size: 5 }), effect: ">" })
1961
+ <span class='line'>1954</span>
1962
+ <span class='line'>1955</span> }])
1963
+ <span class='line'>1956</span> }
1964
+ <span class='line'>1957</span> &lt;/script>&lt;pre>
1965
+ <span class='line'>1958</span> */</span><span class="WHIT">
1966
+ <span class='line'>1959</span> </span><span class="WHIT"> </span><span class="NAME">moveTo</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">where</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">time</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1967
+ <span class='line'>1960</span> </span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1968
+ <span class='line'>1961</span> </span><span class="WHIT"> </span><span class="NAME">where</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Coords</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">where</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1969
+ <span class='line'>1962</span>
1970
+ <span class='line'>1963</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
1971
+ <span class='line'>1964</span> </span><span class="WHIT"> </span><span class="NAME">delay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board.attr.animationdelay</span><span class="PUNC">,</span><span class="WHIT">
1972
+ <span class='line'>1965</span> </span><span class="WHIT"> </span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.ceil</span><span class="PUNC">(</span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">delay</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1973
+ <span class='line'>1966</span> </span><span class="WHIT"> </span><span class="NAME">coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1974
+ <span class='line'>1967</span> </span><span class="WHIT"> </span><span class="NAME">X</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1975
+ <span class='line'>1968</span> </span><span class="WHIT"> </span><span class="NAME">Y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1976
+ <span class='line'>1969</span> </span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">X</span><span class="PUNC">,</span><span class="WHIT">
1977
+ <span class='line'>1970</span> </span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Y</span><span class="PUNC">,</span><span class="WHIT">
1978
+ <span class='line'>1971</span> </span><span class="WHIT"> </span><span class="COMM">/** @ignore */</span><span class="WHIT">
1979
+ <span class='line'>1972</span> </span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1980
+ <span class='line'>1973</span> </span><span class="WHIT"> </span><span class="NAME">let</span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// absolute progress of the animatin</span><span class="WHIT">
1981
+ <span class='line'>1974</span>
1982
+ <span class='line'>1975</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1983
+ <span class='line'>1976</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"&lt;>"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1984
+ <span class='line'>1977</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Math.pow</span><span class="PUNC">(</span><span class="NAME">Math.sin</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1985
+ <span class='line'>1978</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1986
+ <span class='line'>1979</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"&lt;"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// cubic ease in</span><span class="WHIT">
1987
+ <span class='line'>1980</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">;</span><span class="WHIT">
1988
+ <span class='line'>1981</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1989
+ <span class='line'>1982</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">">"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// cubic ease out</span><span class="WHIT">
1990
+ <span class='line'>1983</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Math.pow</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1991
+ <span class='line'>1984</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1992
+ <span class='line'>1985</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"=="</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1993
+ <span class='line'>1986</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// linear</span><span class="WHIT">
1994
+ <span class='line'>1987</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1995
+ <span class='line'>1988</span> </span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="STRN">"valid effects are '==', '&lt;>', '>', and '&lt;'."</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1996
+ <span class='line'>1989</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1997
+ <span class='line'>1990</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// default</span><span class="WHIT">
1998
+ <span class='line'>1991</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1999
+ <span class='line'>1992</span>
2000
+ <span class='line'>1993</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
2001
+ <span class='line'>1994</span> </span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">time</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2002
+ <span class='line'>1995</span> </span><span class="WHIT"> </span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2003
+ <span class='line'>1996</span> </span><span class="WHIT"> </span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT">
2004
+ <span class='line'>1997</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2005
+ <span class='line'>1998</span> </span><span class="WHIT"> </span><span class="NAME">this.setPosition</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2006
+ <span class='line'>1999</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2007
+ <span class='line'>2000</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2008
+ <span class='line'>2001</span>
2009
+ <span class='line'>2002</span> </span><span class="WHIT"> </span><span class="COMM">// In case there is no callback and we are already at the endpoint we can stop here</span><span class="WHIT">
2010
+ <span class='line'>2003</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
2011
+ <span class='line'>2004</span> </span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">options.callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
2012
+ <span class='line'>2005</span> </span><span class="WHIT"> </span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">dX</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
2013
+ <span class='line'>2006</span> </span><span class="WHIT"> </span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">dY</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT">
2014
+ <span class='line'>2007</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2015
+ <span class='line'>2008</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
2016
+ <span class='line'>2009</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2017
+ <span class='line'>2010</span>
2018
+ <span class='line'>2011</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2019
+ <span class='line'>2012</span> </span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2020
+ <span class='line'>2013</span> </span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2021
+ <span class='line'>2014</span> </span><span class="WHIT"> </span><span class="NAME">X</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2022
+ <span class='line'>2015</span> </span><span class="WHIT"> </span><span class="NAME">Y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT">
2023
+ <span class='line'>2016</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2024
+ <span class='line'>2017</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2025
2025
  <span class='line'>2018</span>
2026
- <span class='line'>2019</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">options.repeat</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2027
- <span class='line'>2020</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2028
- <span class='line'>2021</span> </span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2029
- <span class='line'>2022</span> </span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2030
- <span class='line'>2023</span> </span><span class="WHIT"> </span><span class="NAME">X</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2031
- <span class='line'>2024</span> </span><span class="WHIT"> </span><span class="NAME">Y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT">
2032
- <span class='line'>2025</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2033
- <span class='line'>2026</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2034
- <span class='line'>2027</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2035
- <span class='line'>2028</span> </span><span class="WHIT"> </span><span class="NAME">this.animationPath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">;</span><span class="WHIT">
2036
- <span class='line'>2029</span> </span><span class="WHIT"> </span><span class="NAME">this.animationCallback</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.callback</span><span class="PUNC">;</span><span class="WHIT">
2037
- <span class='line'>2030</span> </span><span class="WHIT"> </span><span class="NAME">this.board.addAnimation</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2038
- <span class='line'>2031</span>
2039
- <span class='line'>2032</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
2040
- <span class='line'>2033</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2041
- <span class='line'>2034</span>
2042
- <span class='line'>2035</span> </span><span class="WHIT"> </span><span class="COMM">/**
2043
- <span class='line'>2036</span> * Animates a glider. Is called by the browser after startAnimation is called.
2044
- <span class='line'>2037</span> * @param {Number} direction The direction the glider is animated.
2045
- <span class='line'>2038</span> * @param {Number} stepCount The number of steps in which the parent element is divided.
2046
- <span class='line'>2039</span> * Must be at least 1.
2047
- <span class='line'>2040</span> * @see #startAnimation
2048
- <span class='line'>2041</span> * @see #stopAnimation
2049
- <span class='line'>2042</span> * @private
2050
- <span class='line'>2043</span> * @returns {JXG.CoordsElement} Reference to itself.
2051
- <span class='line'>2044</span> */</span><span class="WHIT">
2052
- <span class='line'>2045</span> </span><span class="WHIT"> </span><span class="NAME">_anim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">direction</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2053
- <span class='line'>2046</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">dX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dY</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">alpha</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">startPoint</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">newX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">radius</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sp1c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sp2c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">res</span><span class="PUNC">;</span><span class="WHIT">
2054
- <span class='line'>2047</span>
2055
- <span class='line'>2048</span> </span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
2056
- <span class='line'>2049</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2057
- <span class='line'>2050</span> </span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
2058
- <span class='line'>2051</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2059
- <span class='line'>2052</span>
2060
- <span class='line'>2053</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.slideObject.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_LINE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2061
- <span class='line'>2054</span> </span><span class="WHIT"> </span><span class="NAME">sp1c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.slideObject.point1.coords.scrCoords</span><span class="PUNC">;</span><span class="WHIT">
2062
- <span class='line'>2055</span> </span><span class="WHIT"> </span><span class="NAME">sp2c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.slideObject.point2.coords.scrCoords</span><span class="PUNC">;</span><span class="WHIT">
2063
- <span class='line'>2056</span>
2064
- <span class='line'>2057</span> </span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.round</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">sp2c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">sp1c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2065
- <span class='line'>2058</span> </span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.round</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">sp2c</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">sp1c</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2066
- <span class='line'>2059</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">direction</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2067
- <span class='line'>2060</span> </span><span class="WHIT"> </span><span class="NAME">startPoint</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.slideObject.point1</span><span class="PUNC">;</span><span class="WHIT">
2068
- <span class='line'>2061</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2069
- <span class='line'>2062</span> </span><span class="WHIT"> </span><span class="NAME">startPoint</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.slideObject.point2</span><span class="PUNC">;</span><span class="WHIT">
2070
- <span class='line'>2063</span> </span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
2071
- <span class='line'>2064</span> </span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
2072
- <span class='line'>2065</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2026
+ <span class='line'>2019</span> </span><span class="WHIT"> </span><span class="NAME">this.animationPath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">;</span><span class="WHIT">
2027
+ <span class='line'>2020</span> </span><span class="WHIT"> </span><span class="NAME">this.animationCallback</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.callback</span><span class="PUNC">;</span><span class="WHIT">
2028
+ <span class='line'>2021</span> </span><span class="WHIT"> </span><span class="NAME">this.board.addAnimation</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2029
+ <span class='line'>2022</span>
2030
+ <span class='line'>2023</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
2031
+ <span class='line'>2024</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2032
+ <span class='line'>2025</span>
2033
+ <span class='line'>2026</span> </span><span class="WHIT"> </span><span class="COMM">/**
2034
+ <span class='line'>2027</span> * Starts an animated point movement towards the given coordinates &lt;tt>where&lt;/tt>. After arriving at
2035
+ <span class='line'>2028</span> * &lt;tt>where&lt;/tt> the point moves back to where it started. The animation is done after &lt;tt>time&lt;/tt>
2036
+ <span class='line'>2029</span> * milliseconds.
2037
+ <span class='line'>2030</span> * @param {Array} where Array containing the x and y coordinate of the target location.
2038
+ <span class='line'>2031</span> * @param {Number} time Number of milliseconds the animation should last.
2039
+ <span class='line'>2032</span> * @param {Object} [options] Optional settings for the animation
2040
+ <span class='line'>2033</span> * @param {function} [options.callback] A function that is called as soon as the animation is finished.
2041
+ <span class='line'>2034</span> * @param {String} [options.effect='&lt;>'|'>'|'&lt;'] animation effects like speed fade in and out. possible values are
2042
+ <span class='line'>2035</span> * '&lt;>' for speed increase on start and slow down at the end (default), '&lt;' for speed up, '>' for slow down, and '--' for constant speed during
2043
+ <span class='line'>2036</span> * the whole animation.
2044
+ <span class='line'>2037</span> * @param {Number} [options.repeat=1] How often this animation should be repeated.
2045
+ <span class='line'>2038</span> * @returns {JXG.CoordsElement} Reference to itself.
2046
+ <span class='line'>2039</span> * @see JXG.CoordsElement#moveAlong
2047
+ <span class='line'>2040</span> * @see JXG.CoordsElement#moveTo
2048
+ <span class='line'>2041</span> * @see JXG.GeometryElement#animate
2049
+ <span class='line'>2042</span> * @example
2050
+ <span class='line'>2043</span> * // visit() with different easing options
2051
+ <span class='line'>2044</span> * let yInit = 3
2052
+ <span class='line'>2045</span> * let [A, B, C, D] = ['==', '&lt;>', '&lt;', '>'].map((s) => board.create('point', [4, yInit--], { name: s, label: { fontSize: 24 } }))
2053
+ <span class='line'>2046</span> * let seg = board.create('segment', [A, [() => A.X(), 0]]) // shows linear
2054
+ <span class='line'>2047</span> *
2055
+ <span class='line'>2048</span> *let isLeftRight = true;
2056
+ <span class='line'>2049</span> *let buttonVisit = board.create('button', [0, 4, 'visit',
2057
+ <span class='line'>2050</span> * () => {
2058
+ <span class='line'>2051</span> * let x = isLeftRight ? 4 : -4
2059
+ <span class='line'>2052</span> *
2060
+ <span class='line'>2053</span> * A.visit([-x, 3], 4000, { effect: "==", repeat: 2 }) // linear
2061
+ <span class='line'>2054</span> * B.visit([-x, 2], 4000, { effect: "&lt;>", repeat: 2 })
2062
+ <span class='line'>2055</span> * C.visit([-x, 1], 4000, { effect: "&lt;", repeat: 2 })
2063
+ <span class='line'>2056</span> * D.visit([-x, 0], 4000, { effect: ">", repeat: 2 })
2064
+ <span class='line'>2057</span> * }])
2065
+ <span class='line'>2058</span> *
2066
+ <span class='line'>2059</span> &lt;/pre>&lt;div id="JXG0f35a50e-e99d-11e8-a1ca-04d3b0c2aad5" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2067
+ <span class='line'>2060</span> &lt;script type="text/javascript">
2068
+ <span class='line'>2061</span> {
2069
+ <span class='line'>2062</span> * let board = JXG.JSXGraph.initBoard('JXG0f35a50e-e99d-11e8-a1ca-04d3b0c2aad5')
2070
+ <span class='line'>2063</span> let yInit = 3
2071
+ <span class='line'>2064</span> let [A, B, C, D] = ['==', '&lt;>', '&lt;', '>'].map((s) => board.create('point', [4, yInit--], { name: s, label: { fontSize: 24 } }))
2072
+ <span class='line'>2065</span> let seg = board.create('segment', [A, [() => A.X(), 0]]) // shows linear
2073
2073
  <span class='line'>2066</span>
2074
- <span class='line'>2067</span> </span><span class="WHIT"> </span><span class="NAME">this.coords.setCoordinates</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_SCREEN</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2075
- <span class='line'>2068</span> </span><span class="WHIT"> </span><span class="NAME">startPoint.coords.scrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dX</span><span class="PUNC">,</span><span class="WHIT">
2076
- <span class='line'>2069</span> </span><span class="WHIT"> </span><span class="NAME">startPoint.coords.scrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT">
2077
- <span class='line'>2070</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2078
- <span class='line'>2071</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.slideObject.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_CURVE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2079
- <span class='line'>2072</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">direction</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2080
- <span class='line'>2073</span> </span><span class="WHIT"> </span><span class="NAME">newX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.slideObject.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.slideObject.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.slideObject.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2081
- <span class='line'>2074</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2082
- <span class='line'>2075</span> </span><span class="WHIT"> </span><span class="NAME">newX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">(</span><span class="NAME">this.slideObject.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.slideObject.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.slideObject.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2083
- <span class='line'>2076</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2084
- <span class='line'>2077</span> </span><span class="WHIT"> </span><span class="NAME">this.coords.setCoordinates</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">this.slideObject.X</span><span class="PUNC">(</span><span class="NAME">newX</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.slideObject.Y</span><span class="PUNC">(</span><span class="NAME">newX</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2085
- <span class='line'>2078</span>
2086
- <span class='line'>2079</span> </span><span class="WHIT"> </span><span class="NAME">res</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Geometry.projectPointToCurve</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.slideObject</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2087
- <span class='line'>2080</span> </span><span class="WHIT"> </span><span class="NAME">this.coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">res</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2088
- <span class='line'>2081</span> </span><span class="WHIT"> </span><span class="NAME">this.position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">res</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2089
- <span class='line'>2082</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.slideObject.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_CIRCLE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2090
- <span class='line'>2083</span> </span><span class="WHIT"> </span><span class="NAME">alpha</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="PUNC">;</span><span class="WHIT">
2091
- <span class='line'>2084</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">direction</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2092
- <span class='line'>2085</span> </span><span class="WHIT"> </span><span class="NAME">alpha</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">;</span><span class="WHIT">
2093
- <span class='line'>2086</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2094
- <span class='line'>2087</span> </span><span class="WHIT"> </span><span class="NAME">alpha</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">stepCount</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">;</span><span class="WHIT">
2095
- <span class='line'>2088</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2096
- <span class='line'>2089</span> </span><span class="WHIT"> </span><span class="NAME">radius</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.slideObject.Radius</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2097
- <span class='line'>2090</span>
2098
- <span class='line'>2091</span> </span><span class="WHIT"> </span><span class="NAME">this.coords.setCoordinates</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2099
- <span class='line'>2092</span> </span><span class="WHIT"> </span><span class="NAME">this.slideObject.center.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">radius</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.cos</span><span class="PUNC">(</span><span class="NAME">alpha</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2100
- <span class='line'>2093</span> </span><span class="WHIT"> </span><span class="NAME">this.slideObject.center.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">radius</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.sin</span><span class="PUNC">(</span><span class="NAME">alpha</span><span class="PUNC">)</span><span class="WHIT">
2101
- <span class='line'>2094</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2102
- <span class='line'>2095</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2074
+ <span class='line'>2067</span> let isLeftRight = true;
2075
+ <span class='line'>2068</span> let buttonVisit = board.create('button', [0, 4, 'visit',
2076
+ <span class='line'>2069</span> () => {
2077
+ <span class='line'>2070</span> let x = isLeftRight ? 4 : -4
2078
+ <span class='line'>2071</span>
2079
+ <span class='line'>2072</span> A.visit([-x, 3], 4000, { effect: "==", repeat: 2 }) // linear
2080
+ <span class='line'>2073</span> B.visit([-x, 2], 4000, { effect: "&lt;>", repeat: 2 })
2081
+ <span class='line'>2074</span> C.visit([-x, 1], 4000, { effect: "&lt;", repeat: 2 })
2082
+ <span class='line'>2075</span> D.visit([-x, 0], 4000, { effect: ">", repeat: 2 })
2083
+ <span class='line'>2076</span> }])
2084
+ <span class='line'>2077</span> }
2085
+ <span class='line'>2078</span> &lt;/script>&lt;pre>
2086
+ <span class='line'>2079</span>
2087
+ <span class='line'>2080</span> */</span><span class="WHIT">
2088
+ <span class='line'>2081</span> </span><span class="WHIT"> </span><span class="NAME">visit</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">where</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">time</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2089
+ <span class='line'>2082</span> </span><span class="WHIT"> </span><span class="NAME">where</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Coords</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">where</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2090
+ <span class='line'>2083</span>
2091
+ <span class='line'>2084</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
2092
+ <span class='line'>2085</span> </span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">,</span><span class="WHIT">
2093
+ <span class='line'>2086</span> </span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">,</span><span class="WHIT">
2094
+ <span class='line'>2087</span> </span><span class="WHIT"> </span><span class="NAME">delay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board.attr.animationdelay</span><span class="PUNC">,</span><span class="WHIT">
2095
+ <span class='line'>2088</span> </span><span class="WHIT"> </span><span class="NAME">coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2096
+ <span class='line'>2089</span> </span><span class="WHIT"> </span><span class="NAME">X</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2097
+ <span class='line'>2090</span> </span><span class="WHIT"> </span><span class="NAME">Y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2098
+ <span class='line'>2091</span> </span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">X</span><span class="PUNC">,</span><span class="WHIT">
2099
+ <span class='line'>2092</span> </span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Y</span><span class="PUNC">,</span><span class="WHIT">
2100
+ <span class='line'>2093</span> </span><span class="WHIT"> </span><span class="COMM">/** @ignore */</span><span class="WHIT">
2101
+ <span class='line'>2094</span> </span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2102
+ <span class='line'>2095</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">;</span><span class="WHIT">
2103
2103
  <span class='line'>2096</span>
2104
- <span class='line'>2097</span> </span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2105
- <span class='line'>2098</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
2106
- <span class='line'>2099</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2107
- <span class='line'>2100</span>
2108
- <span class='line'>2101</span> </span><span class="WHIT"> </span><span class="COMM">// documented in GeometryElement</span><span class="WHIT">
2109
- <span class='line'>2102</span> </span><span class="WHIT"> </span><span class="NAME">getTextAnchor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2110
- <span class='line'>2103</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.coords</span><span class="PUNC">;</span><span class="WHIT">
2111
- <span class='line'>2104</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2112
- <span class='line'>2105</span>
2113
- <span class='line'>2106</span> </span><span class="WHIT"> </span><span class="COMM">// documented in GeometryElement</span><span class="WHIT">
2114
- <span class='line'>2107</span> </span><span class="WHIT"> </span><span class="NAME">getLabelAnchor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2115
- <span class='line'>2108</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.coords</span><span class="PUNC">;</span><span class="WHIT">
2116
- <span class='line'>2109</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2117
- <span class='line'>2110</span>
2118
- <span class='line'>2111</span> </span><span class="WHIT"> </span><span class="COMM">// documented in element.js</span><span class="WHIT">
2119
- <span class='line'>2112</span> </span><span class="WHIT"> </span><span class="NAME">getParents</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2120
- <span class='line'>2113</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">this.Z</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2121
- <span class='line'>2114</span>
2122
- <span class='line'>2115</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2123
- <span class='line'>2116</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.parents</span><span class="PUNC">;</span><span class="WHIT">
2124
- <span class='line'>2117</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2125
- <span class='line'>2118</span>
2126
- <span class='line'>2119</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_GLIDER</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2127
- <span class='line'>2120</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">this.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.slideObject.id</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2128
- <span class='line'>2121</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2129
- <span class='line'>2122</span>
2130
- <span class='line'>2123</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">;</span><span class="WHIT">
2131
- <span class='line'>2124</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2132
- <span class='line'>2125</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2133
- <span class='line'>2126</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2104
+ <span class='line'>2097</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2105
+ <span class='line'>2098</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"&lt;>"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// slow at beginning and end</span><span class="WHIT">
2106
+ <span class='line'>2099</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Math.pow</span><span class="PUNC">(</span><span class="NAME">Math.sin</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2107
+ <span class='line'>2100</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2108
+ <span class='line'>2101</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"&lt;"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// cubic ease in</span><span class="WHIT">
2109
+ <span class='line'>2102</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">;</span><span class="WHIT">
2110
+ <span class='line'>2103</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2111
+ <span class='line'>2104</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">">"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// cubic ease out</span><span class="WHIT">
2112
+ <span class='line'>2105</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Math.pow</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2113
+ <span class='line'>2106</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2114
+ <span class='line'>2107</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.effect</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"=="</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2115
+ <span class='line'>2108</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// linear</span><span class="WHIT">
2116
+ <span class='line'>2109</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2117
+ <span class='line'>2110</span> </span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="STRN">"valid effects are '==', '&lt;>', '>', and '&lt;'."</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2118
+ <span class='line'>2111</span>
2119
+ <span class='line'>2112</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2120
+ <span class='line'>2113</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">;</span><span class="WHIT">
2121
+ <span class='line'>2114</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2122
+ <span class='line'>2115</span>
2123
+ <span class='line'>2116</span> </span><span class="WHIT"> </span><span class="COMM">// support legacy interface where the third parameter was the number of repeats</span><span class="WHIT">
2124
+ <span class='line'>2117</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isNumber</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2125
+ <span class='line'>2118</span> </span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">repeat</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2126
+ <span class='line'>2119</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2127
+ <span class='line'>2120</span> </span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2128
+ <span class='line'>2121</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">options.repeat</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2129
+ <span class='line'>2122</span> </span><span class="WHIT"> </span><span class="NAME">options.repeat</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
2130
+ <span class='line'>2123</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2131
+ <span class='line'>2124</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2132
+ <span class='line'>2125</span>
2133
+ <span class='line'>2126</span> </span><span class="WHIT"> </span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.ceil</span><span class="PUNC">(</span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delay</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">options.repeat</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2134
2134
  <span class='line'>2127</span>
2135
- <span class='line'>2128</span> </span><span class="COMM">/**
2136
- <span class='line'>2129</span> * Generic method to create point, text or image.
2137
- <span class='line'>2130</span> * Determines the type of the construction, i.e. free, or constrained by function,
2138
- <span class='line'>2131</span> * transformation or of glider type.
2139
- <span class='line'>2132</span> * @param{Object} Callback Object type, e.g. JXG.Point, JXG.Text or JXG.Image
2140
- <span class='line'>2133</span> * @param{Object} board Link to the board object
2141
- <span class='line'>2134</span> * @param{Array} coords Array with coordinates. This may be: array of numbers, function
2142
- <span class='line'>2135</span> * returning an array of numbers, array of functions returning a number, object and transformation.
2143
- <span class='line'>2136</span> * If the attribute "slideObject" exists, a glider element is constructed.
2144
- <span class='line'>2137</span> * @param{Object} attr Attributes object
2145
- <span class='line'>2138</span> * @param{Object} arg1 Optional argument 1: in case of text this is the text content,
2146
- <span class='line'>2139</span> * in case of an image this is the url.
2147
- <span class='line'>2140</span> * @param{Array} arg2 Optional argument 2: in case of image this is an array containing the size of
2148
- <span class='line'>2141</span> * the image.
2149
- <span class='line'>2142</span> * @returns{Object} returns the created object or false.
2150
- <span class='line'>2143</span> */</span><span class="WHIT">
2151
- <span class='line'>2144</span> </span><span class="NAME">JXG.CoordsElement.create</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Callback</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2152
- <span class='line'>2145</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT">
2153
- <span class='line'>2146</span> </span><span class="WHIT"> </span><span class="NAME">isConstrained</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
2154
- <span class='line'>2147</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
2155
- <span class='line'>2148</span>
2156
- <span class='line'>2149</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">coords.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2157
- <span class='line'>2150</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isFunction</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Type.isString</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2158
- <span class='line'>2151</span> </span><span class="WHIT"> </span><span class="NAME">isConstrained</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2159
- <span class='line'>2152</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2160
- <span class='line'>2153</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2161
- <span class='line'>2154</span>
2162
- <span class='line'>2155</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isConstrained</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2163
- <span class='line'>2156</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isNumber</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Type.isNumber</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2164
- <span class='line'>2157</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Callback</span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2165
- <span class='line'>2158</span>
2166
- <span class='line'>2159</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">attr.slideobject</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2167
- <span class='line'>2160</span> </span><span class="WHIT"> </span><span class="NAME">el.makeGlider</span><span class="PUNC">(</span><span class="NAME">attr.slideobject</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2168
- <span class='line'>2161</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2169
- <span class='line'>2162</span> </span><span class="WHIT"> </span><span class="COMM">// Free element</span><span class="WHIT">
2170
- <span class='line'>2163</span> </span><span class="WHIT"> </span><span class="NAME">el.baseElement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">;</span><span class="WHIT">
2171
- <span class='line'>2164</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2172
- <span class='line'>2165</span> </span><span class="WHIT"> </span><span class="NAME">el.isDraggable</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2173
- <span class='line'>2166</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isObject</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Type.isTransformationOrArray</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2174
- <span class='line'>2167</span> </span><span class="WHIT"> </span><span class="COMM">// Transformation</span><span class="WHIT">
2175
- <span class='line'>2168</span> </span><span class="WHIT"> </span><span class="COMM">// TODO less general specification of isObject</span><span class="WHIT">
2176
- <span class='line'>2169</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Callback</span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2177
- <span class='line'>2170</span> </span><span class="WHIT"> </span><span class="NAME">el.addTransform</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2178
- <span class='line'>2171</span> </span><span class="WHIT"> </span><span class="NAME">el.isDraggable</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
2179
- <span class='line'>2172</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2180
- <span class='line'>2173</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
2181
- <span class='line'>2174</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2182
- <span class='line'>2175</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2183
- <span class='line'>2176</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Callback</span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2184
- <span class='line'>2177</span> </span><span class="WHIT"> </span><span class="NAME">el.addConstraint</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2185
- <span class='line'>2178</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2186
- <span class='line'>2179</span>
2187
- <span class='line'>2180</span> </span><span class="WHIT"> </span><span class="NAME">el.handleSnapToGrid</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2188
- <span class='line'>2181</span> </span><span class="WHIT"> </span><span class="NAME">el.handleSnapToPoints</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2189
- <span class='line'>2182</span> </span><span class="WHIT"> </span><span class="NAME">el.handleAttractors</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2190
- <span class='line'>2183</span>
2191
- <span class='line'>2184</span> </span><span class="WHIT"> </span><span class="NAME">el.addParents</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2192
- <span class='line'>2185</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">;</span><span class="WHIT">
2193
- <span class='line'>2186</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2135
+ <span class='line'>2128</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">options.repeat</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2136
+ <span class='line'>2129</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2137
+ <span class='line'>2130</span> </span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">steps</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2138
+ <span class='line'>2131</span> </span><span class="WHIT"> </span><span class="NAME">where.usrCoords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2139
+ <span class='line'>2132</span> </span><span class="WHIT"> </span><span class="NAME">X</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2140
+ <span class='line'>2133</span> </span><span class="WHIT"> </span><span class="NAME">Y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">stepFun</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT">
2141
+ <span class='line'>2134</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2142
+ <span class='line'>2135</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2143
+ <span class='line'>2136</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2144
+ <span class='line'>2137</span> </span><span class="WHIT"> </span><span class="NAME">this.animationPath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">;</span><span class="WHIT">
2145
+ <span class='line'>2138</span> </span><span class="WHIT"> </span><span class="NAME">this.animationCallback</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.callback</span><span class="PUNC">;</span><span class="WHIT">
2146
+ <span class='line'>2139</span> </span><span class="WHIT"> </span><span class="NAME">this.board.addAnimation</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2147
+ <span class='line'>2140</span>
2148
+ <span class='line'>2141</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
2149
+ <span class='line'>2142</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2150
+ <span class='line'>2143</span>
2151
+ <span class='line'>2144</span> </span><span class="WHIT"> </span><span class="COMM">/**
2152
+ <span class='line'>2145</span> * Animates a glider. Is called by the browser after startAnimation is called.
2153
+ <span class='line'>2146</span> * @param {Number} direction The direction the glider is animated.
2154
+ <span class='line'>2147</span> * @param {Number} stepCount The number of steps in which the parent element is divided.
2155
+ <span class='line'>2148</span> * Must be at least 1.
2156
+ <span class='line'>2149</span> * @see #startAnimation
2157
+ <span class='line'>2150</span> * @see #stopAnimation
2158
+ <span class='line'>2151</span> * @private
2159
+ <span class='line'>2152</span> * @returns {JXG.CoordsElement} Reference to itself.
2160
+ <span class='line'>2153</span> */</span><span class="WHIT">
2161
+ <span class='line'>2154</span> </span><span class="WHIT"> </span><span class="NAME">_anim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">direction</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2162
+ <span class='line'>2155</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">dX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dY</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">alpha</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">startPoint</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">newX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">radius</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sp1c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sp2c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">res</span><span class="PUNC">;</span><span class="WHIT">
2163
+ <span class='line'>2156</span>
2164
+ <span class='line'>2157</span> </span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
2165
+ <span class='line'>2158</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2166
+ <span class='line'>2159</span> </span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
2167
+ <span class='line'>2160</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2168
+ <span class='line'>2161</span>
2169
+ <span class='line'>2162</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.slideObject.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_LINE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2170
+ <span class='line'>2163</span> </span><span class="WHIT"> </span><span class="NAME">sp1c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.slideObject.point1.coords.scrCoords</span><span class="PUNC">;</span><span class="WHIT">
2171
+ <span class='line'>2164</span> </span><span class="WHIT"> </span><span class="NAME">sp2c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.slideObject.point2.coords.scrCoords</span><span class="PUNC">;</span><span class="WHIT">
2172
+ <span class='line'>2165</span>
2173
+ <span class='line'>2166</span> </span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.round</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">sp2c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">sp1c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2174
+ <span class='line'>2167</span> </span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.round</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">sp2c</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">sp1c</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2175
+ <span class='line'>2168</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">direction</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2176
+ <span class='line'>2169</span> </span><span class="WHIT"> </span><span class="NAME">startPoint</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.slideObject.point1</span><span class="PUNC">;</span><span class="WHIT">
2177
+ <span class='line'>2170</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2178
+ <span class='line'>2171</span> </span><span class="WHIT"> </span><span class="NAME">startPoint</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.slideObject.point2</span><span class="PUNC">;</span><span class="WHIT">
2179
+ <span class='line'>2172</span> </span><span class="WHIT"> </span><span class="NAME">dX</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
2180
+ <span class='line'>2173</span> </span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
2181
+ <span class='line'>2174</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2182
+ <span class='line'>2175</span>
2183
+ <span class='line'>2176</span> </span><span class="WHIT"> </span><span class="NAME">this.coords.setCoordinates</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_SCREEN</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2184
+ <span class='line'>2177</span> </span><span class="WHIT"> </span><span class="NAME">startPoint.coords.scrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dX</span><span class="PUNC">,</span><span class="WHIT">
2185
+ <span class='line'>2178</span> </span><span class="WHIT"> </span><span class="NAME">startPoint.coords.scrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dY</span><span class="WHIT">
2186
+ <span class='line'>2179</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2187
+ <span class='line'>2180</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.slideObject.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_CURVE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2188
+ <span class='line'>2181</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">direction</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2189
+ <span class='line'>2182</span> </span><span class="WHIT"> </span><span class="NAME">newX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.slideObject.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.slideObject.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.slideObject.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2190
+ <span class='line'>2183</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2191
+ <span class='line'>2184</span> </span><span class="WHIT"> </span><span class="NAME">newX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">(</span><span class="NAME">this.slideObject.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.slideObject.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.slideObject.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2192
+ <span class='line'>2185</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2193
+ <span class='line'>2186</span> </span><span class="WHIT"> </span><span class="NAME">this.coords.setCoordinates</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">this.slideObject.X</span><span class="PUNC">(</span><span class="NAME">newX</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.slideObject.Y</span><span class="PUNC">(</span><span class="NAME">newX</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2194
2194
  <span class='line'>2187</span>
2195
- <span class='line'>2188</span> </span><span class="NAME">export</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="NAME">JXG.CoordsElement</span><span class="PUNC">;</span><span class="WHIT">
2196
- <span class='line'>2189</span> </span></pre></body></html>
2195
+ <span class='line'>2188</span> </span><span class="WHIT"> </span><span class="NAME">res</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Geometry.projectPointToCurve</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.slideObject</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2196
+ <span class='line'>2189</span> </span><span class="WHIT"> </span><span class="NAME">this.coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">res</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2197
+ <span class='line'>2190</span> </span><span class="WHIT"> </span><span class="NAME">this.position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">res</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2198
+ <span class='line'>2191</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.slideObject.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_CIRCLE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2199
+ <span class='line'>2192</span> </span><span class="WHIT"> </span><span class="NAME">alpha</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="PUNC">;</span><span class="WHIT">
2200
+ <span class='line'>2193</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">direction</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2201
+ <span class='line'>2194</span> </span><span class="WHIT"> </span><span class="NAME">alpha</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">;</span><span class="WHIT">
2202
+ <span class='line'>2195</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2203
+ <span class='line'>2196</span> </span><span class="WHIT"> </span><span class="NAME">alpha</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">stepCount</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.intervalCount</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">stepCount</span><span class="PUNC">;</span><span class="WHIT">
2204
+ <span class='line'>2197</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2205
+ <span class='line'>2198</span> </span><span class="WHIT"> </span><span class="NAME">radius</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.slideObject.Radius</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2206
+ <span class='line'>2199</span>
2207
+ <span class='line'>2200</span> </span><span class="WHIT"> </span><span class="NAME">this.coords.setCoordinates</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2208
+ <span class='line'>2201</span> </span><span class="WHIT"> </span><span class="NAME">this.slideObject.center.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">radius</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.cos</span><span class="PUNC">(</span><span class="NAME">alpha</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2209
+ <span class='line'>2202</span> </span><span class="WHIT"> </span><span class="NAME">this.slideObject.center.coords.usrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">radius</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.sin</span><span class="PUNC">(</span><span class="NAME">alpha</span><span class="PUNC">)</span><span class="WHIT">
2210
+ <span class='line'>2203</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2211
+ <span class='line'>2204</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2212
+ <span class='line'>2205</span>
2213
+ <span class='line'>2206</span> </span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2214
+ <span class='line'>2207</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
2215
+ <span class='line'>2208</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2216
+ <span class='line'>2209</span>
2217
+ <span class='line'>2210</span> </span><span class="WHIT"> </span><span class="COMM">// documented in GeometryElement</span><span class="WHIT">
2218
+ <span class='line'>2211</span> </span><span class="WHIT"> </span><span class="NAME">getTextAnchor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2219
+ <span class='line'>2212</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.coords</span><span class="PUNC">;</span><span class="WHIT">
2220
+ <span class='line'>2213</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2221
+ <span class='line'>2214</span>
2222
+ <span class='line'>2215</span> </span><span class="WHIT"> </span><span class="COMM">// documented in GeometryElement</span><span class="WHIT">
2223
+ <span class='line'>2216</span> </span><span class="WHIT"> </span><span class="NAME">getLabelAnchor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2224
+ <span class='line'>2217</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.coords</span><span class="PUNC">;</span><span class="WHIT">
2225
+ <span class='line'>2218</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2226
+ <span class='line'>2219</span>
2227
+ <span class='line'>2220</span> </span><span class="WHIT"> </span><span class="COMM">// documented in element.js</span><span class="WHIT">
2228
+ <span class='line'>2221</span> </span><span class="WHIT"> </span><span class="NAME">getParents</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2229
+ <span class='line'>2222</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">this.Z</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2230
+ <span class='line'>2223</span>
2231
+ <span class='line'>2224</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2232
+ <span class='line'>2225</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.parents</span><span class="PUNC">;</span><span class="WHIT">
2233
+ <span class='line'>2226</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2234
+ <span class='line'>2227</span>
2235
+ <span class='line'>2228</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_GLIDER</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2236
+ <span class='line'>2229</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">this.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.slideObject.id</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2237
+ <span class='line'>2230</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2238
+ <span class='line'>2231</span>
2239
+ <span class='line'>2232</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">;</span><span class="WHIT">
2240
+ <span class='line'>2233</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2241
+ <span class='line'>2234</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2242
+ <span class='line'>2235</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2243
+ <span class='line'>2236</span>
2244
+ <span class='line'>2237</span> </span><span class="COMM">/**
2245
+ <span class='line'>2238</span> * Generic method to create point, text or image.
2246
+ <span class='line'>2239</span> * Determines the type of the construction, i.e. free, or constrained by function,
2247
+ <span class='line'>2240</span> * transformation or of glider type.
2248
+ <span class='line'>2241</span> * @param{Object} Callback Object type, e.g. JXG.Point, JXG.Text or JXG.Image
2249
+ <span class='line'>2242</span> * @param{Object} board Link to the board object
2250
+ <span class='line'>2243</span> * @param{Array} coords Array with coordinates. This may be: array of numbers, function
2251
+ <span class='line'>2244</span> * returning an array of numbers, array of functions returning a number, object and transformation.
2252
+ <span class='line'>2245</span> * If the attribute "slideObject" exists, a glider element is constructed.
2253
+ <span class='line'>2246</span> * @param{Object} attr Attributes object
2254
+ <span class='line'>2247</span> * @param{Object} arg1 Optional argument 1: in case of text this is the text content,
2255
+ <span class='line'>2248</span> * in case of an image this is the url.
2256
+ <span class='line'>2249</span> * @param{Array} arg2 Optional argument 2: in case of image this is an array containing the size of
2257
+ <span class='line'>2250</span> * the image.
2258
+ <span class='line'>2251</span> * @returns{Object} returns the created object or false.
2259
+ <span class='line'>2252</span> */</span><span class="WHIT">
2260
+ <span class='line'>2253</span> </span><span class="NAME">JXG.CoordsElement.create</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Callback</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2261
+ <span class='line'>2254</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT">
2262
+ <span class='line'>2255</span> </span><span class="WHIT"> </span><span class="NAME">isConstrained</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
2263
+ <span class='line'>2256</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
2264
+ <span class='line'>2257</span>
2265
+ <span class='line'>2258</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">coords.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2266
+ <span class='line'>2259</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isFunction</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Type.isString</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2267
+ <span class='line'>2260</span> </span><span class="WHIT"> </span><span class="NAME">isConstrained</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2268
+ <span class='line'>2261</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2269
+ <span class='line'>2262</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2270
+ <span class='line'>2263</span>
2271
+ <span class='line'>2264</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isConstrained</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2272
+ <span class='line'>2265</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isNumber</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Type.isNumber</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2273
+ <span class='line'>2266</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Callback</span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2274
+ <span class='line'>2267</span>
2275
+ <span class='line'>2268</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">attr.slideobject</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2276
+ <span class='line'>2269</span> </span><span class="WHIT"> </span><span class="NAME">el.makeGlider</span><span class="PUNC">(</span><span class="NAME">attr.slideobject</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2277
+ <span class='line'>2270</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2278
+ <span class='line'>2271</span> </span><span class="WHIT"> </span><span class="COMM">// Free element</span><span class="WHIT">
2279
+ <span class='line'>2272</span> </span><span class="WHIT"> </span><span class="NAME">el.baseElement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">;</span><span class="WHIT">
2280
+ <span class='line'>2273</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2281
+ <span class='line'>2274</span> </span><span class="WHIT"> </span><span class="NAME">el.isDraggable</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2282
+ <span class='line'>2275</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isObject</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Type.isTransformationOrArray</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2283
+ <span class='line'>2276</span> </span><span class="WHIT"> </span><span class="COMM">// Transformation</span><span class="WHIT">
2284
+ <span class='line'>2277</span> </span><span class="WHIT"> </span><span class="COMM">// TODO less general specification of isObject</span><span class="WHIT">
2285
+ <span class='line'>2278</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Callback</span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2286
+ <span class='line'>2279</span> </span><span class="WHIT"> </span><span class="NAME">el.addTransform</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2287
+ <span class='line'>2280</span> </span><span class="WHIT"> </span><span class="NAME">el.isDraggable</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
2288
+ <span class='line'>2281</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2289
+ <span class='line'>2282</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
2290
+ <span class='line'>2283</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2291
+ <span class='line'>2284</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2292
+ <span class='line'>2285</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Callback</span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arg2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2293
+ <span class='line'>2286</span> </span><span class="WHIT"> </span><span class="NAME">el.addConstraint</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2294
+ <span class='line'>2287</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2295
+ <span class='line'>2288</span>
2296
+ <span class='line'>2289</span> </span><span class="WHIT"> </span><span class="NAME">el.handleSnapToGrid</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2297
+ <span class='line'>2290</span> </span><span class="WHIT"> </span><span class="NAME">el.handleSnapToPoints</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2298
+ <span class='line'>2291</span> </span><span class="WHIT"> </span><span class="NAME">el.handleAttractors</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2299
+ <span class='line'>2292</span>
2300
+ <span class='line'>2293</span> </span><span class="WHIT"> </span><span class="NAME">el.addParents</span><span class="PUNC">(</span><span class="NAME">coords</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2301
+ <span class='line'>2294</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">;</span><span class="WHIT">
2302
+ <span class='line'>2295</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2303
+ <span class='line'>2296</span>
2304
+ <span class='line'>2297</span> </span><span class="NAME">export</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="NAME">JXG.CoordsElement</span><span class="PUNC">;</span><span class="WHIT">
2305
+ <span class='line'>2298</span> </span></pre></body></html>