From 585c1fbb9175f3575b10c3c1c37ed90fb09c58bc Mon Sep 17 00:00:00 2001 From: djmil Date: Sun, 23 Jun 2024 13:24:25 +0200 Subject: [PATCH] Readme --- README.md | 15 +++++++++++++++ cosin.jpg | Bin 0 -> 37510 bytes index.html | 4 ++-- tree.js | 8 ++++---- 4 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 README.md create mode 100644 cosin.jpg diff --git a/README.md b/README.md new file mode 100644 index 0000000..5535e69 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +A simple static HTML page using JavaScript Canvas to draw recurisive tree. Click [here](https://djmil.pages.djmil.dev/canvas/index.html) to see the final result. + +# How does it work + +In it's essence, `index.html` is responsible for providing tree-drawing configuration by placeing initial tree trunk somewhere on the page. Than, the recursive nature of the called function will do the rest of the job by drawing two, slightly smaller & slightly different, sub-trunks on top of the parrent trunk. The core trick is that the beginning of each new branch derived from the end of it's predecessor. + +# Trigonometry cheetsheet + +![pic](cosin.jpg) + +Key: by knowing *coordinates* `x1`, `y1` of a starting point, we want to find a *destination point* `x2`, `y2` by using *distance* `L` and *angle* `Alpha` as additional constaraints. + +# Pages + +The pages server, self-hosted at `www.pages.djmil.dev`, is listening for your requests for the web-page content in the form of `http://user.pages.djmil.dev/repo/file.html`, than fetches the desired data from the underline Gitea instance to serve it as a responce. Check [gitea-pages](https://gitea.djmil.dev/goland/gitea-pages) for more details. diff --git a/cosin.jpg b/cosin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7e89246e8b75bc33d92f79f8239c33403f31997 GIT binary patch literal 37510 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

SdYDxHdJ?f`BwBFVS70Vpp++532r$p8QV literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 1aed90b..18a4682 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - Canvas + Recursive tree