1
0
mirror of https://github.com/Pomax/BezierInfo-2.git synced 2025-09-01 20:33:34 +02:00

image regeneration and more path fixes

This commit is contained in:
Pomax
2020-08-20 13:33:43 -07:00
parent d92e370bd1
commit 9611317fa9
39 changed files with 15 additions and 9 deletions

0
.nojekyll Normal file
View File

View File

@@ -23,7 +23,7 @@ If we want to change the curve, we need to change the weights of each point, eff
\underset{weight}{\underbrace{w_i}} \underset{weight}{\underbrace{w_i}}
\] \]
That looks complicated, but as it so happens, the "weights" are actually just the coordinate values we want our curve to have: for an <i>n<sup>th</sup></i> order curve, w<sub>0</sub> is our start coordinate, w<sub>n</sub> is our last coordinate, and everything in between is a controlling coordinate. Say we want a cubic curve that starts at (120,160), is controlled by (35,200) and (220,260) and ends at (220,40), we use this Bézier curve: That looks complicated, but as it so happens, the "weights" are actually just the coordinate values we want our curve to have: for an <i>n<sup>th</sup></i> order curve, w<sub>0</sub> is our start coordinate, w<sub>n</sub> is our last coordinate, and everything in between is a controlling coordinate. Say we want a cubic curve that starts at (110,150), is controlled by (25,190) and (210,250) and ends at (210,30), we use this Bézier curve:
\[ \[
\left \{ \begin{matrix} \left \{ \begin{matrix}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -987,8 +987,8 @@ function Bezier(3,t):
an <i>n<sup>th</sup></i> order curve, w<sub>0</sub> is our start an <i>n<sup>th</sup></i> order curve, w<sub>0</sub> is our start
coordinate, w<sub>n</sub> is our last coordinate, and everything in coordinate, w<sub>n</sub> is our last coordinate, and everything in
between is a controlling coordinate. Say we want a cubic curve that between is a controlling coordinate. Say we want a cubic curve that
starts at (120,160), is controlled by (35,200) and (220,260) and starts at (110,150), is controlled by (25,190) and (210,250) and
ends at (220,40), we use this Bézier curve: ends at (210,30), we use this Bézier curve:
</p> </p>
<img <img
class="LaTeX SVG" class="LaTeX SVG"

View File

@@ -75,7 +75,7 @@ async function createIndexPages(locale, localeStrings, chapters) {
fs.writeFileSync(path.join(paths.public, `index.html`), data, `utf8`); fs.writeFileSync(path.join(paths.public, `index.html`), data, `utf8`);
} else { } else {
let localeDir = path.join(paths.public, locale); let localeDir = path.join(paths.public, locale);
fs.ensureDir(localeDir); fs.ensureDirSync(localeDir);
fs.writeFileSync(path.join(localeDir, `index.html`), data, `utf8`); fs.writeFileSync(path.join(localeDir, `index.html`), data, `utf8`);
} }
} }

View File

@@ -23,7 +23,7 @@ export default async function latexToSVG(latex, chapter, localeStrings, block) {
const TeXfilename = path.join(paths.temp, `${hash}.tex`); const TeXfilename = path.join(paths.temp, `${hash}.tex`);
const chapterDir = path.join(paths.images, `chapters`, chapter); const chapterDir = path.join(paths.images, `chapters`, chapter);
fs.ensureDir(chapterDir); fs.ensureDirSync(chapterDir);
const SVGfilename = path.join(chapterDir, `${hash}.svg`); const SVGfilename = path.join(chapterDir, `${hash}.svg`);
const srcURL = `./images/chapters/${chapter}/${hash}.svg`; const srcURL = `./images/chapters/${chapter}/${hash}.svg`;

View File

@@ -34,8 +34,8 @@ async function generateFallbackImage(chapter, localeStrings, src, w, h) {
if (locale !== localeStrings.getDefaultLocale()) return hash; if (locale !== localeStrings.getDefaultLocale()) return hash;
const destPath = path.join(paths.images, src); const destPath = path.dirname(path.join(paths.images, src));
fs.ensureDir(destPath); fs.ensureDirSync(destPath);
const filePath = path.join(destPath, `${hash}.png`); const filePath = path.join(destPath, `${hash}.png`);
if (fs.existsSync(filePath)) return hash; if (fs.existsSync(filePath)) return hash;

View File

@@ -7,6 +7,7 @@ import performCodeSurgery from "../../../docs/js/custom-element/lib/perform-code
// Note that this location is relative to the temp dir, from which sketch modules get loaded. // Note that this location is relative to the temp dir, from which sketch modules get loaded.
const thisModuleURL = new URL(import.meta.url); const thisModuleURL = new URL(import.meta.url);
const thisModuleDir = path.dirname(thisModuleURL.href.replace(`file:///`, ``)); const thisModuleDir = path.dirname(thisModuleURL.href.replace(`file:///`, ``));
const GRAPHICS_API_LOCATION = path const GRAPHICS_API_LOCATION = path
.join( .join(
path.relative(thisModuleDir, paths.public), path.relative(thisModuleDir, paths.public),
@@ -18,13 +19,18 @@ const GRAPHICS_API_LOCATION = path
.split(path.sep) .split(path.sep)
.join(path.posix.sep); .join(path.posix.sep);
const RELATIVE_IMPORT_LOCATION = path
.relative(thisModuleDir, paths.chapters)
.split(path.sep)
.join(path.posix.sep);
/** /**
* ...docs go here... * ...docs go here...
*/ */
function generateGraphicsModule(chapter, code, width, height) { function generateGraphicsModule(chapter, code, width, height) {
// step 1: fix the imports // step 1: fix the imports
code = code.replace(/(import .+? from) "([^"]+)"/g, (_, main, group) => { code = code.replace(/(import .+? from) "([^"]+)"/g, (_, main, group) => {
return `${main} "../../../chapters/${chapter}/${group}"`; return `${main} "${RELATIVE_IMPORT_LOCATION}/${chapter}/${group}"`;
}); });
// step 2: split up the code into "global" vs. "class" code // step 2: split up the code into "global" vs. "class" code

View File

@@ -28,6 +28,6 @@ const paths = {
temp, temp,
}; };
Object.values(paths).forEach((loc) => fs.ensureDir(loc)); Object.values(paths).forEach((loc) => fs.ensureDirSync(loc));
export default paths; export default paths;