jsxgraph 1.6.0 → 1.6.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 (211) hide show
  1. package/CHANGELOG.md +25 -2
  2. package/distrib/docs/files.html +2 -2
  3. package/distrib/docs/index.html +2 -2
  4. package/distrib/docs/static/jsxgraph.css +24 -22
  5. package/distrib/docs/static/jsxgraphcore.js +2 -2
  6. package/distrib/docs/symbols/Angle.html +2 -2
  7. package/distrib/docs/symbols/Arc.html +2 -2
  8. package/distrib/docs/symbols/Arrow.html +2 -2
  9. package/distrib/docs/symbols/Arrowparallel.html +2 -2
  10. package/distrib/docs/symbols/Axis.html +2 -2
  11. package/distrib/docs/symbols/Bisector.html +2 -2
  12. package/distrib/docs/symbols/Bisectorlines.html +2 -2
  13. package/distrib/docs/symbols/Boxplot.html +2 -2
  14. package/distrib/docs/symbols/Button.html +4 -4
  15. package/distrib/docs/symbols/Cardinalspline.html +2 -2
  16. package/distrib/docs/symbols/Chart.html +2 -2
  17. package/distrib/docs/symbols/Checkbox.html +17 -17
  18. package/distrib/docs/symbols/Circle.html +2 -2
  19. package/distrib/docs/symbols/Circumcenter.html +4 -4
  20. package/distrib/docs/symbols/Circumcircle.html +2 -2
  21. package/distrib/docs/symbols/CircumcircleArc.html +2 -2
  22. package/distrib/docs/symbols/CircumcircleSector.html +2 -2
  23. package/distrib/docs/symbols/Comb.html +5 -5
  24. package/distrib/docs/symbols/Conic.html +2 -2
  25. package/distrib/docs/symbols/Constants.html +2 -2
  26. package/distrib/docs/symbols/Curve.html +2 -2
  27. package/distrib/docs/symbols/Curve3D.html +2 -2
  28. package/distrib/docs/symbols/CurveDifference.html +2 -2
  29. package/distrib/docs/symbols/CurveIntersection.html +2 -2
  30. package/distrib/docs/symbols/CurveUnion.html +2 -2
  31. package/distrib/docs/symbols/Derivative.html +2 -2
  32. package/distrib/docs/symbols/Ellipse.html +2 -2
  33. package/distrib/docs/symbols/ForeignObject.html +4 -4
  34. package/distrib/docs/symbols/Functiongraph.html +2 -2
  35. package/distrib/docs/symbols/Functiongraph3D.html +2 -2
  36. package/distrib/docs/symbols/Glider.html +4 -4
  37. package/distrib/docs/symbols/Grid.html +2 -2
  38. package/distrib/docs/symbols/Group.html +2 -2
  39. package/distrib/docs/symbols/Hatch.html +2 -2
  40. package/distrib/docs/symbols/Hyperbola.html +2 -2
  41. package/distrib/docs/symbols/Image.html +4 -4
  42. package/distrib/docs/symbols/Incenter.html +4 -4
  43. package/distrib/docs/symbols/Incircle.html +2 -2
  44. package/distrib/docs/symbols/Inequality.html +2 -2
  45. package/distrib/docs/symbols/Input.html +4 -4
  46. package/distrib/docs/symbols/Integral.html +2 -2
  47. package/distrib/docs/symbols/Intersection.html +4 -4
  48. package/distrib/docs/symbols/JXG.AbstractRenderer.html +2 -2
  49. package/distrib/docs/symbols/JXG.Board.html +144 -11
  50. package/distrib/docs/symbols/JXG.Board.infobox.html +2 -2
  51. package/distrib/docs/symbols/JXG.C.html +2 -2
  52. package/distrib/docs/symbols/JXG.CA.html +2 -2
  53. package/distrib/docs/symbols/JXG.CanvasRenderer.html +2 -2
  54. package/distrib/docs/symbols/JXG.Chart.html +2 -2
  55. package/distrib/docs/symbols/JXG.Circle.html +2 -2
  56. package/distrib/docs/symbols/JXG.Complex.html +2 -2
  57. package/distrib/docs/symbols/JXG.Composition.html +2 -2
  58. package/distrib/docs/symbols/JXG.Coords.html +2 -2
  59. package/distrib/docs/symbols/JXG.CoordsElement.html +54 -2
  60. package/distrib/docs/symbols/JXG.Curve.html +2 -2
  61. package/distrib/docs/symbols/JXG.Curve3D.html +2 -2
  62. package/distrib/docs/symbols/JXG.Dump.html +2 -2
  63. package/distrib/docs/symbols/JXG.EventEmitter.html +2 -2
  64. package/distrib/docs/symbols/JXG.ForeignObject.html +3 -3
  65. package/distrib/docs/symbols/JXG.GeometryElement.html +2 -2
  66. package/distrib/docs/symbols/JXG.GeometryElement3D.html +2 -2
  67. package/distrib/docs/symbols/JXG.GeonextParser.html +2 -2
  68. package/distrib/docs/symbols/JXG.Group.html +2 -2
  69. package/distrib/docs/symbols/JXG.Image.html +3 -3
  70. package/distrib/docs/symbols/JXG.JSXGraph.html +2 -2
  71. package/distrib/docs/symbols/JXG.JessieCode.html +2 -2
  72. package/distrib/docs/symbols/JXG.Legend.html +2 -2
  73. package/distrib/docs/symbols/JXG.Line.html +2 -2
  74. package/distrib/docs/symbols/JXG.Line3D.html +2 -2
  75. package/distrib/docs/symbols/JXG.Math.Clip.html +2 -2
  76. package/distrib/docs/symbols/JXG.Math.Extrapolate.html +2 -2
  77. package/distrib/docs/symbols/JXG.Math.Geometry.html +2 -2
  78. package/distrib/docs/symbols/JXG.Math.IntervalArithmetic.html +2 -2
  79. package/distrib/docs/symbols/JXG.Math.Metapost.html +2 -2
  80. package/distrib/docs/symbols/JXG.Math.Nlp.html +2 -2
  81. package/distrib/docs/symbols/JXG.Math.Numerics.html +23 -15
  82. package/distrib/docs/symbols/JXG.Math.Plot.html +2 -2
  83. package/distrib/docs/symbols/JXG.Math.Poly.Monomial.html +2 -2
  84. package/distrib/docs/symbols/JXG.Math.Poly.Polynomial.html +2 -2
  85. package/distrib/docs/symbols/JXG.Math.Poly.Ring.html +2 -2
  86. package/distrib/docs/symbols/JXG.Math.Poly.html +2 -2
  87. package/distrib/docs/symbols/JXG.Math.ProbFuncs.html +2 -2
  88. package/distrib/docs/symbols/JXG.Math.Quadtree.html +122 -7
  89. package/distrib/docs/symbols/JXG.Math.Statistics.html +2 -2
  90. package/distrib/docs/symbols/JXG.Math.Symbolic.html +2 -2
  91. package/distrib/docs/symbols/JXG.Math.html +45 -2
  92. package/distrib/docs/symbols/JXG.NoRenderer.html +2 -2
  93. package/distrib/docs/symbols/JXG.Options.html +2 -2
  94. package/distrib/docs/symbols/JXG.Plane3D.html +2 -2
  95. package/distrib/docs/symbols/JXG.Point.html +3 -3
  96. package/distrib/docs/symbols/JXG.Point3D.html +2 -2
  97. package/distrib/docs/symbols/JXG.Polygon.html +2 -2
  98. package/distrib/docs/symbols/JXG.SVGRenderer.html +2 -2
  99. package/distrib/docs/symbols/JXG.Server.html +2 -2
  100. package/distrib/docs/symbols/JXG.Server.modules.html +2 -2
  101. package/distrib/docs/symbols/JXG.Surface3D.html +2 -2
  102. package/distrib/docs/symbols/JXG.Text.html +8 -8
  103. package/distrib/docs/symbols/JXG.Ticks.html +2 -2
  104. package/distrib/docs/symbols/JXG.Transformation.html +2 -2
  105. package/distrib/docs/symbols/JXG.Turtle.html +2 -2
  106. package/distrib/docs/symbols/JXG.Util.Base64.html +2 -2
  107. package/distrib/docs/symbols/JXG.Util.UTF8.html +2 -2
  108. package/distrib/docs/symbols/JXG.Util.Unzip.html +2 -2
  109. package/distrib/docs/symbols/JXG.Util.html +2 -2
  110. package/distrib/docs/symbols/JXG.VMLRenderer.html +2 -2
  111. package/distrib/docs/symbols/JXG.View3D.html +2 -2
  112. package/distrib/docs/symbols/JXG.XML.html +2 -2
  113. package/distrib/docs/symbols/Label.html +114 -4
  114. package/distrib/docs/symbols/Legend.html +2 -2
  115. package/distrib/docs/symbols/Line.html +2 -2
  116. package/distrib/docs/symbols/Line3D.html +2 -2
  117. package/distrib/docs/symbols/Locus.html +2 -2
  118. package/distrib/docs/symbols/MajorArc.html +2 -2
  119. package/distrib/docs/symbols/MajorSector.html +2 -2
  120. package/distrib/docs/symbols/Metapostspline.html +2 -2
  121. package/distrib/docs/symbols/Midpoint.html +4 -4
  122. package/distrib/docs/symbols/MinorArc.html +2 -2
  123. package/distrib/docs/symbols/MinorSector.html +2 -2
  124. package/distrib/docs/symbols/Mirrorelement.html +2 -2
  125. package/distrib/docs/symbols/Mirrorpoint.html +4 -4
  126. package/distrib/docs/symbols/NonReflexAngle.html +2 -2
  127. package/distrib/docs/symbols/Normal.html +2 -2
  128. package/distrib/docs/symbols/Orthogonalprojection.html +4 -4
  129. package/distrib/docs/symbols/OtherIntersection.html +4 -4
  130. package/distrib/docs/symbols/Parabola.html +2 -2
  131. package/distrib/docs/symbols/Parallel.html +2 -2
  132. package/distrib/docs/symbols/Parallelpoint.html +4 -4
  133. package/distrib/docs/symbols/ParametricSurface3D.html +2 -2
  134. package/distrib/docs/symbols/Perpendicular.html +2 -2
  135. package/distrib/docs/symbols/PerpendicularPoint.html +4 -4
  136. package/distrib/docs/symbols/PerpendicularSegment.html +2 -2
  137. package/distrib/docs/symbols/Point.html +4 -4
  138. package/distrib/docs/symbols/Point3D.html +2 -2
  139. package/distrib/docs/symbols/PolarLine.html +2 -2
  140. package/distrib/docs/symbols/PolePoint.html +4 -4
  141. package/distrib/docs/symbols/Polygon.html +2 -2
  142. package/distrib/docs/symbols/PolygonalChain.html +2 -2
  143. package/distrib/docs/symbols/RadicalAxis.html +2 -2
  144. package/distrib/docs/symbols/Reflection.html +2 -2
  145. package/distrib/docs/symbols/ReflexAngle.html +2 -2
  146. package/distrib/docs/symbols/RegularPolygon.html +2 -2
  147. package/distrib/docs/symbols/Riemannsum.html +7 -3
  148. package/distrib/docs/symbols/Sector.html +2 -2
  149. package/distrib/docs/symbols/Segment.html +2 -2
  150. package/distrib/docs/symbols/Semicircle.html +2 -2
  151. package/distrib/docs/symbols/Slider.html +145 -4
  152. package/distrib/docs/symbols/Slopefield.html +2 -2
  153. package/distrib/docs/symbols/Slopetriangle.html +2 -2
  154. package/distrib/docs/symbols/Smartlabel.html +4 -4
  155. package/distrib/docs/symbols/Spline.html +2 -2
  156. package/distrib/docs/symbols/Stepfunction.html +2 -2
  157. package/distrib/docs/symbols/Tangent.html +2 -2
  158. package/distrib/docs/symbols/Tapemeasure.html +2 -2
  159. package/distrib/docs/symbols/Text.html +4 -4
  160. package/distrib/docs/symbols/Ticks.html +2 -2
  161. package/distrib/docs/symbols/Tracecurve.html +2 -2
  162. package/distrib/docs/symbols/Transformation.html +2 -2
  163. package/distrib/docs/symbols/Turtle.html +2 -2
  164. package/distrib/docs/symbols/Vectorfield.html +2 -2
  165. package/distrib/docs/symbols/View3D.html +2 -2
  166. package/distrib/docs/symbols/_global_.html +2 -2
  167. package/distrib/docs/symbols/src/src_3d_view3d.js.html +29 -30
  168. package/distrib/docs/symbols/src/src_base_board.js.html +5020 -4930
  169. package/distrib/docs/symbols/src/src_base_constants.js.html +1 -1
  170. package/distrib/docs/symbols/src/src_base_coordselement.js.html +1829 -1789
  171. package/distrib/docs/symbols/src/src_base_curve.js.html +783 -778
  172. package/distrib/docs/symbols/src/src_base_text.js.html +345 -358
  173. package/distrib/docs/symbols/src/src_element_checkbox.js.html +30 -30
  174. package/distrib/docs/symbols/src/src_element_slider.js.html +391 -377
  175. package/distrib/docs/symbols/src/src_math_numerics.js.html +1226 -1190
  176. package/distrib/docs/symbols/src/src_math_qdt.js.html +318 -194
  177. package/distrib/docs/symbols/src/src_options.js.html +7137 -7034
  178. package/distrib/docs/symbols/src/src_renderer_abstract.js.html +1168 -1167
  179. package/distrib/docs/symbols/src/src_renderer_canvas.js.html +1 -1
  180. package/distrib/docs/symbols/src/src_renderer_svg.js.html +489 -494
  181. package/distrib/docs/symbols/src/src_utils_env.js.html +127 -90
  182. package/distrib/docs.zip +0 -0
  183. package/distrib/geogebra.min.js +1 -1
  184. package/distrib/geonext.min.js +1 -1
  185. package/distrib/intergeo.min.js +1 -1
  186. package/distrib/jsxgraph.css +24 -22
  187. package/distrib/jsxgraph.zip +0 -0
  188. package/distrib/jsxgraphcore.js +2 -2
  189. package/distrib/jsxgraphcore.mjs +2 -2
  190. package/distrib/jsxgraphcore.mjs.map +1 -1
  191. package/distrib/jsxgraphsrc.js +707 -276
  192. package/distrib/jsxgraphsrc.mjs +707 -276
  193. package/distrib/jsxgraphsrc.mjs.map +1 -1
  194. package/distrib/sketch.min.js +1 -1
  195. package/package.json +1 -1
  196. package/src/3d/view3d.js +0 -1
  197. package/src/base/board.js +140 -50
  198. package/src/base/constants.js +1 -1
  199. package/src/base/coordselement.js +54 -14
  200. package/src/base/curve.js +6 -1
  201. package/src/base/text.js +13 -26
  202. package/src/element/checkbox.js +17 -17
  203. package/src/element/slider.js +16 -2
  204. package/src/math/heap.js +34 -4
  205. package/src/math/numerics.js +112 -76
  206. package/src/math/qdt.js +141 -17
  207. package/src/options.js +115 -12
  208. package/src/renderer/abstract.js +15 -14
  209. package/src/renderer/canvas.js +1 -1
  210. package/src/renderer/svg.js +0 -5
  211. package/src/utils/env.js +75 -38
@@ -2238,796 +2238,801 @@
2238
2238
  <span class='line'>2231</span> </span><span class="COMM">/**
2239
2239
  <span class='line'>2232</span> * @class This element is used to provide a constructor for Riemann sums, which is realized as a special curve.
2240
2240
  <span class='line'>2233</span> * The returned element has the method Value() which returns the sum of the areas of the bars.
2241
- <span class='line'>2234</span> * @pseudo
2242
- <span class='line'>2235</span> * @description
2243
- <span class='line'>2236</span> * @name Riemannsum
2244
- <span class='line'>2237</span> * @augments JXG.Curve
2245
- <span class='line'>2238</span> * @constructor
2246
- <span class='line'>2239</span> * @type JXG.Curve
2247
- <span class='line'>2240</span> * @param {function,array_number,function_string,function_function,number_function,number} f,n,type_,a_,b_ Parent elements of Riemannsum are a
2248
- <span class='line'>2241</span> * Either a function term f(x) describing the function graph which is filled by the Riemann bars, or
2249
- <span class='line'>2242</span> * an array consisting of two functions and the area between is filled by the Riemann bars.
2250
- <span class='line'>2243</span> * &lt;p>
2251
- <span class='line'>2244</span> * n determines the number of bars, it is either a fixed number or a function.
2252
- <span class='line'>2245</span> * &lt;p>
2253
- <span class='line'>2246</span> * type is a string or function returning one of the values: 'left', 'right', 'middle', 'lower', 'upper', 'random', 'simpson', or 'trapezoidal'.
2254
- <span class='line'>2247</span> * Default value is 'left'.
2241
+ <span class='line'>2234</span> * &lt;p>
2242
+ <span class='line'>2235</span> * In case of type "simpson" and "trapezoidal", the horizontal line approximating the function value
2243
+ <span class='line'>2236</span> * is replaced by a parabola or a secant. IN case of "simpson",
2244
+ <span class='line'>2237</span> * the parabola is approximated visually by a polygonal chain of fixed step width.
2245
+ <span class='line'>2238</span> *
2246
+ <span class='line'>2239</span> * @pseudo
2247
+ <span class='line'>2240</span> * @description
2248
+ <span class='line'>2241</span> * @name Riemannsum
2249
+ <span class='line'>2242</span> * @augments JXG.Curve
2250
+ <span class='line'>2243</span> * @constructor
2251
+ <span class='line'>2244</span> * @type JXG.Curve
2252
+ <span class='line'>2245</span> * @param {function,array_number,function_string,function_function,number_function,number} f,n,type_,a_,b_ Parent elements of Riemannsum are a
2253
+ <span class='line'>2246</span> * Either a function term f(x) describing the function graph which is filled by the Riemann bars, or
2254
+ <span class='line'>2247</span> * an array consisting of two functions and the area between is filled by the Riemann bars.
2255
2255
  <span class='line'>2248</span> * &lt;p>
2256
- <span class='line'>2249</span> * Further parameters are an optional number or function for the left interval border a,
2257
- <span class='line'>2250</span> * and an optional number or function for the right interval border b.
2258
- <span class='line'>2251</span> * &lt;p>
2259
- <span class='line'>2252</span> * Default values are a=-10 and b=10.
2260
- <span class='line'>2253</span> * @see JXG.Curve
2261
- <span class='line'>2254</span> * @example
2262
- <span class='line'>2255</span> * // Create Riemann sums for f(x) = 0.5*x*x-2*x.
2263
- <span class='line'>2256</span> * var s = board.create('slider',[[0,4],[3,4],[0,4,10]],{snapWidth:1});
2264
- <span class='line'>2257</span> * var f = function(x) { return 0.5*x*x-2*x; };
2265
- <span class='line'>2258</span> * var r = board.create('riemannsum',
2266
- <span class='line'>2259</span> * [f, function(){return s.Value();}, 'upper', -2, 5],
2267
- <span class='line'>2260</span> * {fillOpacity:0.4}
2268
- <span class='line'>2261</span> * );
2269
- <span class='line'>2262</span> * var g = board.create('functiongraph',[f, -2, 5]);
2270
- <span class='line'>2263</span> * var t = board.create('text',[-2,-2, function(){ return 'Sum=' + JXG.toFixed(r.Value(), 4); }]);
2271
- <span class='line'>2264</span> * &lt;/pre>&lt;div class="jxgbox" id="JXG940f40cc-2015-420d-9191-c5d83de988cf" style="width: 300px; height: 300px;">&lt;/div>
2272
- <span class='line'>2265</span> * &lt;script type="text/javascript">
2273
- <span class='line'>2266</span> * (function(){
2274
- <span class='line'>2267</span> * var board = JXG.JSXGraph.initBoard('JXG940f40cc-2015-420d-9191-c5d83de988cf', {boundingbox: [-3, 7, 5, -3], axis: true, showcopyright: false, shownavigation: false});
2275
- <span class='line'>2268</span> * var f = function(x) { return 0.5*x*x-2*x; };
2276
- <span class='line'>2269</span> * var s = board.create('slider',[[0,4],[3,4],[0,4,10]],{snapWidth:1});
2277
- <span class='line'>2270</span> * var r = board.create('riemannsum', [f, function(){return s.Value();}, 'upper', -2, 5], {fillOpacity:0.4});
2278
- <span class='line'>2271</span> * var g = board.create('functiongraph', [f, -2, 5]);
2279
- <span class='line'>2272</span> * var t = board.create('text',[-2,-2, function(){ return 'Sum=' + JXG.toFixed(r.Value(), 4); }]);
2280
- <span class='line'>2273</span> * })();
2281
- <span class='line'>2274</span> * &lt;/script>&lt;pre>
2282
- <span class='line'>2275</span> *
2283
- <span class='line'>2276</span> * @example
2284
- <span class='line'>2277</span> * // Riemann sum between two functions
2285
- <span class='line'>2278</span> * var s = board.create('slider',[[0,4],[3,4],[0,4,10]],{snapWidth:1});
2286
- <span class='line'>2279</span> * var g = function(x) { return 0.5*x*x-2*x; };
2287
- <span class='line'>2280</span> * var f = function(x) { return -x*(x-4); };
2288
- <span class='line'>2281</span> * var r = board.create('riemannsum',
2289
- <span class='line'>2282</span> * [[g,f], function(){return s.Value();}, 'lower', 0, 4],
2290
- <span class='line'>2283</span> * {fillOpacity:0.4}
2291
- <span class='line'>2284</span> * );
2292
- <span class='line'>2285</span> * var f = board.create('functiongraph',[f, -2, 5]);
2293
- <span class='line'>2286</span> * var g = board.create('functiongraph',[g, -2, 5]);
2294
- <span class='line'>2287</span> * var t = board.create('text',[-2,-2, function(){ return 'Sum=' + JXG.toFixed(r.Value(), 4); }]);
2295
- <span class='line'>2288</span> * &lt;/pre>&lt;div class="jxgbox" id="JXGf9a7ba38-b50f-4a32-a873-2f3bf9caee79" style="width: 300px; height: 300px;">&lt;/div>
2296
- <span class='line'>2289</span> * &lt;script type="text/javascript">
2297
- <span class='line'>2290</span> * (function(){
2298
- <span class='line'>2291</span> * var board = JXG.JSXGraph.initBoard('JXGf9a7ba38-b50f-4a32-a873-2f3bf9caee79', {boundingbox: [-3, 7, 5, -3], axis: true, showcopyright: false, shownavigation: false});
2299
- <span class='line'>2292</span> * var s = board.create('slider',[[0,4],[3,4],[0,4,10]],{snapWidth:1});
2300
- <span class='line'>2293</span> * var g = function(x) { return 0.5*x*x-2*x; };
2301
- <span class='line'>2294</span> * var f = function(x) { return -x*(x-4); };
2302
- <span class='line'>2295</span> * var r = board.create('riemannsum',
2303
- <span class='line'>2296</span> * [[g,f], function(){return s.Value();}, 'lower', 0, 4],
2304
- <span class='line'>2297</span> * {fillOpacity:0.4}
2305
- <span class='line'>2298</span> * );
2306
- <span class='line'>2299</span> * var f = board.create('functiongraph',[f, -2, 5]);
2307
- <span class='line'>2300</span> * var g = board.create('functiongraph',[g, -2, 5]);
2308
- <span class='line'>2301</span> * var t = board.create('text',[-2,-2, function(){ return 'Sum=' + JXG.toFixed(r.Value(), 4); }]);
2309
- <span class='line'>2302</span> * })();
2310
- <span class='line'>2303</span> * &lt;/script>&lt;pre>
2311
- <span class='line'>2304</span> */</span><span class="WHIT">
2312
- <span class='line'>2305</span> </span><span class="NAME">JXG.createRiemannsum</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2313
- <span class='line'>2306</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">par</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">;</span><span class="WHIT">
2314
- <span class='line'>2307</span>
2315
- <span class='line'>2308</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"riemannsum"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2316
- <span class='line'>2309</span> </span><span class="WHIT"> </span><span class="NAME">attr.curvetype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"plot"</span><span class="PUNC">;</span><span class="WHIT">
2317
- <span class='line'>2310</span>
2318
- <span class='line'>2311</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2319
- <span class='line'>2312</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.createFunction</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2320
- <span class='line'>2313</span>
2321
- <span class='line'>2314</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">n</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2322
- <span class='line'>2315</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="WHIT">
2323
- <span class='line'>2316</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: JXG.createRiemannsum: argument '2' n has to be number or function."</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2324
- <span class='line'>2317</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [function,n:number|function,type,start:number|function,end:number|function]"</span><span class="WHIT">
2325
- <span class='line'>2318</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2326
- <span class='line'>2319</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2327
- <span class='line'>2320</span>
2328
- <span class='line'>2321</span> </span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.createFunction</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2329
- <span class='line'>2322</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">type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2330
- <span class='line'>2323</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="WHIT">
2331
- <span class='line'>2324</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: JXG.createRiemannsum: argument 3 'type' has to be string or function."</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2332
- <span class='line'>2325</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [function,n:number|function,type,start:number|function,end:number|function]"</span><span class="WHIT">
2333
- <span class='line'>2326</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2334
- <span class='line'>2327</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2335
- <span class='line'>2328</span>
2336
- <span class='line'>2329</span> </span><span class="WHIT"> </span><span class="NAME">par</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</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="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">concat</span><span class="PUNC">(</span><span class="NAME">parents.slice</span><span class="PUNC">(</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2337
- <span class='line'>2330</span>
2338
- <span class='line'>2331</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">par</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2339
- <span class='line'>2332</span>
2340
- <span class='line'>2333</span> </span><span class="WHIT"> </span><span class="NAME">c.sum</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0.0</span><span class="PUNC">;</span><span class="WHIT">
2341
- <span class='line'>2334</span> </span><span class="WHIT"> </span><span class="COMM">/**
2342
- <span class='line'>2335</span> * Returns the value of the Riemann sum, i.e. the sum of the (signed) areas of the rectangles.
2343
- <span class='line'>2336</span> * @name Value
2344
- <span class='line'>2337</span> * @memberOf Riemann.prototype
2345
- <span class='line'>2338</span> * @function
2346
- <span class='line'>2339</span> * @returns {Number} value of Riemann sum.
2347
- <span class='line'>2340</span> */</span><span class="WHIT">
2348
- <span class='line'>2341</span> </span><span class="WHIT"> </span><span class="NAME">c.Value</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2349
- <span class='line'>2342</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.sum</span><span class="PUNC">;</span><span class="WHIT">
2350
- <span class='line'>2343</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2351
- <span class='line'>2344</span>
2352
- <span class='line'>2345</span> </span><span class="WHIT"> </span><span class="COMM">/**
2353
- <span class='line'>2346</span> * @ignore
2354
- <span class='line'>2347</span> */</span><span class="WHIT">
2355
- <span class='line'>2348</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2356
- <span class='line'>2349</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Numerics.riemann</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2357
- <span class='line'>2350</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2358
- <span class='line'>2351</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2359
- <span class='line'>2352</span>
2360
- <span class='line'>2353</span> </span><span class="WHIT"> </span><span class="COMM">// Update "Riemann sum"</span><span class="WHIT">
2361
- <span class='line'>2354</span> </span><span class="WHIT"> </span><span class="NAME">this.sum</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2362
- <span class='line'>2355</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2363
- <span class='line'>2356</span>
2364
- <span class='line'>2357</span> </span><span class="WHIT"> </span><span class="NAME">c.addParentsFromJCFunctions</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2365
- <span class='line'>2358</span>
2366
- <span class='line'>2359</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2367
- <span class='line'>2360</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2256
+ <span class='line'>2249</span> * n determines the number of bars, it is either a fixed number or a function.
2257
+ <span class='line'>2250</span> * &lt;p>
2258
+ <span class='line'>2251</span> * type is a string or function returning one of the values: 'left', 'right', 'middle', 'lower', 'upper', 'random', 'simpson', or 'trapezoidal'.
2259
+ <span class='line'>2252</span> * Default value is 'left'. "simpson" is Simpson's 1/3 rule.
2260
+ <span class='line'>2253</span> * &lt;p>
2261
+ <span class='line'>2254</span> * Further parameters are an optional number or function for the left interval border a,
2262
+ <span class='line'>2255</span> * and an optional number or function for the right interval border b.
2263
+ <span class='line'>2256</span> * &lt;p>
2264
+ <span class='line'>2257</span> * Default values are a=-10 and b=10.
2265
+ <span class='line'>2258</span> * @see JXG.Curve
2266
+ <span class='line'>2259</span> * @example
2267
+ <span class='line'>2260</span> * // Create Riemann sums for f(x) = 0.5*x*x-2*x.
2268
+ <span class='line'>2261</span> * var s = board.create('slider',[[0,4],[3,4],[0,4,10]],{snapWidth:1});
2269
+ <span class='line'>2262</span> * var f = function(x) { return 0.5*x*x-2*x; };
2270
+ <span class='line'>2263</span> * var r = board.create('riemannsum',
2271
+ <span class='line'>2264</span> * [f, function(){return s.Value();}, 'upper', -2, 5],
2272
+ <span class='line'>2265</span> * {fillOpacity:0.4}
2273
+ <span class='line'>2266</span> * );
2274
+ <span class='line'>2267</span> * var g = board.create('functiongraph',[f, -2, 5]);
2275
+ <span class='line'>2268</span> * var t = board.create('text',[-2,-2, function(){ return 'Sum=' + JXG.toFixed(r.Value(), 4); }]);
2276
+ <span class='line'>2269</span> * &lt;/pre>&lt;div class="jxgbox" id="JXG940f40cc-2015-420d-9191-c5d83de988cf" style="width: 300px; height: 300px;">&lt;/div>
2277
+ <span class='line'>2270</span> * &lt;script type="text/javascript">
2278
+ <span class='line'>2271</span> * (function(){
2279
+ <span class='line'>2272</span> * var board = JXG.JSXGraph.initBoard('JXG940f40cc-2015-420d-9191-c5d83de988cf', {boundingbox: [-3, 7, 5, -3], axis: true, showcopyright: false, shownavigation: false});
2280
+ <span class='line'>2273</span> * var f = function(x) { return 0.5*x*x-2*x; };
2281
+ <span class='line'>2274</span> * var s = board.create('slider',[[0,4],[3,4],[0,4,10]],{snapWidth:1});
2282
+ <span class='line'>2275</span> * var r = board.create('riemannsum', [f, function(){return s.Value();}, 'upper', -2, 5], {fillOpacity:0.4});
2283
+ <span class='line'>2276</span> * var g = board.create('functiongraph', [f, -2, 5]);
2284
+ <span class='line'>2277</span> * var t = board.create('text',[-2,-2, function(){ return 'Sum=' + JXG.toFixed(r.Value(), 4); }]);
2285
+ <span class='line'>2278</span> * })();
2286
+ <span class='line'>2279</span> * &lt;/script>&lt;pre>
2287
+ <span class='line'>2280</span> *
2288
+ <span class='line'>2281</span> * @example
2289
+ <span class='line'>2282</span> * // Riemann sum between two functions
2290
+ <span class='line'>2283</span> * var s = board.create('slider',[[0,4],[3,4],[0,4,10]],{snapWidth:1});
2291
+ <span class='line'>2284</span> * var g = function(x) { return 0.5*x*x-2*x; };
2292
+ <span class='line'>2285</span> * var f = function(x) { return -x*(x-4); };
2293
+ <span class='line'>2286</span> * var r = board.create('riemannsum',
2294
+ <span class='line'>2287</span> * [[g,f], function(){return s.Value();}, 'lower', 0, 4],
2295
+ <span class='line'>2288</span> * {fillOpacity:0.4}
2296
+ <span class='line'>2289</span> * );
2297
+ <span class='line'>2290</span> * var f = board.create('functiongraph',[f, -2, 5]);
2298
+ <span class='line'>2291</span> * var g = board.create('functiongraph',[g, -2, 5]);
2299
+ <span class='line'>2292</span> * var t = board.create('text',[-2,-2, function(){ return 'Sum=' + JXG.toFixed(r.Value(), 4); }]);
2300
+ <span class='line'>2293</span> * &lt;/pre>&lt;div class="jxgbox" id="JXGf9a7ba38-b50f-4a32-a873-2f3bf9caee79" style="width: 300px; height: 300px;">&lt;/div>
2301
+ <span class='line'>2294</span> * &lt;script type="text/javascript">
2302
+ <span class='line'>2295</span> * (function(){
2303
+ <span class='line'>2296</span> * var board = JXG.JSXGraph.initBoard('JXGf9a7ba38-b50f-4a32-a873-2f3bf9caee79', {boundingbox: [-3, 7, 5, -3], axis: true, showcopyright: false, shownavigation: false});
2304
+ <span class='line'>2297</span> * var s = board.create('slider',[[0,4],[3,4],[0,4,10]],{snapWidth:1});
2305
+ <span class='line'>2298</span> * var g = function(x) { return 0.5*x*x-2*x; };
2306
+ <span class='line'>2299</span> * var f = function(x) { return -x*(x-4); };
2307
+ <span class='line'>2300</span> * var r = board.create('riemannsum',
2308
+ <span class='line'>2301</span> * [[g,f], function(){return s.Value();}, 'lower', 0, 4],
2309
+ <span class='line'>2302</span> * {fillOpacity:0.4}
2310
+ <span class='line'>2303</span> * );
2311
+ <span class='line'>2304</span> * var f = board.create('functiongraph',[f, -2, 5]);
2312
+ <span class='line'>2305</span> * var g = board.create('functiongraph',[g, -2, 5]);
2313
+ <span class='line'>2306</span> * var t = board.create('text',[-2,-2, function(){ return 'Sum=' + JXG.toFixed(r.Value(), 4); }]);
2314
+ <span class='line'>2307</span> * })();
2315
+ <span class='line'>2308</span> * &lt;/script>&lt;pre>
2316
+ <span class='line'>2309</span> */</span><span class="WHIT">
2317
+ <span class='line'>2310</span> </span><span class="NAME">JXG.createRiemannsum</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2318
+ <span class='line'>2311</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">par</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">;</span><span class="WHIT">
2319
+ <span class='line'>2312</span>
2320
+ <span class='line'>2313</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"riemannsum"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2321
+ <span class='line'>2314</span> </span><span class="WHIT"> </span><span class="NAME">attr.curvetype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"plot"</span><span class="PUNC">;</span><span class="WHIT">
2322
+ <span class='line'>2315</span>
2323
+ <span class='line'>2316</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2324
+ <span class='line'>2317</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.createFunction</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2325
+ <span class='line'>2318</span>
2326
+ <span class='line'>2319</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">n</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2327
+ <span class='line'>2320</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="WHIT">
2328
+ <span class='line'>2321</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: JXG.createRiemannsum: argument '2' n has to be number or function."</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2329
+ <span class='line'>2322</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [function,n:number|function,type,start:number|function,end:number|function]"</span><span class="WHIT">
2330
+ <span class='line'>2323</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2331
+ <span class='line'>2324</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2332
+ <span class='line'>2325</span>
2333
+ <span class='line'>2326</span> </span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.createFunction</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2334
+ <span class='line'>2327</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">type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2335
+ <span class='line'>2328</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="WHIT">
2336
+ <span class='line'>2329</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: JXG.createRiemannsum: argument 3 'type' has to be string or function."</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2337
+ <span class='line'>2330</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [function,n:number|function,type,start:number|function,end:number|function]"</span><span class="WHIT">
2338
+ <span class='line'>2331</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2339
+ <span class='line'>2332</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2340
+ <span class='line'>2333</span>
2341
+ <span class='line'>2334</span> </span><span class="WHIT"> </span><span class="NAME">par</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</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="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">concat</span><span class="PUNC">(</span><span class="NAME">parents.slice</span><span class="PUNC">(</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2342
+ <span class='line'>2335</span>
2343
+ <span class='line'>2336</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">par</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2344
+ <span class='line'>2337</span>
2345
+ <span class='line'>2338</span> </span><span class="WHIT"> </span><span class="NAME">c.sum</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0.0</span><span class="PUNC">;</span><span class="WHIT">
2346
+ <span class='line'>2339</span> </span><span class="WHIT"> </span><span class="COMM">/**
2347
+ <span class='line'>2340</span> * Returns the value of the Riemann sum, i.e. the sum of the (signed) areas of the rectangles.
2348
+ <span class='line'>2341</span> * @name Value
2349
+ <span class='line'>2342</span> * @memberOf Riemann.prototype
2350
+ <span class='line'>2343</span> * @function
2351
+ <span class='line'>2344</span> * @returns {Number} value of Riemann sum.
2352
+ <span class='line'>2345</span> */</span><span class="WHIT">
2353
+ <span class='line'>2346</span> </span><span class="WHIT"> </span><span class="NAME">c.Value</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2354
+ <span class='line'>2347</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.sum</span><span class="PUNC">;</span><span class="WHIT">
2355
+ <span class='line'>2348</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2356
+ <span class='line'>2349</span>
2357
+ <span class='line'>2350</span> </span><span class="WHIT"> </span><span class="COMM">/**
2358
+ <span class='line'>2351</span> * @ignore
2359
+ <span class='line'>2352</span> */</span><span class="WHIT">
2360
+ <span class='line'>2353</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2361
+ <span class='line'>2354</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Numerics.riemann</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2362
+ <span class='line'>2355</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2363
+ <span class='line'>2356</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2364
+ <span class='line'>2357</span>
2365
+ <span class='line'>2358</span> </span><span class="WHIT"> </span><span class="COMM">// Update "Riemann sum"</span><span class="WHIT">
2366
+ <span class='line'>2359</span> </span><span class="WHIT"> </span><span class="NAME">this.sum</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2367
+ <span class='line'>2360</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2368
2368
  <span class='line'>2361</span>
2369
- <span class='line'>2362</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"riemannsum"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createRiemannsum</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2369
+ <span class='line'>2362</span> </span><span class="WHIT"> </span><span class="NAME">c.addParentsFromJCFunctions</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2370
2370
  <span class='line'>2363</span>
2371
- <span class='line'>2364</span> </span><span class="COMM">/**
2372
- <span class='line'>2365</span> * @class This element is used to provide a constructor for trace curve (simple locus curve), which is realized as a special curve.
2373
- <span class='line'>2366</span> * @pseudo
2374
- <span class='line'>2367</span> * @description
2375
- <span class='line'>2368</span> * @name Tracecurve
2376
- <span class='line'>2369</span> * @augments JXG.Curve
2377
- <span class='line'>2370</span> * @constructor
2378
- <span class='line'>2371</span> * @type JXG.Curve
2379
- <span class='line'>2372</span> * @param {Point,Point} Parent elements of Tracecurve are a
2380
- <span class='line'>2373</span> * glider point and a point whose locus is traced.
2381
- <span class='line'>2374</span> * @see JXG.Curve
2382
- <span class='line'>2375</span> * @example
2383
- <span class='line'>2376</span> * // Create trace curve.
2384
- <span class='line'>2377</span> * var c1 = board.create('circle',[[0, 0], [2, 0]]),
2385
- <span class='line'>2378</span> * p1 = board.create('point',[-3, 1]),
2386
- <span class='line'>2379</span> * g1 = board.create('glider',[2, 1, c1]),
2387
- <span class='line'>2380</span> * s1 = board.create('segment',[g1, p1]),
2388
- <span class='line'>2381</span> * p2 = board.create('midpoint',[s1]),
2389
- <span class='line'>2382</span> * curve = board.create('tracecurve', [g1, p2]);
2390
- <span class='line'>2383</span> *
2391
- <span class='line'>2384</span> * &lt;/pre>&lt;div class="jxgbox" id="JXG5749fb7d-04fc-44d2-973e-45c1951e29ad" style="width: 300px; height: 300px;">&lt;/div>
2392
- <span class='line'>2385</span> * &lt;script type="text/javascript">
2393
- <span class='line'>2386</span> * var tc1_board = JXG.JSXGraph.initBoard('JXG5749fb7d-04fc-44d2-973e-45c1951e29ad', {boundingbox: [-4, 4, 4, -4], axis: false, showcopyright: false, shownavigation: false});
2394
- <span class='line'>2387</span> * var c1 = tc1_board.create('circle',[[0, 0], [2, 0]]),
2395
- <span class='line'>2388</span> * p1 = tc1_board.create('point',[-3, 1]),
2396
- <span class='line'>2389</span> * g1 = tc1_board.create('glider',[2, 1, c1]),
2397
- <span class='line'>2390</span> * s1 = tc1_board.create('segment',[g1, p1]),
2398
- <span class='line'>2391</span> * p2 = tc1_board.create('midpoint',[s1]),
2399
- <span class='line'>2392</span> * curve = tc1_board.create('tracecurve', [g1, p2]);
2400
- <span class='line'>2393</span> * &lt;/script>&lt;pre>
2401
- <span class='line'>2394</span> */</span><span class="WHIT">
2402
- <span class='line'>2395</span> </span><span class="NAME">JXG.createTracecurve</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2403
- <span class='line'>2396</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">glider</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tracepoint</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">;</span><span class="WHIT">
2404
- <span class='line'>2397</span>
2405
- <span class='line'>2398</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2406
- <span class='line'>2399</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="WHIT">
2407
- <span class='line'>2400</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create trace curve with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2408
- <span class='line'>2401</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [glider, point]"</span><span class="WHIT">
2409
- <span class='line'>2402</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2410
- <span class='line'>2403</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2411
- <span class='line'>2404</span>
2412
- <span class='line'>2405</span> </span><span class="WHIT"> </span><span class="NAME">glider</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.select</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2413
- <span class='line'>2406</span> </span><span class="WHIT"> </span><span class="NAME">tracepoint</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.select</span><span class="PUNC">(</span><span class="NAME">parents</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">
2414
- <span class='line'>2407</span>
2415
- <span class='line'>2408</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">glider.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_GLIDER</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">Type.isPoint</span><span class="PUNC">(</span><span class="NAME">tracepoint</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2416
- <span class='line'>2409</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="WHIT">
2417
- <span class='line'>2410</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create trace curve with parent types '"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2418
- <span class='line'>2411</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">parents</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">
2419
- <span class='line'>2412</span> </span><span class="WHIT"> </span><span class="STRN">"' and '"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2420
- <span class='line'>2413</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">parents</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">
2421
- <span class='line'>2414</span> </span><span class="WHIT"> </span><span class="STRN">"'."</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2422
- <span class='line'>2415</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [glider, point]"</span><span class="WHIT">
2423
- <span class='line'>2416</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2424
- <span class='line'>2417</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2425
- <span class='line'>2418</span>
2426
- <span class='line'>2419</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"tracecurve"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2427
- <span class='line'>2420</span> </span><span class="WHIT"> </span><span class="NAME">attr.curvetype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"plot"</span><span class="PUNC">;</span><span class="WHIT">
2428
- <span class='line'>2421</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</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="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2429
- <span class='line'>2422</span>
2430
- <span class='line'>2423</span> </span><span class="WHIT"> </span><span class="COMM">/**
2431
- <span class='line'>2424</span> * @ignore
2432
- <span class='line'>2425</span> */</span><span class="WHIT">
2433
- <span class='line'>2426</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2434
- <span class='line'>2427</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">
2435
- <span class='line'>2428</span> </span><span class="WHIT"> </span><span class="NAME">step</span><span class="PUNC">,</span><span class="WHIT">
2436
- <span class='line'>2429</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT">
2437
- <span class='line'>2430</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT">
2438
- <span class='line'>2431</span> </span><span class="WHIT"> </span><span class="NAME">pEl</span><span class="PUNC">,</span><span class="WHIT">
2439
- <span class='line'>2432</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT">
2440
- <span class='line'>2433</span> </span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT">
2441
- <span class='line'>2434</span> </span><span class="WHIT"> </span><span class="NAME">from</span><span class="PUNC">,</span><span class="WHIT">
2442
- <span class='line'>2435</span> </span><span class="WHIT"> </span><span class="NAME">savetrace</span><span class="PUNC">,</span><span class="WHIT">
2443
- <span class='line'>2436</span> </span><span class="WHIT"> </span><span class="NAME">le</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.numberpoints</span><span class="PUNC">,</span><span class="WHIT">
2444
- <span class='line'>2437</span> </span><span class="WHIT"> </span><span class="NAME">savePos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">glider.position</span><span class="PUNC">,</span><span class="WHIT">
2445
- <span class='line'>2438</span> </span><span class="WHIT"> </span><span class="NAME">slideObj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">glider.slideObject</span><span class="PUNC">,</span><span class="WHIT">
2446
- <span class='line'>2439</span> </span><span class="WHIT"> </span><span class="NAME">mi</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">slideObj.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2447
- <span class='line'>2440</span> </span><span class="WHIT"> </span><span class="NAME">ma</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">slideObj.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2448
- <span class='line'>2441</span>
2449
- <span class='line'>2442</span> </span><span class="WHIT"> </span><span class="COMM">// set step width</span><span class="WHIT">
2450
- <span class='line'>2443</span> </span><span class="WHIT"> </span><span class="NAME">step</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ma</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">mi</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">le</span><span class="PUNC">;</span><span class="WHIT">
2451
- <span class='line'>2444</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</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">
2452
- <span class='line'>2445</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</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">
2371
+ <span class='line'>2364</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2372
+ <span class='line'>2365</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2373
+ <span class='line'>2366</span>
2374
+ <span class='line'>2367</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"riemannsum"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createRiemannsum</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2375
+ <span class='line'>2368</span>
2376
+ <span class='line'>2369</span> </span><span class="COMM">/**
2377
+ <span class='line'>2370</span> * @class This element is used to provide a constructor for trace curve (simple locus curve), which is realized as a special curve.
2378
+ <span class='line'>2371</span> * @pseudo
2379
+ <span class='line'>2372</span> * @description
2380
+ <span class='line'>2373</span> * @name Tracecurve
2381
+ <span class='line'>2374</span> * @augments JXG.Curve
2382
+ <span class='line'>2375</span> * @constructor
2383
+ <span class='line'>2376</span> * @type JXG.Curve
2384
+ <span class='line'>2377</span> * @param {Point,Point} Parent elements of Tracecurve are a
2385
+ <span class='line'>2378</span> * glider point and a point whose locus is traced.
2386
+ <span class='line'>2379</span> * @see JXG.Curve
2387
+ <span class='line'>2380</span> * @example
2388
+ <span class='line'>2381</span> * // Create trace curve.
2389
+ <span class='line'>2382</span> * var c1 = board.create('circle',[[0, 0], [2, 0]]),
2390
+ <span class='line'>2383</span> * p1 = board.create('point',[-3, 1]),
2391
+ <span class='line'>2384</span> * g1 = board.create('glider',[2, 1, c1]),
2392
+ <span class='line'>2385</span> * s1 = board.create('segment',[g1, p1]),
2393
+ <span class='line'>2386</span> * p2 = board.create('midpoint',[s1]),
2394
+ <span class='line'>2387</span> * curve = board.create('tracecurve', [g1, p2]);
2395
+ <span class='line'>2388</span> *
2396
+ <span class='line'>2389</span> * &lt;/pre>&lt;div class="jxgbox" id="JXG5749fb7d-04fc-44d2-973e-45c1951e29ad" style="width: 300px; height: 300px;">&lt;/div>
2397
+ <span class='line'>2390</span> * &lt;script type="text/javascript">
2398
+ <span class='line'>2391</span> * var tc1_board = JXG.JSXGraph.initBoard('JXG5749fb7d-04fc-44d2-973e-45c1951e29ad', {boundingbox: [-4, 4, 4, -4], axis: false, showcopyright: false, shownavigation: false});
2399
+ <span class='line'>2392</span> * var c1 = tc1_board.create('circle',[[0, 0], [2, 0]]),
2400
+ <span class='line'>2393</span> * p1 = tc1_board.create('point',[-3, 1]),
2401
+ <span class='line'>2394</span> * g1 = tc1_board.create('glider',[2, 1, c1]),
2402
+ <span class='line'>2395</span> * s1 = tc1_board.create('segment',[g1, p1]),
2403
+ <span class='line'>2396</span> * p2 = tc1_board.create('midpoint',[s1]),
2404
+ <span class='line'>2397</span> * curve = tc1_board.create('tracecurve', [g1, p2]);
2405
+ <span class='line'>2398</span> * &lt;/script>&lt;pre>
2406
+ <span class='line'>2399</span> */</span><span class="WHIT">
2407
+ <span class='line'>2400</span> </span><span class="NAME">JXG.createTracecurve</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2408
+ <span class='line'>2401</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">glider</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tracepoint</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">;</span><span class="WHIT">
2409
+ <span class='line'>2402</span>
2410
+ <span class='line'>2403</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2411
+ <span class='line'>2404</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="WHIT">
2412
+ <span class='line'>2405</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create trace curve with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2413
+ <span class='line'>2406</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [glider, point]"</span><span class="WHIT">
2414
+ <span class='line'>2407</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2415
+ <span class='line'>2408</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2416
+ <span class='line'>2409</span>
2417
+ <span class='line'>2410</span> </span><span class="WHIT"> </span><span class="NAME">glider</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.select</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2418
+ <span class='line'>2411</span> </span><span class="WHIT"> </span><span class="NAME">tracepoint</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.select</span><span class="PUNC">(</span><span class="NAME">parents</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">
2419
+ <span class='line'>2412</span>
2420
+ <span class='line'>2413</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">glider.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_GLIDER</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">Type.isPoint</span><span class="PUNC">(</span><span class="NAME">tracepoint</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2421
+ <span class='line'>2414</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="WHIT">
2422
+ <span class='line'>2415</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create trace curve with parent types '"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2423
+ <span class='line'>2416</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">parents</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">
2424
+ <span class='line'>2417</span> </span><span class="WHIT"> </span><span class="STRN">"' and '"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2425
+ <span class='line'>2418</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">parents</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">
2426
+ <span class='line'>2419</span> </span><span class="WHIT"> </span><span class="STRN">"'."</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2427
+ <span class='line'>2420</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [glider, point]"</span><span class="WHIT">
2428
+ <span class='line'>2421</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2429
+ <span class='line'>2422</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2430
+ <span class='line'>2423</span>
2431
+ <span class='line'>2424</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"tracecurve"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2432
+ <span class='line'>2425</span> </span><span class="WHIT"> </span><span class="NAME">attr.curvetype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"plot"</span><span class="PUNC">;</span><span class="WHIT">
2433
+ <span class='line'>2426</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</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="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2434
+ <span class='line'>2427</span>
2435
+ <span class='line'>2428</span> </span><span class="WHIT"> </span><span class="COMM">/**
2436
+ <span class='line'>2429</span> * @ignore
2437
+ <span class='line'>2430</span> */</span><span class="WHIT">
2438
+ <span class='line'>2431</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2439
+ <span class='line'>2432</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">
2440
+ <span class='line'>2433</span> </span><span class="WHIT"> </span><span class="NAME">step</span><span class="PUNC">,</span><span class="WHIT">
2441
+ <span class='line'>2434</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT">
2442
+ <span class='line'>2435</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT">
2443
+ <span class='line'>2436</span> </span><span class="WHIT"> </span><span class="NAME">pEl</span><span class="PUNC">,</span><span class="WHIT">
2444
+ <span class='line'>2437</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT">
2445
+ <span class='line'>2438</span> </span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT">
2446
+ <span class='line'>2439</span> </span><span class="WHIT"> </span><span class="NAME">from</span><span class="PUNC">,</span><span class="WHIT">
2447
+ <span class='line'>2440</span> </span><span class="WHIT"> </span><span class="NAME">savetrace</span><span class="PUNC">,</span><span class="WHIT">
2448
+ <span class='line'>2441</span> </span><span class="WHIT"> </span><span class="NAME">le</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.numberpoints</span><span class="PUNC">,</span><span class="WHIT">
2449
+ <span class='line'>2442</span> </span><span class="WHIT"> </span><span class="NAME">savePos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">glider.position</span><span class="PUNC">,</span><span class="WHIT">
2450
+ <span class='line'>2443</span> </span><span class="WHIT"> </span><span class="NAME">slideObj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">glider.slideObject</span><span class="PUNC">,</span><span class="WHIT">
2451
+ <span class='line'>2444</span> </span><span class="WHIT"> </span><span class="NAME">mi</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">slideObj.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2452
+ <span class='line'>2445</span> </span><span class="WHIT"> </span><span class="NAME">ma</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">slideObj.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2453
2453
  <span class='line'>2446</span>
2454
- <span class='line'>2447</span> </span><span class="WHIT"> </span><span class="COMM">/*
2455
- <span class='line'>2448</span> * For gliders on circles and lines a closed curve is computed.
2456
- <span class='line'>2449</span> * For gliders on curves the curve is not closed.
2457
- <span class='line'>2450</span> */</span><span class="WHIT">
2458
- <span class='line'>2451</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">slideObj.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">
2459
- <span class='line'>2452</span> </span><span class="WHIT"> </span><span class="NAME">le</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
2460
- <span class='line'>2453</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2461
- <span class='line'>2454</span>
2462
- <span class='line'>2455</span> </span><span class="WHIT"> </span><span class="COMM">// Loop over all steps</span><span class="WHIT">
2463
- <span class='line'>2456</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">le</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">
2464
- <span class='line'>2457</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">mi</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">step</span><span class="PUNC">;</span><span class="WHIT">
2465
- <span class='line'>2458</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">slideObj.X</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">slideObj.Z</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2466
- <span class='line'>2459</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">slideObj.Y</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">slideObj.Z</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2467
- <span class='line'>2460</span>
2468
- <span class='line'>2461</span> </span><span class="WHIT"> </span><span class="COMM">// Position the glider</span><span class="WHIT">
2469
- <span class='line'>2462</span> </span><span class="WHIT"> </span><span class="NAME">glider.setPositionDirectly</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">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2470
- <span class='line'>2463</span> </span><span class="WHIT"> </span><span class="NAME">from</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">
2471
- <span class='line'>2464</span>
2472
- <span class='line'>2465</span> </span><span class="WHIT"> </span><span class="COMM">// Update all elements from the glider up to the trace element</span><span class="WHIT">
2473
- <span class='line'>2466</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">this.board.objects</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2474
- <span class='line'>2467</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.objects.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2475
- <span class='line'>2468</span> </span><span class="WHIT"> </span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board.objects</span><span class="PUNC">[</span><span class="NAME">el</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2454
+ <span class='line'>2447</span> </span><span class="WHIT"> </span><span class="COMM">// set step width</span><span class="WHIT">
2455
+ <span class='line'>2448</span> </span><span class="WHIT"> </span><span class="NAME">step</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ma</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">mi</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">le</span><span class="PUNC">;</span><span class="WHIT">
2456
+ <span class='line'>2449</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</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">
2457
+ <span class='line'>2450</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</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">
2458
+ <span class='line'>2451</span>
2459
+ <span class='line'>2452</span> </span><span class="WHIT"> </span><span class="COMM">/*
2460
+ <span class='line'>2453</span> * For gliders on circles and lines a closed curve is computed.
2461
+ <span class='line'>2454</span> * For gliders on curves the curve is not closed.
2462
+ <span class='line'>2455</span> */</span><span class="WHIT">
2463
+ <span class='line'>2456</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">slideObj.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">
2464
+ <span class='line'>2457</span> </span><span class="WHIT"> </span><span class="NAME">le</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
2465
+ <span class='line'>2458</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2466
+ <span class='line'>2459</span>
2467
+ <span class='line'>2460</span> </span><span class="WHIT"> </span><span class="COMM">// Loop over all steps</span><span class="WHIT">
2468
+ <span class='line'>2461</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">le</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">
2469
+ <span class='line'>2462</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">mi</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">step</span><span class="PUNC">;</span><span class="WHIT">
2470
+ <span class='line'>2463</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">slideObj.X</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">slideObj.Z</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2471
+ <span class='line'>2464</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">slideObj.Y</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">slideObj.Z</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2472
+ <span class='line'>2465</span>
2473
+ <span class='line'>2466</span> </span><span class="WHIT"> </span><span class="COMM">// Position the glider</span><span class="WHIT">
2474
+ <span class='line'>2467</span> </span><span class="WHIT"> </span><span class="NAME">glider.setPositionDirectly</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">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2475
+ <span class='line'>2468</span> </span><span class="WHIT"> </span><span class="NAME">from</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">
2476
2476
  <span class='line'>2469</span>
2477
- <span class='line'>2470</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">glider</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2478
- <span class='line'>2471</span> </span><span class="WHIT"> </span><span class="NAME">from</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">
2479
- <span class='line'>2472</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2480
- <span class='line'>2473</span>
2481
- <span class='line'>2474</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">from</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">pEl.needsRegularUpdate</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2482
- <span class='line'>2475</span> </span><span class="WHIT"> </span><span class="COMM">// Save the trace mode of the element</span><span class="WHIT">
2483
- <span class='line'>2476</span> </span><span class="WHIT"> </span><span class="NAME">savetrace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</span><span class="PUNC">;</span><span class="WHIT">
2484
- <span class='line'>2477</span> </span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</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">
2485
- <span class='line'>2478</span> </span><span class="WHIT"> </span><span class="NAME">pEl.needsUpdate</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">
2486
- <span class='line'>2479</span> </span><span class="WHIT"> </span><span class="NAME">pEl.update</span><span class="PUNC">(</span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2487
- <span class='line'>2480</span>
2488
- <span class='line'>2481</span> </span><span class="WHIT"> </span><span class="COMM">// Restore the trace mode</span><span class="WHIT">
2489
- <span class='line'>2482</span> </span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">savetrace</span><span class="PUNC">;</span><span class="WHIT">
2490
- <span class='line'>2483</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">tracepoint</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2491
- <span class='line'>2484</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
2492
- <span class='line'>2485</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2493
- <span class='line'>2486</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2494
- <span class='line'>2487</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2495
- <span class='line'>2488</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2496
- <span class='line'>2489</span>
2497
- <span class='line'>2490</span> </span><span class="WHIT"> </span><span class="COMM">// Store the position of the trace point</span><span class="WHIT">
2498
- <span class='line'>2491</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</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"> </span><span class="NAME">tracepoint.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2499
- <span class='line'>2492</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</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"> </span><span class="NAME">tracepoint.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2500
- <span class='line'>2493</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2477
+ <span class='line'>2470</span> </span><span class="WHIT"> </span><span class="COMM">// Update all elements from the glider up to the trace element</span><span class="WHIT">
2478
+ <span class='line'>2471</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">this.board.objects</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2479
+ <span class='line'>2472</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.objects.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2480
+ <span class='line'>2473</span> </span><span class="WHIT"> </span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board.objects</span><span class="PUNC">[</span><span class="NAME">el</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2481
+ <span class='line'>2474</span>
2482
+ <span class='line'>2475</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">glider</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2483
+ <span class='line'>2476</span> </span><span class="WHIT"> </span><span class="NAME">from</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">
2484
+ <span class='line'>2477</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2485
+ <span class='line'>2478</span>
2486
+ <span class='line'>2479</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">from</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">pEl.needsRegularUpdate</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2487
+ <span class='line'>2480</span> </span><span class="WHIT"> </span><span class="COMM">// Save the trace mode of the element</span><span class="WHIT">
2488
+ <span class='line'>2481</span> </span><span class="WHIT"> </span><span class="NAME">savetrace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</span><span class="PUNC">;</span><span class="WHIT">
2489
+ <span class='line'>2482</span> </span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</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">
2490
+ <span class='line'>2483</span> </span><span class="WHIT"> </span><span class="NAME">pEl.needsUpdate</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">
2491
+ <span class='line'>2484</span> </span><span class="WHIT"> </span><span class="NAME">pEl.update</span><span class="PUNC">(</span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2492
+ <span class='line'>2485</span>
2493
+ <span class='line'>2486</span> </span><span class="WHIT"> </span><span class="COMM">// Restore the trace mode</span><span class="WHIT">
2494
+ <span class='line'>2487</span> </span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">savetrace</span><span class="PUNC">;</span><span class="WHIT">
2495
+ <span class='line'>2488</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">tracepoint</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2496
+ <span class='line'>2489</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
2497
+ <span class='line'>2490</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2498
+ <span class='line'>2491</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2499
+ <span class='line'>2492</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2500
+ <span class='line'>2493</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2501
2501
  <span class='line'>2494</span>
2502
- <span class='line'>2495</span> </span><span class="WHIT"> </span><span class="COMM">// Restore the original position of the glider</span><span class="WHIT">
2503
- <span class='line'>2496</span> </span><span class="WHIT"> </span><span class="NAME">glider.position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">savePos</span><span class="PUNC">;</span><span class="WHIT">
2504
- <span class='line'>2497</span> </span><span class="WHIT"> </span><span class="NAME">from</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">
2505
- <span class='line'>2498</span>
2506
- <span class='line'>2499</span> </span><span class="WHIT"> </span><span class="COMM">// Update all elements from the glider to the trace point</span><span class="WHIT">
2507
- <span class='line'>2500</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">this.board.objects</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2508
- <span class='line'>2501</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.objects.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2509
- <span class='line'>2502</span> </span><span class="WHIT"> </span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board.objects</span><span class="PUNC">[</span><span class="NAME">el</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2510
- <span class='line'>2503</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">glider</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2511
- <span class='line'>2504</span> </span><span class="WHIT"> </span><span class="NAME">from</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">
2512
- <span class='line'>2505</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2513
- <span class='line'>2506</span>
2514
- <span class='line'>2507</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">from</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">pEl.needsRegularUpdate</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2515
- <span class='line'>2508</span> </span><span class="WHIT"> </span><span class="NAME">savetrace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</span><span class="PUNC">;</span><span class="WHIT">
2516
- <span class='line'>2509</span> </span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</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">
2517
- <span class='line'>2510</span> </span><span class="WHIT"> </span><span class="NAME">pEl.needsUpdate</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">
2518
- <span class='line'>2511</span> </span><span class="WHIT"> </span><span class="NAME">pEl.update</span><span class="PUNC">(</span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2519
- <span class='line'>2512</span> </span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">savetrace</span><span class="PUNC">;</span><span class="WHIT">
2520
- <span class='line'>2513</span>
2521
- <span class='line'>2514</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">tracepoint</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2522
- <span class='line'>2515</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
2523
- <span class='line'>2516</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2524
- <span class='line'>2517</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2525
- <span class='line'>2518</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2526
- <span class='line'>2519</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2527
- <span class='line'>2520</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2528
- <span class='line'>2521</span>
2529
- <span class='line'>2522</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2530
- <span class='line'>2523</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2531
- <span class='line'>2524</span>
2532
- <span class='line'>2525</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"tracecurve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createTracecurve</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2502
+ <span class='line'>2495</span> </span><span class="WHIT"> </span><span class="COMM">// Store the position of the trace point</span><span class="WHIT">
2503
+ <span class='line'>2496</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</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"> </span><span class="NAME">tracepoint.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2504
+ <span class='line'>2497</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</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"> </span><span class="NAME">tracepoint.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2505
+ <span class='line'>2498</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2506
+ <span class='line'>2499</span>
2507
+ <span class='line'>2500</span> </span><span class="WHIT"> </span><span class="COMM">// Restore the original position of the glider</span><span class="WHIT">
2508
+ <span class='line'>2501</span> </span><span class="WHIT"> </span><span class="NAME">glider.position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">savePos</span><span class="PUNC">;</span><span class="WHIT">
2509
+ <span class='line'>2502</span> </span><span class="WHIT"> </span><span class="NAME">from</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">
2510
+ <span class='line'>2503</span>
2511
+ <span class='line'>2504</span> </span><span class="WHIT"> </span><span class="COMM">// Update all elements from the glider to the trace point</span><span class="WHIT">
2512
+ <span class='line'>2505</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">this.board.objects</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2513
+ <span class='line'>2506</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.objects.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2514
+ <span class='line'>2507</span> </span><span class="WHIT"> </span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board.objects</span><span class="PUNC">[</span><span class="NAME">el</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2515
+ <span class='line'>2508</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">glider</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2516
+ <span class='line'>2509</span> </span><span class="WHIT"> </span><span class="NAME">from</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">
2517
+ <span class='line'>2510</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2518
+ <span class='line'>2511</span>
2519
+ <span class='line'>2512</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">from</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">pEl.needsRegularUpdate</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2520
+ <span class='line'>2513</span> </span><span class="WHIT"> </span><span class="NAME">savetrace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</span><span class="PUNC">;</span><span class="WHIT">
2521
+ <span class='line'>2514</span> </span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</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">
2522
+ <span class='line'>2515</span> </span><span class="WHIT"> </span><span class="NAME">pEl.needsUpdate</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">
2523
+ <span class='line'>2516</span> </span><span class="WHIT"> </span><span class="NAME">pEl.update</span><span class="PUNC">(</span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2524
+ <span class='line'>2517</span> </span><span class="WHIT"> </span><span class="NAME">pEl.visProp.trace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">savetrace</span><span class="PUNC">;</span><span class="WHIT">
2525
+ <span class='line'>2518</span>
2526
+ <span class='line'>2519</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pEl</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">tracepoint</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2527
+ <span class='line'>2520</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
2528
+ <span class='line'>2521</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2529
+ <span class='line'>2522</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2530
+ <span class='line'>2523</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2531
+ <span class='line'>2524</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2532
+ <span class='line'>2525</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2533
2533
  <span class='line'>2526</span>
2534
- <span class='line'>2527</span> </span><span class="COMM">/**
2535
- <span class='line'>2528</span> * @class This element is used to provide a constructor for step function, which is realized as a special curve.
2536
- <span class='line'>2529</span> *
2537
- <span class='line'>2530</span> * In case the data points should be updated after creation time, they can be accessed by curve.xterm and curve.yterm.
2538
- <span class='line'>2531</span> * @pseudo
2539
- <span class='line'>2532</span> * @description
2540
- <span class='line'>2533</span> * @name Stepfunction
2541
- <span class='line'>2534</span> * @augments JXG.Curve
2542
- <span class='line'>2535</span> * @constructor
2543
- <span class='line'>2536</span> * @type JXG.Curve
2544
- <span class='line'>2537</span> * @param {Array,Array|Function} Parent elements of Stepfunction are two arrays containing the coordinates.
2545
- <span class='line'>2538</span> * @see JXG.Curve
2546
- <span class='line'>2539</span> * @example
2547
- <span class='line'>2540</span> * // Create step function.
2548
- <span class='line'>2541</span> var curve = board.create('stepfunction', [[0,1,2,3,4,5], [1,3,0,2,2,1]]);
2549
- <span class='line'>2542</span>
2550
- <span class='line'>2543</span> * &lt;/pre>&lt;div class="jxgbox" id="JXG32342ec9-ad17-4339-8a97-ff23dc34f51a" style="width: 300px; height: 300px;">&lt;/div>
2551
- <span class='line'>2544</span> * &lt;script type="text/javascript">
2552
- <span class='line'>2545</span> * var sf1_board = JXG.JSXGraph.initBoard('JXG32342ec9-ad17-4339-8a97-ff23dc34f51a', {boundingbox: [-1, 5, 6, -2], axis: true, showcopyright: false, shownavigation: false});
2553
- <span class='line'>2546</span> * var curve = sf1_board.create('stepfunction', [[0,1,2,3,4,5], [1,3,0,2,2,1]]);
2554
- <span class='line'>2547</span> * &lt;/script>&lt;pre>
2555
- <span class='line'>2548</span> */</span><span class="WHIT">
2556
- <span class='line'>2549</span> </span><span class="NAME">JXG.createStepfunction</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2557
- <span class='line'>2550</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">;</span><span class="WHIT">
2558
- <span class='line'>2551</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2559
- <span class='line'>2552</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="WHIT">
2560
- <span class='line'>2553</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create step function with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2561
- <span class='line'>2554</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [array, array|function]"</span><span class="WHIT">
2562
- <span class='line'>2555</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2563
- <span class='line'>2556</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2564
- <span class='line'>2557</span>
2565
- <span class='line'>2558</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"stepfunction"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2566
- <span class='line'>2559</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2567
- <span class='line'>2560</span> </span><span class="WHIT"> </span><span class="COMM">/**
2568
- <span class='line'>2561</span> * @ignore
2569
- <span class='line'>2562</span> */</span><span class="WHIT">
2570
- <span class='line'>2563</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2571
- <span class='line'>2564</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">
2572
- <span class='line'>2565</span> </span><span class="WHIT"> </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">
2573
- <span class='line'>2566</span> </span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.xterm.length</span><span class="PUNC">;</span><span class="WHIT">
2574
- <span class='line'>2567</span>
2575
- <span class='line'>2568</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</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">
2576
- <span class='line'>2569</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</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">
2577
- <span class='line'>2570</span>
2578
- <span class='line'>2571</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">len</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">
2579
- <span class='line'>2572</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
2580
- <span class='line'>2573</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2581
- <span class='line'>2574</span>
2582
- <span class='line'>2575</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.xterm</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2583
- <span class='line'>2576</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.yterm</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2584
- <span class='line'>2577</span> </span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">j</span><span class="PUNC">;</span><span class="WHIT">
2585
- <span class='line'>2578</span>
2586
- <span class='line'>2579</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">1</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">len</span><span class="PUNC">;</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">
2587
- <span class='line'>2580</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.xterm</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2588
- <span class='line'>2581</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.dataY</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">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2589
- <span class='line'>2582</span> </span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">j</span><span class="PUNC">;</span><span class="WHIT">
2590
- <span class='line'>2583</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.xterm</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2591
- <span class='line'>2584</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.yterm</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2592
- <span class='line'>2585</span> </span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">j</span><span class="PUNC">;</span><span class="WHIT">
2593
- <span class='line'>2586</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2594
- <span class='line'>2587</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2595
- <span class='line'>2588</span>
2596
- <span class='line'>2589</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2597
- <span class='line'>2590</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2598
- <span class='line'>2591</span>
2599
- <span class='line'>2592</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"stepfunction"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createStepfunction</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2534
+ <span class='line'>2527</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2535
+ <span class='line'>2528</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2536
+ <span class='line'>2529</span>
2537
+ <span class='line'>2530</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"tracecurve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createTracecurve</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2538
+ <span class='line'>2531</span>
2539
+ <span class='line'>2532</span> </span><span class="COMM">/**
2540
+ <span class='line'>2533</span> * @class This element is used to provide a constructor for step function, which is realized as a special curve.
2541
+ <span class='line'>2534</span> *
2542
+ <span class='line'>2535</span> * In case the data points should be updated after creation time, they can be accessed by curve.xterm and curve.yterm.
2543
+ <span class='line'>2536</span> * @pseudo
2544
+ <span class='line'>2537</span> * @description
2545
+ <span class='line'>2538</span> * @name Stepfunction
2546
+ <span class='line'>2539</span> * @augments JXG.Curve
2547
+ <span class='line'>2540</span> * @constructor
2548
+ <span class='line'>2541</span> * @type JXG.Curve
2549
+ <span class='line'>2542</span> * @param {Array,Array|Function} Parent elements of Stepfunction are two arrays containing the coordinates.
2550
+ <span class='line'>2543</span> * @see JXG.Curve
2551
+ <span class='line'>2544</span> * @example
2552
+ <span class='line'>2545</span> * // Create step function.
2553
+ <span class='line'>2546</span> var curve = board.create('stepfunction', [[0,1,2,3,4,5], [1,3,0,2,2,1]]);
2554
+ <span class='line'>2547</span>
2555
+ <span class='line'>2548</span> * &lt;/pre>&lt;div class="jxgbox" id="JXG32342ec9-ad17-4339-8a97-ff23dc34f51a" style="width: 300px; height: 300px;">&lt;/div>
2556
+ <span class='line'>2549</span> * &lt;script type="text/javascript">
2557
+ <span class='line'>2550</span> * var sf1_board = JXG.JSXGraph.initBoard('JXG32342ec9-ad17-4339-8a97-ff23dc34f51a', {boundingbox: [-1, 5, 6, -2], axis: true, showcopyright: false, shownavigation: false});
2558
+ <span class='line'>2551</span> * var curve = sf1_board.create('stepfunction', [[0,1,2,3,4,5], [1,3,0,2,2,1]]);
2559
+ <span class='line'>2552</span> * &lt;/script>&lt;pre>
2560
+ <span class='line'>2553</span> */</span><span class="WHIT">
2561
+ <span class='line'>2554</span> </span><span class="NAME">JXG.createStepfunction</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2562
+ <span class='line'>2555</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">;</span><span class="WHIT">
2563
+ <span class='line'>2556</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2564
+ <span class='line'>2557</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="WHIT">
2565
+ <span class='line'>2558</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create step function with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2566
+ <span class='line'>2559</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [array, array|function]"</span><span class="WHIT">
2567
+ <span class='line'>2560</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2568
+ <span class='line'>2561</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2569
+ <span class='line'>2562</span>
2570
+ <span class='line'>2563</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"stepfunction"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2571
+ <span class='line'>2564</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2572
+ <span class='line'>2565</span> </span><span class="WHIT"> </span><span class="COMM">/**
2573
+ <span class='line'>2566</span> * @ignore
2574
+ <span class='line'>2567</span> */</span><span class="WHIT">
2575
+ <span class='line'>2568</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2576
+ <span class='line'>2569</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">
2577
+ <span class='line'>2570</span> </span><span class="WHIT"> </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">
2578
+ <span class='line'>2571</span> </span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.xterm.length</span><span class="PUNC">;</span><span class="WHIT">
2579
+ <span class='line'>2572</span>
2580
+ <span class='line'>2573</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</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">
2581
+ <span class='line'>2574</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</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">
2582
+ <span class='line'>2575</span>
2583
+ <span class='line'>2576</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">len</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">
2584
+ <span class='line'>2577</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
2585
+ <span class='line'>2578</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2586
+ <span class='line'>2579</span>
2587
+ <span class='line'>2580</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.xterm</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2588
+ <span class='line'>2581</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.yterm</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2589
+ <span class='line'>2582</span> </span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">j</span><span class="PUNC">;</span><span class="WHIT">
2590
+ <span class='line'>2583</span>
2591
+ <span class='line'>2584</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">1</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">len</span><span class="PUNC">;</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">
2592
+ <span class='line'>2585</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.xterm</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2593
+ <span class='line'>2586</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.dataY</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">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2594
+ <span class='line'>2587</span> </span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">j</span><span class="PUNC">;</span><span class="WHIT">
2595
+ <span class='line'>2588</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.xterm</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2596
+ <span class='line'>2589</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.yterm</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2597
+ <span class='line'>2590</span> </span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">j</span><span class="PUNC">;</span><span class="WHIT">
2598
+ <span class='line'>2591</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2599
+ <span class='line'>2592</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2600
2600
  <span class='line'>2593</span>
2601
- <span class='line'>2594</span> </span><span class="COMM">/**
2602
- <span class='line'>2595</span> * @class This element is used to provide a constructor for the graph showing
2603
- <span class='line'>2596</span> * the (numerical) derivative of a given curve.
2604
- <span class='line'>2597</span> *
2605
- <span class='line'>2598</span> * @pseudo
2606
- <span class='line'>2599</span> * @description
2607
- <span class='line'>2600</span> * @name Derivative
2608
- <span class='line'>2601</span> * @augments JXG.Curve
2609
- <span class='line'>2602</span> * @constructor
2610
- <span class='line'>2603</span> * @type JXG.Curve
2611
- <span class='line'>2604</span> * @param {JXG.Curve} Parent Curve for which the derivative is generated.
2612
- <span class='line'>2605</span> * @see JXG.Curve
2613
- <span class='line'>2606</span> * @example
2614
- <span class='line'>2607</span> * var cu = board.create('cardinalspline', [[[-3,0], [-1,2], [0,1], [2,0], [3,1]], 0.5, 'centripetal'], {createPoints: false});
2615
- <span class='line'>2608</span> * var d = board.create('derivative', [cu], {dash: 2});
2616
- <span class='line'>2609</span> *
2617
- <span class='line'>2610</span> * &lt;/pre>&lt;div id="JXGb9600738-1656-11e8-8184-901b0e1b8723" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2618
- <span class='line'>2611</span> * &lt;script type="text/javascript">
2619
- <span class='line'>2612</span> * (function() {
2620
- <span class='line'>2613</span> * var board = JXG.JSXGraph.initBoard('JXGb9600738-1656-11e8-8184-901b0e1b8723',
2621
- <span class='line'>2614</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2622
- <span class='line'>2615</span> * var cu = board.create('cardinalspline', [[[-3,0], [-1,2], [0,1], [2,0], [3,1]], 0.5, 'centripetal'], {createPoints: false});
2623
- <span class='line'>2616</span> * var d = board.create('derivative', [cu], {dash: 2});
2624
- <span class='line'>2617</span> *
2625
- <span class='line'>2618</span> * })();
2626
- <span class='line'>2619</span> *
2627
- <span class='line'>2620</span> * &lt;/script>&lt;pre>
2628
- <span class='line'>2621</span> *
2629
- <span class='line'>2622</span> */</span><span class="WHIT">
2630
- <span class='line'>2623</span> </span><span class="NAME">JXG.createDerivative</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2631
- <span class='line'>2624</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">curve</span><span class="PUNC">,</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">attr</span><span class="PUNC">;</span><span class="WHIT">
2632
- <span class='line'>2625</span>
2633
- <span class='line'>2626</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</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">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">class</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">
2634
- <span class='line'>2627</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="WHIT">
2635
- <span class='line'>2628</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create derivative curve with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2636
- <span class='line'>2629</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [curve]"</span><span class="WHIT">
2637
- <span class='line'>2630</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2638
- <span class='line'>2631</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2639
- <span class='line'>2632</span>
2640
- <span class='line'>2633</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"curve"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2641
- <span class='line'>2634</span>
2642
- <span class='line'>2635</span> </span><span class="WHIT"> </span><span class="NAME">curve</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2643
- <span class='line'>2636</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">Numerics.D</span><span class="PUNC">(</span><span class="NAME">curve.X</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2644
- <span class='line'>2637</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">Numerics.D</span><span class="PUNC">(</span><span class="NAME">curve.Y</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2645
- <span class='line'>2638</span>
2646
- <span class='line'>2639</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="WHIT">
2647
- <span class='line'>2640</span> </span><span class="WHIT"> </span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT">
2648
- <span class='line'>2641</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2649
- <span class='line'>2642</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2650
- <span class='line'>2643</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">curve.X</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2651
- <span class='line'>2644</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2652
- <span class='line'>2645</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2653
- <span class='line'>2646</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">dy</span><span class="PUNC">(</span><span class="NAME">t</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="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2654
- <span class='line'>2647</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2655
- <span class='line'>2648</span> </span><span class="WHIT"> </span><span class="NAME">curve.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2656
- <span class='line'>2649</span> </span><span class="WHIT"> </span><span class="NAME">curve.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
2657
- <span class='line'>2650</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2658
- <span class='line'>2651</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT">
2659
- <span class='line'>2652</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2660
- <span class='line'>2653</span>
2661
- <span class='line'>2654</span> </span><span class="WHIT"> </span><span class="NAME">c.setParents</span><span class="PUNC">(</span><span class="NAME">curve</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2662
- <span class='line'>2655</span>
2663
- <span class='line'>2656</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2664
- <span class='line'>2657</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2601
+ <span class='line'>2594</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2602
+ <span class='line'>2595</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2603
+ <span class='line'>2596</span>
2604
+ <span class='line'>2597</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"stepfunction"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createStepfunction</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2605
+ <span class='line'>2598</span>
2606
+ <span class='line'>2599</span> </span><span class="COMM">/**
2607
+ <span class='line'>2600</span> * @class This element is used to provide a constructor for the graph showing
2608
+ <span class='line'>2601</span> * the (numerical) derivative of a given curve.
2609
+ <span class='line'>2602</span> *
2610
+ <span class='line'>2603</span> * @pseudo
2611
+ <span class='line'>2604</span> * @description
2612
+ <span class='line'>2605</span> * @name Derivative
2613
+ <span class='line'>2606</span> * @augments JXG.Curve
2614
+ <span class='line'>2607</span> * @constructor
2615
+ <span class='line'>2608</span> * @type JXG.Curve
2616
+ <span class='line'>2609</span> * @param {JXG.Curve} Parent Curve for which the derivative is generated.
2617
+ <span class='line'>2610</span> * @see JXG.Curve
2618
+ <span class='line'>2611</span> * @example
2619
+ <span class='line'>2612</span> * var cu = board.create('cardinalspline', [[[-3,0], [-1,2], [0,1], [2,0], [3,1]], 0.5, 'centripetal'], {createPoints: false});
2620
+ <span class='line'>2613</span> * var d = board.create('derivative', [cu], {dash: 2});
2621
+ <span class='line'>2614</span> *
2622
+ <span class='line'>2615</span> * &lt;/pre>&lt;div id="JXGb9600738-1656-11e8-8184-901b0e1b8723" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2623
+ <span class='line'>2616</span> * &lt;script type="text/javascript">
2624
+ <span class='line'>2617</span> * (function() {
2625
+ <span class='line'>2618</span> * var board = JXG.JSXGraph.initBoard('JXGb9600738-1656-11e8-8184-901b0e1b8723',
2626
+ <span class='line'>2619</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2627
+ <span class='line'>2620</span> * var cu = board.create('cardinalspline', [[[-3,0], [-1,2], [0,1], [2,0], [3,1]], 0.5, 'centripetal'], {createPoints: false});
2628
+ <span class='line'>2621</span> * var d = board.create('derivative', [cu], {dash: 2});
2629
+ <span class='line'>2622</span> *
2630
+ <span class='line'>2623</span> * })();
2631
+ <span class='line'>2624</span> *
2632
+ <span class='line'>2625</span> * &lt;/script>&lt;pre>
2633
+ <span class='line'>2626</span> *
2634
+ <span class='line'>2627</span> */</span><span class="WHIT">
2635
+ <span class='line'>2628</span> </span><span class="NAME">JXG.createDerivative</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2636
+ <span class='line'>2629</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">curve</span><span class="PUNC">,</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">attr</span><span class="PUNC">;</span><span class="WHIT">
2637
+ <span class='line'>2630</span>
2638
+ <span class='line'>2631</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</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">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">class</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">
2639
+ <span class='line'>2632</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="WHIT">
2640
+ <span class='line'>2633</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create derivative curve with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2641
+ <span class='line'>2634</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [curve]"</span><span class="WHIT">
2642
+ <span class='line'>2635</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2643
+ <span class='line'>2636</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2644
+ <span class='line'>2637</span>
2645
+ <span class='line'>2638</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"curve"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2646
+ <span class='line'>2639</span>
2647
+ <span class='line'>2640</span> </span><span class="WHIT"> </span><span class="NAME">curve</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2648
+ <span class='line'>2641</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">Numerics.D</span><span class="PUNC">(</span><span class="NAME">curve.X</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2649
+ <span class='line'>2642</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">Numerics.D</span><span class="PUNC">(</span><span class="NAME">curve.Y</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2650
+ <span class='line'>2643</span>
2651
+ <span class='line'>2644</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="WHIT">
2652
+ <span class='line'>2645</span> </span><span class="WHIT"> </span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT">
2653
+ <span class='line'>2646</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2654
+ <span class='line'>2647</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2655
+ <span class='line'>2648</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">curve.X</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2656
+ <span class='line'>2649</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2657
+ <span class='line'>2650</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2658
+ <span class='line'>2651</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">dy</span><span class="PUNC">(</span><span class="NAME">t</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="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2659
+ <span class='line'>2652</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2660
+ <span class='line'>2653</span> </span><span class="WHIT"> </span><span class="NAME">curve.minX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2661
+ <span class='line'>2654</span> </span><span class="WHIT"> </span><span class="NAME">curve.maxX</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
2662
+ <span class='line'>2655</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2663
+ <span class='line'>2656</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT">
2664
+ <span class='line'>2657</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2665
2665
  <span class='line'>2658</span>
2666
- <span class='line'>2659</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"derivative"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createDerivative</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2666
+ <span class='line'>2659</span> </span><span class="WHIT"> </span><span class="NAME">c.setParents</span><span class="PUNC">(</span><span class="NAME">curve</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2667
2667
  <span class='line'>2660</span>
2668
- <span class='line'>2661</span> </span><span class="COMM">/**
2669
- <span class='line'>2662</span> * @class Intersection of two closed path elements. The elements may be of type curve, circle, polygon, inequality.
2670
- <span class='line'>2663</span> * If one element is a curve, it has to be closed.
2671
- <span class='line'>2664</span> * The resulting element is of type curve.
2672
- <span class='line'>2665</span> * @pseudo
2673
- <span class='line'>2666</span> * @description
2674
- <span class='line'>2667</span> * @name CurveIntersection
2675
- <span class='line'>2668</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve1 First element which is intersected
2676
- <span class='line'>2669</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve2 Second element which is intersected
2677
- <span class='line'>2670</span> * @augments JXG.Curve
2678
- <span class='line'>2671</span> * @constructor
2679
- <span class='line'>2672</span> * @type JXG.Curve
2680
- <span class='line'>2673</span> *
2681
- <span class='line'>2674</span> * @example
2682
- <span class='line'>2675</span> * var f = board.create('functiongraph', ['cos(x)']);
2683
- <span class='line'>2676</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2684
- <span class='line'>2677</span> * var circ = board.create('circle', [[0,0], 4]);
2685
- <span class='line'>2678</span> * var clip = board.create('curveintersection', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2686
- <span class='line'>2679</span> *
2687
- <span class='line'>2680</span> * &lt;/pre>&lt;div id="JXGe2948257-8835-4276-9164-8acccb48e8d4" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2688
- <span class='line'>2681</span> * &lt;script type="text/javascript">
2689
- <span class='line'>2682</span> * (function() {
2690
- <span class='line'>2683</span> * var board = JXG.JSXGraph.initBoard('JXGe2948257-8835-4276-9164-8acccb48e8d4',
2691
- <span class='line'>2684</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2692
- <span class='line'>2685</span> * var f = board.create('functiongraph', ['cos(x)']);
2693
- <span class='line'>2686</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2694
- <span class='line'>2687</span> * var circ = board.create('circle', [[0,0], 4]);
2695
- <span class='line'>2688</span> * var clip = board.create('curveintersection', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2696
- <span class='line'>2689</span> *
2697
- <span class='line'>2690</span> * })();
2698
- <span class='line'>2691</span> *
2699
- <span class='line'>2692</span> * &lt;/script>&lt;pre>
2700
- <span class='line'>2693</span> *
2701
- <span class='line'>2694</span> */</span><span class="WHIT">
2702
- <span class='line'>2695</span> </span><span class="NAME">JXG.createCurveIntersection</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2703
- <span class='line'>2696</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2704
- <span class='line'>2697</span>
2705
- <span class='line'>2698</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2706
- <span class='line'>2699</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="WHIT">
2707
- <span class='line'>2700</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create curve intersection with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2708
- <span class='line'>2701</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [array, array|function]"</span><span class="WHIT">
2709
- <span class='line'>2702</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2710
- <span class='line'>2703</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2711
- <span class='line'>2704</span>
2712
- <span class='line'>2705</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2713
- <span class='line'>2706</span> </span><span class="WHIT"> </span><span class="COMM">/**
2714
- <span class='line'>2707</span> * @ignore
2715
- <span class='line'>2708</span> */</span><span class="WHIT">
2716
- <span class='line'>2709</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2717
- <span class='line'>2710</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.Math.Clip.intersection</span><span class="PUNC">(</span><span class="NAME">parents</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">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</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">
2718
- <span class='line'>2711</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2719
- <span class='line'>2712</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2720
- <span class='line'>2713</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2721
- <span class='line'>2714</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2722
- <span class='line'>2715</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2723
- <span class='line'>2716</span>
2724
- <span class='line'>2717</span> </span><span class="COMM">/**
2725
- <span class='line'>2718</span> * @class Union of two closed path elements. The elements may be of type curve, circle, polygon, inequality.
2726
- <span class='line'>2719</span> * If one element is a curve, it has to be closed.
2727
- <span class='line'>2720</span> * The resulting element is of type curve.
2728
- <span class='line'>2721</span> * @pseudo
2729
- <span class='line'>2722</span> * @description
2730
- <span class='line'>2723</span> * @name CurveUnion
2731
- <span class='line'>2724</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve1 First element defining the union
2732
- <span class='line'>2725</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve2 Second element defining the union
2733
- <span class='line'>2726</span> * @augments JXG.Curve
2734
- <span class='line'>2727</span> * @constructor
2735
- <span class='line'>2728</span> * @type JXG.Curve
2736
- <span class='line'>2729</span> *
2737
- <span class='line'>2730</span> * @example
2738
- <span class='line'>2731</span> * var f = board.create('functiongraph', ['cos(x)']);
2739
- <span class='line'>2732</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2740
- <span class='line'>2733</span> * var circ = board.create('circle', [[0,0], 4]);
2741
- <span class='line'>2734</span> * var clip = board.create('curveunion', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2742
- <span class='line'>2735</span> *
2743
- <span class='line'>2736</span> * &lt;/pre>&lt;div id="JXGe2948257-8835-4276-9164-8acccb48e8d4" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2744
- <span class='line'>2737</span> * &lt;script type="text/javascript">
2745
- <span class='line'>2738</span> * (function() {
2746
- <span class='line'>2739</span> * var board = JXG.JSXGraph.initBoard('JXGe2948257-8835-4276-9164-8acccb48e8d4',
2747
- <span class='line'>2740</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2748
- <span class='line'>2741</span> * var f = board.create('functiongraph', ['cos(x)']);
2749
- <span class='line'>2742</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2750
- <span class='line'>2743</span> * var circ = board.create('circle', [[0,0], 4]);
2751
- <span class='line'>2744</span> * var clip = board.create('curveunion', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2752
- <span class='line'>2745</span> *
2753
- <span class='line'>2746</span> * })();
2754
- <span class='line'>2747</span> *
2755
- <span class='line'>2748</span> * &lt;/script>&lt;pre>
2756
- <span class='line'>2749</span> *
2757
- <span class='line'>2750</span> */</span><span class="WHIT">
2758
- <span class='line'>2751</span> </span><span class="NAME">JXG.createCurveUnion</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2759
- <span class='line'>2752</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2760
- <span class='line'>2753</span>
2761
- <span class='line'>2754</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2762
- <span class='line'>2755</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="WHIT">
2763
- <span class='line'>2756</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create curve union with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2764
- <span class='line'>2757</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [array, array|function]"</span><span class="WHIT">
2765
- <span class='line'>2758</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2766
- <span class='line'>2759</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2767
- <span class='line'>2760</span>
2768
- <span class='line'>2761</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2769
- <span class='line'>2762</span> </span><span class="WHIT"> </span><span class="COMM">/**
2770
- <span class='line'>2763</span> * @ignore
2771
- <span class='line'>2764</span> */</span><span class="WHIT">
2772
- <span class='line'>2765</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2773
- <span class='line'>2766</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.Math.Clip.union</span><span class="PUNC">(</span><span class="NAME">parents</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">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</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">
2774
- <span class='line'>2767</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2775
- <span class='line'>2768</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2776
- <span class='line'>2769</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2777
- <span class='line'>2770</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2778
- <span class='line'>2771</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2779
- <span class='line'>2772</span>
2780
- <span class='line'>2773</span> </span><span class="COMM">/**
2781
- <span class='line'>2774</span> * @class Difference of two closed path elements. The elements may be of type curve, circle, polygon, inequality.
2782
- <span class='line'>2775</span> * If one element is a curve, it has to be closed.
2783
- <span class='line'>2776</span> * The resulting element is of type curve.
2784
- <span class='line'>2777</span> * @pseudo
2785
- <span class='line'>2778</span> * @description
2786
- <span class='line'>2779</span> * @name CurveDifference
2787
- <span class='line'>2780</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve1 First element from which the second element is "subtracted"
2788
- <span class='line'>2781</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve2 Second element which is subtracted from the first element
2789
- <span class='line'>2782</span> * @augments JXG.Curve
2790
- <span class='line'>2783</span> * @constructor
2791
- <span class='line'>2784</span> * @type JXG.Curve
2792
- <span class='line'>2785</span> *
2793
- <span class='line'>2786</span> * @example
2794
- <span class='line'>2787</span> * var f = board.create('functiongraph', ['cos(x)']);
2795
- <span class='line'>2788</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2796
- <span class='line'>2789</span> * var circ = board.create('circle', [[0,0], 4]);
2797
- <span class='line'>2790</span> * var clip = board.create('curvedifference', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2798
- <span class='line'>2791</span> *
2799
- <span class='line'>2792</span> * &lt;/pre>&lt;div id="JXGe2948257-8835-4276-9164-8acccb48e8d4" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2800
- <span class='line'>2793</span> * &lt;script type="text/javascript">
2801
- <span class='line'>2794</span> * (function() {
2802
- <span class='line'>2795</span> * var board = JXG.JSXGraph.initBoard('JXGe2948257-8835-4276-9164-8acccb48e8d4',
2803
- <span class='line'>2796</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2804
- <span class='line'>2797</span> * var f = board.create('functiongraph', ['cos(x)']);
2805
- <span class='line'>2798</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2806
- <span class='line'>2799</span> * var circ = board.create('circle', [[0,0], 4]);
2807
- <span class='line'>2800</span> * var clip = board.create('curvedifference', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2808
- <span class='line'>2801</span> *
2809
- <span class='line'>2802</span> * })();
2810
- <span class='line'>2803</span> *
2811
- <span class='line'>2804</span> * &lt;/script>&lt;pre>
2812
- <span class='line'>2805</span> *
2813
- <span class='line'>2806</span> */</span><span class="WHIT">
2814
- <span class='line'>2807</span> </span><span class="NAME">JXG.createCurveDifference</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2815
- <span class='line'>2808</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2816
- <span class='line'>2809</span>
2817
- <span class='line'>2810</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2818
- <span class='line'>2811</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="WHIT">
2819
- <span class='line'>2812</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create curve difference with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2820
- <span class='line'>2813</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [array, array|function]"</span><span class="WHIT">
2821
- <span class='line'>2814</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2822
- <span class='line'>2815</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2823
- <span class='line'>2816</span>
2824
- <span class='line'>2817</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2825
- <span class='line'>2818</span> </span><span class="WHIT"> </span><span class="COMM">/**
2826
- <span class='line'>2819</span> * @ignore
2827
- <span class='line'>2820</span> */</span><span class="WHIT">
2828
- <span class='line'>2821</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2829
- <span class='line'>2822</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.Math.Clip.difference</span><span class="PUNC">(</span><span class="NAME">parents</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">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</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">
2830
- <span class='line'>2823</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2831
- <span class='line'>2824</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2832
- <span class='line'>2825</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2833
- <span class='line'>2826</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2834
- <span class='line'>2827</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2835
- <span class='line'>2828</span>
2836
- <span class='line'>2829</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"curvedifference"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createCurveDifference</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2837
- <span class='line'>2830</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"curveintersection"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createCurveIntersection</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2838
- <span class='line'>2831</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"curveunion"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createCurveUnion</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2839
- <span class='line'>2832</span>
2840
- <span class='line'>2833</span> </span><span class="COMM">/**
2841
- <span class='line'>2834</span> * @class Box plot curve. The direction of the box plot can be either vertical or horizontal which
2842
- <span class='line'>2835</span> * is controlled by the attribute "dir".
2843
- <span class='line'>2836</span> * @pseudo
2844
- <span class='line'>2837</span> * @description
2845
- <span class='line'>2838</span> * @name Boxplot
2846
- <span class='line'>2839</span> * @param {Array} quantiles Array conatining at least five quantiles. The elements can be of type number, function or string.
2847
- <span class='line'>2840</span> * @param {Number|Function} axis Axis position of the box plot
2848
- <span class='line'>2841</span> * @param {Number|Function} width Width of the rectangle part of the box plot. The width of the first and 4th quantile
2849
- <span class='line'>2842</span> * is relative to this width and can be controlled by the attribute "smallWidth".
2850
- <span class='line'>2843</span> * @augments JXG.Curve
2851
- <span class='line'>2844</span> * @constructor
2852
- <span class='line'>2845</span> * @type JXG.Curve
2853
- <span class='line'>2846</span> *
2854
- <span class='line'>2847</span> * @example
2855
- <span class='line'>2848</span> * var Q = [ -1, 2, 3, 3.5, 5 ];
2856
- <span class='line'>2849</span> *
2857
- <span class='line'>2850</span> * var b = board.create('boxplot', [Q, 2, 4], {strokeWidth: 3});
2668
+ <span class='line'>2661</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2669
+ <span class='line'>2662</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2670
+ <span class='line'>2663</span>
2671
+ <span class='line'>2664</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"derivative"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createDerivative</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2672
+ <span class='line'>2665</span>
2673
+ <span class='line'>2666</span> </span><span class="COMM">/**
2674
+ <span class='line'>2667</span> * @class Intersection of two closed path elements. The elements may be of type curve, circle, polygon, inequality.
2675
+ <span class='line'>2668</span> * If one element is a curve, it has to be closed.
2676
+ <span class='line'>2669</span> * The resulting element is of type curve.
2677
+ <span class='line'>2670</span> * @pseudo
2678
+ <span class='line'>2671</span> * @description
2679
+ <span class='line'>2672</span> * @name CurveIntersection
2680
+ <span class='line'>2673</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve1 First element which is intersected
2681
+ <span class='line'>2674</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve2 Second element which is intersected
2682
+ <span class='line'>2675</span> * @augments JXG.Curve
2683
+ <span class='line'>2676</span> * @constructor
2684
+ <span class='line'>2677</span> * @type JXG.Curve
2685
+ <span class='line'>2678</span> *
2686
+ <span class='line'>2679</span> * @example
2687
+ <span class='line'>2680</span> * var f = board.create('functiongraph', ['cos(x)']);
2688
+ <span class='line'>2681</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2689
+ <span class='line'>2682</span> * var circ = board.create('circle', [[0,0], 4]);
2690
+ <span class='line'>2683</span> * var clip = board.create('curveintersection', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2691
+ <span class='line'>2684</span> *
2692
+ <span class='line'>2685</span> * &lt;/pre>&lt;div id="JXGe2948257-8835-4276-9164-8acccb48e8d4" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2693
+ <span class='line'>2686</span> * &lt;script type="text/javascript">
2694
+ <span class='line'>2687</span> * (function() {
2695
+ <span class='line'>2688</span> * var board = JXG.JSXGraph.initBoard('JXGe2948257-8835-4276-9164-8acccb48e8d4',
2696
+ <span class='line'>2689</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2697
+ <span class='line'>2690</span> * var f = board.create('functiongraph', ['cos(x)']);
2698
+ <span class='line'>2691</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2699
+ <span class='line'>2692</span> * var circ = board.create('circle', [[0,0], 4]);
2700
+ <span class='line'>2693</span> * var clip = board.create('curveintersection', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2701
+ <span class='line'>2694</span> *
2702
+ <span class='line'>2695</span> * })();
2703
+ <span class='line'>2696</span> *
2704
+ <span class='line'>2697</span> * &lt;/script>&lt;pre>
2705
+ <span class='line'>2698</span> *
2706
+ <span class='line'>2699</span> */</span><span class="WHIT">
2707
+ <span class='line'>2700</span> </span><span class="NAME">JXG.createCurveIntersection</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2708
+ <span class='line'>2701</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2709
+ <span class='line'>2702</span>
2710
+ <span class='line'>2703</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2711
+ <span class='line'>2704</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="WHIT">
2712
+ <span class='line'>2705</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create curve intersection with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2713
+ <span class='line'>2706</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [array, array|function]"</span><span class="WHIT">
2714
+ <span class='line'>2707</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2715
+ <span class='line'>2708</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2716
+ <span class='line'>2709</span>
2717
+ <span class='line'>2710</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2718
+ <span class='line'>2711</span> </span><span class="WHIT"> </span><span class="COMM">/**
2719
+ <span class='line'>2712</span> * @ignore
2720
+ <span class='line'>2713</span> */</span><span class="WHIT">
2721
+ <span class='line'>2714</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2722
+ <span class='line'>2715</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.Math.Clip.intersection</span><span class="PUNC">(</span><span class="NAME">parents</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">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</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">
2723
+ <span class='line'>2716</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2724
+ <span class='line'>2717</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2725
+ <span class='line'>2718</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2726
+ <span class='line'>2719</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2727
+ <span class='line'>2720</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2728
+ <span class='line'>2721</span>
2729
+ <span class='line'>2722</span> </span><span class="COMM">/**
2730
+ <span class='line'>2723</span> * @class Union of two closed path elements. The elements may be of type curve, circle, polygon, inequality.
2731
+ <span class='line'>2724</span> * If one element is a curve, it has to be closed.
2732
+ <span class='line'>2725</span> * The resulting element is of type curve.
2733
+ <span class='line'>2726</span> * @pseudo
2734
+ <span class='line'>2727</span> * @description
2735
+ <span class='line'>2728</span> * @name CurveUnion
2736
+ <span class='line'>2729</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve1 First element defining the union
2737
+ <span class='line'>2730</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve2 Second element defining the union
2738
+ <span class='line'>2731</span> * @augments JXG.Curve
2739
+ <span class='line'>2732</span> * @constructor
2740
+ <span class='line'>2733</span> * @type JXG.Curve
2741
+ <span class='line'>2734</span> *
2742
+ <span class='line'>2735</span> * @example
2743
+ <span class='line'>2736</span> * var f = board.create('functiongraph', ['cos(x)']);
2744
+ <span class='line'>2737</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2745
+ <span class='line'>2738</span> * var circ = board.create('circle', [[0,0], 4]);
2746
+ <span class='line'>2739</span> * var clip = board.create('curveunion', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2747
+ <span class='line'>2740</span> *
2748
+ <span class='line'>2741</span> * &lt;/pre>&lt;div id="JXGe2948257-8835-4276-9164-8acccb48e8d4" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2749
+ <span class='line'>2742</span> * &lt;script type="text/javascript">
2750
+ <span class='line'>2743</span> * (function() {
2751
+ <span class='line'>2744</span> * var board = JXG.JSXGraph.initBoard('JXGe2948257-8835-4276-9164-8acccb48e8d4',
2752
+ <span class='line'>2745</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2753
+ <span class='line'>2746</span> * var f = board.create('functiongraph', ['cos(x)']);
2754
+ <span class='line'>2747</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2755
+ <span class='line'>2748</span> * var circ = board.create('circle', [[0,0], 4]);
2756
+ <span class='line'>2749</span> * var clip = board.create('curveunion', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2757
+ <span class='line'>2750</span> *
2758
+ <span class='line'>2751</span> * })();
2759
+ <span class='line'>2752</span> *
2760
+ <span class='line'>2753</span> * &lt;/script>&lt;pre>
2761
+ <span class='line'>2754</span> *
2762
+ <span class='line'>2755</span> */</span><span class="WHIT">
2763
+ <span class='line'>2756</span> </span><span class="NAME">JXG.createCurveUnion</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2764
+ <span class='line'>2757</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2765
+ <span class='line'>2758</span>
2766
+ <span class='line'>2759</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2767
+ <span class='line'>2760</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="WHIT">
2768
+ <span class='line'>2761</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create curve union with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2769
+ <span class='line'>2762</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [array, array|function]"</span><span class="WHIT">
2770
+ <span class='line'>2763</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2771
+ <span class='line'>2764</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2772
+ <span class='line'>2765</span>
2773
+ <span class='line'>2766</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2774
+ <span class='line'>2767</span> </span><span class="WHIT"> </span><span class="COMM">/**
2775
+ <span class='line'>2768</span> * @ignore
2776
+ <span class='line'>2769</span> */</span><span class="WHIT">
2777
+ <span class='line'>2770</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2778
+ <span class='line'>2771</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.Math.Clip.union</span><span class="PUNC">(</span><span class="NAME">parents</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">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</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">
2779
+ <span class='line'>2772</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2780
+ <span class='line'>2773</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2781
+ <span class='line'>2774</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2782
+ <span class='line'>2775</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2783
+ <span class='line'>2776</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2784
+ <span class='line'>2777</span>
2785
+ <span class='line'>2778</span> </span><span class="COMM">/**
2786
+ <span class='line'>2779</span> * @class Difference of two closed path elements. The elements may be of type curve, circle, polygon, inequality.
2787
+ <span class='line'>2780</span> * If one element is a curve, it has to be closed.
2788
+ <span class='line'>2781</span> * The resulting element is of type curve.
2789
+ <span class='line'>2782</span> * @pseudo
2790
+ <span class='line'>2783</span> * @description
2791
+ <span class='line'>2784</span> * @name CurveDifference
2792
+ <span class='line'>2785</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve1 First element from which the second element is "subtracted"
2793
+ <span class='line'>2786</span> * @param {JXG.Curve|JXG.Polygon|JXG.Circle} curve2 Second element which is subtracted from the first element
2794
+ <span class='line'>2787</span> * @augments JXG.Curve
2795
+ <span class='line'>2788</span> * @constructor
2796
+ <span class='line'>2789</span> * @type JXG.Curve
2797
+ <span class='line'>2790</span> *
2798
+ <span class='line'>2791</span> * @example
2799
+ <span class='line'>2792</span> * var f = board.create('functiongraph', ['cos(x)']);
2800
+ <span class='line'>2793</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2801
+ <span class='line'>2794</span> * var circ = board.create('circle', [[0,0], 4]);
2802
+ <span class='line'>2795</span> * var clip = board.create('curvedifference', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2803
+ <span class='line'>2796</span> *
2804
+ <span class='line'>2797</span> * &lt;/pre>&lt;div id="JXGe2948257-8835-4276-9164-8acccb48e8d4" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2805
+ <span class='line'>2798</span> * &lt;script type="text/javascript">
2806
+ <span class='line'>2799</span> * (function() {
2807
+ <span class='line'>2800</span> * var board = JXG.JSXGraph.initBoard('JXGe2948257-8835-4276-9164-8acccb48e8d4',
2808
+ <span class='line'>2801</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2809
+ <span class='line'>2802</span> * var f = board.create('functiongraph', ['cos(x)']);
2810
+ <span class='line'>2803</span> * var ineq = board.create('inequality', [f], {inverse: true, fillOpacity: 0.1});
2811
+ <span class='line'>2804</span> * var circ = board.create('circle', [[0,0], 4]);
2812
+ <span class='line'>2805</span> * var clip = board.create('curvedifference', [ineq, circ], {fillColor: 'yellow', fillOpacity: 0.6});
2813
+ <span class='line'>2806</span> *
2814
+ <span class='line'>2807</span> * })();
2815
+ <span class='line'>2808</span> *
2816
+ <span class='line'>2809</span> * &lt;/script>&lt;pre>
2817
+ <span class='line'>2810</span> *
2818
+ <span class='line'>2811</span> */</span><span class="WHIT">
2819
+ <span class='line'>2812</span> </span><span class="NAME">JXG.createCurveDifference</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2820
+ <span class='line'>2813</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2821
+ <span class='line'>2814</span>
2822
+ <span class='line'>2815</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2823
+ <span class='line'>2816</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="WHIT">
2824
+ <span class='line'>2817</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create curve difference with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2825
+ <span class='line'>2818</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [array, array|function]"</span><span class="WHIT">
2826
+ <span class='line'>2819</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2827
+ <span class='line'>2820</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2828
+ <span class='line'>2821</span>
2829
+ <span class='line'>2822</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2830
+ <span class='line'>2823</span> </span><span class="WHIT"> </span><span class="COMM">/**
2831
+ <span class='line'>2824</span> * @ignore
2832
+ <span class='line'>2825</span> */</span><span class="WHIT">
2833
+ <span class='line'>2826</span> </span><span class="WHIT"> </span><span class="NAME">c.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2834
+ <span class='line'>2827</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.Math.Clip.difference</span><span class="PUNC">(</span><span class="NAME">parents</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">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</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">
2835
+ <span class='line'>2828</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2836
+ <span class='line'>2829</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2837
+ <span class='line'>2830</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2838
+ <span class='line'>2831</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
2839
+ <span class='line'>2832</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2840
+ <span class='line'>2833</span>
2841
+ <span class='line'>2834</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"curvedifference"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createCurveDifference</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2842
+ <span class='line'>2835</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"curveintersection"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createCurveIntersection</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2843
+ <span class='line'>2836</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"curveunion"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createCurveUnion</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2844
+ <span class='line'>2837</span>
2845
+ <span class='line'>2838</span> </span><span class="COMM">/**
2846
+ <span class='line'>2839</span> * @class Box plot curve. The direction of the box plot can be either vertical or horizontal which
2847
+ <span class='line'>2840</span> * is controlled by the attribute "dir".
2848
+ <span class='line'>2841</span> * @pseudo
2849
+ <span class='line'>2842</span> * @description
2850
+ <span class='line'>2843</span> * @name Boxplot
2851
+ <span class='line'>2844</span> * @param {Array} quantiles Array conatining at least five quantiles. The elements can be of type number, function or string.
2852
+ <span class='line'>2845</span> * @param {Number|Function} axis Axis position of the box plot
2853
+ <span class='line'>2846</span> * @param {Number|Function} width Width of the rectangle part of the box plot. The width of the first and 4th quantile
2854
+ <span class='line'>2847</span> * is relative to this width and can be controlled by the attribute "smallWidth".
2855
+ <span class='line'>2848</span> * @augments JXG.Curve
2856
+ <span class='line'>2849</span> * @constructor
2857
+ <span class='line'>2850</span> * @type JXG.Curve
2858
2858
  <span class='line'>2851</span> *
2859
- <span class='line'>2852</span> * &lt;/pre>&lt;div id="JXG13eb23a1-a641-41a2-be11-8e03e400a947" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2860
- <span class='line'>2853</span> * &lt;script type="text/javascript">
2861
- <span class='line'>2854</span> * (function() {
2862
- <span class='line'>2855</span> * var board = JXG.JSXGraph.initBoard('JXG13eb23a1-a641-41a2-be11-8e03e400a947',
2863
- <span class='line'>2856</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2864
- <span class='line'>2857</span> * var Q = [ -1, 2, 3, 3.5, 5 ];
2865
- <span class='line'>2858</span> * var b = board.create('boxplot', [Q, 2, 4], {strokeWidth: 3});
2866
- <span class='line'>2859</span> *
2867
- <span class='line'>2860</span> * })();
2868
- <span class='line'>2861</span> *
2869
- <span class='line'>2862</span> * &lt;/script>&lt;pre>
2870
- <span class='line'>2863</span> *
2871
- <span class='line'>2864</span> * @example
2872
- <span class='line'>2865</span> * var Q = [ -1, 2, 3, 3.5, 5 ];
2873
- <span class='line'>2866</span> * var b = board.create('boxplot', [Q, 3, 4], {dir: 'horizontal', smallWidth: 0.25, color:'red'});
2874
- <span class='line'>2867</span> *
2875
- <span class='line'>2868</span> * &lt;/pre>&lt;div id="JXG0deb9cb2-84bc-470d-a6db-8be9a5694813" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2876
- <span class='line'>2869</span> * &lt;script type="text/javascript">
2877
- <span class='line'>2870</span> * (function() {
2878
- <span class='line'>2871</span> * var board = JXG.JSXGraph.initBoard('JXG0deb9cb2-84bc-470d-a6db-8be9a5694813',
2879
- <span class='line'>2872</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2880
- <span class='line'>2873</span> * var Q = [ -1, 2, 3, 3.5, 5 ];
2881
- <span class='line'>2874</span> * var b = board.create('boxplot', [Q, 3, 4], {dir: 'horizontal', smallWidth: 0.25, color:'red'});
2882
- <span class='line'>2875</span> *
2883
- <span class='line'>2876</span> * })();
2884
- <span class='line'>2877</span> *
2885
- <span class='line'>2878</span> * &lt;/script>&lt;pre>
2886
- <span class='line'>2879</span> *
2887
- <span class='line'>2880</span> * @example
2888
- <span class='line'>2881</span> * var data = [57, 57, 57, 58, 63, 66, 66, 67, 67, 68, 69, 70, 70, 70, 70, 72, 73, 75, 75, 76, 76, 78, 79, 81];
2889
- <span class='line'>2882</span> * var Q = [];
2890
- <span class='line'>2883</span> *
2891
- <span class='line'>2884</span> * Q[0] = JXG.Math.Statistics.min(data);
2892
- <span class='line'>2885</span> * Q = Q.concat(JXG.Math.Statistics.percentile(data, [25, 50, 75]));
2893
- <span class='line'>2886</span> * Q[4] = JXG.Math.Statistics.max(data);
2894
- <span class='line'>2887</span> *
2895
- <span class='line'>2888</span> * var b = board.create('boxplot', [Q, 0, 3]);
2896
- <span class='line'>2889</span> *
2897
- <span class='line'>2890</span> * &lt;/pre>&lt;div id="JXGef079e76-ae99-41e4-af29-1d07d83bf85a" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2898
- <span class='line'>2891</span> * &lt;script type="text/javascript">
2899
- <span class='line'>2892</span> * (function() {
2900
- <span class='line'>2893</span> * var board = JXG.JSXGraph.initBoard('JXGef079e76-ae99-41e4-af29-1d07d83bf85a',
2901
- <span class='line'>2894</span> * {boundingbox: [-5,90,5,30], axis: true, showcopyright: false, shownavigation: false});
2902
- <span class='line'>2895</span> * var data = [57, 57, 57, 58, 63, 66, 66, 67, 67, 68, 69, 70, 70, 70, 70, 72, 73, 75, 75, 76, 76, 78, 79, 81];
2903
- <span class='line'>2896</span> * var Q = [];
2904
- <span class='line'>2897</span> *
2905
- <span class='line'>2898</span> * Q[0] = JXG.Math.Statistics.min(data);
2906
- <span class='line'>2899</span> * Q = Q.concat(JXG.Math.Statistics.percentile(data, [25, 50, 75]));
2907
- <span class='line'>2900</span> * Q[4] = JXG.Math.Statistics.max(data);
2908
- <span class='line'>2901</span> *
2909
- <span class='line'>2902</span> * var b = board.create('boxplot', [Q, 0, 3]);
2910
- <span class='line'>2903</span> *
2911
- <span class='line'>2904</span> * })();
2912
- <span class='line'>2905</span> *
2913
- <span class='line'>2906</span> * &lt;/script>&lt;pre>
2914
- <span class='line'>2907</span> *
2915
- <span class='line'>2908</span> * @example
2916
- <span class='line'>2909</span> * var mi = board.create('glider', [0, -1, board.defaultAxes.y]);
2917
- <span class='line'>2910</span> * var ma = board.create('glider', [0, 5, board.defaultAxes.y]);
2918
- <span class='line'>2911</span> * var Q = [function() { return mi.Y(); }, 2, 3, 3.5, function() { return ma.Y(); }];
2859
+ <span class='line'>2852</span> * @example
2860
+ <span class='line'>2853</span> * var Q = [ -1, 2, 3, 3.5, 5 ];
2861
+ <span class='line'>2854</span> *
2862
+ <span class='line'>2855</span> * var b = board.create('boxplot', [Q, 2, 4], {strokeWidth: 3});
2863
+ <span class='line'>2856</span> *
2864
+ <span class='line'>2857</span> * &lt;/pre>&lt;div id="JXG13eb23a1-a641-41a2-be11-8e03e400a947" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2865
+ <span class='line'>2858</span> * &lt;script type="text/javascript">
2866
+ <span class='line'>2859</span> * (function() {
2867
+ <span class='line'>2860</span> * var board = JXG.JSXGraph.initBoard('JXG13eb23a1-a641-41a2-be11-8e03e400a947',
2868
+ <span class='line'>2861</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2869
+ <span class='line'>2862</span> * var Q = [ -1, 2, 3, 3.5, 5 ];
2870
+ <span class='line'>2863</span> * var b = board.create('boxplot', [Q, 2, 4], {strokeWidth: 3});
2871
+ <span class='line'>2864</span> *
2872
+ <span class='line'>2865</span> * })();
2873
+ <span class='line'>2866</span> *
2874
+ <span class='line'>2867</span> * &lt;/script>&lt;pre>
2875
+ <span class='line'>2868</span> *
2876
+ <span class='line'>2869</span> * @example
2877
+ <span class='line'>2870</span> * var Q = [ -1, 2, 3, 3.5, 5 ];
2878
+ <span class='line'>2871</span> * var b = board.create('boxplot', [Q, 3, 4], {dir: 'horizontal', smallWidth: 0.25, color:'red'});
2879
+ <span class='line'>2872</span> *
2880
+ <span class='line'>2873</span> * &lt;/pre>&lt;div id="JXG0deb9cb2-84bc-470d-a6db-8be9a5694813" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2881
+ <span class='line'>2874</span> * &lt;script type="text/javascript">
2882
+ <span class='line'>2875</span> * (function() {
2883
+ <span class='line'>2876</span> * var board = JXG.JSXGraph.initBoard('JXG0deb9cb2-84bc-470d-a6db-8be9a5694813',
2884
+ <span class='line'>2877</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2885
+ <span class='line'>2878</span> * var Q = [ -1, 2, 3, 3.5, 5 ];
2886
+ <span class='line'>2879</span> * var b = board.create('boxplot', [Q, 3, 4], {dir: 'horizontal', smallWidth: 0.25, color:'red'});
2887
+ <span class='line'>2880</span> *
2888
+ <span class='line'>2881</span> * })();
2889
+ <span class='line'>2882</span> *
2890
+ <span class='line'>2883</span> * &lt;/script>&lt;pre>
2891
+ <span class='line'>2884</span> *
2892
+ <span class='line'>2885</span> * @example
2893
+ <span class='line'>2886</span> * var data = [57, 57, 57, 58, 63, 66, 66, 67, 67, 68, 69, 70, 70, 70, 70, 72, 73, 75, 75, 76, 76, 78, 79, 81];
2894
+ <span class='line'>2887</span> * var Q = [];
2895
+ <span class='line'>2888</span> *
2896
+ <span class='line'>2889</span> * Q[0] = JXG.Math.Statistics.min(data);
2897
+ <span class='line'>2890</span> * Q = Q.concat(JXG.Math.Statistics.percentile(data, [25, 50, 75]));
2898
+ <span class='line'>2891</span> * Q[4] = JXG.Math.Statistics.max(data);
2899
+ <span class='line'>2892</span> *
2900
+ <span class='line'>2893</span> * var b = board.create('boxplot', [Q, 0, 3]);
2901
+ <span class='line'>2894</span> *
2902
+ <span class='line'>2895</span> * &lt;/pre>&lt;div id="JXGef079e76-ae99-41e4-af29-1d07d83bf85a" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2903
+ <span class='line'>2896</span> * &lt;script type="text/javascript">
2904
+ <span class='line'>2897</span> * (function() {
2905
+ <span class='line'>2898</span> * var board = JXG.JSXGraph.initBoard('JXGef079e76-ae99-41e4-af29-1d07d83bf85a',
2906
+ <span class='line'>2899</span> * {boundingbox: [-5,90,5,30], axis: true, showcopyright: false, shownavigation: false});
2907
+ <span class='line'>2900</span> * var data = [57, 57, 57, 58, 63, 66, 66, 67, 67, 68, 69, 70, 70, 70, 70, 72, 73, 75, 75, 76, 76, 78, 79, 81];
2908
+ <span class='line'>2901</span> * var Q = [];
2909
+ <span class='line'>2902</span> *
2910
+ <span class='line'>2903</span> * Q[0] = JXG.Math.Statistics.min(data);
2911
+ <span class='line'>2904</span> * Q = Q.concat(JXG.Math.Statistics.percentile(data, [25, 50, 75]));
2912
+ <span class='line'>2905</span> * Q[4] = JXG.Math.Statistics.max(data);
2913
+ <span class='line'>2906</span> *
2914
+ <span class='line'>2907</span> * var b = board.create('boxplot', [Q, 0, 3]);
2915
+ <span class='line'>2908</span> *
2916
+ <span class='line'>2909</span> * })();
2917
+ <span class='line'>2910</span> *
2918
+ <span class='line'>2911</span> * &lt;/script>&lt;pre>
2919
2919
  <span class='line'>2912</span> *
2920
- <span class='line'>2913</span> * var b = board.create('boxplot', [Q, 0, 2]);
2921
- <span class='line'>2914</span> *
2922
- <span class='line'>2915</span> * &lt;/pre>&lt;div id="JXG3b3225da-52f0-42fe-8396-be9016bf289b" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2923
- <span class='line'>2916</span> * &lt;script type="text/javascript">
2924
- <span class='line'>2917</span> * (function() {
2925
- <span class='line'>2918</span> * var board = JXG.JSXGraph.initBoard('JXG3b3225da-52f0-42fe-8396-be9016bf289b',
2926
- <span class='line'>2919</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2927
- <span class='line'>2920</span> * var mi = board.create('glider', [0, -1, board.defaultAxes.y]);
2928
- <span class='line'>2921</span> * var ma = board.create('glider', [0, 5, board.defaultAxes.y]);
2929
- <span class='line'>2922</span> * var Q = [function() { return mi.Y(); }, 2, 3, 3.5, function() { return ma.Y(); }];
2930
- <span class='line'>2923</span> *
2931
- <span class='line'>2924</span> * var b = board.create('boxplot', [Q, 0, 2]);
2932
- <span class='line'>2925</span> *
2933
- <span class='line'>2926</span> * })();
2934
- <span class='line'>2927</span> *
2935
- <span class='line'>2928</span> * &lt;/script>&lt;pre>
2936
- <span class='line'>2929</span> *
2937
- <span class='line'>2930</span> */</span><span class="WHIT">
2938
- <span class='line'>2931</span> </span><span class="NAME">JXG.createBoxPlot</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2939
- <span class='line'>2932</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">box</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w2</span><span class="PUNC">,</span><span class="WHIT">
2940
- <span class='line'>2933</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"boxplot"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2941
- <span class='line'>2934</span>
2942
- <span class='line'>2935</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2943
- <span class='line'>2936</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="WHIT">
2944
- <span class='line'>2937</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create box plot with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2945
- <span class='line'>2938</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [array, number|function, number|function] containing quantiles, axis, width"</span><span class="WHIT">
2946
- <span class='line'>2939</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2947
- <span class='line'>2940</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2948
- <span class='line'>2941</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">5</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2949
- <span class='line'>2942</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="WHIT">
2950
- <span class='line'>2943</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create box plot with given parent[0]'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2951
- <span class='line'>2944</span> </span><span class="WHIT"> </span><span class="STRN">"\nparent[0] has to conatin at least 5 quantiles."</span><span class="WHIT">
2952
- <span class='line'>2945</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2953
- <span class='line'>2946</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2954
- <span class='line'>2947</span> </span><span class="WHIT"> </span><span class="NAME">box</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2955
- <span class='line'>2948</span>
2956
- <span class='line'>2949</span> </span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// Quantiles</span><span class="WHIT">
2957
- <span class='line'>2950</span> </span><span class="WHIT"> </span><span class="NAME">box.Q</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">
2958
- <span class='line'>2951</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">len</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">
2959
- <span class='line'>2952</span> </span><span class="WHIT"> </span><span class="NAME">box.Q</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"> </span><span class="NAME">Type.createFunction</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2960
- <span class='line'>2953</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2961
- <span class='line'>2954</span> </span><span class="WHIT"> </span><span class="NAME">box.x</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.createFunction</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2962
- <span class='line'>2955</span> </span><span class="WHIT"> </span><span class="NAME">box.w</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.createFunction</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2963
- <span class='line'>2956</span>
2964
- <span class='line'>2957</span> </span><span class="WHIT"> </span><span class="NAME">box.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2965
- <span class='line'>2958</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">v1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">;</span><span class="WHIT">
2966
- <span class='line'>2959</span>
2967
- <span class='line'>2960</span> </span><span class="WHIT"> </span><span class="NAME">w2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.smallwidth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2968
- <span class='line'>2961</span> </span><span class="WHIT"> </span><span class="NAME">dir</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.dir</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2969
- <span class='line'>2962</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.x</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2970
- <span class='line'>2963</span> </span><span class="WHIT"> </span><span class="NAME">l1</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">this.w</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="PUNC">;</span><span class="WHIT">
2971
- <span class='line'>2964</span> </span><span class="WHIT"> </span><span class="NAME">l2</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">this.w</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">w2</span><span class="PUNC">;</span><span class="WHIT">
2972
- <span class='line'>2965</span> </span><span class="WHIT"> </span><span class="NAME">r1</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">this.w</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="PUNC">;</span><span class="WHIT">
2973
- <span class='line'>2966</span> </span><span class="WHIT"> </span><span class="NAME">r2</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">this.w</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">w2</span><span class="PUNC">;</span><span class="WHIT">
2974
- <span class='line'>2967</span> </span><span class="WHIT"> </span><span class="NAME">v1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">NaN</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">NaN</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2975
- <span class='line'>2968</span> </span><span class="WHIT"> </span><span class="NAME">v2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2976
- <span class='line'>2969</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2977
- <span class='line'>2970</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2978
- <span class='line'>2971</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2979
- <span class='line'>2972</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2980
- <span class='line'>2973</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2981
- <span class='line'>2974</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2982
- <span class='line'>2975</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2983
- <span class='line'>2976</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2984
- <span class='line'>2977</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2920
+ <span class='line'>2913</span> * @example
2921
+ <span class='line'>2914</span> * var mi = board.create('glider', [0, -1, board.defaultAxes.y]);
2922
+ <span class='line'>2915</span> * var ma = board.create('glider', [0, 5, board.defaultAxes.y]);
2923
+ <span class='line'>2916</span> * var Q = [function() { return mi.Y(); }, 2, 3, 3.5, function() { return ma.Y(); }];
2924
+ <span class='line'>2917</span> *
2925
+ <span class='line'>2918</span> * var b = board.create('boxplot', [Q, 0, 2]);
2926
+ <span class='line'>2919</span> *
2927
+ <span class='line'>2920</span> * &lt;/pre>&lt;div id="JXG3b3225da-52f0-42fe-8396-be9016bf289b" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2928
+ <span class='line'>2921</span> * &lt;script type="text/javascript">
2929
+ <span class='line'>2922</span> * (function() {
2930
+ <span class='line'>2923</span> * var board = JXG.JSXGraph.initBoard('JXG3b3225da-52f0-42fe-8396-be9016bf289b',
2931
+ <span class='line'>2924</span> * {boundingbox: [-8, 8, 8,-8], axis: true, showcopyright: false, shownavigation: false});
2932
+ <span class='line'>2925</span> * var mi = board.create('glider', [0, -1, board.defaultAxes.y]);
2933
+ <span class='line'>2926</span> * var ma = board.create('glider', [0, 5, board.defaultAxes.y]);
2934
+ <span class='line'>2927</span> * var Q = [function() { return mi.Y(); }, 2, 3, 3.5, function() { return ma.Y(); }];
2935
+ <span class='line'>2928</span> *
2936
+ <span class='line'>2929</span> * var b = board.create('boxplot', [Q, 0, 2]);
2937
+ <span class='line'>2930</span> *
2938
+ <span class='line'>2931</span> * })();
2939
+ <span class='line'>2932</span> *
2940
+ <span class='line'>2933</span> * &lt;/script>&lt;pre>
2941
+ <span class='line'>2934</span> *
2942
+ <span class='line'>2935</span> */</span><span class="WHIT">
2943
+ <span class='line'>2936</span> </span><span class="NAME">JXG.createBoxPlot</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">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2944
+ <span class='line'>2937</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">box</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w2</span><span class="PUNC">,</span><span class="WHIT">
2945
+ <span class='line'>2938</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"boxplot"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2946
+ <span class='line'>2939</span>
2947
+ <span class='line'>2940</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents.length</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2948
+ <span class='line'>2941</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="WHIT">
2949
+ <span class='line'>2942</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create box plot with given parent'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2950
+ <span class='line'>2943</span> </span><span class="WHIT"> </span><span class="STRN">"\nPossible parent types: [array, number|function, number|function] containing quantiles, axis, width"</span><span class="WHIT">
2951
+ <span class='line'>2944</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2952
+ <span class='line'>2945</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2953
+ <span class='line'>2946</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">5</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2954
+ <span class='line'>2947</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="WHIT">
2955
+ <span class='line'>2948</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create box plot with given parent[0]'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
2956
+ <span class='line'>2949</span> </span><span class="WHIT"> </span><span class="STRN">"\nparent[0] has to conatin at least 5 quantiles."</span><span class="WHIT">
2957
+ <span class='line'>2950</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2958
+ <span class='line'>2951</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2959
+ <span class='line'>2952</span> </span><span class="WHIT"> </span><span class="NAME">box</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="STRN">"curve"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2960
+ <span class='line'>2953</span>
2961
+ <span class='line'>2954</span> </span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// Quantiles</span><span class="WHIT">
2962
+ <span class='line'>2955</span> </span><span class="WHIT"> </span><span class="NAME">box.Q</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">
2963
+ <span class='line'>2956</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">len</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">
2964
+ <span class='line'>2957</span> </span><span class="WHIT"> </span><span class="NAME">box.Q</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"> </span><span class="NAME">Type.createFunction</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2965
+ <span class='line'>2958</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2966
+ <span class='line'>2959</span> </span><span class="WHIT"> </span><span class="NAME">box.x</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.createFunction</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2967
+ <span class='line'>2960</span> </span><span class="WHIT"> </span><span class="NAME">box.w</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.createFunction</span><span class="PUNC">(</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2968
+ <span class='line'>2961</span>
2969
+ <span class='line'>2962</span> </span><span class="WHIT"> </span><span class="NAME">box.updateDataArray</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="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2970
+ <span class='line'>2963</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">v1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">;</span><span class="WHIT">
2971
+ <span class='line'>2964</span>
2972
+ <span class='line'>2965</span> </span><span class="WHIT"> </span><span class="NAME">w2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.smallwidth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2973
+ <span class='line'>2966</span> </span><span class="WHIT"> </span><span class="NAME">dir</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.dir</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2974
+ <span class='line'>2967</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.x</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2975
+ <span class='line'>2968</span> </span><span class="WHIT"> </span><span class="NAME">l1</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">this.w</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="PUNC">;</span><span class="WHIT">
2976
+ <span class='line'>2969</span> </span><span class="WHIT"> </span><span class="NAME">l2</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">this.w</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">w2</span><span class="PUNC">;</span><span class="WHIT">
2977
+ <span class='line'>2970</span> </span><span class="WHIT"> </span><span class="NAME">r1</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">this.w</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="PUNC">;</span><span class="WHIT">
2978
+ <span class='line'>2971</span> </span><span class="WHIT"> </span><span class="NAME">r2</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">this.w</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">w2</span><span class="PUNC">;</span><span class="WHIT">
2979
+ <span class='line'>2972</span> </span><span class="WHIT"> </span><span class="NAME">v1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">NaN</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">NaN</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2980
+ <span class='line'>2973</span> </span><span class="WHIT"> </span><span class="NAME">v2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2981
+ <span class='line'>2974</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2982
+ <span class='line'>2975</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2983
+ <span class='line'>2976</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2984
+ <span class='line'>2977</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2985
2985
  <span class='line'>2978</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2986
- <span class='line'>2979</span> </span><span class="WHIT"> </span><span class="NAME">NaN</span><span class="PUNC">,</span><span class="WHIT">
2987
- <span class='line'>2980</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2988
- <span class='line'>2981</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2989
- <span class='line'>2982</span> </span><span class="WHIT"> </span><span class="NAME">NaN</span><span class="PUNC">,</span><span class="WHIT">
2990
- <span class='line'>2983</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2991
- <span class='line'>2984</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2992
- <span class='line'>2985</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2993
- <span class='line'>2986</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2994
- <span class='line'>2987</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
2995
- <span class='line'>2988</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2996
- <span class='line'>2989</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">dir</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"vertical"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2997
- <span class='line'>2990</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v1</span><span class="PUNC">;</span><span class="WHIT">
2998
- <span class='line'>2991</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v2</span><span class="PUNC">;</span><span class="WHIT">
2999
- <span class='line'>2992</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">
3000
- <span class='line'>2993</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v2</span><span class="PUNC">;</span><span class="WHIT">
3001
- <span class='line'>2994</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v1</span><span class="PUNC">;</span><span class="WHIT">
3002
- <span class='line'>2995</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
3003
- <span class='line'>2996</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
3004
- <span class='line'>2997</span>
3005
- <span class='line'>2998</span> </span><span class="WHIT"> </span><span class="NAME">box.addParentsFromJCFunctions</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">box.Q</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">box.x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">box.w</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
3006
- <span class='line'>2999</span>
3007
- <span class='line'>3000</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">box</span><span class="PUNC">;</span><span class="WHIT">
3008
- <span class='line'>3001</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2986
+ <span class='line'>2979</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2987
+ <span class='line'>2980</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2988
+ <span class='line'>2981</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2989
+ <span class='line'>2982</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2990
+ <span class='line'>2983</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2991
+ <span class='line'>2984</span> </span><span class="WHIT"> </span><span class="NAME">NaN</span><span class="PUNC">,</span><span class="WHIT">
2992
+ <span class='line'>2985</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2993
+ <span class='line'>2986</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2994
+ <span class='line'>2987</span> </span><span class="WHIT"> </span><span class="NAME">NaN</span><span class="PUNC">,</span><span class="WHIT">
2995
+ <span class='line'>2988</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2996
+ <span class='line'>2989</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2997
+ <span class='line'>2990</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2998
+ <span class='line'>2991</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2999
+ <span class='line'>2992</span> </span><span class="WHIT"> </span><span class="NAME">this.Q</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
3000
+ <span class='line'>2993</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
3001
+ <span class='line'>2994</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">dir</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"vertical"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
3002
+ <span class='line'>2995</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v1</span><span class="PUNC">;</span><span class="WHIT">
3003
+ <span class='line'>2996</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v2</span><span class="PUNC">;</span><span class="WHIT">
3004
+ <span class='line'>2997</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">
3005
+ <span class='line'>2998</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v2</span><span class="PUNC">;</span><span class="WHIT">
3006
+ <span class='line'>2999</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v1</span><span class="PUNC">;</span><span class="WHIT">
3007
+ <span class='line'>3000</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
3008
+ <span class='line'>3001</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
3009
3009
  <span class='line'>3002</span>
3010
- <span class='line'>3003</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"boxplot"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createBoxPlot</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
3010
+ <span class='line'>3003</span> </span><span class="WHIT"> </span><span class="NAME">box.addParentsFromJCFunctions</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">box.Q</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">box.x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">box.w</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
3011
3011
  <span class='line'>3004</span>
3012
- <span class='line'>3005</span> </span><span class="NAME">export</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="NAME">JXG.Curve</span><span class="PUNC">;</span><span class="WHIT">
3013
- <span class='line'>3006</span>
3014
- <span class='line'>3007</span> </span><span class="COMM">// export default {</span><span class="WHIT">
3015
- <span class='line'>3008</span> </span><span class="COMM">// Curve: JXG.Curve,</span><span class="WHIT">
3016
- <span class='line'>3009</span> </span><span class="COMM">// createCardinalSpline: JXG.createCardinalSpline,</span><span class="WHIT">
3017
- <span class='line'>3010</span> </span><span class="COMM">// createCurve: JXG.createCurve,</span><span class="WHIT">
3018
- <span class='line'>3011</span> </span><span class="COMM">// createCurveDifference: JXG.createCurveDifference,</span><span class="WHIT">
3019
- <span class='line'>3012</span> </span><span class="COMM">// createCurveIntersection: JXG.createCurveIntersection,</span><span class="WHIT">
3020
- <span class='line'>3013</span> </span><span class="COMM">// createCurveUnion: JXG.createCurveUnion,</span><span class="WHIT">
3021
- <span class='line'>3014</span> </span><span class="COMM">// createDerivative: JXG.createDerivative,</span><span class="WHIT">
3022
- <span class='line'>3015</span> </span><span class="COMM">// createFunctiongraph: JXG.createFunctiongraph,</span><span class="WHIT">
3023
- <span class='line'>3016</span> </span><span class="COMM">// createMetapostSpline: JXG.createMetapostSpline,</span><span class="WHIT">
3024
- <span class='line'>3017</span> </span><span class="COMM">// createPlot: JXG.createFunctiongraph,</span><span class="WHIT">
3025
- <span class='line'>3018</span> </span><span class="COMM">// createSpline: JXG.createSpline,</span><span class="WHIT">
3026
- <span class='line'>3019</span> </span><span class="COMM">// createRiemannsum: JXG.createRiemannsum,</span><span class="WHIT">
3027
- <span class='line'>3020</span> </span><span class="COMM">// createStepfunction: JXG.createStepfunction,</span><span class="WHIT">
3028
- <span class='line'>3021</span> </span><span class="COMM">// createTracecurve: JXG.createTracecurve</span><span class="WHIT">
3029
- <span class='line'>3022</span> </span><span class="COMM">// };</span><span class="WHIT">
3030
- <span class='line'>3023</span>
3031
- <span class='line'>3024</span> </span><span class="COMM">// const Curve = JXG.Curve;</span><span class="WHIT">
3032
- <span class='line'>3025</span> </span><span class="COMM">// export { Curve as default, Curve};</span><span class="WHIT">
3033
- <span class='line'>3026</span> </span></pre></body></html>
3012
+ <span class='line'>3005</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">box</span><span class="PUNC">;</span><span class="WHIT">
3013
+ <span class='line'>3006</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
3014
+ <span class='line'>3007</span>
3015
+ <span class='line'>3008</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"boxplot"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createBoxPlot</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
3016
+ <span class='line'>3009</span>
3017
+ <span class='line'>3010</span> </span><span class="NAME">export</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="NAME">JXG.Curve</span><span class="PUNC">;</span><span class="WHIT">
3018
+ <span class='line'>3011</span>
3019
+ <span class='line'>3012</span> </span><span class="COMM">// export default {</span><span class="WHIT">
3020
+ <span class='line'>3013</span> </span><span class="COMM">// Curve: JXG.Curve,</span><span class="WHIT">
3021
+ <span class='line'>3014</span> </span><span class="COMM">// createCardinalSpline: JXG.createCardinalSpline,</span><span class="WHIT">
3022
+ <span class='line'>3015</span> </span><span class="COMM">// createCurve: JXG.createCurve,</span><span class="WHIT">
3023
+ <span class='line'>3016</span> </span><span class="COMM">// createCurveDifference: JXG.createCurveDifference,</span><span class="WHIT">
3024
+ <span class='line'>3017</span> </span><span class="COMM">// createCurveIntersection: JXG.createCurveIntersection,</span><span class="WHIT">
3025
+ <span class='line'>3018</span> </span><span class="COMM">// createCurveUnion: JXG.createCurveUnion,</span><span class="WHIT">
3026
+ <span class='line'>3019</span> </span><span class="COMM">// createDerivative: JXG.createDerivative,</span><span class="WHIT">
3027
+ <span class='line'>3020</span> </span><span class="COMM">// createFunctiongraph: JXG.createFunctiongraph,</span><span class="WHIT">
3028
+ <span class='line'>3021</span> </span><span class="COMM">// createMetapostSpline: JXG.createMetapostSpline,</span><span class="WHIT">
3029
+ <span class='line'>3022</span> </span><span class="COMM">// createPlot: JXG.createFunctiongraph,</span><span class="WHIT">
3030
+ <span class='line'>3023</span> </span><span class="COMM">// createSpline: JXG.createSpline,</span><span class="WHIT">
3031
+ <span class='line'>3024</span> </span><span class="COMM">// createRiemannsum: JXG.createRiemannsum,</span><span class="WHIT">
3032
+ <span class='line'>3025</span> </span><span class="COMM">// createStepfunction: JXG.createStepfunction,</span><span class="WHIT">
3033
+ <span class='line'>3026</span> </span><span class="COMM">// createTracecurve: JXG.createTracecurve</span><span class="WHIT">
3034
+ <span class='line'>3027</span> </span><span class="COMM">// };</span><span class="WHIT">
3035
+ <span class='line'>3028</span>
3036
+ <span class='line'>3029</span> </span><span class="COMM">// const Curve = JXG.Curve;</span><span class="WHIT">
3037
+ <span class='line'>3030</span> </span><span class="COMM">// export { Curve as default, Curve};</span><span class="WHIT">
3038
+ <span class='line'>3031</span> </span></pre></body></html>