update
This commit is contained in:
parent
378cb98859
commit
a3290fb03f
5 changed files with 23 additions and 10 deletions
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# kdevelop
|
||||||
|
.kde*
|
||||||
|
*.kdev4
|
||||||
|
bin/*
|
12
index.html
12
index.html
|
@ -33,13 +33,17 @@
|
||||||
</p>
|
</p>
|
||||||
<p>Je to tedy jednoduchý kalkulátor, jde napsat výraz s normální notací (+-*/^), obsahující čísla (i desetinná),
|
<p>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ý 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 <br>
|
||||||
|
proměnná = dolní_mez , horní_mez , počet_bodů<br>
|
||||||
|
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é).<b>Na konci výrazu musí být ENTER.</b>
|
jsou sin(), cos(), exp(), log() (přirozené).<b>Na konci výrazu musí být ENTER.</b>
|
||||||
</p>
|
</p>
|
||||||
<p>Jsou v tom chyby, celé je to vlasně hloupost, celé by to šlo napsat v javascriptu mnohem jednodušeji,
|
<p>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
|
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 <a href="flex.zip">přikládám</a>. Pro kompilaci je použit jen clang a jím kompilovaná C-čková knihovna
|
MIT <a href="https://code.nolog.cz/Kizarm/Calculator" target="_blank">přikládám</a>. Pro kompilaci je použit jen
|
||||||
<a href="https://sourceware.org/newlib/" target="_blank">newlib</a>.
|
clang a jím kompilovaná C-čková knihovna <a href="https://sourceware.org/newlib/" target="_blank">newlib</a>.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
12
index.js
12
index.js
|
@ -28,7 +28,6 @@ window.onload = async function() {
|
||||||
const utf8decoder = new TextDecoder();
|
const utf8decoder = new TextDecoder();
|
||||||
const obj = JSON.parse (utf8decoder.decode(view));
|
const obj = JSON.parse (utf8decoder.decode(view));
|
||||||
// console.log (obj);
|
// console.log (obj);
|
||||||
if (!obj) obj = '{"name":"nothing"}';
|
|
||||||
polyLine (xview, yview, len, obj);
|
polyLine (xview, yview, len, obj);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -86,13 +85,16 @@ function drawLine (ctx, line, x, y) {
|
||||||
}
|
}
|
||||||
ctx.stroke();
|
ctx.stroke();
|
||||||
}
|
}
|
||||||
|
const colors = ['#00ff00', '#ff0000', '#00ffff', '#ff00ff'];
|
||||||
|
var colorIndex = 0;
|
||||||
function polyLine (ax, ay, len, obj) {
|
function polyLine (ax, ay, len, obj) {
|
||||||
// console.log (ax, ay);
|
// console.log (ax, ay);
|
||||||
const ctx = canvas.getContext("2d");
|
const ctx = canvas.getContext("2d");
|
||||||
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
||||||
ctx.font = '16px serif';
|
|
||||||
ctx.textAlign = 'left';
|
|
||||||
if (obj.name === "axes") {
|
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.x, 0, 0);
|
||||||
drawLine (ctx, obj.y, 0, 0);
|
drawLine (ctx, obj.y, 0, 0);
|
||||||
const ndotsx = obj.xdots.length;
|
const ndotsx = obj.xdots.length;
|
||||||
|
@ -106,7 +108,7 @@ function polyLine (ax, ay, len, obj) {
|
||||||
ctx.lineTo(ax[n], ay[n]);
|
ctx.lineTo(ax[n], ay[n]);
|
||||||
}
|
}
|
||||||
ctx.lineWidth = 3;
|
ctx.lineWidth = 3;
|
||||||
ctx.strokeStyle = "#00ff00";
|
ctx.strokeStyle = colors [colorIndex++ % 4];
|
||||||
ctx.stroke();
|
ctx.stroke();
|
||||||
}
|
}
|
||||||
async function getFile (name) {
|
async function getFile (name) {
|
||||||
|
|
BIN
module.wasm
BIN
module.wasm
Binary file not shown.
5
test.txt
5
test.txt
|
@ -2,6 +2,9 @@
|
||||||
max=10
|
max=10
|
||||||
x=-max,max,1000
|
x=-max,max,1000
|
||||||
a=1/4
|
a=1/4
|
||||||
|
z=10
|
||||||
omega=2*pi
|
omega=2*pi
|
||||||
phi=omega/4
|
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}
|
||||||
|
|
Loading…
Reference in a new issue