Quelltext der Konstruktion
board = JXG.JSXGraph.initBoard('jxgbox', {boundingbox:[-4, 6, 8, -4], axis: true, grid: false,
keepaspectratio: true, showcopyright: false});
p1 = board.createElement('point', [0, 0]);
p2 = board.createElement('point', [6, 0]);
p3 = board.createElement('point', [4, 4]);
t1 = board.createElement('triangle', [p1, p2, p3], {strokeWidth: '1px'});
m1 = board.createElement('point', [4, 1.5], {style:2,name:"X"});
l1 = board.createElement('perpendicularpoint', [m1, t1.c]);
l2 = board.createElement('perpendicularpoint', [m1, t1.a]);
l3 = board.createElement('perpendicularpoint', [m1, t1.b]);
t2 = board.createElement('triangle', [l1, l2, l3], {strokeWidth: '1px'});
// Get area of triangle given by the three points A, B, C
getTriangleArea = function(A, B, C, square) {
var a = B.coords.distance(JXG.COORDS_BY_USER, C.coords),
b = A.coords.distance(JXG.COORDS_BY_USER, C.coords),
c = B.coords.distance(JXG.COORDS_BY_USER, A.coords),
s = (typeof square == 'undefined' ? true : square);
if (s)
return (4*a*a*c*c-(a*a+c*c-b*b)*(a*a+c*c-b*b));
else
return Math.sqrt((4*a*a*c*c-(a*a+c*c-b*b)*(a*a+c*c-b*b))/16.);
};
te = board.createElement('text', [-3.8, 5.5, function () { return ("Fläche des Dreiecks EDF: " + getTriangleArea(l1, l2, l3, false)); }]);
// dependency and polynomial generation hacking
m1.ancestors[l1.id] = l1;
m1.ancestors[l2.id] = l2;
m1.ancestors[l3.id] = l3;
m1.ancestors[p1.id] = p1;
m1.ancestors[p2.id] = p2;
m1.ancestors[p3.id] = p3;
m1.generatePolynomial = function () {
var as16 = getTriangleArea(l1, l2, l3),
as = '((('+l2.symbolic.x+')-('+l3.symbolic.x+'))^2+(('+l2.symbolic.y+')-('+l3.symbolic.y+'))^2)',
bs = '((('+l1.symbolic.x+')-('+l3.symbolic.x+'))^2+(('+l1.symbolic.y+')-('+l3.symbolic.y+'))^2)',
cs = '((('+l2.symbolic.x+')-('+l1.symbolic.x+'))^2+(('+l2.symbolic.y+')-('+l1.symbolic.y+'))^2)',
poly = '4*'+as+'*'+cs+'-('+as+'+'+cs+'-'+bs+')*('+as+'+'+cs+'-'+bs+')-('+as16+')';
return ['4*'+as+'*'+cs+'-('+as+'+'+cs+'-'+bs+')*('+as+'+'+cs+'-'+bs+')-('+as16+')'];
};
loc = board.createElement('locus', [m1], {strokeColor: 'red', strokeWidth: '1px'});
createControlElements = function () {
glider = board.createElement('glider', [0, 5, loc]);
lg1 = board.createElement('perpendicularpoint', [glider, t1.a]);
lg2 = board.createElement('perpendicularpoint', [glider, t1.b]);
lg3 = board.createElement('perpendicularpoint', [glider, t1.c]);
tecontrol = board.createElement('text', [-3.8, 5, function () { return ("Fläche des Dreiecks HIJ: " + getTriangleArea(lg1, lg2, lg3, false)); }]);
}