Médianes |
<div id='boxMed1' class='jxgbox' style='width:350px; height:350px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script>
var board = JXG.JSXGraph.initBoard('boxMed1', {boundingbox: [-1.5, 2, 1.5, -1], keepaspectratio:true,showCopyright:false,showNavigation:false,pan:{enabled:false}});
var A = board.create('point', [1, 0] );
var B = board.create('point', [-1, 0], {label:{offset:[-15,-5]}} );
var C = board.create('point', [0.2, 1.5]);
var pol = board.create('polygon',[A,B,C], { fillColor: '#FFFF00', lines: { strokeWidth: 2, strokeColor: '#009256' } });
var mAB = board.create('midpoint', [A, B], {name:'C\'',size:0.8,label:{offset:[5,-15],fontSize:10},strokeColor:'blue'});
var mAC = board.create('midpoint', [A, C], {name:'B\'',size:0.8,label:{offset:[5,13],fontSize:10},strokeColor:'blue'});
var mBC = board.create('midpoint', [C, B], {name:'A\'',size:0.8,label:{offset:[-15,-5],fontSize:10},strokeColor:'blue'});
var l1 = board.create('line',[mAB,C]);
var l2 = board.create('line',[mAC,B]);
var l3 = board.create('line',[mBC,A]);
var G = board.create('intersection',[l1,l2],{name:'G',label:{offset:[5,10]}})
</script>
|
Médiatrices |
<div id='boxMediatrice' class='jxgbox' style='width:350px; height:350px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script>
var board = JXG.JSXGraph.initBoard('boxMediatrice', {boundingbox: [-1.5, 2, 1.5, -1], keepaspectratio:true,showCopyright:false,showNavigation:false,pan:{enabled:false}});
var A = board.create('point', [1, 0] );
var B = board.create('point', [-1, 0], {label:{offset:[-15,-5]}} );
var C = board.create('point', [0.2, 1.5]);
var pol = board.create('polygon',[A,B,C], { fillColor: '#FFFF00', lines: { strokeWidth: 2, strokeColor: '#009256' } });
var mAB = board.create('midpoint', [A, B], {name:'C\'',size:0.8,label:{offset:[5,-15],fontSize:10},strokeColor:'blue'});
var mAC = board.create('midpoint', [A, C], {name:'B\'',size:0.8,label:{offset:[5,13],fontSize:10},strokeColor:'blue'});
var mBC = board.create('midpoint', [C, B], {name:'A\'',size:0.8,label:{offset:[-15,-5],fontSize:10},strokeColor:'blue'});
var medAB = board.create('perpendicular', [pol.borders[0], mAB]);
var medAC = board.create('perpendicular', [pol.borders[2], mAC]);
var medBC = board.create('perpendicular', [pol.borders[1], mBC]);
var O = board.create('intersection',[medAB,medBC],{name:'O',label:{offset:[10,10]}});
</script>
|
Hauteurs |
<div id='boxHauteur' class='jxgbox' style='width:350px; height:350px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script>
var board = JXG.JSXGraph.initBoard('boxHauteur', {boundingbox: [-1.5, 2, 1.5, -1], keepaspectratio:true,showCopyright:false,showNavigation:false,pan:{enabled:false}});
var A = board.create('point', [1, 0] );
var B = board.create('point', [-1, 0], {label:{offset:[-15,5]}} );
var C = board.create('point', [0.2, 1.5] );
var pol = board.create('polygon',[A,B,C], { fillColor: '#FFFF00', lines: { strokeWidth: 2, strokeColor: '#009256' } });
var hC = board.create('perpendicular', [pol.borders[0], C]);
var hA = board.create('perpendicular', [pol.borders[1], A]);
var hB = board.create('perpendicular', [pol.borders[2], B]);
var c1 = board.create('intersection',[hC,pol.borders[0]],{name:'C_1',label:{offset:[-17,-10]}});
var a1 = board.create('intersection',[hA,pol.borders[1]],{name:'A_1',label:{offset:[-22,-2]}});
var b1 = board.create('intersection',[hB,pol.borders[2]],{name:'B_1',label:{offset:[2,15]}});
var H = board.create('intersection',[hC,hA],{name:'H',label:{offset:[5,15]}});
</script>
|
Distance d'un point à une droite |
<div id='boxDistPtD' class='jxgbox' style='width:350px; height:350px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script>
var board12 = JXG.JSXGraph.initBoard('boxDistPtD', {boundingbox: [-1.5, 2, 1.5, -1], keepaspectratio:true,showCopyright:false,showNavigation:false,pan:{enabled:false}});
var A12 = board12.create('point', [0, 1.3] ,{visible:true,fixed:false});
var B = board12.create('point', [-1, 0], {label:{offset:[-15,5]},visible:false} );
var C = board12.create('point', [1, 0], {visible:false});
var l1 = board12.create('line',[B,C],{straightFirst:true});
var pl1 = board12.create('perpendicular',[l1,A12],{visible:false});
var H = board12.create('intersection',[l1,pl1],{name:'H'});
var M12 = board12.create('point', [1.1, 0], {slideObject: l1,name:'M'});
var s1 = board12.create('segment',[A12,M12],{strokeColor:'black',strokeWidth:1,dash:2});
var s2 = board12.create('segment',[A12,H],{strokeColor:'gray',strokeWidth:1,dash:1});
var t1 = board12.create('text',[-1,1.6,function(){var l=Math.sqrt(Math.pow(M12.X()-A12.X(),2)+Math.pow(M12.Y()-A12.Y(),2));return 'AM = '+l;}]);
</script>
|
Bissectrice |
<div id='boxBis' class='jxgbox' style='width:350px; height:350px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script>
var board = JXG.JSXGraph.initBoard('boxBis', {boundingbox: [-1.5, 2.3, 1.5, -0.2], keepaspectratio:true,showCopyright:false,showNavigation:false,pan:{enabled:false}});
var A = board.create('point', [1, 0] ,{visible:false,fixed:true});
var B = board.create('point', [-1, 0], {label:{offset:[-15,5]},visible:false,fixed:true} );
var C = board.create('point', [-0.5, 1.3], {visible:false,fixed:true});
var l1 = board.create('line',[B,A],{straightFirst:false});
var l2 = board.create('line',[B,C],{straightFirst:false});
var a1 = board.create('angle',[A,B,C],{name:'',label:{fontSize:0}});
var bB = board.create('bisector', [A, B, C],{straightFirst:false});
var M = board.create('point', [1.1, 0], {slideObject: bB,name:'M',label:{offset:[-5,10]}});
var p1 = board.create('perpendicular',[l1,M],{straightFirst:false,visible:false});
var M1 = board.create('intersection',[l1,p1],{name:'M_1',label:{offset:[5,-10]}});
var s1 = board.create('segment',[M,M1],{dash:2,strokeColor:'gray',strokeWidth:1});
var p2 = board.create('perpendicular',[l2,M],{straightFirst:false,visible:false});
var M2 = board.create('intersection',[l2,p2],{name:'M_2',label:{offset:[-22,5]}});
var s2 = board.create('segment',[M,M2],{dash:2,strokeColor:'gray',strokeWidth:1});
var t1 = board.create('text',[-1.45,2.1,function(){var l=Math.sqrt(Math.pow(M.X()-M1.X(),2)+Math.pow(M.Y()-M1.Y(),2));return 'MM_1 = '+l;}]);
var t2 = board.create('text',[-1.45,1.9,function(){var l=Math.sqrt(Math.pow(M.X()-M2.X(),2)+Math.pow(M.Y()-M2.Y(),2));return 'MM_2 = '+l;}]);
</script>
|
Bissectrices |
<div id='boxTriangleBis' class='jxgbox' style='width:350px; height:350px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script>
var board = JXG.JSXGraph.initBoard('boxTriangleBis', {boundingbox: [-1.5, 2, 1.5, -1], keepaspectratio:true,showCopyright:false,showNavigation:false,pan:{enabled:false}});
var A = board.create('point', [1, 0] );
var B = board.create('point', [-1, -0.65], {label:{offset:[-15,5]}} );
var C = board.create('point', [0.2, 1.47]);
var pol = board.create('polygon',[A,B,C], { fillColor: '#FFFF00', lines: { strokeWidth: 2, strokeColor: '#009256' } });
var bB = board.create('bisector', [A, B, C],{straightFirst:true,strokeWidth:1,dash:2});
var bC = board.create('bisector', [B, C, A],{straightFirst:true,strokeWidth:1,dash:2});
var bA = board.create('bisector', [C, A, B],{straightFirst:true,strokeWidth:1,dash:2});
var Ib = board.create('intersection',[bB,bA],{name:'I'});
var pAB = board.create('perpendicular',[pol.borders[0],Ib],{visible:false});
var I1b = board.create('intersection',[pol.borders[0],pAB],{name:'I_1',visible:true,label:{offset:[-2,-15]}});
var s1 = board.create('segment',[I1b,Ib],{strokeWidth:0.5,strokeColor:'red'});
var pAC = board.create('perpendicular',[pol.borders[2],Ib],{visible:false});
var I2b = board.create('intersection',[pol.borders[2],pAC],{name:'I_2',visible:true,label:{offset:[15,-5]}});
var s2 = board.create('segment',[I2b,Ib],{strokeWidth:0.5,strokeColor:'red'});
var pBC = board.create('perpendicular',[pol.borders[1],Ib],{visible:false});
var I3b = board.create('intersection',[pol.borders[1],pBC],{name:'I_3',visible:true,label:{offset:[-15,-5]}});
var s3 = board.create('segment',[I3b,Ib],{strokeWidth:0.5,strokeColor:'red'});
var cercleI = board.create('circle',[Ib,I1b]);
</script>
|
Droite d'Euler |
<div id='box' class='jxgbox' style='width:400px; height:400px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script type='text/javascript'>
(function () {
var board = JXG.JSXGraph.initBoard('box', {boundingbox: [-1.5, 2, 1.5, -1], keepaspectratio:true,showCopyright:false});
var cerise = {strokeColor: '#901B77',fillColor: '#CA147A'},
grass = {
strokeColor: '#009256',
fillColor: '#65B72E',
visible: true,
withLabel: true
},
perpendicular = {
strokeColor: 'black',
dash: 1,
strokeWidth: 1,
point: JXG.deepCopy(cerise, {
visible: true,
withLabel: true
})
},
median = {
strokeWidth: 1,
strokeColor: '#333333',
dash:2
},
A = board.create('point', [1, 0], cerise),
B = board.create('point', [-1, 0], cerise),
C = board.create('point', [0.2, 1.5], cerise),
pol = board.create('polygon',[A,B,C], {
fillColor: '#FFFF00',
lines: {
strokeWidth: 2,
strokeColor: '#009256'
}
});
var pABC, pBCA, pCAB, i1;
perpendicular.point.name = 'H_c';
pABC = board.create('perpendicular', [pol.borders[0], C], perpendicular);
perpendicular.point.name = 'H_a';
pBCA = board.create('perpendicular', [pol.borders[1], A], perpendicular);
perpendicular.point.name = 'H_b';
pCAB = board.create('perpendicular', [pol.borders[2], B], perpendicular);
grass.name = 'H';
i1 = board.create('intersection', [pABC, pCAB, 0], grass);
var mAB, mBC, mCA;
cerise.name = 'M_c';
mAB = board.create('midpoint', [A, B], cerise);
cerise.name = 'M_a';
mBC = board.create('midpoint', [B, C], cerise);
cerise.name = 'M_b';
mCA = board.create('midpoint', [C, A], cerise);
var ma, mb, mc, i2;
ma = board.create('segment', [mBC, A], median);
mb = board.create('segment', [mCA, B], median);
mc = board.create('segment', [mAB, C], median);
grass.name = 'S';
i2 = board.create('intersection', [ma, mc, 0], grass);
var c;
grass.name = 'U';
c = board.create('circumcircle',[A, B, C], {
strokeColor: '#000000',
dash: 3,
strokeWidth: 1,
center: grass
});
var euler;
euler = board.create('line', [i1, i2], {
strokeWidth: 2,
strokeColor:'#901B77'
});
board.update();
})();
</script>
|
Quadrilatère |
<div id='jxgbox1' class='jxgbox' style='width:350px; height:350px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script type='text/javascript'>
var brdqu = JXG.JSXGraph.initBoard('jxgbox1', {boundingbox: [-10, 10, 10, -10], showCopyright:false});
var aq = brdqu.create('point', [-2, 1]);
var bq = brdqu.create('point', [-4, -5]);
var cq = brdqu.create('point', [3, -6]);
var dq = brdqu.create('point', [2, 3]);
var pq = brdqu.create('polygon', [aq, bq, cq, dq], {hasInnerPoints: true});
</script>
|
Quadrilatère (repère) |
<div id='jxgboxq' class='jxgbox' style='width:350px; height:350px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script type='text/javascript'>
var brdq = JXG.JSXGraph.initBoard('jxgboxq', {boundingbox:[-2,2,2,-2], axis:true, showCopyright:false});
var pq = [];
for (var i=0; i<4; i++) {
pq.push(brdq.create('point', [Math.random()*3.6-1.8, Math.random()*3.6-1.8]));
}
var pol = brdq.create('polygon',pq,{
withLines:true,
withLabel: false,
label: {offset:[-200,100]} // Pixel values
});
</script>
|
Optimisation |
<div id='grr2' class='jxgbox' style='width:350px; height:350px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script>
var board2 = JXG.JSXGraph.initBoard('grr2', {boundingbox: [-10, 10, 10, -10], showCopyright:false,showNavigation:false,pan:{enabled:false}});
var A2 = board2.create('point',[-8,-8],{fixed: true, name:'A',label:{offset:[-10,-10]}})
var B2 = board2.create('point',[8,-8],{fixed: true, name:'B',label:{offset:[10,-10]}})
var C2 = board2.create('point',[8,8],{fixed: true, name:'C',label:{offset:[10,10]}})
var D2 = board2.create('point',[-8,8],{fixed: true, name:'D',label:{offset:[-10,10]}})
board2.create('segment',[A2,B2])
board2.create('segment',[C2,B2])
board2.create('segment',[C2,D2])
board2.create('segment',[A2,D2])
var M2 = board2.create('point',[-5,-8],{name:'M',label:{offset:[-5,-15]}});
var H2 = board2.create('point',[function (){return M2.X()},function (){return M2.X()}],{name:'',size:0})
var I2 = board2.create('point',[-8,function (){return M2.X()}],{name:'',size:0})
var J2 = board2.create('point',[function (){return (M2.X()+8)/2},function (){return M2.X()}],{name:'',size:0})
board2.create('segment',[B2,J2])
board2.create('segment',[M2,J2])
board2.create('segment',[M2,H2])
board2.create('segment',[I2,H2])
board2.on('move',function (){
if( M2.X()>-8 && M2.X()<8 ){
M2.moveTo( [ M2.X() , -8 ] )
}
if( M2.X()<=-8){
M2.moveTo( [ -8 , -8 ] )
}
if( M2.X()>=8){
M2.moveTo( [ 8 , -8 ] )
}
})
</script>
|
|
Vecteurs |
<div id='jxgboxq6' class='jxgbox' style='width:300px; height:300px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script type='text/javascript'>
var brdq = JXG.JSXGraph.initBoard('jxgboxq6', {boundingbox:[-5,5,5,-5], axis:false, showCopyright:false,showNavigation:false});
var s = brdq.create('slider',[[-4.8,-4.1],[3.5,-4.1],[-6,2,6]],{name:'λ',snapWidth:0.1});
var pA = brdq.create('point',[-0.5,0],{fixed:false,name:'A',size:0.1,label:{offset:[-15,10]}});
var pB = brdq.create('point',[0.5,0],{fixed:false,name:'B',size:0.1,label:{offset:[15,10]}});
var vU = brdq.create('arrow',[pA,pB],{size:4,withLabel:true,name:function(){return '$\\vec{u}$';},label:{offset:[10,-10]}});
var pI = brdq.create('point',[0,-1],{visible:false});
var pC = brdq.create('point',[function(){return 0+(pB.X()-pA.X())*s.Value()},function(){return -1+(pB.Y()-pA.Y())*s.Value()}],{size:0.1,trace:false,strokeColor:'black',name:'C',visible:false});
var vV = brdq.create('arrow',[pI,pC],{size:4,withLabel:true,name:function(){return '$\\vec{v} = \\lambda\\vec{u}$';},label:{offset:[10,-20]}});
</script>
|
Canon |
<div id='jxgbox2' class='jxgbox' style='width:400px; height:350px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script type='text/javascript'>
(function () {
var board = JXG.JSXGraph.initBoard('jxgbox2', {boundingbox: [0, 10, 20, 0], showCopyright: false, showNavigation: false}),
bottom = board.create('image', ['http://jsxgraph.uni-bayreuth.de/wiki/images/1/13/Cannon_bottom.png', [0, 0.3], [2, 1]], {layer: 1}),
muzzle = board.create('image', ['http://jsxgraph.uni-bayreuth.de/wiki/images/e/e4/Cannon_muzzle.png', [0, 1.05], [3, 0.75]], {layer: 0}),
shoot = board.create('text', [11, 9.5, '<button id="shoot">Shoot</button>']),
reset = board.create('text', [15, 9.5, '<button id="reset">Reset</button>']),
rot, rp, cp, cc, cannonball, cbanim, solution, velocity,
animTime = function () {
return 3000;
},
fAngle = function () {
return Math.atan2(cp.Y()-rp.Y(),cp.X()-rp.X());
},
fSolution = function (x) {
var b = fAngle(),
g = 9.81/2;
return Math.tan(b)*(x - cannonball.X()) - g*(Math.pow((x - cannonball.X())/(velocity.Value()*Math.cos(b)), 2)) + cannonball.Y();
},
fAnim = function (t) {
var i = Math.floor(solution.points.length*t/animTime())/*3 + 17*t/animTime()*/,
s = NaN;
if (JXG.exists(solution.points[i]) && solution.points[i].usrCoords[2] > 0) {
s = solution.points[i].usrCoords.slice(1);
}
return s;
};
board.options.animationDelay = 50;
velocity = board.create('slider', [[1, 9.5], [6, 9.5], [0, 5, 15]], {name: 'Velocity'});
cp = board.create('point', [1.4, 1.4], {fixed: true, visible: false});
cc = board.create('circle', [cp, 1.25], {visible: false});
rp = board.create('glider', [0, 1.4, cc], {withLabel: false, showInfobox: false, color: 'black'});
rot = board.create('transform', [fAngle, cp], {type: 'rotate'});
rot.bindTo(muzzle);
cannonball = board.create('point', [3, 1.4], {size: 8, strokeColor: 'black', fillColor: 'gray', withLabel: false, fixed: true});
cbanim = board.create('point', [3, 1.4], {size: 8, strokeColor: 'black', fillColor: 'gray', withLabel: false, fixed: true, visible: false});
rot.bindTo(cannonball);
solution = board.create('plot', [fSolution, function () { return cannonball.X(); }, 20], {visible: true, doAdvancedPlot: false});
JXG.addEvent(document.getElementById('shoot'), 'mouseup', function () {
cannonball.setProperty({
visible: false
});
cbanim.setProperty({
visible: true
});
cbanim.moveTo([cannonball.X(), cannonball.Y()]);
cbanim.moveAlong(fAnim, animTime(), {
callback: function () {
// this is executed when the animation is finished
}
});
}, this);
JXG.addEvent(document.getElementById('reset'), 'mouseup', function () {
board.stopAllAnimation();
cbanim.setProperty({visible: false});
cannonball.setProperty({visible: true});
}, this);
})();
</script>
|
Angles adjacents |
|
Approximation de l'aire du disque |
<div id='jxgboxdi' class='jxgbox' style='width:350px; height:350px;margin:auto;margin-top:20px;margin-bottom:20px;'></div>
<script type='text/javascript'>
var board3 = JXG.JSXGraph.initBoard('jxgboxdi', {boundingbox:[-1.5,2,8,-3], keepaspectratio:true, axis:true, showCopyright:false});
var N = board3.createElement('slider', [[0,1.5],[3,1.5],[1,3,40]], {name:'n',snapWidth:1});
var circ = board3.createElement('circle',[[4,-1.5],1],{strokeWidth:1, strokecolor:'black', strokeWidth:2, fillColor:'#0055ff', fillOpacity:0.3});
var c = board3.createElement('curve', [[0],[0]],{strokecolor:'red', strokeWidth:2});
c.updateDataArray = function() {
var r = 1, n = Math.floor(N.Value()),
x = [0], y = [0],
phi = Math.PI/n,
h = r*Math.cos(phi),
s = r*Math.sin(phi),
i, j,
px = 0, py = 0, sgn = 1,
d = 16,
dt = phi/d,
pt;
for (i=0;i<n;i++) {
for (j=-d;j<=d;j++) {
pt = dt*j;
x.push(px+r*Math.sin(pt));
y.push(sgn*r*Math.cos(pt)-(sgn-1)*h*0.5);
}
px += s;
sgn *= (-1);
}
x.push((n-1)*s);
y.push(h+(sgn-1)*h*0.5);
this.dataX = x;
this.dataY = y;
}
var c2 = board3.createElement('curve', [[0],[0]],{strokecolor:'red', strokeWidth:1});
c2.updateDataArray = function() {
var r = 1, n = Math.floor(N.Value()),
px = circ.midpoint.X(), py = circ.midpoint.Y(),
x = [px], y = [py],
phi = Math.PI/n,
s = r*Math.sin(phi),
i, j,
d = 16,
dt = phi/d,
pt = Math.PI*0.5+phi;
for (i=0;i<n;i++) {
for (j=-d;j<=d;j++) {
x.push(px+r*Math.cos(pt));
y.push(py+r*Math.sin(pt));
pt -= dt;
}
x.push(px);
y.push(py);
pt += dt;
}
this.dataX = x;
this.dataY = y;
}
board3.update();
</script>
|