\( \newcommand{\nPr}[2]{{}^{#1}A_{#2} } \newcommand{\combin}[2]{{}^{#1}C_{#2} } \newcommand{\cmod}[3]{#1 \equiv #2\left(\bmod {}{#3}\right)} \newcommand{\frc}[2]{\displaystyle\frac{#1}{#2}} \newcommand{\mdc}[2]{\left( {#1},{#2}\right)} \newcommand{\mmc}[2]{\left[ {#1},{#2}\right]} \newcommand{\cis}{\mathop{\rm cis}} \newcommand{\ImP}{\mathop{\rm Im}} \newcommand{\ReP}{\mathop{\rm Re}} \newcommand{\sen}{\mathop{\rm sen}} \newcommand{\tg}{\mathop{\rm tg}} \newcommand{\cotg}{\mathop{\rm cotg}} \newcommand{\cosec}{\mathop{\rm cosec}} \newcommand{\cotgh}{\mathop{\rm cotgh}} \newcommand{\cosech}{\mathop{\rm cosech}} \newcommand{\sech}{\mathop{\rm sech}} \newcommand{\sh}{\mathop{\rm sh}} \newcommand{\ch}{\mathop{\rm ch}} \newcommand{\th}{\mathop{\rm th}} \newcommand{\senEL}[1]{\mathop{\rm sen}^{#1}} \newcommand{\tgEL}[1]{\mathop{\rm tg}^{#1}} \newcommand{\cotgEL}[1]{\mathop{\rm cotg}^{#1}} \newcommand{\cosecEL}{\mathop{\rm cosec}^{#1}} \newcommand{\shEL}[1]{\mathop{\rm sh^{#1}}} \newcommand{\chEL}[1]{\mathop{\rm ch^{#1}}} \newcommand{\thEL}[1]{\mathop{\rm th^{#1}}} \newcommand{\cotghEL}[1]{\mathop{\rm cotgh^{#1}}} \newcommand{\cosechEL}[1]{\mathop{\rm cosech^{#1}}} \newcommand{\sechEL}[1]{\mathop{\rm sech^{#1}}} \newcommand{\senq}{\senEL{2}} \newcommand{\tgq}{\tgEL{2}} \newcommand{\cotgq}{\cotgEL{2}} \newcommand{\cosecq}{\cosecEL{2}} \newcommand{\cotghq}{\cotghEL{2}} \newcommand{\cosechq}{\cosechEL{2}} \newcommand{\sechq}{\sechEL{2}} \newcommand{\shq}{\shEL{2}} \newcommand{\chq}{\chEL{2}} \newcommand{\arctg}{\mathop{\rm arctg}} \newcommand{\arcsen}{\mathop{\rm arcsen}} \newcommand{\argsh}{\mathop{\rm argsh}} \newcommand{\argch}{\mathop{\rm argch}} \newcommand{\Var}{\mathop{\rm Var}} \newcommand{\vect}[1]{\overrightarrow{#1}} \newcommand{\tr}[1]{ \textnormal{Tr}\left({#1}\right)} \newcommand{\C}{\mathbb{C}} \newcommand{\E}{\mathbb{E}} \newcommand{\H}{\mathbb{H}} \newcommand{\I}{\mathbb{I}} \newcommand{\N}{\mathbb{N}} \newcommand{\P}{\mathbb{P}} \newcommand{\Q}{\mathbb{Q}} \newcommand{\R}{\mathbb{R}} \newcommand{\Z}{\mathbb{Z}} \newcommand{\til}{\sim} \newcommand{\mdc}{\mathop{\rm m.d.c.}} \newcommand{\mmc}{\mathop{\rm m.m.c.}} \newcommand{\vect}[1]{\overrightarrow{#1}} \newcommand{\dfrc}{\displaystyle\frac} \newcommand{\Mod}[1]{\ (\mathrm{mod}\ #1)} \)

03/08/2024

Desenhos numa calculadora

Um dos meus (muitos) passatempos é o desenho.

Estive a converter um esboço meu da Kara In-Ze (supergirl/DCAU) numa versão digital.
 Podem visitar a minha galeria DeviantArt clicando na imagem.

Em 1994, quando me ofereceram a minha primeira calculadora gráfica (Casio fx-6300G), explorei como poderia fazer desenhos na calculadora. Assim que aprendi a programar a calculadora numa versão muito elementar do Casio-BASIC (lendo o manual), foi um dos meus primeiros programas.

Em 1996, comprei uma Casio cfx-9800G. Esta calculadora tinha um ecrã maior e tinha matrizes. Matrizes permitiram-me rever os conceitos por detrás do meu programa de desenho.

Em 1997 comprei uma casio cfx-9950G. E nesta criei o meu terceiro programa de desenho.
(A versão final é de 1999, e ainda corre nas calculadoras actuais)


Qual é a Matemática por detrás disto?
O ecrã utilizável tem resolução 127 × 63 pixels. ( $x$ × $y$, não batam, é assim que está no manual da calculadora)
Assim, comecei por definir a janela $[1,127]×[1,63]$ 

A forma mais simples de desenhar é com traços. Matematicamente, um traço pode ser visto como um segmento de recta.  Um segmento de recta era desenhado com o comando "Line", portanto, era possivel.
Então pensei numa forma de, recolhendo as coordenadas do ponto inicial $(x_i,y_i)$ e do ponto final $(x_f,y_f)$, codificá-las num único número através da fórmula:
\[s=100x_i+y_i+\frac{x_f}{1000}+\frac{y_f}{100000}\]
Por exemplo o segmento que une os pontos de coordenadas $(123,45)$ e $(10,60)$ é convertido no número $12345.01060$.

Com isto converti um desenho "sequência de traços" numa lista de números.
O programa da calculadora guarda as listas em colunas de uma matriz (a matriz L da calculadora).
Naturalmente, é fácil reverter o processo... a calculadora, além das operações básicas tem as funções "parte inteira" e "parte fraccionária".
Eu acabei por usar algumas das ideias por detrás deste programa para outras calculadoras.  (Nomeadamente a Ti84plus)

PS:
  1. Inicialmente este post ia ser um vídeo "Aqui há Matemática". Os vídeos ficam para uma próxima oportunidade.
  2. Dedico este post a todos os meus ex-explicandos e ex-alunos dos últimos 28 anos.
    (A dedicatória, eve-se ao facto de eu ter cessado funções)
  3. Dedico este post também à MathGurl (duvido que ela vá ver isto, é só uma forma de eu vos mandar para o canal dela) .


  4. Eu mudei o desenho no dia 23 de Agosto de 2024. O original, está aqui.

Sem comentários:

Enviar um comentário