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 3335c49..bd13c48 100755 Binary files a/module.wasm and b/module.wasm differ 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}