Options: Difference between revisions

From JSXGraph Wiki
No edit summary
No edit summary
Line 18: Line 18:
If you have some more options you want to use for more than just one construction you can save them in an extra .js file and include them right after loading JSXGraph.
If you have some more options you want to use for more than just one construction you can save them in an extra .js file and include them right after loading JSXGraph.


Here is the complete list of default values as of version 0.90:
Here is the complete list of default values as of version 0.93:
<source lang="javascript">
<source lang="javascript">
/**
* Options Namespace
* @description These are the default options of the board and of all geometry elements.
*/
JXG.Options = {
JXG.Options = {
     /* Options that are used directly within the board class */
     /* Options that are used directly within the board class */
Line 27: Line 31:
     renderer: 'svg',
     renderer: 'svg',
     takeFirst : false, // if true the first element with hasPoint==true is taken.
     takeFirst : false, // if true the first element with hasPoint==true is taken.
    pan: true,


     /* zoom options */
     /* zoom options */
     zoom : {
     zoom : {
         factor : 1.25
         factorX : 1.25,
        factorY : 1.25,
        wheel: false
     },
     },


Line 195: Line 202:
         frozen: false,
         frozen: false,


        /**
        * If true a label will display the element's name.
        * @type Boolean
        * @default false
        * @name JXG.GeometryElement#withLabel
        */
         withLabel: false,
         withLabel: false,


        label: {
            fixed: true
        },
       
         /**
         /**
         * If false the element won't be visible on the board, otherwise it is shown.
         * If false the element won't be visible on the board, otherwise it is shown.
Line 212: Line 229:
         * @default See {@link JXG.Options#layer}
         * @default See {@link JXG.Options#layer}
         */
         */
         layer: 9,
         layer: 0,
 


         /**
         /**
Line 220: Line 238:
         * <li>1 for a dotted line</li>
         * <li>1 for a dotted line</li>
         * <li>2 for a line with small dashes</li>
         * <li>2 for a line with small dashes</li>
         * <li>3 for a line with medium dashes</li>
         * <li>3 for a line with medium dashes</li>
         * <li>4 for a line with big dashes</li>
         * <li>4 for a line with big dashes</li>
Line 250: Line 270:
         trace: false,
         trace: false,


        /**
        * Extra visual properties for traces of an element
        * @type Object
        * @see JXG.GeometryElement#trace
        * @name JXG.GeometryElement#traceAttributes
        */
        traceAttributes: {},
       
        /**
        *
        * @type Boolean
        * @default true
        * @name JXG.GeometryElement#highlight
        */
        highlight: true,
       
         /**
         /**
         * If this is set to true, the element is updated in every update
         * If this is set to true, the element is updated in every update
Line 275: Line 311:
             strokeOpacity : 0.8,
             strokeOpacity : 0.8,
             fillOpacity : 0.8,
             fillOpacity : 0.8,
             strokeWidth : '1px'
             strokeWidth : 1
         }
         }
         // close the meta tag
         // close the meta tag
Line 335: Line 371:
         */
         */
         minorTicks: 4,
         minorTicks: 4,
         defaultDistance: 1,
 
         /**
        * The default distance between two ticks. Please be aware that this value does not have
        * to be used if {@link JXG.Ticks#insertTicks} is set to true.
        * @type Boolean
        * @name JXG.Ticks#ticksDistance
        * @see JXG.Ticks#equidistant
        * @see JXG.Ticks#insertTicks
        * @default 1
        */
        ticksDistance: 1,
         strokeOpacity: 1,
         strokeOpacity: 1,
         strokeWidth: 1,
         strokeWidth: 1,
Line 356: Line 402:
         numlayers: 20, // only important in SVG
         numlayers: 20, // only important in SVG
         text  : 9,
         text  : 9,
         point : 9,
         point : 9,  
         arc  : 8,
         arc  : 8,
         line  : 7,
         line  : 7,
         circle: 6,
         circle: 6,  
         curve : 5,
         curve : 5,
         polygon: 4,
turtle : 5,
         polygon: 3,
         sector: 3,
         sector: 3,
         angle : 3,
         angle : 3,  
         integral : 3,
         integral : 3,
        axis : 2,
         grid  : 1,
         grid  : 1,
         image : 0
         image : 0,
        trace: 0
     },
     },


Line 374: Line 423:
     /* special angle options */
     /* special angle options */
     angle : {
     angle : {
         withLabel:true,
         withLabel: true,
 
        /**
        * Radius of the sector, displaying the angle.
        * @type Number
        * @name Angle#radius
        */
         radius : 1.0,
         radius : 1.0,
        type : 'auto',  // 'square' or 'sector' or 'auto'
         fillColor : '#FF7F00',
         fillColor : '#FF7F00',
         highlightFillColor : '#FF7F00',
         highlightFillColor : '#FF7F00',
         strokeColor : '#FF7F00',
         strokeColor : '#FF7F00',
        textColor : '#0000FF',
         fillOpacity : 0.3,
         fillOpacity : 0.3,
         highlightFillOpacity : 0.3,
         highlightFillOpacity : 0.3,
         point: {
         radiuspoint: {
            withLabel: false,
            visible: false,
            name: ''
        },
        pointsquare: {
             withLabel: false,
             withLabel: false,
             visible: false,
             visible: false,
             name: ''
             name: ''
        },
        dot: {
            visible: false,
            strokeColor: 'none',
            fillColor: 'black',
            size: 2,
            face: 'o',
            withLabel: false,
            name: ''
        },
        label: {
            strokeColor: '#0000FF'
         }
         }
     },
     },
Line 397: Line 469:
         strokeColor : '#0000ff',
         strokeColor : '#0000ff',
         highlightStrokeColor : '#C3D9FF',
         highlightStrokeColor : '#C3D9FF',
         useDirection: false,
         useDirection: false
        center: {
            visible: false,
            withLabel: false,
            fixed: true,
            name: ''
        }
     },
     },


Line 425: Line 491:
             highlightStrokeColor : '#888888',
             highlightStrokeColor : '#888888',
             drawLabels : true,
             drawLabels : true,
             drawZero : true,
             drawZero : false,
             insertTicks : true,
             insertTicks : true,
             minTicksDistance : 50,
             minTicksDistance : 10,
             minorHeight : 4,          // if <0: full width and height
             minorHeight : 4,          // if <0: full width and height
             majorHeight : -1,        // if <0: full width and height
             majorHeight : -1,        // if <0: full width and height
             minorTicks : 4,
             minorTicks : 4,
             defaultDistance : 1,
             ticksDistance: 1,         // TODO doc
             strokeOpacity : 0.25
             strokeOpacity : 0.25
         },
         },
Line 447: Line 513:
         point : {              // Bisector point
         point : {              // Bisector point
             visible: false,
             visible: false,
             fixed: true,
             fixed: false,
             withLabel: false,
             withLabel: false,
             name: ''
             name: ''
Line 482: Line 548:
             visible: false,
             visible: false,
             withLabel: false,
             withLabel: false,
             fixed: true,
             fixed: false,
             name: ''
             name: ''
         }
         }
Line 493: Line 559:
         strokeColor : '#0000ff',
         strokeColor : '#0000ff',
         highlightStrokeColor : '#C3D9FF',
         highlightStrokeColor : '#C3D9FF',
         point : {              // center point
         center : {              // center point
            visible: false,
            fixed: false,
            withLabel: false,
            name: ''
        }
    },
 
    circumcirclearc : {
        fillColor : 'none',
        highlightFillColor : 'none',
        strokeColor : '#0000ff',
        highlightStrokeColor : '#C3D9FF',
        center: {
             visible: false,
             visible: false,
            fixed: true,
             withLabel: false,
             withLabel: false,
            fixed: false,
             name: ''
             name: ''
         }
         }
Line 510: Line 589:
         strokeColor : '#0000ff',
         strokeColor : '#0000ff',
         highlightStrokeColor : '#C3D9FF',
         highlightStrokeColor : '#C3D9FF',
        //fillOpacity: 0.3,
        //highlightFillOpacity: 0.3,
         point: {
         point: {
             visible: false,
             visible: false,
             fixed: true,
             fixed: false,
             withLabel: false,
             withLabel: false,
             name: ''
             name: ''
Line 528: Line 605:
         foci: {
         foci: {
             // points
             // points
             fixed: true,
             fixed: false,
             visible: false,
             visible: false,
             withLabel: false,
             withLabel: false,
Line 537: Line 614:
     /* special curve options */
     /* special curve options */
     curve : {
     curve : {
         strokeWidth : '1px',
         strokeWidth : 1,
         strokeColor : '#0000ff',
         strokeColor : '#0000ff',
         fillColor: 'none',
         fillColor: 'none',
 
       
         /**#@+
         /**#@+
         * @visprop
         * @visprop
         */
         */
      /**
        * The data points of the curve are not connected with straight lines but with bezier curves.
        * @name JXG.Curve#handDrawing
        * @type Boolean
        * @default false
        */
        handDrawing: false,


         /**
         /**
Line 558: Line 643:
         */
         */
         curveType: null,
         curveType: null,
         RDPsmoothing : false,       // Apply the Ramen-Douglas-Peuker algorithm
         RDPsmoothing : false,     // Apply the Ramer-Douglas-Peuker algorithm
         numberPointsHigh : 1600,  // Number of points on curves after mouseUp
         numberPointsHigh : 1600,  // Number of points on curves after mouseUp
         numberPointsLow : 400,    // Number of points on curves after mousemove
         numberPointsLow : 400,    // Number of points on curves after mousemove
         doAdvancedPlot : true       // Use the algorithm by Gillam and Hohenwarter
         doAdvancedPlot : true   // Use the algorithm by Gillam and Hohenwarter
                                 // It is much slower, but the result is better
                                 // It is much slower, but the result is better


         /**#@-*/
         /**#@-*/
     },
     },
    glider: {},


     /* special grid options */
     /* special grid options */
Line 581: Line 668:
         strokeOpacity : '0.5',
         strokeOpacity : '0.5',
         strokeWidth: 1,
         strokeWidth: 1,
         dash : 2,
         dash : 0,   // dashed grids slow down the iPad considerably
         /* snap to grid options */
         /* snap to grid options */
       
        /**
        * @deprecated
        */
         snapToGrid : false,
         snapToGrid : false,
         snapSizeX : 2,
        /**
         snapSizeY : 2
        * @deprecated
        */
         snapSizeX : 10,
        /**
        * @deprecated
        */
         snapSizeY : 10


         /**#@-*/
         /**#@-*/
Line 602: Line 699:
         strokeColor : '#0000ff',
         strokeColor : '#0000ff',
         highlightStrokeColor : '#C3D9FF',
         highlightStrokeColor : '#C3D9FF',
         point : {              // center point
         center : {              // center point
             visible: false,
             visible: false,
             fixed: true,
             fixed: false,
             withLabel: false,
             withLabel: false,
             name: ''
             name: ''
Line 615: Line 712:
         strokeWidth: 0,
         strokeWidth: 0,
         strokeOpacity: 0,
         strokeOpacity: 0,
         start: {    // Start point
         curveleft: {    // Start point
             visible: true
             visible: true
         },
         },
         startproject: {    // Start point
         baseleft: {    // Start point
             visible: false,
             visible: false,
             fixed: true,
             fixed: false,
             withLabel: false,
             withLabel: false,
             name: ''
             name: ''
         },
         },
         end: {      // End point
         curveright: {      // End point
             visible: true
             visible: true
         },
         },
         endproject: {      // End point
         baseright: {      // End point
             visible: false,
             visible: false,
             fixed: true,
             fixed: false,
             withLabel: false,
             withLabel: false,
             name: ''
             name: ''
         },
         },
         text: {
         label: {
             fontSize: 20
             fontSize: 20
         }
         }
Line 669: Line 766:
             visible: false,  
             visible: false,  
             withLabel: false,  
             withLabel: false,  
             fixed:true,
             fixed: false,
             name: ''
             name: ''
         },
         },
Line 675: Line 772:
             visible: false,  
             visible: false,  
             withLabel: false,  
             withLabel: false,  
             fixed: true,
             fixed: false,
             name: ''
             name: ''
         },
         },
Line 711: Line 808:
     /* special options for parallel lines */
     /* special options for parallel lines */
     parallel : {
     parallel : {
         strokeColor: '#000000', // Parallel line
         strokeColor: '#000000' // Parallel line
        point : {              // Parallel point
            visible: false,
            fixed: true,
            withLabel: false,
            name: ''
        }
     },
     },


     /* special perpendicular options */
     /* special perpendicular options */
     perpendicular : {
     perpendicular : {
        strokeColor: '#000000', // Perpendicular line
        straightFirst: true,
        straightLast: true
    },
    /* special perpendicular options */
    perpendicularsegment : {
         strokeColor: '#000000', // Perpendicular segment
         strokeColor: '#000000', // Perpendicular segment
        straightFirst: false,
        straightLast: false,
         point : {              // Perpendicular point
         point : {              // Perpendicular point
             visible: false,
             visible: false,
Line 784: Line 884:
         fillColor : '#ff0000',
         fillColor : '#ff0000',
         highlightFillColor : '#EEEEEE',
         highlightFillColor : '#EEEEEE',
         strokeWidth: '2px',
         strokeWidth: 2,
         strokeColor : '#ff0000',
         strokeColor : '#ff0000',
         highlightStrokeColor : '#C3D9FF',
         highlightStrokeColor : '#C3D9FF',
Line 791: Line 891:
         /**
         /**
         * If true, the infobox is shown on mouse over, else not.
         * If true, the infobox is shown on mouse over, else not.
         * @type boolean
        * @name JXG.Point#showInfobox
         * @type Boolean
         * @default true
         * @default true
         */
         */
         showInfobox: true,
         showInfobox: true,


         draft: false
         draft: false,
       
        /**
        * List of attractor elements. If the distance of the point is less than
        * attractorDistance the point is made to glider of this element.
        * @type array
        * @name JXG.Point#attractors
        * @default empty
        */
        attractors: [],
       
        /**
        * If the distance of the point to one of its attractors is less
        * than this number the point will be a glider on this
        * attracting element.
        * If set to zero nothing happens.
        * @type number
        * @name JXG.Point#attractorDistance
        * @default 0
        */
        attractorDistance: 0.0,
       
        /**
        * If the distance of the point to one of its attractors is at least
        * this number the point will be released from being a glider on the
        * attracting element.
        * If set to zero nothing happens.
        * @type number
        * @name JXG.Point#snatchDistance
        * @default 0
        */
        snatchDistance: 0.0,
       
        /**
        * If set to true, the point will snap to a grid defined by
        * {@link JXG.Point#snapSizeX} and {@link JXG.Point#snapSizeY}.
        * @see JXG.Point#snapSizeX
        * @see JXG.Point#snapSizeY
        * @type Boolean
        * @name JXG.Point#snapToGrid
        * @default false
        */
        snapToGrid: false,
 
        /**
        * Defines together with {@link JXG.Point#snapSizeY} the grid the point snaps on to.
        * The point will only snap on values multiple to snapSizeX in x and snapSizeY in y direction.
        * If this value is equal to or less than <tt>0</tt>, it will use the grid displayed by the major ticks
        * of the default ticks of the default x axes of the board.
        * @see JXG.Point#snapToGrid
        * @see JXG.Point#snapSizeY
        * @see JXG.Board#defaultAxes
        * @type Number
        * @name JXG.Point#snapSizeX
        * @default 1
        */
        snapSizeX: 1,
 
        /**
        * Defines together with {@link JXG.Point#snapSizeX} the grid the point snaps on to.
        * The point will only snap on values multiple to snapSizeX in x and snapSizeY in y direction.
        * If this value is equal to or less than <tt>0</tt>, it will use the grid displayed by the major ticks
        * of the default ticks of the default y axes of the board.
        * @see JXG.Point#snapToGrid
        * @see JXG.Point#snapSizeX
        * @see JXG.Board#defaultAxes
        * @type Number
        * @name JXG.Point#snapSizeY
        * @default 1
        */
        snapSizeY: 1


         /**#@-*/
         /**#@-*/
Line 807: Line 978:
         */
         */


        /**
        * If <tt>true</tt>, moving the mouse over inner points triggers hasPoint.
        * @see JXG.GeometryElement#hasPoint
        * @name JXG.Polygon#hasInnerPoints
        * @type Boolean
        * @default false
        */
        hasInnerPoints: false,
         fillColor : '#00FF00',
         fillColor : '#00FF00',
         highlightFillColor : '#00FF00',
         highlightFillColor : '#00FF00',
Line 822: Line 1,001:
         /**#@-*/
         /**#@-*/


         lines: {
         borders: {
             withLabel: false,
             withLabel: false,
    strokeWidth: 1,
    strokeWidth: 1,
Line 833: Line 1,012:
         *  Points for regular polygons
         *  Points for regular polygons
         */  
         */  
         points : {                  
         vertices : {
             withLabel: true,
             withLabel: true,
             strokeColor: '#ff0000',
             strokeColor: '#ff0000',
Line 854: Line 1,033:
         fillOpacity: 0.3,
         fillOpacity: 0.3,
         highlightFillOpacity: 0.3
         highlightFillOpacity: 0.3
    },
    semicircle : {
        midpoint: {
            visible: false,
            withLabel: false,
            fixed: false,
            name: ''
        }
     },
     },


Line 862: Line 1,050:
         */
         */


        /**
        * The slider only returns multiples of this value, e.g. for discrete values set this property to <tt>1</tt>. For
        * continuous results set this to <tt>-1</tt>.
        * @memberOf Slider.prototype
        * @name snapWidth
        * @type Number
        */
         snapWidth: -1,      // -1 = deactivated
         snapWidth: -1,      // -1 = deactivated
        /**
        * The precision of the slider value displayed in the optional text.
        * @memberOf Slider.prototype
        * @name precision
        * @type Number
        */
        precision: 2,
         firstArrow : false,
         firstArrow : false,
         lastArrow : false,
         lastArrow : false,
         withTicks: true,
         withTicks: true,
         withLabel: true,
         withLabel: true,
        layer: 9,
        showInfobox: false,
        name : '',
        visible: true,
        strokeColor : '#000000',
        highlightStrokeColor : '#888888',
        fillColor : '#ffffff',
        highlightFillColor : 'none',
        size: 6,


         /**#@-*/
         /**#@-*/
Line 886: Line 1,099:
             name: ''
             name: ''
         },
         },
         glider: {
         baseline: {
            showInfobox: false,
            name : '',
            withLabel: false,
            visible: true,
            strokeColor : '#000000',
            highlightStrokeColor : '#888888',
            fillColor : '#ffffff',
            highlightFillColor : 'none',
            size: 6
        },
        segment1: {
             needsRegularUpdate : false,
             needsRegularUpdate : false,
             name : '',
             name : '',
Line 918: Line 1,120:
             strokeColor : '#000000'
             strokeColor : '#000000'
         },  
         },  
         segment2: {
         highline: {
             strokeWidth: 3,
             strokeWidth: 3,
             name : '',
             name : '',
Line 924: Line 1,126:
             highlightStrokeColor : '#888888'
             highlightStrokeColor : '#888888'
         },
         },
         text: {
         label: {
             strokeColor: '#000000'
             strokeColor: '#000000'
         }
         }
Line 942: Line 1,144:
         useMathJax : false,
         useMathJax : false,
         display : 'html',                    //'html' or 'internal'
         display : 'html',                    //'html' or 'internal'
        cssClass : 'JXGtext',
        highlightCssClass : 'JXGtext',
         withLabel: false
         withLabel: false


Line 947: Line 1,151:
     },
     },
      
      
    /* special options for trace curves */
    tracecurve : {
        /**#@+
        * @visprop
        */
        strokeColor: '#000000',
        fillColor: 'none',
        numberPoints: 100
        /**#@-*/
    },
    /*special turtle options */
    turtle : {
        strokeWidth : 1,
fillColor: 'none',
strokeColor: '#000000',
arrow : {
strokeWidth: 2,
withLabel: false,
strokeColor: '#ff0000'
}
    },
     /**
     /**
       * Abbreviations of properties.
       * Abbreviations of properties. Setting the shortcut means setting abbreviated properties
      * to the same value.
       * It is used in JXG.GeometryElement#setProperty and in
       * It is used in JXG.GeometryElement#setProperty and in
       * the constructor JXG.GeometryElement.
       * the constructor JXG.GeometryElement.

Revision as of 12:41, 26 January 2012

Below are the default values for many parameters of a JSXGraph construction. These values have to be overwritten before the initialization of the JSXGraph board via

JXG.Options.text.fontSize = 14;
JXG.Options.text.useASCIIMathML = true;

or more compact

JXG.Options = JXG.deepCopy(JXG.Options, {
    showNavigation: false,
    point: {
        face: 'x'
    }
}

If you have some more options you want to use for more than just one construction you can save them in an extra .js file and include them right after loading JSXGraph.

Here is the complete list of default values as of version 0.93:

/**
 * Options Namespace
 * @description These are the default options of the board and of all geometry elements.
 */
JXG.Options = {
    /* Options that are used directly within the board class */
    showCopyright : true,
    showNavigation : true,
    takeSizeFromFile : false, // If true, the construction - when read from a file or string - the size of the div can be changed.
    renderer: 'svg',
    takeFirst : false, // if true the first element with hasPoint==true is taken.
    pan: true,

    /* zoom options */
    zoom : {
        factorX : 1.25,
        factorY : 1.25,
        wheel: false
    },

    /* navbar options */
    navbar: {
        strokeColor: '#aaaaaa',
        fillColor: '#f5f5f5',
        padding: '2px',
        position: 'absolute',
        fontSize: '10px',
        cursor: 'pointer',
        zIndex: '100',
        right: '5px',
        bottom: '5px'
    },

    /**
     * Generic options 
     */
    
    /* geometry element options */
    elements : {
        // the following tag is a meta tag: http://code.google.com/p/jsdoc-toolkit/wiki/MetaTags

        /**#@+
         * @visprop
         */

        /**
         * The stroke color of the given geometry element.
         * @type String
         * @name JXG.GeometryElement#strokeColor
         * @see JXG.GeometryElement#highlightStrokeColor
         * @see JXG.GeometryElement#strokeWidth
         * @see JXG.GeometryElement#strokeOpacity
         * @see JXG.GeometryElement#highlightStrokeOpacity
         * @default {@link JXG.Options.elements.color#strokeColor}
         */
        strokeColor: '#0000ff',

        /**
         * The stroke color of the given geometry element when the user moves the mouse over it.
         * @type String
         * @name JXG.GeometryElement#highlightStrokeColor
         * @see JXG.GeometryElement#strokeColor
         * @see JXG.GeometryElement#strokeWidth
         * @see JXG.GeometryElement#strokeOpacity
         * @see JXG.GeometryElement#highlightStrokeOpacity
         * @default {@link JXG.Options.elements.color#highlightStrokeColor}
         */
        highlightStrokeColor: '#C3D9FF',

        /**
         * The fill color of this geometry element.
         * @type String
         * @name JXG.GeometryElement#fillColor
         * @see JXG.GeometryElement#highlightFillColor
         * @see JXG.GeometryElement#fillOpacity
         * @see JXG.GeometryElement#highlightFillOpacity
         * @default {@link JXG.Options.elements.color#fillColor}
         */
        fillColor: 'red',

        /**
         * The fill color of the given geometry element when the mouse is pointed over it.
         * @type String
         * @name JXG.GeometryElement#highlightFillColor
         * @see JXG.GeometryElement#fillColor
         * @see JXG.GeometryElement#fillOpacity
         * @see JXG.GeometryElement#highlightFillOpacity
         * @default {@link JXG.Options.elements.color#highlightFillColor}
         */
        highlightFillColor: 'none',

        /**
         * Opacity for element's stroke color.
         * @type number
         * @name JXG.GeometryElement#strokeOpacity
         * @see JXG.GeometryElement#strokeColor
         * @see JXG.GeometryElement#highlightStrokeColor
         * @see JXG.GeometryElement#strokeWidth
         * @see JXG.GeometryElement#highlightStrokeOpacity
         * @default {@link JXG.Options.elements#strokeOpacity}
         */
        strokeOpacity: 1,

        /**
         * Opacity for stroke color when the object is highlighted.
         * @type number
         * @name JXG.GeometryElement#highlightStrokeOpacity
         * @see JXG.GeometryElement#strokeColor
         * @see JXG.GeometryElement#highlightStrokeColor
         * @see JXG.GeometryElement#strokeWidth
         * @see JXG.GeometryElement#strokeOpacity
         * @default {@link JXG.Options.elements#highlightStrokeOpacity}
         */
        highlightStrokeOpacity: 1,

        /**
         * Opacity for fill color.
         * @type number
         * @name JXG.GeometryElement#fillOpacity
         * @see JXG.GeometryElement#fillColor
         * @see JXG.GeometryElement#highlightFillColor
         * @see JXG.GeometryElement#highlightFillOpacity
         * @default {@link JXG.Options.elements.color#fillOpacity}
         */
        fillOpacity: 1,

        /**
         * Opacity for fill color when the object is highlighted.
         * @type number
         * @name JXG.GeometryElement#highlightFillOpacity
         * @see JXG.GeometryElement#fillColor
         * @see JXG.GeometryElement#highlightFillColor
         * @see JXG.GeometryElement#fillOpacity
         * @default {@link JXG.Options.elements.color#highlightFillOpacity}
         */
        highlightFillOpacity: 1,

        /**
         * Width of the element's stroke.
         * @type number
         * @name JXG.GeometryElement#strokeWidth
         * @see JXG.GeometryElement#strokeColor
         * @see JXG.GeometryElement#highlightStrokeColor
         * @see JXG.GeometryElement#strokeOpacity
         * @see JXG.GeometryElement#highlightStrokeOpacity
         * @default {@link JXG.Options.elements#strokeWidth}
         */
        strokeWidth: 2,

        /**
         * Width of the element's stroke when the mouse is pointed over it.
         * @type number
         * @name JXG.GeometryElement#highlightStrokeWidth
         * @see JXG.GeometryElement#strokeColor
         * @see JXG.GeometryElement#highlightStrokeColor
         * @see JXG.GeometryElement#strokeOpacity
         * @see JXG.GeometryElement#highlightStrokeOpacity
         * @see JXG.GeometryElement#highlightFillColor
         * @default {@link JXG.Options.elements#strokeWidth}
         */
        highlightStrokeWidth: 2,


        /**
         * If true the element is fixed and can not be dragged around. The element
         * will be repositioned on zoom and moveOrigin events.
         * @type Boolean
         * @default false
         * @name JXG.GeometryElement#fixed
         */
        fixed: false,

        /**
         * If true the element is fixed and can not be dragged around. The element
         * will even stay at its position on zoom and moveOrigin events.
         * Only free elements like points, texts, curves can be frozen.
         * @type Boolean
         * @default false
         * @name JXG.GeometryElement#frozen
         */
        frozen: false,

        /**
         * If true a label will display the element's name.
         * @type Boolean
         * @default false
         * @name JXG.GeometryElement#withLabel
         */
        withLabel: false,

        label: {
            fixed: true
        },
        
        /**
         * If false the element won't be visible on the board, otherwise it is shown.
         * @type boolean
         * @name JXG.GeometryElement#visible
         * @see JXG.GeometryElement#hideElement
         * @see JXG.GeometryElement#showElement
         * @default true
         */
        visible: true,

        /**
         * Display layer which will contain the element.
         * @see JXG.Options#layer
         * @default See {@link JXG.Options#layer}
         */
        layer: 0,


        /**
         * Determines the elements border-style.
         * Possible values are:
         * <ul><li>0 for a solid line</li>
         * <li>1 for a dotted line</li>
         * <li>2 for a line with small dashes</li>


         * <li>3 for a line with medium dashes</li>
         * <li>4 for a line with big dashes</li>
         * <li>5 for a line with alternating medium and big dashes and large gaps</li>
         * <li>6 for a line with alternating medium and big dashes and small gaps</li></ul>
         * @type Number
         * @name JXG.GeometryElement#dash
         * @default 0
         */
        dash: 0,

        /**
         * If true the element will get a shadow.
         * @type boolean
         * @name JXG.GeometryElement#shadow
         * @default false
         */
        shadow: false,

        /**
         * If true the element will be traced, i.e. on every movement the element will be copied
         * to the background. Use {@link JXG.GeometryElement#clearTrace} to delete the trace elements.
         * @see JXG.GeometryElement#clearTrace
         * @see JXG.GeometryElement#traces
         * @see JXG.GeometryElement#numTraces
         * @type Boolean
         * @default false
         * @name JXG.GeometryElement#trace
         */
        trace: false,

        /**
         * Extra visual properties for traces of an element
         * @type Object
         * @see JXG.GeometryElement#trace
         * @name JXG.GeometryElement#traceAttributes
         */
        traceAttributes: {},
        
        /**
         * 
         * @type Boolean
         * @default true
         * @name JXG.GeometryElement#highlight
         */
        highlight: true,
        
        /**
         * If this is set to true, the element is updated in every update
         * call of the board. If set to false, the element is updated only after
         * zoom events or more generally, when the bounding box has been changed.
         * Examples for the latter behaviour should be axes.
         * @type Boolean
         * @default true
         * @see JXG.GeometryElement#needsRegularUpdate
         * @name JXG.GeometryElement#needsRegularUpdate
         */
        needsRegularUpdate: true,

        /*draft options */
        draft : {
            /**
             * If true the element will be drawn in grey scale colors to visualize that it's only a draft.
             * @type boolean
             * @name JXG.GeometryElement#draft
             * @default {@link JXG.Options.elements.draft#draft}
             */
            draft : false,
            strokeColor : '#565656',
            fillColor : '#565656',
            strokeOpacity : 0.8,
            fillOpacity : 0.8,
            strokeWidth : 1
        }
        // close the meta tag
        /**#@-*/
    },

    ticks : {
        /**#@+
         * @visprop
         */

        /**
         * Draw labels yes/no
         * @type Boolean
         * @name JXG.Ticks#drawLabels
         * @default false
         */
        drawLabels: false,
        
        /**
         * Draw the zero tick, that lies at line.point1?
         * @type Boolean
         * @name JXG.Ticks#drawZero
         * @default false
         */
        drawZero: false,

        /**
         * If the distance between two ticks is too big we could insert new ticks. If insertTicks
         * is <tt>true</tt>, we'll do so, otherwise we leave the distance as is.
         * This option is ignored if equidistant is false.
         * @type Boolean
         * @name JXG.Ticks#insertTicks
         * @see JXG.Ticks#equidistant
         * @see JXG.Ticks#maxTicksDistance
         * @default false
         */
        insertTicks: false,
        minTicksDistance: 50,

        /**
         * Total height of a minor tick. If negative the full height of the board is taken.
         * @type Number
         * @name JXG.Ticks#minorHeight
         */
        minorHeight: 4,

        /**
         * Total height of a major tick. If negative the full height of the board is taken.
         * @type Number
         * @name JXG.Ticks#majorHeight
         */
        majorHeight: 10,

        /**
         * The number of minor ticks between two major ticks.
         * @type Number
         * @name JXG.Ticks#minorTicks
         */
        minorTicks: 4,

        /**
         * The default distance between two ticks. Please be aware that this value does not have
         * to be used if {@link JXG.Ticks#insertTicks} is set to true.
         * @type Boolean
         * @name JXG.Ticks#ticksDistance
         * @see JXG.Ticks#equidistant
         * @see JXG.Ticks#insertTicks
         * @default 1
         */
        ticksDistance: 1,
        strokeOpacity: 1,
        strokeWidth: 1,
        strokeColor: 'black',
        highlightStrokeColor: '#888888'
        // close the meta tag
        /**#@-*/
    },

    /* precision options */
    precision : {
        touch    : 30,
        mouse    : 4,
        epsilon  : 0.0001,
        hasPoint : 4
    },

    /* Default ordering of the layers */
    layer : {
        numlayers: 20, // only important in SVG
        text  : 9,
        point : 9,   
        arc   : 8,
        line  : 7,
        circle: 6, 
        curve : 5,
		turtle : 5,
        polygon: 3,
        sector: 3,
        angle : 3, 
        integral : 3,
        axis : 2,
        grid  : 1,
        image : 0,
        trace: 0
    },

    /**
     * element type specific options 
     */ 
    /* special angle options */
    angle : {
        withLabel: true,

        /**
         * Radius of the sector, displaying the angle.
         * @type Number
         * @name Angle#radius
         */
        radius : 1.0,
        type : 'auto',  // 'square' or 'sector' or 'auto'
        fillColor : '#FF7F00',
        highlightFillColor : '#FF7F00',
        strokeColor : '#FF7F00',
        fillOpacity : 0.3,
        highlightFillOpacity : 0.3,
        radiuspoint: {
            withLabel: false,
            visible: false,
            name: ''
        },
        pointsquare: {
            withLabel: false,
            visible: false,
            name: ''
        },
        dot: {
            visible: false,
            strokeColor: 'none',
            fillColor: 'black',
            size: 2,
            face: 'o',
            withLabel: false,
            name: ''
        },
        label: {
            strokeColor: '#0000FF'
        }
    },

    /* special arc options */
    arc : {
        firstArrow : false,
        lastArrow : false,
        fillColor : 'none',
        highlightFillColor : 'none',
        strokeColor : '#0000ff',
        highlightStrokeColor : '#C3D9FF',
        useDirection: false
    },

    /* special axis options */
    axis: {
        needsRegularUpdate : false,         // Axes only updated after zooming and moving of the origin.
        strokeWidth: 1,
        strokeColor : '#666666',
        highlightStrokeWidth: 1,
        highlightStrokeColor : '#888888',
        withTicks: true,
        straightFirst : true,
        straightLast : true,
        lastArrow: true,
        withLabel: false, 
        /* line ticks options */
        ticks : {
            needsRegularUpdate : false,            
            strokeWidth: 1,
            strokeColor : '#666666',
            highlightStrokeColor : '#888888',
            drawLabels : true,
            drawZero : false,
            insertTicks : true,
            minTicksDistance : 10,
            minorHeight : 4,          // if <0: full width and height
            majorHeight : -1,         // if <0: full width and height
            minorTicks : 4,
            ticksDistance: 1,         // TODO doc
            strokeOpacity : 0.25
        },
        point1 : {                  // Default values for point1 if created by line
            needsRegularUpdate : false
        },
        point2 : {                  // Default values for point2 if created by line
            needsRegularUpdate : false
        }
    },
    
    /* special options for bisector of 3 points */
    bisector : {
        strokeColor: '#000000', // Bisector line
        point : {               // Bisector point
            visible: false,
            fixed: false,
            withLabel: false,
            name: ''
        }
    },

    /* special options for the 2 bisectors of 2 lines */
    bisectorlines : {
        line1 : {               // 
            strokeColor: 'red'
        },
        line2 : {               // 
            strokeColor: 'black'
        }
    },

    /* special chart options */
    chart: {
        chartStyle: 'line',
        colors: ['#B02B2C','#3F4C6B','#C79810','#D15600','#FFFF88','#C3D9FF','#4096EE','#008C00'],
        highlightcolors: null,
        fillcolor: null,
        highlightonsector: false,
        highlightbysize: false
    },

    /*special circle options */
    circle : {
        fillColor : 'none',
        highlightFillColor : 'none',
        strokeColor : '#0000ff',
        highlightStrokeColor : '#C3D9FF',
        center: {
            visible: false,
            withLabel: false,
            fixed: false,
            name: ''
        }
    },

    /* special options for circumcircle of 3 points */
    circumcircle : {
        fillColor : 'none',
        highlightFillColor : 'none',
        strokeColor : '#0000ff',
        highlightStrokeColor : '#C3D9FF',
        center : {               // center point
            visible: false,
            fixed: false,
            withLabel: false,
            name: ''
        }
    },

    circumcirclearc : {
        fillColor : 'none',
        highlightFillColor : 'none',
        strokeColor : '#0000ff',
        highlightStrokeColor : '#C3D9FF',
        center: {
            visible: false,
            withLabel: false,
            fixed: false,
            name: ''
        }
    },

    /* special options for circumcircle sector of 3 points */
    circumcirclesector: {
        useDirection: true,
        fillColor: '#00FF00',
        highlightFillColor: '#00FF00',
        fillOpacity: 0.3,
        highlightFillOpacity: 0.3,
        strokeColor : '#0000ff',
        highlightStrokeColor : '#C3D9FF',
        point: {
            visible: false,
            fixed: false,
            withLabel: false,
            name: ''
        }
    },
    
    /* special conic options */
    conic : {
        fillColor : 'none',
        highlightFillColor : 'none',
        strokeColor : '#0000ff',
        highlightStrokeColor : '#C3D9FF',
        foci: {
            // points
            fixed: false,
            visible: false,
            withLabel: false,
            name: ''
        }
    },

    /* special curve options */
    curve : {
        strokeWidth : 1,
        strokeColor : '#0000ff',
        fillColor: 'none',
        
        /**#@+
         * @visprop
         */

       /**
        * The data points of the curve are not connected with straight lines but with bezier curves.
        * @name JXG.Curve#handDrawing
        * @type Boolean
        * @default false
        */
        handDrawing: false,

        /**
         * The curveType is set in @see generateTerm and used in {@link JXG.Curve#updateCurve}.
         * Possible values are <ul>
         * <li>'none'</li>
         * <li>'plot': Data plot</li>
         * <li>'parameter': we can not distinguish function graphs and parameter curves</li>
         * <li>'functiongraph': function graph</li>
         * <li>'polar'</li>
         * <li>'implicit' (not yet)</li></ul>
         * Only parameter and plot are set directly. Polar is set with setProperties only.
         * @name JXG.Curve#curveType
         */
        curveType: null,
        RDPsmoothing : false,     // Apply the Ramer-Douglas-Peuker algorithm
        numberPointsHigh : 1600,  // Number of points on curves after mouseUp
        numberPointsLow : 400,    // Number of points on curves after mousemove
        doAdvancedPlot : true    // Use the algorithm by Gillam and Hohenwarter
                                 // It is much slower, but the result is better

        /**#@-*/
    },

    glider: {},

    /* special grid options */
    grid : {
        /**#@+
         * @visprop
         */

        /* grid styles */
        needsRegularUpdate : false,
        hasGrid : false,
        gridX : 1,
        gridY : 1,
        strokeColor : '#C0C0C0',
        strokeOpacity : '0.5',
        strokeWidth: 1,
        dash : 0,    // dashed grids slow down the iPad considerably
        /* snap to grid options */
        
        /**
         * @deprecated
         */
        snapToGrid : false,
        /**
         * @deprecated
         */
        snapSizeX : 10,
        /**
         * @deprecated
         */
        snapSizeY : 10

        /**#@-*/
    },

    /* special grid options */
    image: {
        imageString : null,
        fillOpacity: 1.0
    },
    
    /* special options for incircle of 3 points */
    incircle : {
        fillColor : 'none',
        highlightFillColor : 'none',
        strokeColor : '#0000ff',
        highlightStrokeColor : '#C3D9FF',
        center : {               // center point
            visible: false,
            fixed: false,
            withLabel: false,
            name: ''
        }
    },

    /* special options for integral */
    integral: {
        withLabel: true,    // Show integral value as text
        strokeWidth: 0,
        strokeOpacity: 0,
        curveleft: {    // Start point
            visible: true
        },
        baseleft: {    // Start point
            visible: false,
            fixed: false,
            withLabel: false,
            name: ''
        },
        curveright: {      // End point
            visible: true
        },
        baseright: {      // End point
            visible: false,
            fixed: false,
            withLabel: false,
            name: ''
        },
        label: {
            fontSize: 20
        }
    },

    /* special legend options */
    legend: {
        /**
         * @visprop
         */
        style: 'vertical',
        labels: ['1','2','3','4','5','6','7','8'],
        colors: ['#B02B2C','#3F4C6B','#C79810','#D15600','#FFFF88','#C3D9FF','#4096EE','#008C00']
    },

    /* special line options */
    line : {
        /**#@+
         * @visprop
         */

        firstArrow : false,
        lastArrow : false,
        straightFirst : true,
        straightLast : true,
        fillColor : 'none',               // Important for VML on IE
        highlightFillColor : 'none',  // Important for VML on IE
        strokeColor : '#0000ff',
        highlightStrokeColor : '#888888',
        withTicks: false,

        /**#@-*/

        point1 : {                  // Default values for point1 if created by line
            visible: false, 
            withLabel: false, 
            fixed: false,
            name: ''
        },
        point2 : {                  // Default values for point2 if created by line
            visible: false, 
            withLabel: false, 
            fixed: false,
            name: ''
        },
        ticks : {
            drawLabels : true,
            drawZero : false,
            insertTicks : false,
            minTicksDistance : 50,
            maxTicksDistance : 300,
            minorHeight : 4,          // if <0: full width and height
            majorHeight : -1,         // if <0: full width and height
            minorTicks : 4,
            defaultDistance : 1,
            strokeOpacity : 0.3
        },
        /* absolute label offset from anchor */
        labelOffsets: [10,10]
    },

    /* special options for locus curves */
    locus : {
        /**#@+
         * @visprop
         */

        translateToOrigin: false,
        translateTo10: false,
        stretch: false,
        toOrigin: null,
        to10: null

        /**#@-*/
    },
    
    /* special options for parallel lines */
    parallel : {
        strokeColor: '#000000' // Parallel line
    },

    /* special perpendicular options */
    perpendicular : {
        strokeColor: '#000000', // Perpendicular line
        straightFirst: true,
        straightLast: true
    },

    /* special perpendicular options */
    perpendicularsegment : {
        strokeColor: '#000000', // Perpendicular segment
        straightFirst: false,
        straightLast: false,
        point : {               // Perpendicular point
            visible: false,
            fixed: true,
            withLabel: false,
            name: ''
        }
    },

    /* special point options */
    point : {
        /**#@+
         * @visprop
         */

    	withLabel: true,

        /**
         * This attribute was used to determined the point layout. It was derived from GEONExT and was
         * replaced by {@link JXG.Point#face} and {@link JXG.Point#size}.
         * @see JXG.Point#face
         * @see JXG.Point#size
         * @type Number
         * @default JXG.Options.point#style
         * @name JXG.Point#style
         * @deprecated
         */
        style : 5,

        /**
         * There are different point styles which differ in appearance.
         * Posssible values are
         * <table><tr><th>Value</th></tr>
         * <tr><td>cross</td></tr>
         * <tr><td>circle</td></tr>
         * <tr><td>square</td></tr>
         * <tr><td>plus</td></tr>
         * <tr><td>diamond</td></tr>
         * <tr><td>triangleUp</td></tr>
         * <tr><td>triangleDown</td></tr>
         * <tr><td>triangleLeft</td></tr>
         * <tr><td>triangleRight</td></tr>
         * </table>
         * @type string
         * @see JXG.Point#setStyle
         * @default circle
         * @name JXG.Point#face
         */
        face : 'o',

        /**
         * Determines the size of a point.
         * Means radius resp. half the width of a point (depending on the face).
         * @see JXG.Point#face
         * @type number
         * @see JXG.Point#setStyle
         * @default 3
         * @name JXG.Point#size
         */
        size : 3,
        fillColor : '#ff0000',
        highlightFillColor : '#EEEEEE',
        strokeWidth: 2,
        strokeColor : '#ff0000',
        highlightStrokeColor : '#C3D9FF',
        zoom: false,             // Change the point size on zoom

        /**
         * If true, the infobox is shown on mouse over, else not.
         * @name JXG.Point#showInfobox
         * @type Boolean
         * @default true
         */
        showInfobox: true,

        draft: false,
        
        /**
         * List of attractor elements. If the distance of the point is less than
         * attractorDistance the point is made to glider of this element.
         * @type array
         * @name JXG.Point#attractors
         * @default empty
         */
        attractors: [],
        
        /**
         * If the distance of the point to one of its attractors is less 
         * than this number the point will be a glider on this 
         * attracting element. 
         * If set to zero nothing happens.
         * @type number
         * @name JXG.Point#attractorDistance
         * @default 0
         */
        attractorDistance: 0.0,
        
        /**
         * If the distance of the point to one of its attractors is at least 
         * this number the point will be released from being a glider on the
         * attracting element. 
         * If set to zero nothing happens.
         * @type number
         * @name JXG.Point#snatchDistance
         * @default 0
         */
        snatchDistance: 0.0,
        
        /**
         * If set to true, the point will snap to a grid defined by
         * {@link JXG.Point#snapSizeX} and {@link JXG.Point#snapSizeY}.
         * @see JXG.Point#snapSizeX
         * @see JXG.Point#snapSizeY
         * @type Boolean
         * @name JXG.Point#snapToGrid
         * @default false
         */
        snapToGrid: false,

        /**
         * Defines together with {@link JXG.Point#snapSizeY} the grid the point snaps on to.
         * The point will only snap on values multiple to snapSizeX in x and snapSizeY in y direction.
         * If this value is equal to or less than <tt>0</tt>, it will use the grid displayed by the major ticks
         * of the default ticks of the default x axes of the board.
         * @see JXG.Point#snapToGrid
         * @see JXG.Point#snapSizeY
         * @see JXG.Board#defaultAxes
         * @type Number
         * @name JXG.Point#snapSizeX
         * @default 1
         */
        snapSizeX: 1,

        /**
         * Defines together with {@link JXG.Point#snapSizeX} the grid the point snaps on to.
         * The point will only snap on values multiple to snapSizeX in x and snapSizeY in y direction.
         * If this value is equal to or less than <tt>0</tt>, it will use the grid displayed by the major ticks
         * of the default ticks of the default y axes of the board.
         * @see JXG.Point#snapToGrid
         * @see JXG.Point#snapSizeX
         * @see JXG.Board#defaultAxes
         * @type Number
         * @name JXG.Point#snapSizeY
         * @default 1
         */
        snapSizeY: 1

        /**#@-*/
    },

    /* special polygon options */
    polygon : {
        /**#@+
         * @visprop
         */

        /**
         * If <tt>true</tt>, moving the mouse over inner points triggers hasPoint.
         * @see JXG.GeometryElement#hasPoint
         * @name JXG.Polygon#hasInnerPoints
         * @type Boolean
         * @default false
         */
        hasInnerPoints: false,
        fillColor : '#00FF00',
        highlightFillColor : '#00FF00',
        fillOpacity : 0.3,
        highlightFillOpacity : 0.3,

        /**
         * Is the polygon bordered by lines?
         * @type Boolean
         * @name JXG.Polygon#withLines
         * @default true
         */
        withLines: true,

        /**#@-*/

        borders: {
            withLabel: false,
		    strokeWidth: 1,
		    highlightStrokeWidth: 1,
            // Polygon layer + 1
            layer: 5
        },
        
        /**
         *  Points for regular polygons
         */ 
        vertices : {
            withLabel: true,
            strokeColor: '#ff0000',
            fillColor: '#ff0000',
            fixed: true
        }
    },

    /* special options for riemann sums */
    riemannsum: {
        withLabel:false,
        fillOpacity:0.3,
        fillColor:'#ffff00'
    },

    /* special sector options */
    sector : {
        fillColor: '#00FF00',
        highlightFillColor: '#00FF00',
        fillOpacity: 0.3,
        highlightFillOpacity: 0.3
    },

    semicircle : {
        midpoint: {
            visible: false,
            withLabel: false,
            fixed: false,
            name: ''
        }
    },

    /* special slider options */
    slider : {
        /**#@+
         * @visprop
         */

        /**
         * The slider only returns multiples of this value, e.g. for discrete values set this property to <tt>1</tt>. For
         * continuous results set this to <tt>-1</tt>.
         * @memberOf Slider.prototype
         * @name snapWidth
         * @type Number
         */
        snapWidth: -1,      // -1 = deactivated

        /**
         * The precision of the slider value displayed in the optional text.
         * @memberOf Slider.prototype
         * @name precision
         * @type Number
         */
        precision: 2,
        firstArrow : false,
        lastArrow : false,
        withTicks: true,
        withLabel: true,

        layer: 9,
        showInfobox: false,
        name : '',
        visible: true,
        strokeColor : '#000000',
        highlightStrokeColor : '#888888',
        fillColor : '#ffffff',
        highlightFillColor : 'none',
        size: 6,

        /**#@-*/
            
        point1: {
            needsRegularUpdate : false,
            showInfobox: false,
            withLabel: false,
            visible: false,
            fixed: true,
            name: ''
        },
        point2: {
            needsRegularUpdate : false,
            showInfobox: false,
            withLabel: false,
            visible: false,
            fixed: true,
            name: ''
        },
        baseline: {
            needsRegularUpdate : false,
            name : '',
            strokeWidth: 1,
            strokeColor : '#000000',
            highlightStrokeColor : '#888888'
        },
        /* line ticks options */
        ticks : {
            needsRegularUpdate : false,
            drawLabels : false,
            drawZero : true,
            insertTicks : true,
            minorHeight : 4,          // if <0: full width and height
            majorHeight : 10,        // if <0: full width and height
            minorTicks : 0,
            defaultDistance : 1,
            strokeOpacity : 1,
            strokeWidth: 1,
            strokeColor : '#000000'
        }, 
        highline: {
            strokeWidth: 3,
            name : '',
            strokeColor : '#000000',
            highlightStrokeColor : '#888888'
        },
        label: {
            strokeColor: '#000000'
        }
    },
    
    /* special text options */
    text : {
        /**#@+
         * @visprop
         */

        fontSize : 12,
        digits: 2,
        isLabel: false,
        strokeColor : '#000000',
        useASCIIMathML : false,
        useMathJax : false,
        display : 'html',                    //'html' or 'internal'
        cssClass : 'JXGtext',
        highlightCssClass : 'JXGtext',
        withLabel: false

        /**#@-*/
    },
    
    /* special options for trace curves */
    tracecurve : {
        /**#@+
         * @visprop
         */
        strokeColor: '#000000',
        fillColor: 'none',
        numberPoints: 100

        /**#@-*/
    },

    /*special turtle options */
    turtle : {
        strokeWidth : 1,
		fillColor: 'none',
		strokeColor: '#000000',
		arrow : {
			strokeWidth: 2,
			withLabel: false,
			strokeColor: '#ff0000'
		}
    },


    /**
      * Abbreviations of properties. Setting the shortcut means setting abbreviated properties
      * to the same value.
      * It is used in JXG.GeometryElement#setProperty and in
      * the constructor JXG.GeometryElement.
      * Attention: In Options.js abbreviations are not allowed.
      */
    shortcuts : {
        color: ['strokeColor', 'fillColor'],
        opacity: ['strokeOpacity', 'fillOpacity'],
        highlightColor: ['highlightStrokeColor', 'highlightFillColor'],
        highlightOpacity: ['highlightStrokeOpacity', 'highlightFillOpacity'],
        strokeWidth: ['strokeWidth', 'highlightStrokeWidth']
    }
    
};