summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2024-01-08 19:11:43 +0100
committerlonkaars <loek@pipeframe.xyz>2024-01-08 19:11:43 +0100
commit251f03c22057f93daea2f38c6d8f693970cfc19f (patch)
treef1a012f55f44a8aa35018052dd5b2a2810fb9fa6
parent84a9d1aa718660cea925056eee219f6896664ae9 (diff)
de eenheidscirkel is een goed idee
-rw-r--r--circrect.tex165
-rw-r--r--refs.bib4
2 files changed, 88 insertions, 81 deletions
diff --git a/circrect.tex b/circrect.tex
index f22a7aa..8411fe8 100644
--- a/circrect.tex
+++ b/circrect.tex
@@ -47,68 +47,67 @@ De volgende variabelen (met uitzondering van functieparameters) worden gebruikt
berekeningen. Deze variabelen zijn weergegeven in een diagram in \cref{fig:context}.
\begin{description}
- \item[$a$] (de cirkel)
+ \item[$ab$] (de rechthoek)
+ \item[$a$] (\'e\'en hoekpunt van de rechthoek $ab$)
\begin{description}
- \item[$a_r$] (de straal van cirkel $a$)
+ \item[$a_x, a_y$] (de co\"ordinaten van punt $a$)
\end{description}
- \item[$bc$] (de rechthoek)
- \item[$b$] (\'e\'en hoekpunt van de rechthoek $bc$)
+ \item[$b$] (tegenovergestelde hoekpunt van $a$ in rechthoek $ab$)
\begin{description}
\item[$b_x, b_y$] (de co\"ordinaten van punt $b$)
\end{description}
- \item[$c$] (tegenovergestelde hoekpunt van $b$ in rechthoek $bc$)
- \begin{description}
- \item[$c_x, c_y$] (de co\"ordinaten van punt $c$)
- \end{description}
- \item[$o$] (het gedeelde oppervlak van $a$ en $bc$)
+ \item[$o$] (het gedeelde oppervlak van $ab$ en $c$)
\end{description}
\begin{figure}
\centering
- \begin{tikzpicture}[scale=1.25]
+ \begin{tikzpicture}[scale=2.5]
% draw area
- \clip(-2.5,-0.5) rectangle (3.5,3.5);
+ \clip(-1.25,-0.25) rectangle (1.75,1.75);
% axes
- \draw[->] (-3,0) -- (3,0) node[right]{$x$};
- \draw[->] (0,-3) -- (0,3) node[above]{$y$};
+ \draw[->] (-1.5,0) -- (1.5,0) node[right]{$x$};
+ \draw[->] (0,-1.5) -- (0,1.5) node[above]{$y$};
% labeled points
- % \node(-0.707,0.707) {$a_r$};
- \coordinate [label=225:$b$] (b) at (1,1);
- \coordinate [label=45:$c$] (c) at (2,2);
+ \coordinate [label=225:$a$] (a) at (0.5,0.5);
+ \coordinate [label=45:$b$] (b) at (1.0,1.0);
% draw rectangle, circle and line
- \draw[thick] (b) rectangle (c);
- \draw[thick] (0,0) circle (2);
- % label a, b and c
- \path[thick,<->] (0,0) edge node[below left] {$a_r$} (-1.414,1.414);
+ \draw[thick] (a) rectangle (b);
+ \draw[thick] (0,0) circle (1);
+ % label a, a and b
+ \path[thick,<->] (0,0) edge node[below left] {1} (-0.707,0.707);
+ \node[fill,circle,inner sep=1.5pt] at (a) {};
\node[fill,circle,inner sep=1.5pt] at (b) {};
- \node[fill,circle,inner sep=1.5pt] at (c) {};
% hatch overlapping area
\begin{scope}
- \clip (0,0) circle (2);
- \fill[pattern=north east lines] (b) rectangle (c);
+ \clip (0,0) circle (1);
+ \fill[pattern=north east lines] (a) rectangle (b);
\end{scope}
\end{tikzpicture}
\caption{Voorbeeldvisualisatie toepassing}
\label{fig:context}
\end{figure}
+Omdat elke transformatie bestaand uit een willekeurige schaling en/of translatie van
+cirkel $c$ uit te drukken is door de bijbehorende inverse transformatie toe te passen
+op rechthoek $ab$, is cirkel $c$ een eenheidscirkel.
+
Om de formules verder te vereenvoudigen worden de volgende eisen aan de
invoerwaarden gesteld:
\begin{equation}\label{eq:constrain:x}
--a_r \leq b_x \leq c_x \leq a_r
+-1 \leq a_x \leq b_x \leq 1
\end{equation}
\begin{equation}\label{eq:constrain:y}
--a_r \leq b_y \leq c_y \leq a_r
+-1 \leq a_y \leq b_y \leq 1
\end{equation}
\section{Aanpak}
Mijn initi\"ele aanpak voor dit probleem was de integraal berekenen op het interval
-$[b_x, c_x]$ van een kromme die een halfrond begrensde tussen $[b_y,c_y]$. Deze
+$[a_x, b_x]$ van een kromme die een halfrond begrensde tussen $[a_y,b_y]$. Deze
aanpak werkte in de Desmos grafische rekenmachine \autocite{circrect1}, maar was niet
implementeerbaar in Python.
@@ -119,37 +118,36 @@ kan gebruiken.
\begin{figure}
\centering
- \begin{tikzpicture}[scale=1.25]
+ \begin{tikzpicture}[scale=2.5]
% draw area
- \clip(-0.25,-0.5) rectangle (3.5,3.5);
+ \clip(-0.1,-0.25) rectangle (1.5,1.25);
% axes
- \draw[->] (-3,0) -- (3,0) node[right]{$x$};
+ \draw[->] (-1,0) -- (1.25,0) node[right]{$x$};
% labeled points
- % \node(-0.707,0.707) {$a_r$};
- \coordinate (b) at (0.5,0.5);
- \coordinate (c) at (2.5,1.5);
+ \coordinate (a) at (0.25,0.25);
+ \coordinate (b) at (1.00,0.75);
% draw rectangle, circle and line
- \draw[thick] (b) rectangle (c);
+ \draw[thick] (a) rectangle (b);
\begin{scope}
- \clip (-3,0) rectangle (3,3);
- \draw[thick] (0,0) circle (2);
+ \clip (-2,0) rectangle (2,2);
+ \draw[thick] (0,0) circle (1);
\end{scope}
% hatch overlapping area
\begin{scope}
- \clip (0,0) circle (2);
- \fill[pattern=north east lines] (0.5,5) rectangle (c);
- \fill (b) rectangle (c);
- \fill[pattern=crosshatch dots] (b) rectangle (2.5,0);
+ \clip (0,0) circle (1);
+ \fill[pattern=north east lines] (0.25,5) rectangle (b);
+ \fill (a) rectangle (b);
+ \fill[pattern=crosshatch dots] (a) rectangle (5,0);
\end{scope}
% labels
- \node[anchor=east] at (0.5,1.75) {1};
- \node[anchor=east] at (0.5,1.00) {2};
- \node[anchor=east] at (0.5,0.25) {3};
+ \node[anchor=east] at (0.25,0.875) {1};
+ \node[anchor=east] at (0.25,0.500) {2};
+ \node[anchor=east] at (0.25,0.125) {3};
\end{tikzpicture}
\caption{Markering ongewenste gebieden}
(alleen het oppervlak van gebied 2 is gewenst)
@@ -160,20 +158,20 @@ De aanpak is als volgt:
\begin{enumerate}
\item\label{step:semicircfn} Defini\"eer de functie $f$ als alleen het bovenste
halfrond van cirkel $a$.
- \item Beschouw alleen het domein $[b_x, c_x]$. Als de integraal van $f$ genomen zou
+ \item Beschouw alleen het domein $[a_x, b_x]$. Als de integraal van $f$ genomen zou
worden op dit interval, zou de uitkomst niet alleen het oppervlak van de overlap
met rechthoek $bc$ zijn, maar het oppervlak van de bovenste rand van de cirkel
tot de $x$-aslijn. Dit is ongewenst.
- \item\label{step:regdelbelow} De regio tussen $[0, b_y]$ (regio 3 in
+ \item\label{step:regdelbelow} De regio tussen $[0, a_y]$ (regio 3 in
\cref{fig:unwanted-area}) kan worden verwijderd door een verticale translatie van
- $-b_y$ toe te passen op $f$ v\'o\'or de integraal wordt berekend. Dit zorgt voor
- problemen zodra punt $(b_x,b_y)$ of $(c_x,b_y)$ buiten cirkel $a$ valt.
- \item\label{step:regdelabove} De regio tussen $[c_y, a_r]$ (regio 1 in
+ $-a_y$ toe te passen op $f$ v\'o\'or de integraal wordt berekend. Dit zorgt voor
+ problemen zodra punt $(a_x,a_y)$ of $(b_x,a_y)$ buiten cirkel $a$ valt.
+ \item\label{step:regdelabove} De regio tussen $[b_y, 1]$ (regio 1 in
\cref{fig:unwanted-area}) kan worden verwijderd door deze te berekenen en af te
trekken van de resulterende regio uit stap \ref{step:regdelbelow}. Deze regio kan
worden berekend door een tweede integraal te berekenen, maar op $f$ met een
- translatie van $-c_y$. Dit zorgt weer voor problemen, maar bij de punten
- $(b_x,c_y)$ en $(c_x,c_y)$.
+ translatie van $-b_y$. Dit zorgt weer voor problemen, maar bij de punten
+ $(a_x,b_y)$ en $(b_x,b_y)$.
\item\label{step:limitintdomain} De tot nu toe genoemde problemen kunnen worden
opgelosd door de intervallen van de integralen te begrenzen tot het punt waar de
getransleerde functies de $x$-as snijden.
@@ -189,58 +187,67 @@ Stap \ref{step:semicircfn} is beschreven in \cref{eq:fn:f}. Om later voor stap
van functie $f$ nodig. Omdat de functie $f$ een cirkel beschrijft, is de inverse
functie gelijk aan functie $f$.
\begin{equation}\label{eq:fn:f}
-f\left(x\right) = \sqrt{a_r^2-x^2}
+f\left(x\right) = \sqrt{1-x^2}
\end{equation}
Stappen \ref{step:regdelbelow} en \ref{step:regdelabove} zijn beschreven in
-\cref{eq:fn:fb,eq:fn:fc}.
+\cref{eq:fn:fa,eq:fn:fb}.
\begin{align}
-\label{eq:fn:fb} f_b\left(x\right) &= f\left(x\right)-b_y\\
-\label{eq:fn:fc} f_c\left(x\right) &= f\left(x\right)-c_y
+\label{eq:fn:fa} f_a\left(x\right) &= f\left(x\right)-a_y\\
+\label{eq:fn:fb} f_b\left(x\right) &= f\left(x\right)-b_y
\end{align}
Stap \ref{step:limitintdomain} is beschreven in
\cref{eq:var:xb1,eq:var:xb2,eq:var:xc1,eq:var:xc2}.
\begin{align}
\label{eq:fn:clamp} \clamp\left(a,b,x\right) &=
- \max\left(a, \min\left(b, c\right)\right)\\
-\label{eq:var:xb1} x_{b_1} &=
- \clamp\left(b_x,c_x,-f\left(b_y\right)\right)\\
-\label{eq:var:xb2} x_{b_2} &=
- \clamp\left(b_x,c_x, f\left(b_y\right)\right)\\
-\label{eq:var:xc1} x_{c_1} &=
- \clamp\left(b_x,c_x,-f\left(c_y\right)\right)\\
-\label{eq:var:xc2} x_{c_2} &=
- \clamp\left(b_x,c_x, f\left(c_y\right)\right)
+ \max\left(a, \min\left(b, x\right)\right)\\
+\label{eq:var:xb1} x_{a_1} &=
+ \clamp\left(a_x,b_x,-f\left(a_y\right)\right)\\
+\label{eq:var:xb2} x_{a_2} &=
+ \clamp\left(a_x,b_x, f\left(a_y\right)\right)\\
+\label{eq:var:xc1} x_{b_1} &=
+ \clamp\left(a_x,b_x,-f\left(b_y\right)\right)\\
+\label{eq:var:xc2} x_{b_2} &=
+ \clamp\left(a_x,b_x, f\left(b_y\right)\right)
\end{align}
-Nu kunnen de integralen berekend worden volgens \cref{eq:var:ob,eq:var:oc,eq:var:o}.
+Nu kan de oppervlakte $o$ berekend worden door de integralen uit te rekenen volgens
+\cref{eq:var:oa,eq:var:ob,eq:var:o}.
\begin{align}
+\label{eq:var:oa} o_a &= \int_{x_{a_1}}^{x_{a_2}}f_a\left(x\right)dx\\
\label{eq:var:ob} o_b &= \int_{x_{b_1}}^{x_{b_2}}f_b\left(x\right)dx\\
-\label{eq:var:oc} o_c &= \int_{x_{c_1}}^{x_{c_2}}f_c\left(x\right)dx\\
-\label{eq:var:o} o &= o_b - o_c
+\label{eq:var:o} o &= o_a - o_b
\end{align}
\section{Uitbereiding}
Om \cref{eq:var:o} als een constante formule te defini\"eren moet functie $f$
-geprimitiveerd worden.
-
-TODO: definieer functie $F$ als de primitieve van functie $f$
+geprimitiveerd worden. De primitieve van functie $f$ is gedefini\"eerd in
+\cref{eq:fn:F} als de nieuwe functie $F$ met een extra argument $n$ voor een
+verticale verschuiving van $f$.
+\begin{equation}\label{eq:fn:F}
+ \begin{aligned}[c]
+F\left(x,n\right)&=\int\left(f\left(x\right) + n\right) dx\\
+ &=\frac{1}{2}\left(2nx+\sqrt{1-x^2}x+\sin^{-1}\left(x\right)\right)
+ \end{aligned}
+\end{equation}
-TODO: definieer functie $h$ (uitbereiding $o$ als functie)
+Nu kan een complete functie $g$ beschreven worden:
+\begin{equation}\label{eq:fn:g}
+g\left(a,b\right) = \text{TODO}
+\end{equation}
-De complete oplossing bestaat uit de functie $h$ \'e\'en keer normaal berekenen, en
-nog een keer met de rechthoek $bc$ gespiegeld om de $x$-as (vermenigvuldig $b_y$ en
-$c_y$ met $-1$). De som van deze twee waarden vormt oppervlak $o$.
-\begin{equation}\label{eq:fn:k}
+De complete oplossing bestaat uit de functie $g$ \'e\'en keer normaal berekenen, en
+nog een keer met de rechthoek $ab$ gespiegeld om de $x$-as (vermenigvuldig $a_y$ en
+$b_y$ met $-1$). De som van deze twee waarden vormt oppervlak $o$.
+\begin{equation}\label{eq:fn:h}
\begin{aligned}[c]
- k\left(a,b,c\right) ={}
- h\,(a, & \left(b_x,\max\left(0,b_y\right)\right),\\
- & \left(c_x, \max\left(0,c_y\right)\right)
- ) + \\
- h\,(a, & \left(b_x,\max\left(0,-b_y\right)\right),\\
- & \left(c_x, \max\left(0,-c_y\right)\right)
+ h\left(a,b\right)
+ = g\,(&\left(a_x,\max\left(0,a_y\right)\right),\\
+ &\left(b_x, \max\left(0,b_y\right)\right))\\
+ + g\,(&\left(a_x,\max\left(0,-a_y\right)\right),\\
+ &\left(b_x, \max\left(0,-b_y\right)\right)
)
\end{aligned}
\end{equation}
diff --git a/refs.bib b/refs.bib
index 5473a7e..9535627 100644
--- a/refs.bib
+++ b/refs.bib
@@ -10,7 +10,7 @@
title = {circrect2},
url = {https://www.desmos.com/calculator/zudzhuj9yi},
author = {Loek Le Blansch},
- date = {2024-01-07},
- urldate = {2024-01-07},
+ date = {2024-01-08},
+ urldate = {2024-01-08},
}