<p>En travaux pratiques de sciences, Marine étudie le relevé du mouvement circulaire d’un solide animé.<br>La position du point M, centre du solide, est relevée toutes les {ts} ms sur la figure ci-après.</p>
<p>
    <script type="text/javascript" src="https://jsxgraph.org/distrib/jsxgraphcore.js"></script>
</p>
<div id="jxgbox" class="jxgbox" style="width: 500px; height: 500px;">&nbsp;</div>
<p>
    <script type="text/javascript">
        // <![CDATA[
        var brd = JXG.JSXGraph.initBoard('jxgbox', {
            boundingbox: [-5, 5, 5, -5],
            keepaspectratio: true,
            axis: false,
            grid: false,
            showFullscreen: true,
            showNavigation: false,
            showCopyright: false
        });
        //keepaspectratio:true
        var A = [],
            s = [],
            B = [],
            c = [],
            r = [],
            k;
        var axY = brd.create('line', [
            [0, -1],
            [0, 3]
        ], {
            fixed: true,
            color: 'blue'
        });
        var axX = brd.create('line', [
            [-5, 0],
            [5, 0]
        ], {
            fixed: true,
            color: 'blue'
        });
        var p = brd.create('point', [0, 0], {
            visible: false
        });
        var q = brd.create('point', [3, 3], {
            visible: false
        });
        var circ = brd.create('circle', [p, q], {
            fixed: true
        });

        // Create an empty curve
        var ticks = brd.create('curve', [
            [0],
            [0]
        ], {
            strokeWidth: 1,
            strokeColor: 'blue',
            strokeOpacity: 0.5
        });

        // Make ticks out of the curve 
        ticks.updateDataArray = function() {
            var cx = circ.center.X(),
                cy = circ.center.Y(),
                r = circ.Radius(),
                i,
                ticklen = 0.3, // Length of ticks in user space coordinates
                steps = {stp}, // Number of ticks
                d = ticklen * 0.5,
                alpha = 2 * Math.PI / steps;

            this.dataX = [];
            this.dataY = [];
            for (i = 0; i < steps; i++) {
                // Start of a tick
                this.dataX.push(cx + (r - d) * Math.cos(i * alpha));
                this.dataY.push(cy + (r - d) * Math.sin(i * alpha));
                // End of tick
                this.dataX.push(cx + (r + d) * Math.cos(i * alpha));
                this.dataY.push(cy + (r + d) * Math.sin(i * alpha));
                // Interrupt the curve
                this.dataX.push(NaN);
                this.dataY.push(NaN);
            }
        };
        for (k = 0; k < {
                stp
            }; k++) {
            s[k] = brd.create('segment', [A[k], A[(k + 2) % 5]], {
                strokeColor: 'blue',
                strokeWidth: 1
            });
        }
        brd.update();
        // ]]>
    </script>
</p>
<!--source code :https://jsxgraph.org/wiki/index.php?title=Circle_with_ticks

var brd = JXG.JSXGraph.initBoard('jxgbox',{axis:false,boundingbox:[-5,5,5,-5],keepaspectratio:true});

var p = brd.create('point', [0,0]);
var q = brd.create('point', [3,3]);
var circ = brd.create('circle', [p, q]);

// Create an empty curve
var ticks = brd.create('curve', [[0], [0]], 
             {strokeWidth: 1, 
              strokeColor: 'blue',
              strokeOpacity: 0.5});

// Make ticks out of the curve 
ticks.updateDataArray = function() {
    var cx = circ.center.X(),
        cy = circ.center.Y(),
        r = circ.Radius(),
        i, 
        ticklen = 0.3,           // Length of ticks in user space coordinates
        steps = 20,              // Number of ticks
        d = ticklen * 0.5,
        alpha = 2 * Math.PI / steps;

    this.dataX = [];
    this.dataY = [];
    for (i = 0; i < steps; i++) {
        // Start of a tick
        this.dataX.push( cx + (r - d)* Math.cos(i * alpha) );
        this.dataY.push( cy + (r - d) * Math.sin(i * alpha) );
        // End of tick
        this.dataX.push( cx + (r + d) * Math.cos(i * alpha) );
        this.dataY.push( cy + (r + d) * Math.sin(i * alpha) );
        // Interrupt the curve
        this.dataX.push( NaN );
        this.dataY.push( NaN );
    }
};
brd.update();

-->