|
|
Zeile 1: |
Zeile 1: |
− | <p> | + | <!DOCTYPE html> |
− | {{BlaueBox|TEXT=
| |
− | <B style="font-size:18px">Funktion:</B>
| |
− | $$x(t) = A_1\cdot cos\Big(2\pi f_1\cdot t- \frac{2\pi}{360}\cdot \phi_1\Big)+A_2\cdot cos\Big(2\pi f_2\cdot t- \frac{2\pi}{360}\cdot \phi_2\Big)$$
| |
− | }}
| |
− | </p>
| |
− | | |
| <html> | | <html> |
| <head> | | <head> |
− | <meta charset="utf-8" />
| |
− | <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.6/jsxgraphcore.js"></script>
| |
− | <!-- <script type="text/javascript" src="https://www.lntwww.de/MathJax/unpacked/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full,local/mwMathJaxConfig"></script> -->
| |
− | <!-- <script type="text/javascript" src="https://cdn.rawgit.com/mathjax/MathJax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full"></script> -->
| |
| <style> | | <style> |
− | .button { | + | .wrapper{ |
− | background-color: black;
| + | display:grid; |
− | border: none;
| + | grid-template-columns: 70% 30%; |
− | color: white;
| + | grid-column-gap:1em; |
− | font-family: arial;
| |
− | padding: 8px 20px;
| |
− | text-align: center;
| |
− | text-decoration: none;
| |
− | display: inline-block;
| |
− | font-size: 16px;
| |
− | border-radius: 15px;
| |
| } | | } |
− | .button:active {
| |
− | background-color: #939393;
| |
− | }
| |
− | </style>
| |
− | </head>
| |
− |
| |
− | <body onload="drawNow()">
| |
− | <!-- Resetbutton, Checkbox und Formel -->
| |
− | <p>
| |
− | <input type="checkbox" id="gridbox" onclick="showgrid();" checked> <label for="gridbox">Gitterlinien Zeigen</label>
| |
− | <button class="button" onclick="drawNow();">Reset</button>
| |
− | </p>
| |
− | <div id="cnfBoxHtml" class="jxgbox" style="width:600px; height:150px; float:top; margin:-10px 20px 100px 0px;"></div>
| |
− | <div id="pltBoxHtml" class="jxgbox" style="width:600px; height:600px; border:1px solid black; margin:-100px 20px 10px 0px;"></div>
| |
− |
| |
− | <!-- Ausgabefelder -->
| |
− |
| |
− | <table>
| |
− | <tr>
| |
− | <td>$x(t)$= <span id="x(t)"></span> $\quad$ </td>
| |
− | <td>$x(t+ T_0)$= <span id="x(t+T_0)"></span> $\quad$ </td>
| |
− | <td>$x(t+2T_0)$= <span id="x(t+2T_0)"></span> $\quad$ </td>
| |
− | <td>$x_{\text{max}}$= <span id="x_max"></span> $\quad$ </td>
| |
− | <td style="color:blue;">$T_0$= <span id="T_0"></span> $\quad$ </td>
| |
− | </tr>
| |
− | </table>
| |
| | | |
− | | + | .wrapper >div{ |
− | <script type="text/javascript">
| + | background:#eee; |
− | function drawNow() {
| + | padding:1em |
− | // Grundeinstellungen der beiden Applets
| |
− | JXG.Options.text.useMathJax = true; | |
− | cnfBox = JXG.JSXGraph.initBoard('cnfBoxHtml', {
| |
− | showCopyright: false, showNavigation: false, axis: false,
| |
− | grid: false, zoom: { enabled: false }, pan: { enabled: false },
| |
− | boundingbox: [-1, 2.2, 12.4, -2.2]
| |
− | });
| |
− | pltBox = JXG.JSXGraph.initBoard('pltBoxHtml', {
| |
− | showCopyright: false, axis: false,
| |
− | zoom: { factorX: 1.1, factorY: 1.1, wheel: true, needshift: true, eps: 0.1 },
| |
− | grid: false, boundingbox: [-0.5, 2.2, 12.4, -2.2]
| |
− | });
| |
− | cnfBox.addChild(pltBox);
| |
− | // Einstellungen der Achsen
| |
− | xaxis = pltBox.create('axis', [[0, 0], [1, 0]], {
| |
− | name: '$\\dfrac{t}{T}$',
| |
− | withLabel: true, label: { position: 'rt', offset: [-25, -10] }
| |
− | });
| |
− | yaxis = pltBox.create('axis', [[0, 0], [0, 1]], {
| |
− | name: '$x(t)$',
| |
− | withLabel: true, label: { position: 'rt', offset: [10, -5] }
| |
− | });
| |
− | // Erstellen der Schieberegler
| |
− | sldA1 = cnfBox.create('slider', [ [-0.7, 1.5], [3, 1.5], [0, 0.5, 1] ], {
| |
− | suffixlabel: '$A_1=$',
| |
− | unitLabel: 'V', snapWidth: 0.01
| |
− | }),
| |
− | sldF1 = cnfBox.create('slider', [ [-0.7, 0.5], [3, 0.5], [0, 1, 10] ], {
| |
− | suffixlabel: '$f_1=$',
| |
− | unitLabel: 'kHz', snapWidth: 0.1
| |
− | }),
| |
− | sldPHI1 = cnfBox.create('slider', [ [-0.7, -0.5], [3, -0.5], [-180, 0, 180] ], {
| |
− | suffixlabel: '$\\phi_1=$',
| |
− | unitLabel: 'Grad', snapWidth: 5
| |
− | }),
| |
− | sldA2 = cnfBox.create('slider', [ [6, 1.5], [9.7, 1.5], [0, 0.5, 1] ], {
| |
− | suffixlabel: '$A_2=$',
| |
− | unitLabel: 'V', snapWidth: 0.01
| |
− | }),
| |
− | sldF2 = cnfBox.create('slider', [ [6, 0.5], [9.7, 0.5], [0, 2, 10] ], {
| |
− | suffixlabel: '$f_2=$',
| |
− | unitLabel: 'kHz', snapWidth: 0.1
| |
− | }),
| |
− | sldPHI2 = cnfBox.create('slider', [ [6, -0.5], [9.7, -0.5], [-180, 90, 180] ], {
| |
− | suffixlabel: '$\\phi_2=$',
| |
− | unitLabel: 'Grad', snapWidth: 5
| |
− | }),
| |
− | sldT = cnfBox.create('slider', [ [-0.7, -1.5], [3, -1.5], [0, 0, 10] ], {
| |
− | suffixlabel: '$t=$',
| |
− | unitLabel: 's', snapWidth: 0.2
| |
− | }),
| |
− | // Definition der Funktion
| |
− | signaldarstellung = pltBox.create('functiongraph', [function(x) {
| |
− | return (sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * x - 2 * Math.PI * sldPHI1.Value() / 360) + sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * x - 2 * Math.PI * sldPHI2.Value() / 360))
| |
− | }], {
| |
− | strokeColor: "red"
| |
− | });
| |
− | // Definition des Punktes p_T0, des Hilfspunktes p_T0h und der Geraden l_T0 für Periodendauer T_0
| |
− | p_T0 = pltBox.create('point', [
| |
− | function() {
| |
− | return (Math.round(getT0() * 100) / 100);
| |
− | },
| |
− | function() {
| |
− | return sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * (Math.round(getT0() * 100) / 100) - 2 * Math.PI * sldPHI1.Value() / 360) +
| |
− | sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * (Math.round(getT0() * 100) / 100) - 2 * Math.PI * sldPHI2.Value() / 360);
| |
− | }],
| |
− | { color: "blue", fixed: true, label: false, size: 1, name: '' }
| |
− | );
| |
− | p_T0h = pltBox.create('point',
| |
− | [function() { return (Math.round(getT0() * 100) / 100); }, 2],
| |
− | { visible: false, color: "blue", fixed: true, label: false, size: 1, name: '' }
| |
− | );
| |
− | l_T0 = pltBox.create('line', [p_T0, p_T0h])
| |
− | // Bestimmung des Wertes T_0 mit der Funktion von Siebenwirth
| |
− | setInterval(function() {
| |
− | document.getElementById("T_0").innerHTML = Math.round(getT0() * 100) / 100;
| |
− | }, 50);
| |
− | function isInt(n) {
| |
− | return n % 1 === 0;
| |
| } | | } |
− | function getT0() { | + | .wrapper >div:nth-child(odd){ |
− | var A, B, C, Q;
| + | background:#add; |
− | if (sldF1.Value() < sldF2.Value()) {
| |
− | A = sldF1.Value();
| |
− | B = sldF2.Value();
| |
− | } else {
| |
− | B = sldF1.Value();
| |
− | A = sldF2.Value();
| |
− | }
| |
− | // console.log('Berechne T0 mit A=' + A, 'B=' + B);
| |
− | for (var x = 1; x <= 100; x++) {
| |
− | C = A / x;
| |
− | Q = B / C;
| |
− | // console.log(x + '. Durchgang: C = ' + C, 'Q = ' + Q);
| |
− | if (isInt(Q)) {
| |
− | // console.log('Q ist eine Ganzzahl!!! T0 ist damit ', 1 / C);
| |
− | return 1 / C;
| |
− | }
| |
− | if (x === 10) {
| |
− | return 10;
| |
− | }
| |
− | if ((1 / C) > 10)
| |
− | return 10
| |
− | }
| |
| } | | } |
− | // Ausgabe des Wertes x(t)
| + | |
− | setInterval(function() {
| + | </style> |
− | document.getElementById("x(t)").innerHTML = Math.round((sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * sldT.Value() - 2 * Math.PI * sldPHI1.Value() / 360) + sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * sldT.Value() - 2 * Math.PI * sldPHI2.Value() /
| + | </head> |
− | 360)) * 1000) / 1000;
| + | <body> |
− | }, 50);
| + | <div class="wrapper"> |
− | // Ausgabe des Wertes x(t+T_0)
| + | <div> |
− | setInterval(function() {
| + | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit ame |
− | document.getElementById("x(t+T_0)").innerHTML = Math.round((sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * (sldT.Value() + Math.round(getT0() * 1000) / 1000) - sldPHI1.Value()) + sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * (sldT.Value() +
| + | </div> |
− | Math.round(getT0() * 1000) / 1000) - sldPHI2.Value())) * 1000) / 1000;
| + | <div> |
− | }, 50);
| + | afjldfakdf |
− | // Ausgabe des Wertes x(t+2T_0)
| + | </div> |
− | setInterval(function() {
| + | </div> |
− | document.getElementById("x(t+2T_0)").innerHTML = Math.round((sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * (sldT.Value() + 2 * Math.round(getT0() * 1000) / 1000) - sldPHI1.Value()) + sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * (sldT.Value() +
| + | <body> |
− | 2 * Math.round(getT0() * 1000) / 1000) - sldPHI2.Value())) * 1000) / 1000;
| |
− | }, 50);
| |
− | // Ausgabe des Wertes x_max
| |
− | setInterval(function() {
| |
− | var x = new Array(50000);
| |
− | for (var i = 0; i < 50001; i++) {
| |
− | x[i] = Math.round((sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * (i / 1000) - 2 * Math.PI * sldPHI1.Value() / 360) + sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * (i / 1000) - 2 * Math.PI * sldPHI2.Value() / 360)) * 1000) / 1000;
| |
− | }
| |
− | document.getElementById("x_max").innerHTML = Math.max.apply(Math, x);
| |
− | }, 50);
| |
− | };
| |
− | // Definition der Funktion zum An- und Ausschalten des Koordinatengitters
| |
− | function showgrid() {
| |
− | if (gridbox.checked) {
| |
− | xaxis = pltBox.create('axis', [ [0, 0], [1, 0] ], {});
| |
− | yaxis = pltBox.create('axis', [ [0, 0], [0, 1] ], {});
| |
− | } else {
| |
− | xaxis.removeTicks(xaxis.defaultTicks);
| |
− | yaxis.removeTicks(yaxis.defaultTicks);
| |
− | }
| |
− | pltBox.fullUpdate();
| |
− | };
| |
− | </script> | |
− | </body> | |
| </html> | | </html> |
| | | |
| {{Display}} | | {{Display}} |