Triangle axiom halving
From JSXGraph Wiki
Midpoint
The underlying JavaScript code
JXG.Options.label.autoPosition = true;
JXG.Options.text.useMathJax = true;
JXG.Options.text.fontSize = 24;
var board = JXG.JSXGraph.initBoard("jxgbox", {boundingbox: [-5,5,5,-5], showCopyright:false, showNavigation:false});
var p = board.create('point', [-3,-3], {name:'\\(p_0\\)'});
var q = board.create('point', [3, -3], {name:'\\(q\\)'});
var r = board.create('point', [2, 2], {name:'\\(r\\)'});
var s = board.create('midpoint', [q, r], {name:'\\(s\\)'});
var pr = board.create('arrow', [p, r], {withLabel: true, name:'\\(\\vec{v}\\)', label:{position: 'top', parse: false}, lastArrow: {type: 4, size: 8}});
var pq = board.create('arrow', [p, q], {withLabel: true, name:'\\(\\vec{u}\\)', label:{position: 'top'}, lastArrow: {type: 4, size: 8}});
var rq = board.create('arrow', [r, q], {});
var ps = board.create('arrow', [p, s], {withLabel: true, name:'\\(\\frac{1}{2}(\\vec{u} + \\vec{v})\\)', label:{position: 'top'}, lastArrow: {type: 4, size: 8}});