Compare commits

..

No commits in common. "775efe0f4a7630bd57ad3f97f49c025141caa4d4" and "d0f3d0b6eb2d2b796b6bb6f5a6569a0b2dc7a3a1" have entirely different histories.

6 changed files with 10 additions and 23 deletions

4
.gitignore vendored
View file

@ -1,4 +0,0 @@
# kdevelop
.kde*
*.kdev4
bin/*

BIN
flex.zip Normal file

Binary file not shown.

View file

@ -33,17 +33,13 @@
</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. Syntaxe je <br> kterém se pak výraz zobrazí jako funkce. Komentáře jsou ve složených závorkách. Vložené matematické funkce
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á. Odkaz na zdrojáky v licenci ale v podstatě to funguje a jde si podle toho udělat představu, jak daná funkce vypadá. Zdrojáky v licenci
MIT <a href="https://code.nolog.cz/Kizarm/Calculator" target="_blank">přikládám</a>. Pro kompilaci je použit jen MIT <a href="flex.zip">přikládám</a>. Pro kompilaci je použit jen clang a jím kompilovaná C-čková knihovna
clang a jím kompilovaná C-čková knihovna <a href="https://sourceware.org/newlib/" target="_blank">newlib</a>. <a href="https://sourceware.org/newlib/" target="_blank">newlib</a>.
</p> </p>
</div> </div>
</body> </body>

View file

@ -28,6 +28,7 @@ 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);
}, },
}, },
@ -85,16 +86,13 @@ 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");
if (obj.name === "axes") {
colorIndex = 0;
ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.font = '16px serif'; ctx.font = '16px serif';
ctx.textAlign = 'left'; ctx.textAlign = 'left';
if (obj.name === "axes") {
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;
@ -108,7 +106,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 = colors [colorIndex++ % 4]; ctx.strokeStyle = "#00ff00";
ctx.stroke(); ctx.stroke();
} }
async function getFile (name) { async function getFile (name) {

Binary file not shown.

View file

@ -2,9 +2,6 @@
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
z * sin (omega*x + phi) * exp (-(x*a)^2) 1.e-8 * 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}