JSXGraph - WmV - Seminar - Linien
Nachdem die Punkte eingeführt worden sind, können wir uns den Linien widmen. Diese ermöglichen es uns später geometrische Formen gestalten zu können oder Strecken oder Geraden ganz nach unserem Wunsch zu gestalten. Das Schema ist hierbei fast identisch.
Schema
var Liniename = board.create('line', [[x_1,y_1], [x_2,y_2]], {});
Liniename: Gib der Linie einen Namen
line: Eine Art Kennwort, dass dem Script sagt, dass nun eine Linie erstellt wird
[x_1,y_1]: "Startpunkt" der Linie
[x_2,y_2]: "Endpunkt" der Linie
{}: Hier kommen weitere Eigenschaften zum Punkt rein
Hierbei ist es wichtig zu erwähnen, dass die Start- und Endpunkte ohne weitere Attribute keine wirklichen Start- und Endpunkte sind. Vielmehr geben sie an, durch welche zwei Punkte eine Linie gehen soll. Wir haben im Normalfall also immer eine Gerade. Um nun aber eine Strecke zu erhalten, müssen der Linie Eigenschaften gegeben werden.
Eigenschaften / Attribute
color:'FARBE' Verändert die Farbe
fixed: true/false Fixiert die Linie
strokeWidth: ZAHL Verändert die Größe
straightFirst: true/false Linie geht durch Startpunkt oder nicht
straightLast: true/false Linie geht durch Endpunkt oder nicht
firstArrow: true/false Verändert das Aussehen am Startpunkt
lastArrow: true/false Verändert das Aussehen am Endpunkt
dash: ZAHL Gestrichelte Linie
Beispiele
Vektor
Auf diese Weise können nun beispielsweise Vektoren erstellt werden. Für den Fall, dass die Punkte störend sind, können die durch das Attribut visible ausgeblendet werden.
//Punkte erstellen
var p01 = board.create('point', [-5,-3], {visible: false});
var p02 = board.create('point', [4,5], {});
//Punkte mittels Linie verbinden
var line_p01_p02 = board.create('line', [p01,p02], {straightFirst: false, straightLast: false, firstArrow: true});
Damit das mit den Attributen der Punkt ein wenig einfacher geht und am Ende auch übersichtlicher ist, können wir eine Punktvariable erstellen und die dann als Punkt im Linienschema einbauen.
Flächen
Auch Flächen können nun mit Hilfe von Punkten und Linien erstellt werden. Bei komplexeren Flächen kann es irgendwann sehr mühselig sein, alle Linien erstellen zu müssen. Eine einfachere und kompaktere Version liefert „polygon“ anstelle von „line“. Mehr dazu auf der Flächen-Seite.
//Punkte erstellen
var p_square_01 = b2.create('point', [-5,-5], {size: 1});
var p_square_02 = b2.create('point', [-5,5], {size: 1});
var p_square_03 = b2.create('point', [5,-5], {size: 1});
var p_square_04 = b2.create('point', [3,3], {size: 1});
//Linien erstellen
var l_square_01 = b2.create('line', [p_square_01, p_square_02], {straightFirst: false, straightLast: false, strokeWidth: 5})
var l_square_02 = b2.create('line', [p_square_02, p_square_04], {straightFirst: false, straightLast: false, strokeWidth: 5})
var l_square_03 = b2.create('line', [p_square_03, p_square_01], {straightFirst: false, straightLast: false, strokeWidth: 5})
var l_square_04 = b2.create('line', [p_square_04, p_square_03], {straightFirst: false, straightLast: false, strokeWidth: 5})
Damit das mit den Attributen der Punkt ein wenig einfacher geht und am Ende auch übersichtlicher ist, können wir eine Punktvariable erstellen und die dann als Punkt im Linienschema einbauen.
Körper
Körper können ebenso auf diese Weise gebaut werden, wenn die Linien im Hintergrund mit Hilfe von „dash“ gestrichelt dargestellt werden.
//Punkte erstellen
var p_triangle_01 = b2.create('point', [-5,-3], {size: 1});
var p_triangle_02 = b2.create('point', [1,-1], {size: 1});
var p_triangle_03 = b2.create('point', [4,-5], {size: 1});
var p_triangle_04 = b2.create('point', [0,6], {size: 1});
//Linien erstellen
var l_triangle_01 = b2.create('line', [p_triangle_01, p_triangle_02], {straightFirst: false, straightLast: false, strokeWidth: 5, dash:3})
var l_triangle_02 = b2.create('line', [p_triangle_02, p_triangle_03], {straightFirst: false, straightLast: false, strokeWidth: 5, dash:3})
var l_triangle_03 = b2.create('line', [p_triangle_03, p_triangle_01], {straightFirst: false, straightLast: false, strokeWidth: 5})
var l_triangle_04 = b2.create('line', [p_triangle_01, p_triangle_04], {straightFirst: false, straightLast: false, strokeWidth: 5})
var l_triangle_05 = b2.create('line', [p_triangle_02, p_triangle_04], {straightFirst: false, straightLast: false, strokeWidth: 5, dash:3})
var l_triangle_06 = b2.create('line', [p_triangle_03, p_triangle_04], {straightFirst: false, straightLast: false, strokeWidth: 5})
Damit das mit den Attributen der Punkt ein wenig einfacher geht und am Ende auch übersichtlicher ist, können wir eine Punktvariable erstellen und die dann als Punkt im Linienschema einbauen.
Körper 2.0 (WIP)
WIP
Matrix und mathematische Symbole
Linien eignen sich auch dafür, bestimmte Klammern für Matrizen zu erstellen, was später noch wichtig sein wird. Auch Rechensymbole lassen sich mit dem bisherigen Wissen problemlos erstellen und individuell anpassen.
//Rechte Matrix-Klammer
var p_matrix_r_top_01 = b.create('point', [1,2], {visible: false});
var p_matrix_r_top_02 = b.create('point', [0,2], {visible: false});
var p_matrix_r_down_01 = b.create('point', [1,-2], {visible: false});
var p_matrix_r_down_02 = b.create('point', [0,-2], {visible: false});
var l_matrix_top = b.create('line', [p_matrix_r_top_01,p_matrix_r_top_02], {straightFirst: false, straightLast: false, strokeWidth: 4, color: 'black'})
var l_matrix_vert = b.create('line', [p_matrix_r_top_01,p_matrix_r_down_01], {straightFirst: false, straightLast: false, strokeWidth: 4, color: 'black'})
var l_matrix_vert = b.create('line', [p_matrix_r_down_01,p_matrix_r_down_02], {straightFirst: false, straightLast: false, strokeWidth: 4, color: 'black'})
//Linke Matrix-Klammer
var p_matrix_l_top_01 = b.create('point', [-3,2], {visible: false});
var p_matrix_l_top_02 = b.create('point', [-2,2], {visible: false});
var p_matrix_l_down_01 = b.create('point', [-3,-2], {visible: false});
var p_matrix_l_down_02 = b.create('point', [-2,-2], {visible: false});
var l_matrix_top = b.create('line', [p_matrix_l_top_01,p_matrix_l_top_02], {straightFirst: false, straightLast: false, strokeWidth: 4, color: 'black'})
var l_matrix_vert = b.create('line', [p_matrix_l_top_01,p_matrix_l_down_01], {straightFirst: false, straightLast: false, strokeWidth: 4, color: 'black'})
var l_matrix_vert = b.create('line', [p_matrix_l_down_01,p_matrix_l_down_02], {straightFirst: false, straightLast: false, strokeWidth: 4, color: 'black'})
//Einträge der Matrix
var matrix_a11 = b.create('text', [-2.5, 1, 'a11']);
var matrix_a12 = b.create('text', [-0.5, 1, 'a12']);
var matrix_a21 = b.create('text', [-2.5, -1, 'a21']);
var matrix_a = b.create('text', [-0.5, -1, 'a22']);
//Additionszeichen
var plus_01 = b.create('line', [[3,3], [5,3]], {straightFirst: false, straightLast: false, strokeWidth: 4, color: 'black'})
var plus_02 = b.create('line', [[4,2], [4,4]], {straightFirst: false, straightLast: false, strokeWidth: 4, color: 'black'})
//Multiplikationszeichen
var mult = b.create('point', [-5,4], {size: 10, name:'', color: 'black'})
Mathematische Symbole lassen sich natürlich auch mit
var plus = b.create('text', [4, 2, '+'], {fontSize: 100});
var l_bracket = b.create('text', [4, -3, '['], {fontSize: 100});
var r_bracket = b.create('text', [7, -3, ']'], {fontSize: 100});
erstellen, jedoch ist hier der Nachteil, dass die Liniendicke oder das Aussehen der Klammer nicht so individuell einstellbar ist, wie die obere Variante, wo die Linien einzeln erstellt werden.