Sekai ๐ŸŒ ๐Ÿ—บ

Sekai (ไธ–็•Œ) is the kanji for “the world”. That’s a great word because of the scale that it designates.

Second Homothety between Nine-Point Circle and Circumcircle

Proof of Euler line by h(G, โˆ’1/2)

Motivation

I saw someone illustrating his/her solution with a “superior triangle”.

original picture

This reminds me the homothety about the centroid of factor โˆ’1/2.

homothety about centroid

The above picture \usetikzlibrary{calc} for computing coordinates from those of existing points. (A)!.25!(B) means $(A)+.25[(B)-(A)]$.

\begin{tikzpicture}[scale=2]
\coordinate (D) at (-0.7,1);
\coordinate (E) at (-1,0);
\coordinate (F) at (1,0);
\coordinate (A) at ($(E)!.5!(F)$);
\coordinate (B) at ($(F)!.5!(D)$);
\coordinate (C) at ($(D)!.5!(E)$);
\coordinate (G) at ($(D)!.5!(E)!1/3!(F)$);

\draw (A) -- (B) -- (C) -- cycle;
\draw (D) -- (E) -- (F) -- cycle;
\begin{scriptsize}
\fill (G) circle (0.5pt) node [left=2pt,anchor=north]{$G$};
\end{scriptsize}
\draw[->,-latex,dashed] (D) -- (A);
\draw[->,-latex,dashed] (E) -- (B);
\draw[->,-latex,dashed] (F) -- (C);
\end{tikzpicture}

Previous post

From the homothety between the nine-point circle and circumcircle about orthocenter with a factor of 2, we see that the nine-point center is the mid-point of orthocenter and circumcenter.

[Read More]

Basic Symmetries in Nine-Point Circle

Personal reading report

Motivation

Someone on Discord asked about the existence of the nine-point circle. It’s well-known that that can be proved by homothety.

Little reminder about homothety

Homothety preserves angles (and thus parallel lines). Homothetic polygons are similar, so the ratio of the corresponding sides is the same. Considering the radii of a circle under a homothety, we see that a homothety maps a circle to another circle.

Notation

  • H: orthocenter
  • G: centroid
  • O: circumcenter
  • ฯ‰: circumcircle
  • HA: feet of altitude with respect to A.
  • MA: midpoint of side a.
  • EA: Euler point with respect to A. (i.e. midpoint of A and H)

Problem

The second proof for nine-point circle on AoPS starts with a proved fact that the reflection of H about a and MA lie on ฯ‰.

[Read More]

Dvisvgm's Issue With Fill Pattern

Goal

Generate SVG file for TikZ graphics.

Method

  1. TeX โ†’ PDF with PDFLaTeX
  2. PDF โ†’ SVG with dvisvgm -P filename

Example: I generated a PGF plot from the source code on my personal template.

working SVG
working PDF
Git Bash for PDF
Git Bash for SVG

Problem

When I applied this method to the following TeX code in my previous post, dvisvgm -P returns a blank SVG.

\documentclass[tikz,border=2pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.6}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines=center,legend style={at={(0.7,0.7)},anchor=south west}]
\addplot [domain=-3:3, thick, smooth, yellow] { 1/sqrt(2*pi)*exp(-x^2/2) };
\addlegendentry{$y = \frac{1}{\sqrt{2\pi}} e^{-x^2/2}$};
\addplot [dashed, yellow] coordinates {(1.5,0) (1.5,0.14)};
\addlegendentry{99th percentile};
\addplot[domain=-3:1.5, pattern=north east lines,draw=none, fill opacity=0.3]
  { 1/sqrt(2*pi)*exp(-x^2/2) } \closedcycle;
\end{axis}
\end{tikzpicture}
\end{document}

This code passes the compiler.

[Read More]
LaTeX  dvisvgm  SVG 

To Be Improved Normal Curve

First function plot with pattern fill

Adaptations for standalone documents:

  • \usetikzlibrary{pattern} before \begin{document}
  • \pgfplotsset{compat=1.6}
\begin{tikzpicture}
\begin{axis} [axis lines=center,legend style={at={(0.7,0.7)},anchor=south west}]
\addplot [domain=-3:3, thick, smooth, yellow] { 1/sqrt(2*pi)*exp(-x^2/2) };
\addlegendentry{$y = \tfrac{1}{\sqrt{2\pi}} e^{-x^2/2}$};
\addplot [dashed, yellow] coordinates {(1.5,0) (1.5,0.14)};
\addlegendentry{99th percentile};
\addplot[domain=-3:1.5, pattern=north east lines,draw=none, fill opacity=0.3]
{ 1/sqrt(2*pi)*exp(-x^2/2) } \closedcycle;
\end{axis}
\end{tikzpicture}

tikz function shaded region

LaTeX 

Trigonometric Functions by Unit Circle

For secondary school students, I define cosine and sine as the x and y-components of the point A (cos ฮธ, sin ฮธ) on the unit circle xยฒ + yยฒ = 1, and the tangent function as the quotient of sine over cosine.

\begin{tikzpicture}[scale=3]
\coordinate (O) at (0,0);
\coordinate (H) at (0.6,0);
\coordinate (A) at (0.6,0.8);
\coordinate (E) at (1,0);
\coordinate (T) at (1,0.8/0.6);
\draw (O) circle (1);
\draw[->] (-1.3,0) -- (1.3,0) node [right]{$x$};
\draw[->] (0,-1.3) -- (0,1.3) node [above]{$y$};
\begin{scope}[thick]
\draw (O) node [below left] {$O$}
    -- (H) node [below right] {$H$}
    node [below, midway] {$\cos \theta$}
    -- (A) node [below, midway, sloped] {$\sin \theta$}
    node [above=5pt] {$A$}
    -- cycle node [above left, midway] {$1$};
\begin{scope}
    \clip (O) -- (A) -- (H) -- cycle;
    \draw (O) circle (0.1) node[right=7pt, above=5pt, anchor=west] {\small $\theta$};
\end{scope}
\draw (H) rectangle ++(-0.1,0.1);
\draw (E) rectangle ++(-0.1,0.1);
\draw (E) node [below right] {$E$}
    -- (T) node [below, midway, sloped] {$\tan \theta$}
    node [above, right] {$T$}
    -- (A);
\end{scope}
\end{tikzpicture}

sine cosine unit circle

[Read More]
LaTeX 

Matrix Diagonalisation and Change of Basis

Here’s the $\LaTeX$ code of my diagram for matrix diagonalisation to be used on Discord.

Why do matrix diagonalisation on square matrix $P$?

If we can find a diagonal matrix $D$ and a square matrix $Q$ such that $P = QDQ^{-1}$, then we can easily compute $(P + \lambda I)^n$ for any scalar $\lambda$ and integer $n$ because $D^n$ is easy to compute.

\[\begin{tikzcd}
    {{}} & {{}} & \cdots & {} \\
    {{}} & {{}} & \cdots & {{}}
    \arrow["P", from=1-1, to=1-2]
    \arrow["{Q^{-1}}"', from=1-1, to=2-1]
    \arrow["D"', from=2-1, to=2-2]
    \arrow["Q"', from=2-2, to=1-2]
    \arrow["P", from=1-2, to=1-3]
    \arrow["D"', from=2-2, to=2-3]
    \arrow["P", from=1-3, to=1-4]
    \arrow["D"', from=2-3, to=2-4]
    \arrow["Q"', from=2-4, to=1-4]
\end{tikzcd}\]

After viewing the power of the Discord bot $\TeX{}$it, which renders $\LaTeX$ code on Discord, I gave up spending more time on exploring more functionalities of $\KaTeX$ (say, commutative diagrams) because Discord and $\LaTeX$ spread math knowledge much better than a static blog for basic math: the former allows instant feedback from the reader. The later is better for taking notes. To display more complicated graphics, I can compile to PDF first, then use dvisvgm with -P for --pdf. (The small -p selects --page=ranges.)

[Read More]
LaTeX 

LaTeX Code for Linear System

\begin{align} A\mathbf{x} &= \mathbf{b} \\ \begin{pmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ x_3 \end{pmatrix} &= \begin{pmatrix} b_1 \\ b_2 \\ b_3 \end{pmatrix} \\ \begin{bmatrix} \vert & \vert & \vert \\ \mathbf{a}_1 & \mathbf{a}_2 & \mathbf{a}_3 \\ \vert & \vert & \vert \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} &= \mathbf{b} \\ x_1 \mathbf{a}_1 + x_2 \mathbf{a}_2 + x_3 \mathbf{a}_3 &= \mathbf{b} \tag{$\star$} \\ \begin{pmatrix} a_{11} x_1 + a_{12} x_2 + a_{13} x_3 \\ a_{21} x_1 + a_{22} x_2 + a_{23} x_3 \\ a_{31} x_1 + a_{32} x_2 + a_{33} x_3 \end{pmatrix} &= \begin{pmatrix} b_1 \\ b_2 \\ b_3 \end{pmatrix} \\ x_1 \begin{pmatrix} a_{11} \\ a_{21} \\ a_{31} \end{pmatrix} + x_2 \begin{pmatrix} a_{12} \\ a_{22} \\ a_{32} \end{pmatrix} + x_3 \begin{pmatrix} a_{13} \\ a_{32} \\ a_{33} \end{pmatrix} &= \begin{pmatrix} b_1 \\ b_2 \\ b_3 \end{pmatrix} \end{align}

Source code:

[Read More]
LaTeX 

Polar Rose in Julia

Background

I’m doing exercise 4.9 of Think Julia, which asks for a function for a polar rose using Luxor’s turtle graphics.

Difficulties

  1. Work out the geometric structure of the family of polar roses. The key is to construct some auxiliary isoceles triangles and work out the angles between them. One sees that they are parametrized by two varaibles n and k.
    • n: number of petals
    • k: petal increment
    • constraint: k โ‰  n รท 2
  2. Handle the case when gcd(n, k) > 1, i.e. more than one closed loop.
  3. The positive x direction goes to the right; the positive y direction goes down.

Attempt

  1. Use ThinkJulia.Reposition(t::Turtle, x, y) to reposition the turtle.
  2. Use turn(t::Turtle, ฮธ) to turn t
  3. Use ThinkJulia.Orientation(t::Turtle, ฮธ) to restore the turtle’s orientation after the move.

Code

I spend three days writing and testing this function.

[Read More]

Deploy Hugo Theme exampleSite With Github Actions

Motivation

To test PRs on the upstream of a Hugo theme by setting up a testing branch.

Goal

To deploy a forked GitHub repo for a Hugo theme with exampleSite to GitHub Pages using GitHub Actions.

The whole article is based on my fork of Hugo Future Imperfect Slim.

References

  1. GitHub Actions for Hugo
  2. A Stack Overflow question showing pwd in GitHub Actions
  3. A Hugo Discourse post about testing exampleSite

Difficulties

I had failed for about ten times before I got the job done.

[Read More]

First Experience with ASP.NET Core MVC & PostgreSQL

Goal

To build an ASP.NET Core 5 MVC web app linked with a PostgreSQL.

Motivation

  1. SQL Server is proprietary.
  2. SQLite used in Microsoft’s ASP.NET Core 5 MVC tutorial isn’t made for web apps.
  3. MySQL doesn’t perform well with concurrent read-writes. It’s dual-licensed like GitLab.
  4. Some users find PostgreSQL cost-effective.

Useful tutorials

  1. MS’s tutorial in item 2 above.
  2. Wes Doyle’s YouTube video goes through the steps
  3. MS’s tutorial for Razor Pages with EF Core migrations

Steps

  1. Create a superuser in the database.

    [Read More]