From a3290fb03f0f278967b4adbeed3ab2d8228b1de1 Mon Sep 17 00:00:00 2001 From: Kizarm Date: Mon, 27 Nov 2023 15:19:22 +0100 Subject: [PATCH] update --- .gitignore | 4 ++++ index.html | 12 ++++++++---- index.js | 12 +++++++----- module.wasm | Bin 80181 -> 80366 bytes test.txt | 5 ++++- 5 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..feeeaff --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# kdevelop +.kde* +*.kdev4 +bin/* diff --git a/index.html b/index.html index 237e5bd..0b27c16 100644 --- a/index.html +++ b/index.html @@ -33,13 +33,17 @@

Je to tedy jednoduchý kalkulátor, jde napsat výraz s normální notací (+-*/^), obsahující čísla (i desetinná), který to normálně vyhodnotí. Postupně přibyly proměnné (jen písmenkové řetězce), které mohou mít i rozsah ve - kterém se pak výraz zobrazí jako funkce. Komentáře jsou ve složených závorkách. Vložené matematické funkce + kterém se pak výraz zobrazí jako funkce. Syntaxe je
+ proměnná = dolní_mez , horní_mez , počet_bodů
+ a použije se pro vodorovnou osu, poslední řádek je pak výraz, jehož hodnota je na svislé ose. Ostatní "proměnné" + jsou pak fakticky jen pojmenované konstanty. Zobrazovaných funkcí (výrazů) může být víc, první určí limity + zobrazení na ose "y". Komentáře jsou ve složených závorkách. Vložené matematické funkce jsou sin(), cos(), exp(), log() (přirozené).Na konci výrazu musí být ENTER.

Jsou v tom chyby, celé je to vlasně hloupost, celé by to šlo napsat v javascriptu mnohem jednodušeji, - ale v podstatě to funguje a jde si podle toho udělat představu, jak daná funkce vypadá. Zdrojáky v licenci - MIT přikládám. Pro kompilaci je použit jen clang a jím kompilovaná C-čková knihovna - newlib. + ale v podstatě to funguje a jde si podle toho udělat představu, jak daná funkce vypadá. Odkaz na zdrojáky v licenci + MIT přikládám. Pro kompilaci je použit jen + clang a jím kompilovaná C-čková knihovna newlib.

diff --git a/index.js b/index.js index ead361f..e3749b9 100644 --- a/index.js +++ b/index.js @@ -28,7 +28,6 @@ window.onload = async function() { const utf8decoder = new TextDecoder(); const obj = JSON.parse (utf8decoder.decode(view)); // console.log (obj); - if (!obj) obj = '{"name":"nothing"}'; polyLine (xview, yview, len, obj); }, }, @@ -86,13 +85,16 @@ function drawLine (ctx, line, x, y) { } ctx.stroke(); } +const colors = ['#00ff00', '#ff0000', '#00ffff', '#ff00ff']; +var colorIndex = 0; function polyLine (ax, ay, len, obj) { // console.log (ax, ay); const ctx = canvas.getContext("2d"); - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.font = '16px serif'; - ctx.textAlign = 'left'; if (obj.name === "axes") { + colorIndex = 0; + ctx.clearRect(0, 0, canvas.width, canvas.height); + ctx.font = '16px serif'; + ctx.textAlign = 'left'; drawLine (ctx, obj.x, 0, 0); drawLine (ctx, obj.y, 0, 0); const ndotsx = obj.xdots.length; @@ -106,7 +108,7 @@ function polyLine (ax, ay, len, obj) { ctx.lineTo(ax[n], ay[n]); } ctx.lineWidth = 3; - ctx.strokeStyle = "#00ff00"; + ctx.strokeStyle = colors [colorIndex++ % 4]; ctx.stroke(); } async function getFile (name) { diff --git a/module.wasm b/module.wasm index 3335c4968b2ab9ab2fbbc35b1d56e99c70352dd1..bd13c4846f3a3fc5040bfd58ccd5c3cfe06561fb 100755 GIT binary patch delta 7489 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 YyWM>k<+Dfmrt7m=_P%e&voEv%7iEkS>;M1& diff --git a/test.txt b/test.txt index ebc7b0b..3de8b2a 100644 --- a/test.txt +++ b/test.txt @@ -2,6 +2,9 @@ max=10 x=-max,max,1000 a=1/4 +z=10 omega=2*pi phi=omega/4 -1.e-8 * sin (omega*x - phi) * exp (-(x*a)^2) + z * sin (omega*x + phi) * exp (-(x*a)^2) + z * exp (-(x*a)^2) {kladná obálka} +-z * exp (-(x*a)^2) {záporná obálka}