Änderungen von Dokument Interaktiv Besondere Geraden
Zuletzt geändert von Holger Engels am 2024/11/03 09:44
Von Version 1.1
bearbeitet von Holger Engels
am 2024/11/03 09:39
am 2024/11/03 09:39
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 4.1
bearbeitet von Holger Engels
am 2024/11/03 09:44
am 2024/11/03 09:44
Änderungskommentar:
Neuen Anhang linear-function-main-form.html hochladen
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
-
Anhänge (0 geändert, 1 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -1,3 +1,3 @@ 1 -{{html wiki="true"}}2 -<iframe style="width: 100%; min-width: 350px; max-width: 450px; aspect-ratio: 1; border: none" src=" [[attach:linear-function-main-form.html]]"></iframe>1 +{{html clear="false"}} 2 +<iframe style="width: 100%; min-width: 350px; max-width: 450px; aspect-ratio: 1; border: none" src="/xwiki/bin/download/Eingangsklasse/BPE_1_4/Interaktiv%20Besondere%20Geraden/WebHome/linear-function-main-form.html?rev=1.1"></iframe> 3 3 {{/html}}
- linear-function-main-form.html
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.holgerengels - Größe
-
... ... @@ -1,0 +1,1 @@ 1 +3.2 KB - Inhalt
-
... ... @@ -1,0 +1,96 @@ 1 +<!doctype html> 2 +<html lang="de"> 3 +<head> 4 + <title>Lineare Funktion - Hauptform</title> 5 + <meta charset="utf-8"> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" /> 7 + <link rel='stylesheet' type='text/css' href='https://cdn.jsdelivr.net/npm/jsxgraph@latest/distrib/jsxgraph.css'/> 8 + <script src='https://cdn.jsdelivr.net/npm/jsxgraph@latest/distrib/jsxgraphcore.js' type='text/javascript'></script> 9 + 10 + <style> 11 + body { 12 + margin: 0px; 13 + padding: 0px; 14 + overflow: hidden; 15 + } 16 + .container { 17 + display: grid; 18 + grid-template-columns: 1fr; 19 + position: relative; 20 + } 21 + .jxgbox { border-radius: 0px; border: none} 22 + </style> 23 +</head> 24 +<body> 25 + 26 +<div class="container"> 27 + <div id='board' class='jxgbox' style='width: 100%; aspect-ratio: 1'></div> 28 +</div> 29 + 30 +<script type='text/javascript'> 31 + var board = JXG.JSXGraph.initBoard('board', {boundingbox: [-5, 5, 5, -5], axis: true, showNavigation: false, showZoom: false, showCopyright: false, pan: { enabled: false}}); 32 + var a = board.create('point', [-1, -1], {visible: true, name: 'A', snapToGrid: true, snapSizeX: .5, snapSizeY: .5}); 33 + var b = board.create('point', [1, 1], {visible: true, name: 'B', snapToGrid: true, snapSizeX: .5, snapSizeY: .5}); 34 + var g = board.create('line', [a, b], {}); 35 + var p1 = board.create('point', [0, -5], {visible: false,}); 36 + var p2 = board.create('point', [0, 5], {visible: false}); 37 + var l = board.create('line', [p1, p2], {visible: false}); 38 + var i = board.create('intersection', [g, l], {visible: false}); 39 + 40 + 41 + var text = board.create('text', [.5, -4.5, () => { 42 + if (a.X() === b.X()) 43 + return "keine Funktion!"; 44 + 45 + let dx = b.X() - a.X(); 46 + let dy = b.Y() - a.Y(); 47 + let m = dy/dx; 48 + let mi = dy%dx === 0; 49 + let e = "f(x) = "; 50 + 51 + if (m === 0) 52 + return "f(x) = " + b.Y(); 53 + else if (m === 1) 54 + e += "x"; 55 + else if (m === -1) 56 + e += "-x"; 57 + else if (mi) 58 + e += m + "x"; 59 + else { 60 + if (Math.floor(dx) + .5 === dx || Math.floor(dy) + .5 === dy) { 61 + dx *=2; 62 + dy *=2; 63 + } 64 + e += (dy / dx < 0 ? "-" : "") + Math.abs(dy) + "/" + Math.abs(dx) + "x"; 65 + } 66 + let tz = - dy * b.X() + b.Y() * dx; 67 + tz *=4; 68 + if (tz !== 0) { 69 + let tn = dx * 4; 70 + let ts = tz * tn >= 0; 71 + let t = (!ts ? " - " : " + ") + reduceFraction(Math.abs(tz), Math.abs(tn)); 72 + e += t; 73 + } 74 + return e; 75 + }], {fontSize: 1.1, fontUnit: 'em', color: '#D55E00', cssStyle: 'background-color: white'}); 76 + 77 + function reduceFraction(numOne, numTwo) { 78 + var result = ''; 79 + for (var i = Math.max(numOne, numTwo); i > 1; i--) { 80 + if ((numOne % i == 0) && (numTwo % i == 0)) { 81 + numOne /= i; 82 + numTwo /= i; 83 + } 84 + } 85 + if (numTwo === 1) { 86 + result = numOne.toString() 87 + } else { 88 + result = numOne.toString() + '/' + numTwo.toString() 89 + } 90 + return result 91 + } 92 +</script> 93 + 94 +</body> 95 +</html> 96 +