<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Learn Trig Math</title>
		<link>https://learntrigmath.cfd/</link>
		<description>Recent content on Learn Trig Math</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Sat, 19 Sep 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://learntrigmath.cfd/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Graphs of Trig Functions</title>
				<link>https://learntrigmath.cfd/docs/unit-3-functions-and-identities/graphs-of-trig-functions/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-3-functions-and-identities/graphs-of-trig-functions/</guid>
				<description>&lt;h2 id=&#34;sine-and-cosine-waves&#34;&gt;Sine and cosine waves &lt;a href=&#34;#sine-and-cosine-waves&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Plot \(y = \sin\theta\) against \(\theta\) and you get a wave oscillating between −1 and 1, repeating every \(2\pi\). Cosine is the same wave shifted left by \(\pi/2\):&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;\sin(\theta &amp;#43; \tfrac{\pi}{2}) = \cos\theta&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;Key features of \(y = \sin x\):&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Zeros at \(0, \pi, 2\pi, \dots\)&lt;/li&gt;&#xA;&lt;li&gt;Peaks (+1) at \(\pi/2 + 2\pi k\), troughs (−1) at \(3\pi/2 + 2\pi k\)&lt;/li&gt;&#xA;&lt;li&gt;Odd symmetry: \(\sin(-x) = -\sin x\); cosine is even: \(\cos(-x) = \cos x\)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;the-general-sinusoid&#34;&gt;The general sinusoid &lt;a href=&#34;#the-general-sinusoid&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Almost every oscillation in code (sprite bobbing, audio tone, loading pulse) is:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Project: Analog Clock</title>
				<link>https://learntrigmath.cfd/docs/unit-5-games-and-graphics/analog-clock/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-5-games-and-graphics/analog-clock/</guid>
				<description>&lt;h2 id=&#34;the-problem&#34;&gt;The problem &lt;a href=&#34;#the-problem&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Draw a working clock: 60 tick marks around a dial, plus hour, minute, and second hands that show the real time. Every hand is an angle problem — and screens measure angles differently than math class.&lt;/p&gt;&#xA;&lt;h2 id=&#34;angles-on-a-screen&#34;&gt;Angles on a screen &lt;a href=&#34;#angles-on-a-screen&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Math angles start at +x and go counterclockwise with y up. A clock starts at 12 and goes &lt;strong&gt;clockwise&lt;/strong&gt; with y &lt;strong&gt;down&lt;/strong&gt;. For a hand showing a fraction \(f\) of a full turn (e.g. 15 minutes = 0.25), the clockwise-from-top angle is:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Project: Sound &amp; Beats</title>
				<link>https://learntrigmath.cfd/docs/unit-6-waves-sound-and-data/sound-and-beats/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-6-waves-sound-and-data/sound-and-beats/</guid>
				<description>&lt;h2 id=&#34;the-problem&#34;&gt;The problem &lt;a href=&#34;#the-problem&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A sine wave is not just a picture — it is a sound. Given the wave math from &lt;a href=&#34;https://learntrigmath.cfd/docs/unit-3-functions-and-identities/graphs-of-trig-functions/&#34;&gt;Graphs&lt;/a&gt;, generate real tones in the browser, combine two close pitches to hear &lt;em&gt;beats&lt;/em&gt;, and shape notes with an envelope.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tone-math&#34;&gt;Tone math &lt;a href=&#34;#tone-math&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A pure tone of frequency \(f\) Hz at amplitude \(A\) is:&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;y(t) = A\sin(2\pi f t)&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;Musical pitch is logarithmic: A4 = 440 Hz and each semitone up multiplies by \(2^{1/12}\):&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Unit Circle</title>
				<link>https://learntrigmath.cfd/docs/unit-2-circles-and-triangles/unit-circle/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-2-circles-and-triangles/unit-circle/</guid>
				<description>&lt;h2 id=&#34;definition&#34;&gt;Definition &lt;a href=&#34;#definition&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The &lt;strong&gt;unit circle&lt;/strong&gt; is a circle of radius 1 centered at the origin. For any angle \(\theta\) measured from the positive x-axis:&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;\cos\theta = x, \qquad \sin\theta = y&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;That is: go \(\theta\) around the circle; your coordinates &lt;strong&gt;are&lt;/strong&gt; cosine and sine. For acute angles this matches SOH-CAH-TOA with hypotenuse 1. For larger angles it &lt;em&gt;extends&lt;/em&gt; the definitions.&lt;/p&gt;&#xA;&#xA;&#xA;    &#xA;    &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;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; math&#xA;&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;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;point_on_circle&lt;/span&gt;(theta_rad, r&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1.0&lt;/span&gt;):&#xA;&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; (r &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; math&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;cos(theta_rad), r &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; math&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sin(theta_rad))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(point_on_circle(math&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;radians(&lt;span style=&#34;color:#ae81ff&#34;&gt;180&lt;/span&gt;)))  &lt;span style=&#34;color:#75715e&#34;&gt;# (-1.0, ~0)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(point_on_circle(math&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;radians(&lt;span style=&#34;color:#ae81ff&#34;&gt;270&lt;/span&gt;)))  &lt;span style=&#34;color:#75715e&#34;&gt;# (~0, -1.0)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;h2 id=&#34;key-points-to-memorize&#34;&gt;Key points to memorize &lt;a href=&#34;#key-points-to-memorize&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Angle&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Coordinates \((\cos, \sin)\)&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;0° (\(0\))&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;(1, 0)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;30° (\(\pi/6\))&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;(√3/2 ≈ 0.866, 1/2)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;45° (\(\pi/4\))&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;(√2/2 ≈ 0.707, √2/2)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;60° (\(\pi/3\))&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;(1/2, √3/2 ≈ 0.866)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;90° (\(\pi/2\))&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;(0, 1)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;180° (\(\pi\))&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;(−1, 0)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;270° (\(3\pi/2\))&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;(0, −1)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;360° (\(2\pi\))&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;(1, 0)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Notice the symmetry: 30° and 60° swap coordinates; 45° is equal in both.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Trigonometry in Code</title>
				<link>https://learntrigmath.cfd/docs/unit-4-trig-in-code/trigonometry-in-code/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-4-trig-in-code/trigonometry-in-code/</guid>
				<description>&lt;h2 id=&#34;cheat-sheet&#34;&gt;Cheat sheet &lt;a href=&#34;#cheat-sheet&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;x = r\cos\theta, \qquad y = r\sin\theta, \qquad&#xA;\theta = \text{atan2}(y, x)&#xA;$$&#xA;  &lt;/div&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;\text{rad} = \text{deg}\cdot\tfrac{\pi}{180}, \qquad&#xA;\text{deg} = \text{rad}\cdot\tfrac{180}{\pi}&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;All standard-library trig takes &lt;strong&gt;radians&lt;/strong&gt;: Python &lt;code&gt;math.sin/cos/tan/asin/acos/atan/atan2&lt;/code&gt;, JS &lt;code&gt;Math.sin/cos/tan/asin/acos/atan/atan2&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;recipe-1-place-objects-on-a-circle&#34;&gt;Recipe 1: place objects on a circle &lt;a href=&#34;#recipe-1-place-objects-on-a-circle&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Clocks, radial menus, orbit systems:&lt;/p&gt;&#xA;&#xA;&#xA;    &#xA;    &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;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; math&#xA;&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;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;circle_points&lt;/span&gt;(n, radius, cx&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0.0&lt;/span&gt;, cy&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0.0&lt;/span&gt;):&#xA;&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; [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (cx &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; radius &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; math&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;cos(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; math&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;pi &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; n),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         cy &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; radius &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; math&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sin(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; math&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;pi &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; n))&#xA;&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;for&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; range(n)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(circle_points(&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;))  &lt;span style=&#34;color:#75715e&#34;&gt;# E, N, W, S in math coords (y up)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&#xA;&#xA;    &#xA;    &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;-webkit-text-size-adjust:none;&#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;circlePoints&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;n&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;radius&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;cx&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;cy&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;) {&#xA;&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; Array.&lt;span style=&#34;color:#a6e22e&#34;&gt;from&lt;/span&gt;({ &lt;span style=&#34;color:#a6e22e&#34;&gt;length&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;n&lt;/span&gt; }, (&lt;span style=&#34;color:#a6e22e&#34;&gt;_&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;) =&amp;gt; {&#xA;&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;t&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&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:#a6e22e&#34;&gt;i&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;n&lt;/span&gt;;&#xA;&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 style=&#34;color:#a6e22e&#34;&gt;cx&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;radius&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;t&lt;/span&gt;), &lt;span style=&#34;color:#a6e22e&#34;&gt;cy&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;radius&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;t&lt;/span&gt;)];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  });&#xA;&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;&#xA;&#xA;&lt;div class=&#34;mt-2 mb-3&#34;&gt;&#xA;  &lt;button type=&#34;button&#34; class=&#34;btn btn-sm btn-outline-primary pg-send-btn&#34; data-pg-mode=&#34;page&#34; data-pg-code=&#34;ZnVuY3Rpb24gY2lyY2xlUG9pbnRzKG4sIHJhZGl1cywgY3ggPSAwLCBjeSA9IDApIHsKICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogbiB9LCAoXywgaSkgPT4gewogICAgY29uc3QgdCA9IDIgKiBNYXRoLlBJICogaSAvIG47CiAgICByZXR1cm4gW2N4ICsgcmFkaXVzICogTWF0aC5jb3ModCksIGN5ICsgcmFkaXVzICogTWF0aC5zaW4odCldOwogIH0pOwp9&#34; data-pg-url=&#34;https://learntrigmath.cfd/docs/playground/&#34;&gt;&#xA;    &lt;span class=&#34;material-icons align-middle&#34; style=&#34;font-size: 16px;&#34;&gt;play_arrow&lt;/span&gt;&#xA;    Run in playground&#xA;  &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;script&gt;&#xA;document.addEventListener(&#39;click&#39;, function (e) {&#xA;  var el = e.target;&#xA;  var btn = (el.closest) ? el.closest(&#39;.pg-send-btn&#39;) : null;&#xA;  if (!btn) { return; }&#xA;  try {&#xA;    var bin = atob(btn.getAttribute(&#39;data-pg-code&#39;));&#xA;    var bytes = new Uint8Array(bin.length);&#xA;    for (var i = 0; i &lt; bin.length; i++) { bytes[i] = bin.charCodeAt(i); }&#xA;    var code = new TextDecoder().decode(bytes);&#xA;    localStorage.setItem(&#39;pg-incoming&#39;, JSON.stringify({ code: code, mode: btn.getAttribute(&#39;data-pg-mode&#39;) }));&#xA;    window.location.href = btn.getAttribute(&#39;data-pg-url&#39;);&#xA;  } catch (err) {&#xA;    console.error(&#39;playground handoff failed&#39;, err);&#xA;  }&#xA;});&#xA;&lt;/script&gt;&lt;p&gt;Note: screen coordinates have &lt;strong&gt;y down&lt;/strong&gt;, so on Canvas/SVG the circle appears mirrored (clockwise). Negate y or add \(\pi\) if you need math orientation.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What Is Trigonometry?</title>
				<link>https://learntrigmath.cfd/docs/unit-1-foundations/what-is-trigonometry/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-1-foundations/what-is-trigonometry/</guid>
				<description>&lt;h2 id=&#34;the-one-sentence-version&#34;&gt;The one-sentence version &lt;a href=&#34;#the-one-sentence-version&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Trigonometry studies the &lt;strong&gt;relationship between angles and side lengths&lt;/strong&gt; — mostly in triangles, and by extension in circles, waves, and rotations.&lt;/p&gt;&#xA;&lt;p&gt;The three core functions take an angle and return a ratio:&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;\sin(\theta), \quad \cos(\theta), \quad \tan(\theta)&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;If you know an angle (plus one side), you can find every other side. If you know sides, you can recover the angles. That two-way bridge is the whole superpower.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Angles, Degrees, and Radians</title>
				<link>https://learntrigmath.cfd/docs/unit-1-foundations/angles-degrees-radians/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-1-foundations/angles-degrees-radians/</guid>
				<description>&lt;h2 id=&#34;degrees&#34;&gt;Degrees &lt;a href=&#34;#degrees&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A full rotation is split into 360 &lt;strong&gt;degrees&lt;/strong&gt; (°). Familiar benchmarks:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;90° = quarter turn (right angle)&lt;/li&gt;&#xA;&lt;li&gt;180° = half turn (straight line)&lt;/li&gt;&#xA;&lt;li&gt;270° = three-quarter turn&lt;/li&gt;&#xA;&lt;li&gt;360° = full turn&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Degrees are convenient for humans (divisible by 2, 3, 4, 6, 9, &amp;hellip;), which is why CSS, SVG rotations, and compass bearings use them.&lt;/p&gt;&#xA;&lt;h2 id=&#34;radians&#34;&gt;Radians &lt;a href=&#34;#radians&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A &lt;strong&gt;radian&lt;/strong&gt; measures rotation by arc length: one radian is the angle that subtends an arc exactly one radius long. Since a full circle&amp;rsquo;s circumference is \(2\pi r\):&lt;/p&gt;</description>
			</item>
			<item>
				<title>Fundamental Identities</title>
				<link>https://learntrigmath.cfd/docs/unit-3-functions-and-identities/fundamental-identities/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-3-functions-and-identities/fundamental-identities/</guid>
				<description>&lt;h2 id=&#34;why-identities-matter&#34;&gt;Why identities matter &lt;a href=&#34;#why-identities-matter&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Identities are equations true for &lt;strong&gt;every&lt;/strong&gt; angle. They let you rewrite expressions, verify code (e.g. assert \(\sin^2 + \cos^2 \approx 1\)), and simplify shaders or physics formulas before implementing them.&lt;/p&gt;&#xA;&lt;h2 id=&#34;pythagorean-identities&#34;&gt;Pythagorean identities &lt;a href=&#34;#pythagorean-identities&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;From \(x^2 + y^2 = 1\) on the unit circle, with \(x = \cos\theta\), \(y = \sin\theta\):&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;\sin^2\theta &amp;#43; \cos^2\theta = 1&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;Dividing by \(\cos^2\theta\) or \(\sin^2\theta\) gives the other two:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Project: Easing &amp; Motion</title>
				<link>https://learntrigmath.cfd/docs/unit-6-waves-sound-and-data/easing-and-motion/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-6-waves-sound-and-data/easing-and-motion/</guid>
				<description>&lt;h2 id=&#34;the-problem&#34;&gt;The problem &lt;a href=&#34;#the-problem&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Objects that move at constant speed and stop instantly look robotic. Real motion — and good UI — eases: slow start, fast middle, gentle stop. The smoothest easings are sine curves.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-three-sine-easings&#34;&gt;The three sine easings &lt;a href=&#34;#the-three-sine-easings&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;For progress \(t \in [0, 1]\), mapping to eased progress \(e(t) \in [0, 1]\):&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;\text{easeInSine: } e = 1 - \cos\!\left(\tfrac{\pi}{2}t\right), \qquad&#xA;\text{easeOutSine: } e = \sin\!\left(\tfrac{\pi}{2}t\right), \qquad&#xA;\text{easeInOutSine: } e = -\tfrac{1}{2}\left(\cos(\pi t) - 1\right)&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;Check the boundaries: at \(t = 0\) all give 0, at \(t = 1\) all give 1. The difference is the &lt;em&gt;slope&lt;/em&gt;: ease-in starts flat (zero velocity) and ease-out ends flat. Ease-in-out does both — which is why it is the default choice for moving things on screen.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Project: Projectile Lab</title>
				<link>https://learntrigmath.cfd/docs/unit-5-games-and-graphics/projectile-lab/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-5-games-and-graphics/projectile-lab/</guid>
				<description>&lt;h2 id=&#34;the-problem&#34;&gt;The problem &lt;a href=&#34;#the-problem&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Launch a projectile at speed \(v_0\) and angle \(\theta\). Where does it land? How high does it go? This is parametric motion — \(x\) and \(y\) each driven by trig of the launch angle.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-equations&#34;&gt;The equations &lt;a href=&#34;#the-equations&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Split the launch velocity into components, then let gravity act on \(y\) (y up, \(g = 9.81\)):&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;x(t) = v_0\cos\theta \cdot t, \qquad&#xA;y(t) = v_0\sin\theta \cdot t - \tfrac{1}{2}gt^2&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;Setting \(y = 0\) gives flight time \(T = 2v_0\sin\theta / g\), and substituting back gives the famous results:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Special Right Triangles</title>
				<link>https://learntrigmath.cfd/docs/unit-2-circles-and-triangles/special-right-triangles/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-2-circles-and-triangles/special-right-triangles/</guid>
				<description>&lt;h2 id=&#34;why-special&#34;&gt;Why &amp;ldquo;special&amp;rdquo;? &lt;a href=&#34;#why-special&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Most triangles need a calculator. Two shapes give &lt;strong&gt;exact&lt;/strong&gt; values with square roots, so they appear constantly in tests, graphics (diagonals, hex grids), and interview problems.&lt;/p&gt;&#xA;&lt;h2 id=&#34;45-45-90-isosceles-right&#34;&gt;45-45-90 (isosceles right) &lt;a href=&#34;#45-45-90-isosceles-right&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Angles: 45°, 45°, 90°. Legs equal; hypotenuse is leg × √2.&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;\text{legs } 1 : 1, \quad \text{hypotenuse } \sqrt{2} \;\; \Rightarrow \;\; 1 : 1 : \sqrt{2}&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;Derivation: legs \(1, 1\) → hypotenuse \(\sqrt{1^2+1^2} = \sqrt{2}\) by Pythagoras.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Inverse Trig Functions</title>
				<link>https://learntrigmath.cfd/docs/unit-3-functions-and-identities/inverse-trig-functions/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-3-functions-and-identities/inverse-trig-functions/</guid>
				<description>&lt;h2 id=&#34;the-idea&#34;&gt;The idea &lt;a href=&#34;#the-idea&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Forward trig: angle → ratio. &lt;strong&gt;Inverse trig: ratio → angle.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;\theta = \arcsin x \iff \sin\theta = x, \qquad&#xA;\theta = \arccos x \iff \cos\theta = x, \qquad&#xA;\theta = \arctan x \iff \tan\theta = x&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;Also written \(\sin^{-1}, \cos^{-1}, \tan^{-1}\) — the \(-1\) means &lt;em&gt;inverse function&lt;/em&gt;, &lt;strong&gt;not&lt;/strong&gt; reciprocal (\(\sin^{-1}x \ne 1/\sin x = \csc x\)).&lt;/p&gt;&#xA;&lt;h2 id=&#34;restricted-ranges-principal-values&#34;&gt;Restricted ranges (principal values) &lt;a href=&#34;#restricted-ranges-principal-values&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Since \(\sin\) repeats, inverses return one canonical angle:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Project: Maps &amp; Bearings</title>
				<link>https://learntrigmath.cfd/docs/unit-6-waves-sound-and-data/maps-and-bearings/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-6-waves-sound-and-data/maps-and-bearings/</guid>
				<description>&lt;h2 id=&#34;the-problem&#34;&gt;The problem &lt;a href=&#34;#the-problem&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Two staples of maps, games with minimaps, and robotics: &lt;em&gt;which direction&lt;/em&gt; is the target (compass bearing), and &lt;em&gt;how far&lt;/em&gt; is it over the curved Earth (great-circle distance).&lt;/p&gt;&#xA;&lt;h2 id=&#34;bearings-from-atan2&#34;&gt;Bearings from &lt;code&gt;atan2&lt;/code&gt; &lt;a href=&#34;#bearings-from-atan2&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A compass bearing \(\beta\) is measured &lt;strong&gt;clockwise from north&lt;/strong&gt;, in \([0°, 360)\). With \(x\) = east offset and \(y\) = north offset (note the swapped argument order versus the usual math convention):&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;\beta = \operatorname{atan2}(x,\; y), \qquad&#xA;\beta_{deg} = (\beta \cdot \tfrac{180}{\pi} &amp;#43; 360) \bmod 360&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;Check: due east \((1, 0)\) → \(\operatorname{atan2}(1, 0) = 90°\) ✓. Due south \((0, −1)\) → 180° ✓.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Project: Turret Aiming</title>
				<link>https://learntrigmath.cfd/docs/unit-5-games-and-graphics/turret-aiming/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-5-games-and-graphics/turret-aiming/</guid>
				<description>&lt;h2 id=&#34;the-problem&#34;&gt;The problem &lt;a href=&#34;#the-problem&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A turret sits at fixed \((t_x, t_y)\). It should rotate to face the mouse, and clicked shots should fly straight along the barrel. This is the core loop of tower defense, twin-stick shooters, and aiming UI.&lt;/p&gt;&#xA;&lt;h2 id=&#34;aim-with-atan2&#34;&gt;Aim with &lt;code&gt;atan2&lt;/code&gt; &lt;a href=&#34;#aim-with-atan2&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Given mouse \((m_x, m_y)\), the barrel angle is:&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;a = \operatorname{atan2}(m_y - t_y,\; m_x - t_x)&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;On a y-down canvas this angle is clockwise-positive — which exactly matches &lt;code&gt;ctx.rotate()&lt;/code&gt;, so drawing the barrel is one call. (This is why &lt;a href=&#34;https://learntrigmath.cfd/docs/unit-3-functions-and-identities/inverse-trig-functions/&#34;&gt;Inverse Trig Functions&lt;/a&gt; insisted on &lt;code&gt;atan2&lt;/code&gt; over &lt;code&gt;atan&lt;/code&gt;: full-circle aiming needs all four quadrants.)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Right-Triangle Trigonometry</title>
				<link>https://learntrigmath.cfd/docs/unit-1-foundations/right-triangle-trigonometry/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-1-foundations/right-triangle-trigonometry/</guid>
				<description>&lt;h2 id=&#34;the-three-ratios&#34;&gt;The three ratios &lt;a href=&#34;#the-three-ratios&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Pick an acute angle \(\theta\) in a right triangle. Name the sides &lt;strong&gt;relative to \(\theta\)&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hypotenuse (H):&lt;/strong&gt; opposite the right angle, always the longest side.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Opposite (O):&lt;/strong&gt; across from \(\theta\).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Adjacent (A):&lt;/strong&gt; next to \(\theta\), not the hypotenuse.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Then:&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;\sin\theta = \frac{\text{opposite}}{\text{hypotenuse}}, \qquad&#xA;\cos\theta = \frac{\text{adjacent}}{\text{hypotenuse}}, \qquad&#xA;\tan\theta = \frac{\text{opposite}}{\text{adjacent}}&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;Mnemonic: &lt;strong&gt;SOH-CAH-TOA&lt;/strong&gt; (Sine = Opposite/Hypotenuse, Cosine = Adjacent/Hypotenuse, Tangent = Opposite/Adjacent).&lt;/p&gt;&#xA;&lt;p&gt;Tangent is also the ratio of sine to cosine:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Solving Triangles</title>
				<link>https://learntrigmath.cfd/docs/unit-2-circles-and-triangles/solving-triangles/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/unit-2-circles-and-triangles/solving-triangles/</guid>
				<description>&lt;h2 id=&#34;standard-notation&#34;&gt;Standard notation &lt;a href=&#34;#standard-notation&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Sides \(a, b, c\) opposite angles \(A, B, C\). Angles sum to 180°:&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;A &amp;#43; B &amp;#43; C = 180^\circ&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;h2 id=&#34;law-of-sines&#34;&gt;Law of Sines &lt;a href=&#34;#law-of-sines&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Use when you know &lt;strong&gt;two angles + any side&lt;/strong&gt; (AAS, ASA) or &lt;strong&gt;two sides + a non-included angle&lt;/strong&gt; (SSA, careful — ambiguous case below).&lt;/p&gt;&#xA;&#xA;  &lt;div class=&#34;equation leqno&#34; &gt;$$&#xA;\frac{a}{\sin A} = \frac{b}{\sin B} = \frac{c}{\sin C} = 2R&#xA;$$&#xA;  &lt;/div&gt;&#xA;&lt;p&gt;(\(R\) is the circumradius — the common ratio equals the diameter of the circumscribed circle.)&lt;/p&gt;</description>
			</item>
			<item>
				<title>JS Playground</title>
				<link>https://learntrigmath.cfd/docs/playground/</link>
				<pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
				<guid>https://learntrigmath.cfd/docs/playground/</guid>
				<description>&lt;h2 id=&#34;try-it-live&#34;&gt;Try it live &lt;a href=&#34;#try-it-live&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Pick a target below, then press &lt;strong&gt;Run&lt;/strong&gt; (or &lt;code&gt;Ctrl+Enter&lt;/code&gt;). Your code runs locally in your browser — nothing is uploaded anywhere.&lt;/p&gt;&#xA;&lt;div class=&#34;pg-controls d-flex flex-wrap gap-2 align-items-center mb-3&#34;&gt;&#xA;  &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; aria-label=&#34;Run target&#34;&gt;&#xA;    &lt;button id=&#34;pg-mode-canvas&#34; type=&#34;button&#34; class=&#34;btn btn-primary&#34;&gt;Canvas&lt;/button&gt;&#xA;    &lt;button id=&#34;pg-mode-page&#34; type=&#34;button&#34; class=&#34;btn btn-outline-primary&#34;&gt;Page&lt;/button&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;select id=&#34;pg-example&#34; class=&#34;form-select&#34; style=&#34;max-width: 260px;&#34; aria-label=&#34;Example&#34;&gt;&lt;/select&gt;&#xA;  &lt;button id=&#34;pg-run&#34; type=&#34;button&#34; class=&#34;btn btn-success&#34;&gt;Run&lt;/button&gt;&#xA;  &lt;button id=&#34;pg-reset&#34; type=&#34;button&#34; class=&#34;btn btn-outline-secondary&#34;&gt;Reset code&lt;/button&gt;&#xA;  &lt;button id=&#34;pg-clear&#34; type=&#34;button&#34; class=&#34;btn btn-outline-secondary&#34;&gt;Clear output&lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;canvas id=&#34;pg-canvas&#34; width=&#34;640&#34; height=&#34;360&#34; class=&#34;d-block w-100 mb-3&#34; style=&#34;height: auto; border-radius: 8px; border: 1px solid #475569;&#34;&gt;&lt;/canvas&gt;&lt;/p&gt;&#xA;&lt;div id=&#34;pg-stage&#34; class=&#34;mb-3&#34; style=&#34;display: none; min-height: 220px; border-radius: 8px; border: 2px dashed #888; padding: 12px; overflow: hidden;&#34;&gt;&lt;/div&gt;&#xA;&lt;p id=&#34;pg-helpers&#34; class=&#34;text-muted small&#34;&gt;&lt;/p&gt;&#xA;&lt;textarea id=&#34;pg-code&#34; class=&#34;form-control font-monospace mb-3&#34; rows=&#34;16&#34; spellcheck=&#34;false&#34; style=&#34;font-size: 14px;&#34;&gt;&lt;/textarea&gt;&#xA;&lt;pre id=&#34;pg-out&#34; class=&#34;mb-3&#34; style=&#34;background: #0f172a; color: #e2e8f0; border-radius: 8px; padding: 12px; min-height: 80px; max-height: 220px; overflow-y: auto; font-size: 14px;&#34;&gt;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;tips&#34;&gt;Tips &lt;a href=&#34;#tips&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;i class=&#34;material-icons align-middle&#34;&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Every JavaScript snippet in the lessons has a &lt;strong&gt;Run in playground&lt;/strong&gt; button — it loads the code here in the right mode automatically.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
