<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.lntwww.de/index.php?action=history&amp;feed=atom&amp;title=Benutzer%3ABastian</id>
	<title>Benutzer:Bastian - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://www.lntwww.de/index.php?action=history&amp;feed=atom&amp;title=Benutzer%3ABastian"/>
	<link rel="alternate" type="text/html" href="https://www.lntwww.de/index.php?title=Benutzer:Bastian&amp;action=history"/>
	<updated>2026-05-02T07:40:55Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in LNTwww</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://www.lntwww.de/index.php?title=Benutzer:Bastian&amp;diff=14606&amp;oldid=prev</id>
		<title>Bastian: Addition periodischer Signale</title>
		<link rel="alternate" type="text/html" href="https://www.lntwww.de/index.php?title=Benutzer:Bastian&amp;diff=14606&amp;oldid=prev"/>
		<updated>2017-09-10T16:44:46Z</updated>

		<summary type="html">&lt;p&gt;Addition periodischer Signale&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Periodendauer T0 periodischer Signale&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;&lt;br /&gt;
        body {&lt;br /&gt;
            display: flex;&lt;br /&gt;
            justify-content: center;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        input {&lt;br /&gt;
            height: 30px;&lt;br /&gt;
            width: 60px;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        input[type=&amp;quot;checkbox&amp;quot;] {&lt;br /&gt;
            height: 20px;&lt;br /&gt;
            width: 20px;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .flex-center {&lt;br /&gt;
            display: flex;&lt;br /&gt;
            justify-content: center;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .text-center {&lt;br /&gt;
            text-align: center;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .label-y-axis {&lt;br /&gt;
            display: flex;&lt;br /&gt;
            justify-content: flex-start;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .grid {&lt;br /&gt;
            display: flex;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .align-vertical {&lt;br /&gt;
            display: flex;&lt;br /&gt;
            align-items: center;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .margin-left-1 {&lt;br /&gt;
            margin-left: 5px;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .margin-right-2 {&lt;br /&gt;
            margin-right: 10px;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .margin-bottom-1 {&lt;br /&gt;
            margin-bottom: 10px;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .margin-top-1 {&lt;br /&gt;
            margin-top: 5px;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .boarderedall {&lt;br /&gt;
            border: 1px solid black;&lt;br /&gt;
            padding: 5px;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .bordered {&lt;br /&gt;
            border: 1px solid red;&lt;br /&gt;
            padding: 5px;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .color-blue {&lt;br /&gt;
            color: blue;&lt;br /&gt;
            font-weight: 600;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .color-red {&lt;br /&gt;
            color: red;&lt;br /&gt;
            font-weight: 600;&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body onload=&amp;quot;canvasWidthWithDelay()&amp;quot; onresize=&amp;quot;calculateWidth()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;text-center boarderedall&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Periodendauer T&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; periodischer Signale&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Input fields --&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;margin-bottom-1 flex-center&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;margin-right-2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;i&amp;gt;A&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt; 1&amp;lt;/sub&amp;gt; = &amp;lt;input onclick=&amp;quot;drawGraph()&amp;quot;&lt;br /&gt;
                                           type=&amp;quot;number&amp;quot;&lt;br /&gt;
                                           id=&amp;quot;a1&amp;quot;&lt;br /&gt;
                                           placeholder=&amp;quot;a1&amp;quot;&lt;br /&gt;
                                           value=&amp;quot;0.5&amp;quot;&lt;br /&gt;
                                           min=&amp;quot;0&amp;quot;&lt;br /&gt;
                                           max=&amp;quot;1&amp;quot; step=&amp;quot;0.05&amp;quot;&amp;gt; V&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;margin-right-2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;i&amp;gt;f&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt; 1&amp;lt;/sub&amp;gt; = &amp;lt;input onclick=&amp;quot;drawGraph()&amp;quot; type=&amp;quot;number&amp;quot; id=&amp;quot;f1&amp;quot; placeholder=&amp;quot;f1&amp;quot; value=&amp;quot;1&amp;quot;&lt;br /&gt;
                                           min=&amp;quot;0&amp;quot;&lt;br /&gt;
                                           max=&amp;quot;10&amp;quot; step=&amp;quot;0.1&amp;quot;&amp;gt; kHz&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;margin-right-2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;i&amp;gt;&amp;amp;#966;&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt; 1&amp;lt;/sub&amp;gt; = &amp;lt;input onclick=&amp;quot;drawGraph()&amp;quot; type=&amp;quot;number&amp;quot; id=&amp;quot;phi1&amp;quot; placeholder=&amp;quot;phi1&amp;quot;&lt;br /&gt;
                                                value=&amp;quot;0&amp;quot;&lt;br /&gt;
                                                min=&amp;quot;-180&amp;quot; max=&amp;quot;180&amp;quot;&lt;br /&gt;
                                                step=&amp;quot;5&amp;quot;&amp;gt; Grad&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;margin-bottom-1 flex-center&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;margin-right-2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;i&amp;gt;A&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt; 2&amp;lt;/sub&amp;gt; = &amp;lt;input onclick=&amp;quot;drawGraph()&amp;quot; type=&amp;quot;number&amp;quot; id=&amp;quot;a2&amp;quot; placeholder=&amp;quot;a2&amp;quot; value=&amp;quot;0.5&amp;quot;&lt;br /&gt;
                                           min=&amp;quot;0&amp;quot;&lt;br /&gt;
                                           max=&amp;quot;1&amp;quot; step=&amp;quot;0.05&amp;quot;&amp;gt; V&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;margin-right-2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;i&amp;gt;f&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt; 2&amp;lt;/sub&amp;gt; = &amp;lt;input onclick=&amp;quot;drawGraph()&amp;quot; type=&amp;quot;number&amp;quot; id=&amp;quot;f2&amp;quot; placeholder=&amp;quot;f2&amp;quot; value=&amp;quot;2&amp;quot;&lt;br /&gt;
                                           min=&amp;quot;0&amp;quot;&lt;br /&gt;
                                           max=&amp;quot;10&amp;quot; step=&amp;quot;0.1&amp;quot;&amp;gt; kHz&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;margin-right-2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;i&amp;gt;&amp;amp;#966;&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt; 2&amp;lt;/sub&amp;gt; = &amp;lt;input onclick=&amp;quot;drawGraph()&amp;quot; type=&amp;quot;number&amp;quot; id=&amp;quot;phi2&amp;quot; placeholder=&amp;quot;phi2&amp;quot;&lt;br /&gt;
                                                value=&amp;quot;90&amp;quot;&lt;br /&gt;
                                                min=&amp;quot;-180&amp;quot; max=&amp;quot;180&amp;quot;&lt;br /&gt;
                                                step=&amp;quot;5&amp;quot;&amp;gt; Grad&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;margin-bottom-1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Formel für x(t) --&amp;gt;&lt;br /&gt;
        &amp;lt;span class=&amp;quot;bordered&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;i&amp;gt;x(t)&amp;lt;/i&amp;gt; = &amp;lt;i&amp;gt;A&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;#8901; &amp;lt;i&amp;gt;cos&amp;lt;/i&amp;gt; (2&amp;amp;#960;&amp;lt;i&amp;gt;f&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;#8901; &amp;lt;i&amp;gt;t&amp;lt;/i&amp;gt; - &amp;lt;i&amp;gt;&amp;amp;#966;&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;) + &amp;lt;i&amp;gt;A&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
            &amp;amp;#8901;&lt;br /&gt;
            cos (2&amp;amp;#960; &amp;lt;i&amp;gt;f&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; &amp;amp;#8901;  &amp;lt;i&amp;gt;t&amp;lt;/i&amp;gt; - &amp;lt;i&amp;gt;&amp;amp;#966;&amp;lt;/i&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;)&lt;br /&gt;
        &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ausgabe Periodendauer, Funktionswerte x(t) und Eingabefeld t --&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;margin-bottom-1 flex-center&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;margin-right-2 align-vertical&amp;quot;&amp;gt;&lt;br /&gt;
            t = &amp;lt;input onclick=&amp;quot;displayY(); drawGraph();&amp;quot; type=&amp;quot;number&amp;quot; id=&amp;quot;t&amp;quot; placeholder=&amp;quot;t&amp;quot; value=&amp;quot;0.5&amp;quot; min=&amp;quot;0&amp;quot;&lt;br /&gt;
                       max=&amp;quot;10&amp;quot;&lt;br /&gt;
                       step=&amp;quot;0.02&amp;quot;&amp;gt; ms&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;margin-right-2 align-vertical color-red&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;span&amp;gt;x(t) = &amp;lt;span id=&amp;quot;y-value&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; V&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;margin-right-2 align-vertical color-blue&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;span&amp;gt;T&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = &amp;lt;span id=&amp;quot;t0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ms&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Beschriftung x-Achse--&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;label-y-axis&amp;quot;&amp;gt; x(t) / V&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;grid&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
            &amp;lt;canvas width=&amp;quot;1000&amp;quot; height=&amp;quot;400&amp;quot; id=&amp;quot;graph-view&amp;quot;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;align-vertical&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;span class=&amp;quot;margin-left-1&amp;quot;&amp;gt;t / ms&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div class=&amp;quot;flex-center&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;label class=&amp;quot;align-vertical&amp;quot; onclick=&amp;quot;drawGraph()&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;input type=&amp;quot;checkbox&amp;quot; id=&amp;quot;show-grid-layout&amp;quot; checked&amp;gt; Gitter anzeigen&lt;br /&gt;
        &amp;lt;/label&amp;gt;&lt;br /&gt;
        &amp;lt;label class=&amp;quot;align-vertical margin-left-1&amp;quot; onclick=&amp;quot;drawGraph()&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;input type=&amp;quot;checkbox&amp;quot; id=&amp;quot;show-coordinates&amp;quot; checked&amp;gt;&lt;br /&gt;
            Koordinatensystem anzeigen&lt;br /&gt;
        &amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
        Abszisse&amp;lt;input type=&amp;quot;number&amp;quot;&lt;br /&gt;
                       step=&amp;quot;1&amp;quot;&lt;br /&gt;
                       min=&amp;quot;5&amp;quot;&lt;br /&gt;
                       max=&amp;quot;12&amp;quot;&lt;br /&gt;
                       value=&amp;quot;12&amp;quot;&lt;br /&gt;
                       id=&amp;quot;abscissa&amp;quot;&lt;br /&gt;
                       onclick=&amp;quot;drawGraph()&amp;quot;&amp;gt;&lt;br /&gt;
        Ordinaten&amp;lt;input type=&amp;quot;number&amp;quot;&lt;br /&gt;
                        class=&amp;quot;margin-left-1&amp;quot;&lt;br /&gt;
                        step=&amp;quot;0.5&amp;quot;&lt;br /&gt;
                        min=&amp;quot;0.5&amp;quot;&lt;br /&gt;
                        max=&amp;quot;2&amp;quot;&lt;br /&gt;
                        value=&amp;quot;2&amp;quot;&lt;br /&gt;
                        id=&amp;quot;ordinates&amp;quot;&lt;br /&gt;
                        onclick=&amp;quot;drawGraph()&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    // Define fields&lt;br /&gt;
    var a1, a2, f1, f2, phi1, phi2, canvas, ctx, canvasWidth, canvasHeight, showGrid, currentT;&lt;br /&gt;
&lt;br /&gt;
    // Constants&lt;br /&gt;
    var offset = 30; // in px&lt;br /&gt;
    var maxX = 12; // Abscissa&lt;br /&gt;
    var maxY = 2; // Ordinate&lt;br /&gt;
&lt;br /&gt;
    drawGraph();&lt;br /&gt;
&lt;br /&gt;
    function canvasWidthWithDelay() {&lt;br /&gt;
        setTimeout(calculateWidth(), 1000);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function calculateWidth() {&lt;br /&gt;
        var currentBodyWidth = document.getElementsByTagName('body')[0].offsetWidth;&lt;br /&gt;
        console.log('Calculating width', currentBodyWidth);&lt;br /&gt;
        document.getElementById('graph-view').width = Math.round(currentBodyWidth * 0.8);&lt;br /&gt;
        drawGraph();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function fillVariables() {&lt;br /&gt;
        a1 = parseFloat(document.getElementById('a1').value);&lt;br /&gt;
        a2 = parseFloat(document.getElementById('a2').value);&lt;br /&gt;
        f1 = parseFloat(document.getElementById('f1').value);&lt;br /&gt;
        f2 = parseFloat(document.getElementById('f2').value);&lt;br /&gt;
        phi1 = parseFloat(document.getElementById('phi1').value);&lt;br /&gt;
        phi2 = parseFloat(document.getElementById('phi2').value);&lt;br /&gt;
        currentT = parseFloat(document.getElementById('t').value);&lt;br /&gt;
        maxX = parseFloat(document.getElementById('abscissa').value);&lt;br /&gt;
        maxY = parseFloat(document.getElementById('ordinates').value);&lt;br /&gt;
&lt;br /&gt;
        validateInputs();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        canvas = document.getElementById('graph-view');&lt;br /&gt;
        canvasWidth = canvas.width;&lt;br /&gt;
        canvasHeight = canvas.height;&lt;br /&gt;
        ctx = canvas.getContext(&amp;quot;2d&amp;quot;);&lt;br /&gt;
        showGrid = document.getElementById('show-grid-layout').checked;&lt;br /&gt;
        showCoordinates = document.getElementById('show-coordinates').checked;&lt;br /&gt;
&lt;br /&gt;
        console.log('Updated variables', a1, a2, f1, f2, phi1, phi2);&lt;br /&gt;
        console.log('Canvas size', canvasHeight, ' x ', canvasWidth);&lt;br /&gt;
        console.log('Show grid', showGrid);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function drawGraph() {&lt;br /&gt;
        fillVariables();&lt;br /&gt;
        displayY();&lt;br /&gt;
        displayT0();&lt;br /&gt;
        ctx.clearRect(0, 0, canvasWidth, canvasHeight);&lt;br /&gt;
        ctx.strokeStyle = &amp;quot;#000000&amp;quot;;&lt;br /&gt;
        ctx.fillStyle = &amp;quot;#000000&amp;quot;;&lt;br /&gt;
        if (showCoordinates) {&lt;br /&gt;
            // Draw x-axis&lt;br /&gt;
            ctx.beginPath();&lt;br /&gt;
            ctx.moveTo(0, canvasHeight / 2);&lt;br /&gt;
            ctx.lineTo(canvasWidth, canvasHeight / 2);&lt;br /&gt;
            ctx.stroke();&lt;br /&gt;
&lt;br /&gt;
            // Draw y-axis&lt;br /&gt;
            ctx.beginPath();&lt;br /&gt;
            ctx.moveTo(offset, offset);&lt;br /&gt;
            ctx.lineTo(offset, canvasHeight);&lt;br /&gt;
            ctx.stroke();&lt;br /&gt;
&lt;br /&gt;
            // Draw triangle for x-axis&lt;br /&gt;
            ctx.beginPath();&lt;br /&gt;
            ctx.moveTo(canvasWidth, canvasHeight / 2);&lt;br /&gt;
            ctx.lineTo(canvasWidth - offset, canvasHeight / 2 + 5);&lt;br /&gt;
            ctx.lineTo(canvasWidth - offset, canvasHeight / 2 - 5);&lt;br /&gt;
            ctx.fill();&lt;br /&gt;
&lt;br /&gt;
            // Draw triangle for y-axis&lt;br /&gt;
            ctx.beginPath();&lt;br /&gt;
            ctx.moveTo(offset, 0);&lt;br /&gt;
            ctx.lineTo(offset - 5, offset);&lt;br /&gt;
            ctx.lineTo(offset + 5, offset);&lt;br /&gt;
            ctx.fill();&lt;br /&gt;
        }&lt;br /&gt;
        // Draw labels and grid&lt;br /&gt;
        var font_size = 15;&lt;br /&gt;
        var width_x = (canvasWidth - 2 * offset) / maxX;&lt;br /&gt;
        ctx.font = font_size + &amp;quot;px Arial&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        // Draw vertical lines&lt;br /&gt;
        for (var i = 0; i &amp;lt; maxX; i++) {&lt;br /&gt;
            if (showCoordinates) {&lt;br /&gt;
                ctx.fillText(i, offset - font_size / 2 + width_x * i, canvasHeight / 2 + 15);&lt;br /&gt;
            }&lt;br /&gt;
            if (showGrid) {&lt;br /&gt;
                ctx.beginPath();&lt;br /&gt;
                ctx.lineWidth = 1;&lt;br /&gt;
                ctx.strokeStyle = &amp;quot;lightgrey&amp;quot;;&lt;br /&gt;
                ctx.moveTo(offset + width_x * (i + 1), 0);&lt;br /&gt;
                ctx.lineTo(offset + width_x * (i + 1), canvasHeight);&lt;br /&gt;
                ctx.stroke();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        var width_y = (canvasHeight - 2 * offset) / (maxY * 2); // Called T in Mathematics&lt;br /&gt;
        // Draw horizontal lines&lt;br /&gt;
        for (var i = 2; i &amp;gt;= -2; i -= 0.5) {&lt;br /&gt;
            if (i != 0 || !showCoordinates) {&lt;br /&gt;
                if (showCoordinates) {&lt;br /&gt;
                    ctx.fillText(i, offset - font_size - 10, offset + width_y * (i * -1 + maxY));&lt;br /&gt;
                }&lt;br /&gt;
                if (showGrid) {&lt;br /&gt;
                    ctx.beginPath();&lt;br /&gt;
                    ctx.lineWidth = 1;&lt;br /&gt;
                    ctx.strokeStyle = &amp;quot;lightgrey&amp;quot;;&lt;br /&gt;
                    ctx.moveTo(offset, offset + width_y * (i * -1 + maxY));&lt;br /&gt;
                    ctx.lineTo(canvasWidth - offset, offset + width_y * (i * -1 + maxY));&lt;br /&gt;
                    ctx.stroke();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Draw t0&lt;br /&gt;
        ctx.beginPath();&lt;br /&gt;
        ctx.lineWidth = 2;&lt;br /&gt;
        ctx.strokeStyle = &amp;quot;#0000FF&amp;quot;;&lt;br /&gt;
        ctx.moveTo(offset + width_x * getT0(), 0);&lt;br /&gt;
        ctx.lineTo(offset + width_x * getT0(), canvasHeight);&lt;br /&gt;
        ctx.stroke();&lt;br /&gt;
        // Write t0 label&lt;br /&gt;
        ctx.fillStyle = '#0000FF';&lt;br /&gt;
        ctx.fillText(getT0() + ' ms', (offset + width_x * getT0()) + 5, 20);&lt;br /&gt;
        ctx.fillStyle = 'black'; // Reset color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        var firstResult = periodicalSignal(0, a1, a2, f1, f2, phi1, phi2);&lt;br /&gt;
&lt;br /&gt;
        ctx.beginPath();&lt;br /&gt;
        ctx.lineWidth = 1;&lt;br /&gt;
        ctx.strokeStyle = &amp;quot;#FF0000&amp;quot;;&lt;br /&gt;
        ctx.moveTo(offset, canvasHeight / 2 - firstResult * width_y);&lt;br /&gt;
        for (var t = 0; t &amp;lt; maxX; t += 0.01) {&lt;br /&gt;
            var result = periodicalSignal(t, a1, a2, f1, f2, phi1, phi2);&lt;br /&gt;
            ctx.lineTo(offset + width_x * t, canvasHeight / 2 - result * width_y);&lt;br /&gt;
        }&lt;br /&gt;
        ctx.stroke();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Draw T0&lt;br /&gt;
        var result = periodicalSignal(currentT, a1, a2, f1, f2, phi1, phi2);&lt;br /&gt;
        console.log('Current T is ', currentT, result);&lt;br /&gt;
        // Draw dot&lt;br /&gt;
        ctx.beginPath();&lt;br /&gt;
        ctx.fillStyle = 'red';&lt;br /&gt;
        ctx.arc(offset + width_x * currentT, canvasHeight / 2 - result * width_y, 3, 0, 2 * Math.PI, true);&lt;br /&gt;
        ctx.fill();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function periodicalSignal(t, a1, a2, f1, f2, phi1, phi2) {&lt;br /&gt;
        return a1 * Math.cos(2 * Math.PI * f1 * t - toRadians(phi1)) + a2 * Math.cos(2 * Math.PI * f2 * t - toRadians(phi2));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function toRadians(angle) {&lt;br /&gt;
        return angle * (Math.PI / 180);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function displayY() {&lt;br /&gt;
        var currentT = parseFloat(document.getElementById('t').value);&lt;br /&gt;
        var result = periodicalSignal(currentT, a1, a2, f1, f2, phi1, phi2);&lt;br /&gt;
        var result_rounded = Math.round(result * 1000) / 1000;&lt;br /&gt;
        document.getElementById('y-value').textContent = result_rounded;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function displayT0() {&lt;br /&gt;
        var result_rounded2 = Math.round(getT0() * 100) / 100;&lt;br /&gt;
        document.getElementById('t0').textContent = result_rounded2;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getT0() {&lt;br /&gt;
&lt;br /&gt;
        // Get A and B&lt;br /&gt;
&lt;br /&gt;
        var A, B, C, Q;  // A = smallest frequency, B = Highest frequency; C = GCD; Q = Helper for GCD&lt;br /&gt;
        if (f1 &amp;lt; f2) {&lt;br /&gt;
            A = f1;&lt;br /&gt;
            B = f2;&lt;br /&gt;
        } else {&lt;br /&gt;
            B = f1;&lt;br /&gt;
            A = f2;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        if (f1 === 0) {&lt;br /&gt;
            console.log('T0 is  now ', 1 / f2);&lt;br /&gt;
            return 1 / f2;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (f2 === 0) {&lt;br /&gt;
            return 1 / f1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Find Greatest common divisor&lt;br /&gt;
        for (var x = 1; x &amp;lt;= 10; x++) {&lt;br /&gt;
            C = A / x; // KHZ&lt;br /&gt;
            Q = B / C;&lt;br /&gt;
&lt;br /&gt;
//            if ((1 / C) == 15) {&lt;br /&gt;
//                return 5;&lt;br /&gt;
//            }&lt;br /&gt;
//            if ((1 / C) == 30) {&lt;br /&gt;
//                return 10;&lt;br /&gt;
//            }&lt;br /&gt;
&lt;br /&gt;
            if (isInt(Q)) {&lt;br /&gt;
                return 1 / C;&lt;br /&gt;
            }&lt;br /&gt;
            if (x === 10) {&lt;br /&gt;
                return 10;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    function isInt(n) { // Überprüft ob Zahl gerade ist&lt;br /&gt;
        return n % 1 === 0;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function validateInputs() {&lt;br /&gt;
        // Upper boundaries&lt;br /&gt;
        if (a1 &amp;gt; 1) {&lt;br /&gt;
            document.getElementById('a1').value = 1;&lt;br /&gt;
            a1 = 1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (a2 &amp;gt; 1) {&lt;br /&gt;
            document.getElementById('a2').value = 1;&lt;br /&gt;
            a2 = 1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (f1 &amp;gt; 10) {&lt;br /&gt;
            document.getElementById('f1').value = 10;&lt;br /&gt;
            f1 = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (f2 &amp;gt; 10) {&lt;br /&gt;
            document.getElementById('f2').value = 10;&lt;br /&gt;
            f2 = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (phi1 &amp;gt; 180) {&lt;br /&gt;
            document.getElementById('phi1').value = 180;&lt;br /&gt;
            phi1 = 180;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (phi2 &amp;gt; 180) {&lt;br /&gt;
            document.getElementById('phi2').value = 180;&lt;br /&gt;
            phi2 = 180;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Lower boundaries&lt;br /&gt;
        if (a1 &amp;lt; 0) {&lt;br /&gt;
            document.getElementById('a1').value = 0;&lt;br /&gt;
            a1 = 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (a2 &amp;lt; 0) {&lt;br /&gt;
            document.getElementById('a2').value = 0;&lt;br /&gt;
            a2 = 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (f1 &amp;lt; 0) {&lt;br /&gt;
            document.getElementById('f1').value = 0;&lt;br /&gt;
            f1 = 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (f2 &amp;lt; 0) {&lt;br /&gt;
            document.getElementById('f2').value = 0;&lt;br /&gt;
            f2 = 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (phi1 &amp;lt; -180) {&lt;br /&gt;
            document.getElementById('phi1').value = -180;&lt;br /&gt;
            phi1 = -180;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (phi2 &amp;lt; -180) {&lt;br /&gt;
            document.getElementById('phi2').value = -180;&lt;br /&gt;
            phi2 = -180;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (maxX &amp;lt; 1) {&lt;br /&gt;
            document.getElementById('abscissa').value = 1;&lt;br /&gt;
            maxX = 1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (maxY &amp;lt; 0.5) {&lt;br /&gt;
            document.getElementById('ordinates').value = 0.5;&lt;br /&gt;
            maxY = 0.5;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    document.addEventListener('keydown', function (key) {&lt;br /&gt;
        if (key.keyCode === 13) { // Enter pressed&lt;br /&gt;
            console.log('Enter pressed!');&lt;br /&gt;
            drawGraph();&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
		
	</entry>
</feed>