<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Galdoon</title>
    <link>https://galdoon.codeberg.page/pt/</link>
    <description>Recent content on Galdoon</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>pt</language>
    <copyright>Galdoon  © 2025 is licensed under CC BY-NC 4.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc/4.0/</copyright>
    <lastBuildDate>Fri, 12 Sep 2025 13:02:04 -0300</lastBuildDate>
    <atom:link href="https://galdoon.codeberg.page/pt/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Como programar um jogo isométrico (2.5D)</title>
      <link>https://galdoon.codeberg.page/pt/posts/isometrico-tutorial/</link>
      <pubDate>Fri, 12 Sep 2025 13:02:04 -0300</pubDate>
      <guid>https://galdoon.codeberg.page/pt/posts/isometrico-tutorial/</guid>
      <description>&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;Aqui está a função JavaScript para converter um ponto tridimensional em um bidimensional:&lt;/p&gt;






&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;to_isometric&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;point&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;angle&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; Math.&lt;span style=&#34;color:#a6e22e&#34;&gt;PI&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;6&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;// 30°
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;cos&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; Math.&lt;span style=&#34;color:#a6e22e&#34;&gt;cos&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;angle&lt;/span&gt;); &lt;span style=&#34;color:#75715e&#34;&gt;// ≈ 0.866
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;sin&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; Math.&lt;span style=&#34;color:#a6e22e&#34;&gt;sin&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;angle&lt;/span&gt;); &lt;span style=&#34;color:#75715e&#34;&gt;// = 0.5
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; (&lt;span style=&#34;color:#a6e22e&#34;&gt;point&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;point&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;cos&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; (&lt;span style=&#34;color:#a6e22e&#34;&gt;point&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;point&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;sin&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;point&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;z&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  };
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Se você não consegue converter isso para a linguagem de programação que está usando, você não merece ter um &lt;em&gt;design&lt;/em&gt; isométrico em seu jogo.&lt;/p&gt;
&lt;h2 id=&#34;explicação-mais-detalhada&#34;&gt;Explicação mais detalhada&lt;/h2&gt;
&lt;p&gt;Gráficos isométricos eram e são comuns em jogos. Esse estilo oferece uma espécie de mistura entre 2D e 3D que forma um estilo único.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="tldr">TL;DR</h2>
<p>Aqui está a função JavaScript para converter um ponto tridimensional em um bidimensional:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">function</span> <span style="color:#a6e22e">to_isometric</span>(<span style="color:#a6e22e">point</span>) {
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">angle</span> <span style="color:#f92672">=</span> Math.<span style="color:#a6e22e">PI</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">6</span>; <span style="color:#75715e">// 30°
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>  <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">cos</span> <span style="color:#f92672">=</span> Math.<span style="color:#a6e22e">cos</span>(<span style="color:#a6e22e">angle</span>); <span style="color:#75715e">// ≈ 0.866
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>  <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">sin</span> <span style="color:#f92672">=</span> Math.<span style="color:#a6e22e">sin</span>(<span style="color:#a6e22e">angle</span>); <span style="color:#75715e">// = 0.5
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">return</span> {
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">x</span><span style="color:#f92672">:</span> (<span style="color:#a6e22e">point</span>.<span style="color:#a6e22e">x</span> <span style="color:#f92672">-</span> <span style="color:#a6e22e">point</span>.<span style="color:#a6e22e">y</span>) <span style="color:#f92672">*</span> <span style="color:#a6e22e">cos</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">y</span><span style="color:#f92672">:</span> (<span style="color:#a6e22e">point</span>.<span style="color:#a6e22e">x</span> <span style="color:#f92672">+</span> <span style="color:#a6e22e">point</span>.<span style="color:#a6e22e">y</span>) <span style="color:#f92672">*</span> <span style="color:#a6e22e">sin</span> <span style="color:#f92672">-</span> <span style="color:#a6e22e">point</span>.<span style="color:#a6e22e">z</span>
</span></span><span style="display:flex;"><span>  };
</span></span><span style="display:flex;"><span>}</span></span></code></pre></div>
<p>Se você não consegue converter isso para a linguagem de programação que está usando, você não merece ter um <em>design</em> isométrico em seu jogo.</p>
<h2 id="explicação-mais-detalhada">Explicação mais detalhada</h2>
<p>Gráficos isométricos eram e são comuns em jogos. Esse estilo oferece uma espécie de mistura entre 2D e 3D que forma um estilo único.</p>
<p><img src="/pt/posts/isometrico-tutorial/simscity.jpg" alt="O jogo Sims City é um exemplo de um que usa o estilo de arte isométrica."></p>
<p><em>O jogo Sims City é um exemplo de um que usa o estilo de arte isométrica.</em></p>
<p>O funcionamento do desenho isométrico é por meio de três retas separadas por 60º entre si, onde cada uma representa uma dimensão. Essas retas permitem converter um ponto tridimensional em um bidimensional usando a projeção ortográfica:</p>
<p><img src="/pt/posts/isometrico-tutorial/iso_axis.png" alt="As três retas do desenho isométrico"></p>
<h3 id="a-matemática-por-trás">A matemática por trás</h3>
<p><img src="/pt/posts/isometrico-tutorial/geogebra-axis.png" alt="As três retas"></p>
<p>No desenho isométrico, como dito, temos três retas separadas por entre si 60º. Entretanto, como o eixo Z é totalmente vertical, vamos focar, por enquanto, apenas na X e na Y:</p>
<p><img src="/pt/posts/isometrico-tutorial/geogebra-axis-xy.png" alt="Eixos X e Y "></p>
<p>Como é possível observar, os eixos X e Y estão em um ângulo de 30º <em>em relação ao eixo X real</em> (no caso anterior estavam em ângulos de 60º entre si), então a primeira coisa que será feita é encontrar os pontos de cada reta de acordo com a distância da origem &ndash; o que pode ser feito com seno e cosseno. Para isso, vamos supor um ponto tridimensional <em>T</em> = (3, 5, 0) (a dimensão Z não será considerada no momento), e queremos encontrar um ponto bidimensional <em>A</em> (que está na reta X) e um <em>B</em> (que está na reta Y):</p>
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mover accent="true"><mi>T</mi><mo>⃗</mo></mover><mo>=</mo><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>3</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>5</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0</mn></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow></mrow><annotation encoding="application/x-tex">
       \vec{T} = \begin{pmatrix} 
              3 \\
              5 \\
              0
       \end{pmatrix}
</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9663em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9663em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal" style="margin-right:0.13889em;">T</span></span><span style="top:-3.2523em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.1522em;"><span class="overlay" style="height:0.714em;width:0.471em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"><path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z"/></svg></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:3.6em;vertical-align:-1.55em;"></span><span class="minner"><span class="mopen"><span class="delimsizing mult"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.05em;"><span style="top:-4.05em;"><span class="pstrut" style="height:5.6em;"></span><span style="width:0.875em;height:3.600em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.875em" height="3.600em" viewBox="0 0 875 3600"><path d="M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1
c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,
-36,557 l0,84c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,
949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9
c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,
-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189
l0,-92c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,
-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z"/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.55em;"><span></span></span></span></span></span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.05em;"><span style="top:-4.21em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">3</span></span></span><span style="top:-3.01em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">5</span></span></span><span style="top:-1.81em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">0</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.55em;"><span></span></span></span></span></span></span></span><span class="mclose"><span class="delimsizing mult"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.05em;"><span style="top:-4.05em;"><span class="pstrut" style="height:5.6em;"></span><span style="width:0.875em;height:3.600em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.875em" height="3.600em" viewBox="0 0 875 3600"><path d="M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,
63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5
c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,9
c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664
c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11
c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17
c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558
l0,-144c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z"/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.55em;"><span></span></span></span></span></span></span></span></span></span></span></span><p>Calculando <em>A</em> e <em>B</em>:</p>
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mover accent="true"><mi>A</mi><mo>⃗</mo></mover><mo>=</mo><msub><mi>T</mi><mn>1</mn></msub><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>cos</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>sin</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><mo>∴</mo><mover accent="true"><mi>A</mi><mo>⃗</mo></mover><mo>=</mo><mn>3</mn><mo>⋅</mo><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>cos</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>sin</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><mo>≈</mo><mn>3</mn><mo>⋅</mo><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0.87</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0.5</mn></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><mo>=</mo><menclose notation="box"><mstyle scriptlevel="0" displaystyle="false"><mstyle scriptlevel="0" displaystyle="false"><mstyle scriptlevel="0" displaystyle="true"><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>2.61</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>1.5</mn></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow></mstyle></mstyle></mstyle></menclose></mrow><annotation encoding="application/x-tex">
       \vec{A} = T_1 \begin{pmatrix} 
              \cos 30 ^ \circ \\
              \sin 30 ^ \circ
       \end{pmatrix}
       \therefore 
       \vec{A} = 3 \cdot \begin{pmatrix} 
              \cos 30 ^ \circ \\
              \sin 30 ^ \circ
       \end{pmatrix}
       \approx
       3 \cdot \begin{pmatrix} 
              0.87 \\
              0.5
       \end{pmatrix}
       =
       \boxed{
              \begin{pmatrix} 
                     2.61 \\
                     1.5
              \end{pmatrix}
       }
</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9663em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9663em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal">A</span></span><span style="top:-3.2523em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.0966em;"><span class="overlay" style="height:0.714em;width:0.471em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"><path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z"/></svg></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mop">cos</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mop">sin</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel amsrm">∴</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.9663em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9663em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal">A</span></span><span style="top:-3.2523em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.0966em;"><span class="overlay" style="height:0.714em;width:0.471em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"><path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z"/></svg></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">3</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mop">cos</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mop">sin</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">≈</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">3</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">0.87</span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">0.5</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:3.08em;vertical-align:-1.29em;"></span><span class="mord"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.79em;"><span style="top:-5.08em;"><span class="pstrut" style="height:5.08em;"></span><span class="boxpad"><span class="mord"><span class="mord"><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2.61</span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1.5</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span></span></span></span></span><span style="top:-3.79em;"><span class="pstrut" style="height:5.08em;"></span><span class="stretchy fbox" style="height:3.08em;border-style:solid;border-width:0.04em;"></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.29em;"><span></span></span></span></span></span></span></span></span></span><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mover accent="true"><mi>B</mi><mo>⃗</mo></mover><mo>=</mo><msub><mi>T</mi><mn>2</mn></msub><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo>−</mo><mi>cos</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>sin</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><mo>∴</mo><mover accent="true"><mi>B</mi><mo>⃗</mo></mover><mo>=</mo><mn>5</mn><mo>⋅</mo><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo>−</mo><mi>cos</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>sin</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><mo>≈</mo><mn>5</mn><mo>⋅</mo><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo>−</mo><mn>0.87</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0.5</mn></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><mo>=</mo><menclose notation="box"><mstyle scriptlevel="0" displaystyle="false"><mstyle scriptlevel="0" displaystyle="false"><mstyle scriptlevel="0" displaystyle="true"><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo>−</mo><mn>4.35</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>2.5</mn></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow></mstyle></mstyle></mstyle></menclose></mrow><annotation encoding="application/x-tex">
       \vec{B} = T_2 \begin{pmatrix} 
              -\cos 30 ^ \circ \\
              \sin 30 ^ \circ
       \end{pmatrix}
       \therefore
       \vec{B} = 5 \cdot \begin{pmatrix} 
              -\cos 30 ^ \circ \\
              \sin 30 ^ \circ
       \end{pmatrix}
       \approx
       5 \cdot \begin{pmatrix} 
              -0.87 \\
              0.5
       \end{pmatrix}
       =
       \boxed{
              \begin{pmatrix} 
                     -4.35 \\
                     2.5
              \end{pmatrix}
       }
</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9663em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9663em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal" style="margin-right:0.05017em;">B</span></span><span style="top:-3.2523em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.1522em;"><span class="overlay" style="height:0.714em;width:0.471em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"><path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z"/></svg></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">−</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mop">cos</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mop">sin</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel amsrm">∴</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.9663em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9663em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal" style="margin-right:0.05017em;">B</span></span><span style="top:-3.2523em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.1522em;"><span class="overlay" style="height:0.714em;width:0.471em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"><path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z"/></svg></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">5</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">−</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mop">cos</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mop">sin</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">≈</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">5</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">−</span><span class="mord">0.87</span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">0.5</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:3.08em;vertical-align:-1.29em;"></span><span class="mord"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.79em;"><span style="top:-5.08em;"><span class="pstrut" style="height:5.08em;"></span><span class="boxpad"><span class="mord"><span class="mord"><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">−</span><span class="mord">4.35</span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2.5</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span></span></span></span></span><span style="top:-3.79em;"><span class="pstrut" style="height:5.08em;"></span><span class="stretchy fbox" style="height:3.08em;border-style:solid;border-width:0.04em;"></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.29em;"><span></span></span></span></span></span></span></span></span></span><p>Plotando os pontos no gráfico:</p>
<p><img src="/pt/posts/isometrico-tutorial/geogebra-points.png" alt="Pontos A e B no gráfico"></p>
<p>Agora, para sabermos o ponto real <em>R</em> &ndash; o que será desenhado na tela &ndash; temos que somar os dois vetores:</p>
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mover accent="true"><mi>R</mi><mo>⃗</mo></mover><mo>=</mo><mover accent="true"><mi>A</mi><mo>⃗</mo></mover><mo>+</mo><mover accent="true"><mi>B</mi><mo>⃗</mo></mover><mo>∴</mo><mover accent="true"><mi>R</mi><mo>⃗</mo></mover><mo>=</mo><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>2.61</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>1.5</mn></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><mo>+</mo><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo>−</mo><mn>4.35</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>2.5</mn></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><mo>=</mo><menclose notation="box"><mstyle scriptlevel="0" displaystyle="false"><mstyle scriptlevel="0" displaystyle="false"><mstyle scriptlevel="0" displaystyle="true"><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo>−</mo><mn>1.74</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>4</mn></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow></mstyle></mstyle></mstyle></menclose></mrow><annotation encoding="application/x-tex">
\vec{R} = \vec{A} + \vec{B}
\therefore
\vec{R} = \begin{pmatrix} 
              2.61 \\
              1.5
\end{pmatrix} +
\begin{pmatrix} 
       -4.35 \\
       2.5
\end{pmatrix} =
\boxed{
\begin{pmatrix}
       -1.74 \\
       4
\end{pmatrix}
}
</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9663em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9663em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal" style="margin-right:0.00773em;">R</span></span><span style="top:-3.2523em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.1522em;"><span class="overlay" style="height:0.714em;width:0.471em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"><path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z"/></svg></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.0497em;vertical-align:-0.0833em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9663em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal">A</span></span><span style="top:-3.2523em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.0966em;"><span class="overlay" style="height:0.714em;width:0.471em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"><path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z"/></svg></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.9663em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9663em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal" style="margin-right:0.05017em;">B</span></span><span style="top:-3.2523em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.1522em;"><span class="overlay" style="height:0.714em;width:0.471em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"><path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z"/></svg></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel amsrm">∴</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.9663em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9663em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal" style="margin-right:0.00773em;">R</span></span><span style="top:-3.2523em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.1522em;"><span class="overlay" style="height:0.714em;width:0.471em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"><path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z"/></svg></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2.61</span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1.5</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">−</span><span class="mord">4.35</span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2.5</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:3.08em;vertical-align:-1.29em;"></span><span class="mord"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.79em;"><span style="top:-5.08em;"><span class="pstrut" style="height:5.08em;"></span><span class="boxpad"><span class="mord"><span class="mord"><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">−</span><span class="mord">1.74</span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">4</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span></span></span></span></span><span style="top:-3.79em;"><span class="pstrut" style="height:5.08em;"></span><span class="stretchy fbox" style="height:3.08em;border-style:solid;border-width:0.04em;"></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.29em;"><span></span></span></span></span></span></span></span></span></span><p>Plotando no gráfico:</p>
<p><img src="/pt/posts/isometrico-tutorial/geogebra-point-r.png" alt="Ponto R no gráfico"></p>
<p>Para adicionar o eixo Z é só somar esse valor ao Y real plotado &ndash; já que ele é totalmente vertical &ndash;, então se o valor de Z do ponto <em>T</em> fosse 3, o vetor de posição que será desenhado será <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo>−</mo><mn>1.74</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>7</mn></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><annotation encoding="application/x-tex">\begin{pmatrix}
       -1.74 \\
       7
\end{pmatrix}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">−</span><span class="mord">1.74</span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">7</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span></span></span></span>.</p>
<h4 id="função-genérica">Função genérica</h4>
<p>Uma função genérica seria dessa forma:</p>
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mover accent="true"><mi>f</mi><mo>⃗</mo></mover><mo stretchy="false">(</mo><mover accent="true"><mi>x</mi><mo>⃗</mo></mover><mo stretchy="false">)</mo><mo>=</mo><msub><mi>x</mi><mn>1</mn></msub><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>cos</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>sin</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><mo>+</mo><msub><mi>x</mi><mn>2</mn></msub><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo>−</mo><mi>cos</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>sin</mi><mo>⁡</mo><msup><mn>30</mn><mo>∘</mo></msup></mrow></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><mo>+</mo><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><msub><mi>x</mi><mn>3</mn></msub></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow></mrow><annotation encoding="application/x-tex">
\vec{f}(\vec{x}) = x_1 \begin{pmatrix} 
              \cos 30 ^ \circ \\
              \sin 30 ^ \circ
       \end{pmatrix} + x_2 \begin{pmatrix} 
              -\cos 30 ^ \circ \\
              \sin 30 ^ \circ
       \end{pmatrix} + \begin{pmatrix} 
              0 \\
              x_3
       \end{pmatrix}
</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.2274em;vertical-align:-0.25em;"></span><span class="mord accent"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9774em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span></span><span style="top:-3.2634em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.0688em;"><span class="overlay" style="height:0.714em;width:0.471em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"><path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z"/></svg></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.1944em;"><span></span></span></span></span></span><span class="mopen">(</span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.714em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal">x</span></span><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.2077em;"><span class="overlay" style="height:0.714em;width:0.471em;"><svg xmlns="http://www.w3.org/2000/svg" width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"><path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z"/></svg></span></span></span></span></span></span></span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mop">cos</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mop">sin</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">−</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mop">cos</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mop">sin</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">3</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6741em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∘</span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:2.4em;vertical-align:-0.95em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.45em;"><span style="top:-3.61em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">0</span></span></span><span style="top:-2.41em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">3</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.95em;"><span></span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span></span></span></span></span><h5 id="por-que-na-função-javascript-o-z-é-subtraído-e-não-somado">Por que na função JavaScript o Z é subtraído e não somado?</h5>
<p>Se você for bem observador, você deve ter percebido isso. O motivo disso é porque na maioria das bibliotecas gráficas (SDL, HTML Canvas, Raylib, p5.js, etc.), quanto menor o valor de Y <em>mais alto</em> fica o ponto &ndash; o que é o inverso da maioria dos planos cartesianos, como o do Geogebra, que eu usei para demonstrar o funcionamento. Entretanto, se você estiver usando uma Game Engine como a Unity ou Godot, você deve mudar isso para somar ao invés de subtrair.</p>
<h2 id="implementando-em-p5js">Implementando em p5.js</h2>
<p>Abrindo <a href="https://editor.p5js.org/">editor.p5js.org</a>, tem um editor on-line onde é possível programar em JavaScript usando a biblioteca gráfica p5.js &ndash; ela não é uma das melhores pra criar jogos, mas é muito fácil e muito usada para aprender programação.</p>
<p>Inicialmente, vai aparecer um código assim:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">function</span> <span style="color:#a6e22e">setup</span>() {
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">createCanvas</span>(<span style="color:#ae81ff">400</span>, <span style="color:#ae81ff">400</span>);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">function</span> <span style="color:#a6e22e">draw</span>() {
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">background</span>(<span style="color:#ae81ff">220</span>);
</span></span><span style="display:flex;"><span>}</span></span></code></pre></div>
<p>A função <code>setup</code> roda apenas uma vez, no início do jogo, enquanto a <code>draw</code> roda todo loop. Rodando, vemos apenas isso:</p>
<p><img src="/pt/posts/isometrico-tutorial/p5-blank.png" alt="Tela em branco"></p>
<p>O que queremos fazer é criar uma grade que se movimente como ondas, para isso, vamos usar a função do <a href="/pt/posts/isometrico-tutorial/#tldr">TL;DR</a>. Depois, vamos desenhar pontos separados igualmente entre si por meio dessa função:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span>[...]
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">function</span> <span style="color:#a6e22e">draw</span>() {
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">background</span>(<span style="color:#ae81ff">220</span>);
</span></span><span style="display:flex;"><span>  
</span></span><span style="display:flex;"><span>  <span style="color:#75715e">// Coloca a câmera no centro
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>  <span style="color:#a6e22e">translate</span>(<span style="color:#a6e22e">width</span><span style="color:#f92672">/</span><span style="color:#ae81ff">2</span>, <span style="color:#a6e22e">height</span><span style="color:#f92672">/</span><span style="color:#ae81ff">2</span>)
</span></span><span style="display:flex;"><span>  
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">grid_size</span><span style="color:#f92672">=</span><span style="color:#ae81ff">5</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">grid_distance</span><span style="color:#f92672">=</span><span style="color:#ae81ff">30</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">let</span> <span style="color:#a6e22e">y</span><span style="color:#f92672">=-</span><span style="color:#a6e22e">grid_size</span>; <span style="color:#a6e22e">y</span><span style="color:#f92672">&lt;</span><span style="color:#a6e22e">grid_size</span>; <span style="color:#a6e22e">y</span><span style="color:#f92672">++</span>) {
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">let</span> <span style="color:#a6e22e">x</span><span style="color:#f92672">=-</span><span style="color:#a6e22e">grid_size</span>; <span style="color:#a6e22e">x</span><span style="color:#f92672">&lt;</span><span style="color:#a6e22e">grid_size</span>; <span style="color:#a6e22e">x</span><span style="color:#f92672">++</span>) {
</span></span><span style="display:flex;"><span>      <span style="color:#75715e">// Transforma ponto 3D em um 2D
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>      <span style="color:#66d9ef">let</span> <span style="color:#a6e22e">drawn_point</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">to_isometric</span>(
</span></span><span style="display:flex;"><span>        {<span style="color:#a6e22e">x</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">x</span><span style="color:#f92672">*</span><span style="color:#a6e22e">grid_distance</span>, <span style="color:#a6e22e">y</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">y</span><span style="color:#f92672">*</span><span style="color:#a6e22e">grid_distance</span>, <span style="color:#a6e22e">z</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span>}
</span></span><span style="display:flex;"><span>      )
</span></span><span style="display:flex;"><span>      
</span></span><span style="display:flex;"><span>      <span style="color:#75715e">// Desenha o ponto
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>      <span style="color:#a6e22e">stroke</span>(<span style="color:#ae81ff">255</span>, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0</span>)
</span></span><span style="display:flex;"><span>      <span style="color:#a6e22e">strokeWeight</span>(<span style="color:#ae81ff">3</span>)
</span></span><span style="display:flex;"><span>      <span style="color:#a6e22e">point</span>(<span style="color:#a6e22e">drawn_point</span>.<span style="color:#a6e22e">x</span>, <span style="color:#a6e22e">drawn_point</span>.<span style="color:#a6e22e">y</span>)
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span>}</span></span></code></pre></div>
<p>Assim, o resultado é esse:</p>
<p><img src="/pt/posts/isometrico-tutorial/p5-grid-simples-estatica.png" alt="Grid de pontos"></p>
<h3 id="animando-os-pontos">Animando os pontos</h3>
<p>Para isso, vamos usar a função seno, que, em um gráfico, se parece assim:</p>
<p><img src="/pt/posts/isometrico-tutorial/sinegraph.png" alt="Sine graph"></p>
<p>Passando o tempo desde o início da execução do programa para a função, o que pode ser feito pela função <code>millis()</code> do p5.js &ndash; que retorna quantos milissegundos desde o início da execução&ndash;, podemos animá-los:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">let</span> <span style="color:#a6e22e">drawn_point</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">to_isometric</span>(
</span></span><span style="display:flex;"><span>  {<span style="color:#a6e22e">x</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">x</span><span style="color:#f92672">*</span><span style="color:#a6e22e">grid_distance</span>, <span style="color:#a6e22e">y</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">y</span><span style="color:#f92672">*</span><span style="color:#a6e22e">grid_distance</span>, <span style="color:#a6e22e">z</span><span style="color:#f92672">:</span> Math.<span style="color:#a6e22e">sin</span>(<span style="color:#a6e22e">millis</span>()<span style="color:#f92672">/</span><span style="color:#ae81ff">1000</span>)<span style="color:#f92672">*</span><span style="color:#ae81ff">20</span>}
</span></span><span style="display:flex;"><span>)</span></span></code></pre></div>
<p>Resultado:</p>
<p><img src="/pt/posts/isometrico-tutorial/p5-initially-animated.gif" alt="Animação inicial"></p>
<p>Entretanto, como podemos ver, todos os pontos se movem igualmente. Para mudarmos isso, vamos adicionar um valor de <em>offset</em> para cada ponto, definido pela posição Y deles:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">let</span> <span style="color:#a6e22e">drawn_point</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">to_isometric</span>(
</span></span><span style="display:flex;"><span>  {<span style="color:#a6e22e">x</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">x</span><span style="color:#f92672">*</span><span style="color:#a6e22e">grid_distance</span>, <span style="color:#a6e22e">y</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">y</span><span style="color:#f92672">*</span><span style="color:#a6e22e">grid_distance</span>, <span style="color:#a6e22e">z</span><span style="color:#f92672">:</span> Math.<span style="color:#a6e22e">sin</span>(<span style="color:#a6e22e">millis</span>()<span style="color:#f92672">/</span><span style="color:#ae81ff">1000</span><span style="color:#f92672">+</span><span style="color:#a6e22e">y</span>)<span style="color:#f92672">*</span><span style="color:#ae81ff">20</span>}
</span></span><span style="display:flex;"><span>)</span></span></code></pre></div>
<p>Resultado:</p>
<p><img src="/pt/posts/isometrico-tutorial/p5-offset-animated.gif" alt="Animação inicial"></p>
<h3 id="adicionando-sprites">Adicionando sprites</h3>
<p>Para isso, eu vou usar <a href="https://opengameart.org/content/sandbox-style-terrain-pack">esses</a> sprites no opengameart.org. Daí, eu cortei e diminuí a resolução no GIMP de forma que fique apenas um cubo:</p>
<p><img src="/pt/posts/isometrico-tutorial/cube.png" alt="Cubo isométrico pixel-art"></p>
<p>Baixe essa imagem e coloque no editor. Para isso, crie uma conta e depois clique na seta no lado esquerdo do editor, daí clique no símbolo de &ldquo;mais&rdquo; e em &ldquo;Upload file&rdquo;, e selecione o arquivo do cubo.</p>
<p>Para desenhar o cubo, defina uma variável global chamada <code>cube</code>:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">let</span> <span style="color:#a6e22e">cube</span></span></span></code></pre></div>
<p>Depois, dentro da função <code>setup()</code>, declare a variável como sendo a textura do cubo:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#a6e22e">cube</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">loadImage</span>(<span style="color:#e6db74">&#39;cube.png&#39;</span>)</span></span></code></pre></div>
<p>E, ao invés de desenhar o ponto, desenhe a textura, lembrando de manter o tamanho delas como sendo <code>grid_distance</code> vezes dois:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#75715e">/*stroke(255, 0, 0)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">strokeWeight(3)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">point(drawn_point.x, drawn_point.y)*/</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">image</span>(<span style="color:#a6e22e">cube</span>, <span style="color:#a6e22e">drawn_point</span>.<span style="color:#a6e22e">x</span>, <span style="color:#a6e22e">drawn_point</span>.<span style="color:#a6e22e">y</span>, <span style="color:#a6e22e">grid_distance</span><span style="color:#f92672">*</span><span style="color:#ae81ff">2</span>, <span style="color:#a6e22e">grid_distance</span><span style="color:#f92672">*</span><span style="color:#ae81ff">2</span>)</span></span></code></pre></div>
<p>Resultado:</p>
<p><img src="/pt/posts/isometrico-tutorial/p5-texture-animated.gif" alt="Animação com texturas"></p>
]]></content:encoded>
    </item>
    <item>
      <title>Linux Mint 22.2 &#34;Zara&#34; lançado: principais novidades</title>
      <link>https://galdoon.codeberg.page/pt/posts/linux-mint-22-2-lancado/</link>
      <pubDate>Thu, 04 Sep 2025 12:44:33 -0300</pubDate>
      <guid>https://galdoon.codeberg.page/pt/posts/linux-mint-22-2-lancado/</guid>
      <description>&lt;p&gt;Hoje foi lançada a nova versão do Linux Mint, a 22.2 de nome “Zara”.&lt;/p&gt;
&lt;p&gt;O Linux Mint é conhecido por ser uma das distribuições Linux mais populares para iniciantes, tendo base do Ubuntu LTS — dando uma boa estabilidade — e uma interface gráfica com um paradigma de &lt;em&gt;desktop&lt;/em&gt; semelhante ao Windows.&lt;/p&gt;
&lt;h2 id=&#34;principais-mudanças&#34;&gt;Principais mudanças&lt;/h2&gt;
&lt;h3 id=&#34;notas-adesivas&#34;&gt;Notas adesivas&lt;/h3&gt;
&lt;p&gt;O Linux Mint 22.2 veio com melhorias nas notas adesivas como ter agora bordas arredondadas e suporte a Wayland, que é a tecnologia mais moderna de desktop — padrão na maioria das distros como o Fedora, o Arch e o Ubuntu. Nas últimas atualizações do Mint, o suporte a Wayland à sua interface, o Cinnamon, foi melhorado.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Hoje foi lançada a nova versão do Linux Mint, a 22.2 de nome “Zara”.</p>
<p>O Linux Mint é conhecido por ser uma das distribuições Linux mais populares para iniciantes, tendo base do Ubuntu LTS — dando uma boa estabilidade — e uma interface gráfica com um paradigma de <em>desktop</em> semelhante ao Windows.</p>
<h2 id="principais-mudanças">Principais mudanças</h2>
<h3 id="notas-adesivas">Notas adesivas</h3>
<p>O Linux Mint 22.2 veio com melhorias nas notas adesivas como ter agora bordas arredondadas e suporte a Wayland, que é a tecnologia mais moderna de desktop — padrão na maioria das distros como o Fedora, o Arch e o Ubuntu. Nas últimas atualizações do Mint, o suporte a Wayland à sua interface, o Cinnamon, foi melhorado.</p>
<p><img src="/pt/posts/linux-mint-22-2-lancado/notes.png" alt="Aplicativo de Notas"></p>
<p><em>Novo visual das notas adesivas</em></p>
<h3 id="tela-de-log-in">Tela de Log-in</h3>
<p>A tela de login foi atualizada com um novo visual com um efeito de <em>blur</em> e <em>avatars</em> do usuário:</p>
<p><img src="/pt/posts/linux-mint-22-2-lancado/slick_greeter.png" alt="Tela de login"></p>
<h3 id="autenticação-por-digital">Autenticação por digital</h3>
<p>O Linux Mint 22.2 tem um novo aplicativo chamado <a href="https://github.com/xapp-project/fingwit">Fingwit</a>, que permite registrar impressões digitais e usá-las para desbloquear a tela, no Sudo, e em aplicativos de administração.</p>
<h3 id="compatibilidade-com-o-libadwaita">Compatibilidade com o LibAdwaita</h3>
<p>Essa é, na minha opinião, uma das melhores mudanças.</p>
<p>O LibAdwaita é uma biblioteca criada pelo GNOME para seguir seu código de <em>design</em>, mantendo uma aparência consistente em todos os programas — de forma semelhante a como a Apple faz com o Cocoa. Entretanto, ela vem com a desvantagem de ter um visual totalmente fora de lugar em distros que não usam o GNOME, caso do Linux Mint.</p>
<p>Anteriormente, o Linux Mint usou as versões antigas dos aplicativos do GNOME que não usava a biblioteca para manter consistência, entretanto, agora eles passaram a modificá-lo para que o tema global seja aplicado:</p>
<p><img src="/pt/posts/linux-mint-22-2-lancado/libadwaita.gif" alt="Compatibilidade do tema com o LibAdwaita"></p>
<p>Como podemos ver, aplicativos como o Gnome Calendar  — que usam a biblioteca — têm o seu tema mais consistente com o definido, ao contrário das versões anteriores, onde independente do tema, eles teriam o mesmo visual.</p>
<p>O fork está no <a href="https://github.com/xapp-project/libadapta">GitHub</a> pelo nome de LibAdapta.</p>
<h1 id="como-atualizar">Como atualizar</h1>
<p>Para atualizar o Linux Mint para a versão mais recente, é recomendado que primeiro seja feito um <em>backup</em> dos arquivos, o que pode ser feito pela ferramenta criada pela própria distro, o Timeshift.</p>
<p>Posteriormente, vá ao gerenciador de pacotes, clique em “Editar” e depois em “Atualizar para o Linux Mint 22.2 Zara”:</p>
<p><img src="/pt/posts/linux-mint-22-2-lancado/shadow_upgrade1.png" alt="Menu de atualização"></p>
<p>Depois, reinicie o computador e você deve ter a versão mais recente instalada.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Como rodar IAs localmente no computador (ou celular)</title>
      <link>https://galdoon.codeberg.page/pt/posts/como-rodar-ias-no-computador/</link>
      <pubDate>Wed, 03 Sep 2025 13:54:19 -0300</pubDate>
      <guid>https://galdoon.codeberg.page/pt/posts/como-rodar-ias-no-computador/</guid>
      <description>&lt;p&gt;Nos últimos anos, têm se popularizado bastante chats de inteligência artificial como o ChatGPT, o Gemini e o Claude. Eles mudaram de forma significativa, a maneira como as pessoas fazem diversas atividades — como programar, fazer dever de casa, escrever, etc. —, seja pra melhor ou pra pior.&lt;/p&gt;
&lt;p&gt;Apesar disso, a maioria dos modelos de IA que se popularizaram são &lt;em&gt;fechados&lt;/em&gt;: rodam em um software &lt;em&gt;fechado&lt;/em&gt; em um servidor &lt;em&gt;fechado&lt;/em&gt; — não rodam nativamente em seu computador, e sim mandam sua mensagem para um servidor que a processa e retorna o resultado.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Nos últimos anos, têm se popularizado bastante chats de inteligência artificial como o ChatGPT, o Gemini e o Claude. Eles mudaram de forma significativa, a maneira como as pessoas fazem diversas atividades — como programar, fazer dever de casa, escrever, etc. —, seja pra melhor ou pra pior.</p>
<p>Apesar disso, a maioria dos modelos de IA que se popularizaram são <em>fechados</em>: rodam em um software <em>fechado</em> em um servidor <em>fechado</em> — não rodam nativamente em seu computador, e sim mandam sua mensagem para um servidor que a processa e retorna o resultado.</p>
<p>Entretanto é possível de forma bem fácil rodar modelos de IA nativamente em seu computador por meio do <a href="https://ollama.com/">Ollama</a>, uma ferramenta escrita em Go para manusear e rodar LLMs. Entretanto, esteja ciente que, sem um computador bom, não dá pra rodar os melhores modelos, mas dá pra brincar com os mais simples.</p>
<p>Para isso, a primeira coisa que deve ser feita é <a href="https://ollama.com/download">instalar o Ollama</a>. Para isso, você pode usar o instalador oficial, compilar pela fonte ou instalar pelo gerenciador de pacotes de sua distro Linux. No caso do Fedora:</p>






<pre tabindex="0"><code>sudo dnf install ollama  </code></pre>
<p>Depois de instalado, rode o servidor do Ollama. Para isso, é só digitar no terminal:</p>






<pre tabindex="0"><code>ollama serve  </code></pre>
<p>E para rodar um modelo, digite:</p>






<pre tabindex="0"><code>ollama run &lt;nome do modelo&gt;  </code></pre>
<p>Existem diversos, como <a href="https://ollama.com/library/gpt-oss">DeepSeek</a> e o <a href="https://ollama.com/library/gpt-oss">GPT-OSS</a>. Entretanto, em uma máquina mais fraca e sem placa de vídeo dedicada, os modelos maiores não vão rodar, por isso busque sempre por modelos com poucos parâmetros — por exemplo, nos modelos do Qwen3:</p>
<p><img src="/pt/posts/como-rodar-ias-no-computador/qwen3-modelos.png" alt="Tabela dos modelos do Qwen3"></p>
<p>Vemos que são vários. Esse ‘b’ é <em>bilhões de parâmetros</em>, então o qwen3:8b tem 8 bilhões de parâmetros, e o qwen3:0.6b tem 600 milhões de parâmetros. Para rodar um modelo grande é necessário não só uma placa de vídeo boa, mas também muita VRAM. Os modelos menores, de até 4 bilhões, são possíveis de rodar usando a CPU.</p>
<p>Em meus testes, os melhores modelos são o <a href="https://ollama.com/library/qwen3">Qwen3</a>, o <a href="https://ollama.com/library/gemma3">Gemma3</a> e o <a href="https://ollama.com/library/llama3.2">LLaMA 3.2</a>. Eles são pequenos mas podem ser úteis de certa forma. Outros modelos como o <a href="https://ollama.com/library/deepseek-r1">Deepseek R1</a> em seus modelos mais básicos cometem muitos erros e nem conseguem falar português direito.</p>
<p>Para, por exemplo, rodar o Gemma3 de 1 bilhão de parâmetros faria assim:</p>






<pre tabindex="0"><code>$ ollama run gemma3:1b  
&gt;&gt; Olá, como está?  
Olá, estou bem, obrigado por perguntar! Como vai você? 😊

E você, como está? Em que posso ajudar?  </code></pre>
<p>Para listar, use <code>ollama list</code>, e para apagar, use <code>ollama rm &lt;modelo&gt;</code>.</p>
<h2 id="como-rodar-no-celular">Como rodar no celular</h2>
<p>Para rodar no celular, instale o <a href="https://play.google.com/store/apps/details?id=com.termux&amp;pcampaignid=web_share">Termux</a> — que é um terminal Linux dentro do Android de código aberto —, instale o Ollama com <code>pkg install ollama</code> e prossiga os passos como mencionados anteriormente.</p>
]]></content:encoded>
    </item>
    <item>
      <title>O Firefox tem estado péssimo. Quais são as alternativas e qual o Zorin OS deveria ter escolhido?</title>
      <link>https://galdoon.codeberg.page/pt/posts/firefox-pessimo-alternativas/</link>
      <pubDate>Thu, 15 May 2025 10:40:40 -0300</pubDate>
      <guid>https://galdoon.codeberg.page/pt/posts/firefox-pessimo-alternativas/</guid>
      <description>&lt;p&gt;O Firefox era um dos navegadores mais populares. Desde seu lançamento em 2004, sua popularidade só crescia, chegando a quase ultrapassar o Internet Explorer. Entretanto, com a chegada do Chrome, um navegador mais rápido, mais seguro e com mais funcionalidades, a popularidade do Firefox caiu.&lt;/p&gt;
&lt;p&gt;Com isso, o &lt;em&gt;marketing&lt;/em&gt; do Firefox passou a ser feito com base nessa palavra-chave: &lt;strong&gt;privacidade&lt;/strong&gt;. Em todo o Firefox, essa palavra aparece. Afinal de contas, o Firefox, é de fato, mais privado que algo como o Google Chrome, que rastreia tudo o que você acessa.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>O Firefox era um dos navegadores mais populares. Desde seu lançamento em 2004, sua popularidade só crescia, chegando a quase ultrapassar o Internet Explorer. Entretanto, com a chegada do Chrome, um navegador mais rápido, mais seguro e com mais funcionalidades, a popularidade do Firefox caiu.</p>
<p>Com isso, o <em>marketing</em> do Firefox passou a ser feito com base nessa palavra-chave: <strong>privacidade</strong>. Em todo o Firefox, essa palavra aparece. Afinal de contas, o Firefox, é de fato, mais privado que algo como o Google Chrome, que rastreia tudo o que você acessa.</p>
<p>Mas isso mudou &ndash; com os novos termos de serviço do navegador, ele passou a apresentar essa cláusula:</p>
<p><em>You give Mozilla the rights necessary to operate Firefox. This includes processing your data as we describe in the Firefox Privacy Notice. It also includes a nonexclusive, royalty-free, worldwide license for the purpose of doing as you request with the content you input in Firefox. This does not give Mozilla any ownership in that content.</em></p>
<p>Que traduzindo, significa:</p>
<p><em>Você concede à Mozilla os direitos necessários para operar o Firefox. Isso inclui o processamento dos seus dados conforme descrito no Aviso de Privacidade do Firefox. Também inclui uma licença não exclusiva, isenta de royalties e válida mundialmente, com a finalidade de atender às suas solicitações com o conteúdo que você insere no Firefox. Isso não concede à Mozilla qualquer propriedade sobre esse conteúdo.</em></p>
<p>Basicamente, o Firefox tem direitos sobre os seus dados. Lendo o <a href="https://www.mozilla.org/en-US/privacy/firefox/">Aviso de Privacidade do Firefox</a>, podemos ver para que esses dados são utilizados:</p>
<ul>
<li>Para fornecer o navegador Firefox</li>
<li>Para adaptar o Firefox às suas necessidades</li>
<li>Para fornecer e melhorar a funcionalidade de pesquisa</li>
<li>Para fornecer conteúdo relevante e publicidade na Nova Aba do Firefox</li>
<li>Para fornecer contas da Mozilla</li>
<li>Para fornecer chatbots de IA</li>
<li>Para fornecer o Review Checker, incluindo conteúdo patrocinado</li>
<li>Para fornecer e habilitar add-ons (addons.mozilla.org)</li>
<li>Para manter e melhorar recursos, desempenho e estabilidade</li>
<li>Para melhorar a segurança</li>
<li>Para entender o uso do Firefox</li>
<li>Para comercializar nossos serviços</li>
<li>Para pseudonimizar, desidentificar, agregar ou anonimizar dados</li>
<li>Para se comunicar com você</li>
<li>Para cumprir com as leis aplicáveis, identificar e prevenir atividades prejudiciais, não autorizadas ou ilegais</li>
</ul>
<p>O que é algo muito estranho para um navegador supostamente privado. Por isso, vou mostrar algumas alternativas que considero viáveis e no fim refletir qual delas o Zorin OS deveria ter usado, já que <a href="https://news.itsfoss.com/zorin-os-17-3/">o Zorin OS mudou o navegador padrão para o Brave</a>.</p>
<h1 id="alternativas-ao-firefox">Alternativas ao Firefox</h1>
<h2 id="brave"><a href="https://brave.com/">Brave</a></h2>
<p><img src="/pt/posts/firefox-pessimo-alternativas/brave.jpg" alt="Navegador Brave"></p>
<p>Esse eu coloco em último lugar. Apesar de ser um navegador com boas configurações padrão de privacidade, ele tem duas desvantagens:</p>
<ul>
<li>É baseado no Chromium;</li>
<li>É de uma empresa.</li>
</ul>
<p>Sobre a questão dele ser baseado em Chromium, isso é muito mais uma questão ética do que de segurança e privacidade. Eu sou contra navegadores baseados nele porque eles só contribuem pro monopólio da Google na <em>internet</em>. Isso já pode ser visto com o <a href="https://blog.chromium.org/2024/05/manifest-v2-phase-out-begins.html">Manifest v2 sendo removido do Chromium</a>, acabando com extensões importantíssimas para a privacidade como o <a href="https://github.com/gorhill/uBlock">uBlock Origin</a>. Por isso que eu apoio navegadores que não são baseados em Blink, como o <a href="https://ladybird.org/">Ladybird</a>, que embora seja bem lento por enquanto, renderiza as páginas até que bem &ndash; consegue até rodar vídeos do YouTube.</p>
<p>Sobre ele ser de uma empresa, eu não tenho nada contra empresas contribuírem para projetos de código aberto, o problema é quando elas começam a modificar o projeto de forma negativa para o consumidor, que pode ser visto com <strong>o navegador integrando IA e criptomoedas no programa</strong>.</p>
<p>Apesar disso, ele tem vantagens:</p>
<ul>
<li>Ter boas configurações padrão de privacidade;</li>
<li>Ser de código aberto &ndash; simplesmente essencial.</li>
</ul>
<h2 id="zen"><a href="https://zen-browser.app/">Zen</a></h2>
<p><img src="/pt/posts/firefox-pessimo-alternativas/zen.png" alt="Navegador Zen"></p>
<p>O Zen é um navegador de código aberto baseado no Firefox, o que já é um ponto positivo. Ele é altamente inspirado no navegador minimalista baseado no Chromium <a href="https://arc.net/">Arc</a>. Ele tem várias funcionalidades, lembrando um pouco o Opera (na minha opinião), com a vantagem de ser <em>software</em> livre.</p>
<p>A interface pode ser um pouco confusa para pessoas acostumadas com navegadores tradicionais, mas ela permite organizar suas abas de forma muito boa, e também tem o modo compacto, onde a página ocupa a janela toda.</p>
<p>Além disso, ele também não é propriedade de nenhuma empresa, um outro ponto positivo. Entretanto, ele ainda está em beta, embora seja perfeitamente utilizável para uso diário.</p>
<p>Apesar disso, ele não tem configurações padrão de privacidade muito boas, então você provavelmente vai ter que configurar por conta própria se quiser isso.</p>
<h2 id="librewolf"><a href="https://librewolf.net/">LibreWolf</a></h2>
<p><img src="/pt/posts/firefox-pessimo-alternativas/librewolf.jpg" alt="Navegador LibreWolf"></p>
<p>Esse é de longe uma das melhores alternativas ao Firefox para privacidade. É visualmente bem parecido com o navegador da Mozilla, mas é perfeitamente configurado para privacidade, vindo até com o uBlock Origin pré-instalado.</p>
<p>Além de ser de código aberto e não ser propriedade de nenhuma empresa <strong>ele não recebe doações(!)</strong>. No <a href="https://librewolf.net/docs/faq">FAQ</a> dele, está escrito assim (traduzindo):</p>
<p><em>Por que não aceitamos doações?</em></p>
<p><em>Não queremos lidar com a administração necessária para gerenciar doações de forma adequada. Se não precisamos de financiamento, não vamos correr o risco de nos tornarmos dependentes dele. E também: sem doações, não há expectativas. Isso significa que as pessoas que trabalham no LibreWolf são livres para seguir para outros projetos quando quiserem.</em></p>
<p>Apesar de todas essas vantagens, a configuração padrão do LibreWolf &ndash; embora perfeita para privacidade e segurança &ndash; pode ser um problema para usuários normais, já que:</p>
<ul>
<li>Usa o DuckDuckGo por padrão &ndash; alguns podem preferir o Google;</li>
<li>Usa o uBlock Origin por padrão &ndash; alguns sites podem pedir pra que você desative a extensão;</li>
<li>Usa o modo restrito do Firefox por padrão &ndash; alguns sites, incluindo o Twitter, não funcionam;</li>
<li>Limpa todos os cookies quando o navegador é fechado;</li>
<li>Não pede para salvar as senhas por padrão;</li>
<li>Desativa o DRM (<em>Digital Rights Management</em>) por padrão &ndash; você não consegue, por exemplo, assistir Netflix.</li>
</ul>
<p>Apesar disso, tudo isso pode ser modificado fácilmente nas configurações do navegador.</p>
<h1 id="qual-dessas-alternativas-o-zorin-os-deveria-ter-escolhido">Qual dessas alternativas o Zorin OS deveria ter escolhido?</h1>
<p>Resposta: ou dar escolha ao usuário, ou simplesmente deixar Firefox.</p>
<p>A verdade é que, ao contrário do Windows, a maioria das distros Linux te dá <em>escolha</em> &ndash; ou seja: um usuário que não se importa muito com privacidade pode perfeitamente instalar o Chrome e desintalar o Firefox, enquanto um usuário que se importa mais com isso pode instalar, por exemplo, o LibreWolf, e desinstalar o Firefox.</p>
<p>Entretanto, uma coisa que poucas distros Linux fazem é dar essa escolha <em>no processo de instalação</em>. Até agora, a única distro que vi fazer isso é o <a href="https://www.raspberrypi.com/software/">Raspberry Pi OS</a>, que dá a escolha entre instalar o Chromium ou o Firefox. Por isso, seria interessante o Zorin OS dar as seguintes opções de navegador pro usuário baixar:</p>
<ul>
<li>Chromium;</li>
<li>Firefox;</li>
<li>Brave;</li>
<li>LibreWolf;</li>
<li>Nenhum navegador.</li>
</ul>
<p>Porque, sinceramente, trocar o Firefox pelo Brave não vai fazer muita diferença para a maioria dos usuários, que vão instalar outro navegador por conta própria &ndash; do mesmo jeito que ninguém usa o Microsoft Edge.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
