From c08a0c7fda25373a568fe6bba742b08c3d91d04c Mon Sep 17 00:00:00 2001 From: snowy Date: Thu, 29 Aug 2024 19:00:01 +0800 Subject: [PATCH] =?UTF-8?q?:memo:=20=E4=BC=98=E5=8C=96=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-docs.yml | 2 +- .gitignore | 2 +- README.md | 5 +- docs/.vitepress/config/common.ts | 66 ++++++-- docs/.vitepress/config/en.ts | 11 +- docs/.vitepress/config/index.ts | 13 -- docs/.vitepress/config/ja.ts | 11 +- docs/.vitepress/config/zh.ts | 5 +- docs/.vitepress/config/zht.ts | 10 +- docs/api-ex.md | 49 ------ docs/en/guide/index.md | 3 + docs/en/index.md | 24 +++ docs/guide/index.md | 1 - docs/ja/guide/index.md | 3 + docs/ja/index.md | 24 +++ docs/md-ex.md | 85 ----------- docs/package.json | 8 +- docs/pnpm-lock.yaml | 244 +++++++++++++++++++++++++++++- docs/zh/demo/index.md | 1 + docs/zh/guide/index.md | 3 + docs/{ => zh}/index.md | 4 +- docs/zht/guide/index.md | 3 + docs/zht/index.md | 24 +++ mbcp/__init__.py | 8 +- mbcp/mp_math/__init__.py | 16 +- mbcp/mp_math/angle.py | 8 +- mbcp/mp_math/const.py | 16 +- mbcp/mp_math/equation.py | 25 +-- mbcp/mp_math/function.py | 27 ++++ mbcp/mp_math/line.py | 8 +- mbcp/mp_math/mp_math_typing.py | 8 +- mbcp/mp_math/plane.py | 5 +- mbcp/mp_math/point.py | 4 + mbcp/mp_math/segment.py | 8 +- mbcp/mp_math/utils.py | 8 +- mbcp/mp_math/vector.py | 11 +- mbcp/particle/__init__.py | 8 +- mkdoc.bat | 2 +- 38 files changed, 490 insertions(+), 273 deletions(-) delete mode 100644 docs/api-ex.md create mode 100644 docs/en/guide/index.md create mode 100644 docs/en/index.md delete mode 100644 docs/guide/index.md create mode 100644 docs/ja/guide/index.md create mode 100644 docs/ja/index.md delete mode 100644 docs/md-ex.md create mode 100644 docs/zh/demo/index.md create mode 100644 docs/zh/guide/index.md rename docs/{ => zh}/index.md (94%) create mode 100644 docs/zht/guide/index.md create mode 100644 docs/zht/index.md create mode 100644 mbcp/mp_math/function.py diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 42e75cd..f0f7bd8 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -40,7 +40,7 @@ jobs: - name: Setup API markdown run: |- python -m pip install litedoc - python -m litedoc mbcp -o docs/api -l zh-Hans + python -m litedoc mbcp -o docs/zh/api -l zh-Hans python -m litedoc mbcp -o docs/en/api -l en python -m litedoc mbcp -o docs/ja/api -l ja python -m litedoc mbcp -o docs/zht/api -l zh-Hant diff --git a/.gitignore b/.gitignore index a57aec5..927b37e 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,7 @@ docs/.vitepress/cache litedoc/ -docs/api/ +docs/zh/api/ docs/zht/api/ docs/en/api/ docs/ja/api/ \ No newline at end of file diff --git a/README.md b/README.md index 726c5dc..614cc26 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,6 @@ A Minecraft particle production library - [【特效红石音乐】使一颗心免于哀伤 If I Can Stop One Heart From Breaking「崩坏:星穹铁道 EP」](https://www.bilibili.com/video/BV1B1421t7i3) -- AA - - BB \ No newline at end of file +## 其他 + +- 文档由vitepress强力驱动,API文档由[litedoc](https://github.com/LiteyukiStudio/litedoc)生成 \ No newline at end of file diff --git a/docs/.vitepress/config/common.ts b/docs/.vitepress/config/common.ts index 7d91400..e7df512 100644 --- a/docs/.vitepress/config/common.ts +++ b/docs/.vitepress/config/common.ts @@ -1,28 +1,62 @@ import {defineConfig} from 'vitepress' +import {generateSidebar} from 'vitepress-sidebar'; +import {zh} from "./zh"; +import {en} from "./en"; +import {ja} from "./ja"; +import {zht} from "./zht"; -import AutoSidebarPlugin from 'vitepress-auto-sidebar-plugin' - +let defaultLocale = 'zh'; +const commonSidebarOptions = { + collapsed: true, + convertSameNameSubFileToGroupIndexPage: true, + useFolderTitleFromIndexFile: true, + useFolderLinkFromIndexFile: true, + useTitleFromFrontmatter: true, + useTitleFromFileHeading: true, + includeFolderIndexFile: true, +} export const common = defineConfig({ title: "MBCP docs", description: "MBCP library docs", + markdown: { + math: true + }, vite: { - plugins: [ - AutoSidebarPlugin({ - // 如果不指定 `srcDir`,则默认使用 `vitepress` 的 `srcDir` - ignoreList: [ - 'README.md' - ], - title: { - mode: text => text.toLowerCase() - } - }), - ], + plugins: [], + }, + rewrites: { + [`${defaultLocale}/:rest*`]: ":rest*", }, themeConfig: { - // https://vitepress.dev/reference/default-theme-config + sidebar: generateSidebar( + [ + ...[defaultLocale, 'en', 'ja', 'zht'].map((locale) => { + if (locale === defaultLocale) { + return { + basePath: '/api/', + scanStartPath: `${locale}/api`, + resolvePath: '/api/', + ...commonSidebarOptions + } + } else { + return { + basePath: `/${locale}/api/`, + scanStartPath: `${locale}/api`, + resolvePath: `/${locale}/api/`, + ...commonSidebarOptions + } + } + }) + ] + ), socialLinks: [ {icon: 'github', link: 'https://github.com/snowykami/mbcp'} - ] + ], + }, + locales: { + root: {label: "简体中文", ...zh}, + en: {label: "English", ...en}, + ja: {label: "日本語", ...ja}, + zht: {label: "繁體中文", ...zht}, }, - srcDir: '.' }) \ No newline at end of file diff --git a/docs/.vitepress/config/en.ts b/docs/.vitepress/config/en.ts index c8e5530..449a8c8 100644 --- a/docs/.vitepress/config/en.ts +++ b/docs/.vitepress/config/en.ts @@ -1,14 +1,17 @@ import {defineConfig} from 'vitepress' export const en = defineConfig({ - lang: "en-US", description: "A library made for Minecraft particle generation", themeConfig: { nav: [ - {text: 'Get Start', link: '/guide'}, - {text: 'API Document', link: '/api/'}, - {text: 'Demo', link: '/demo/'}, + {text: 'Get Start', link: '/en/guide/'}, + {text: 'API Document', link: '/en/api/'}, + {text: 'Demo', link: '/en/demo/'}, ], + footer: { + message: 'Documentation built with VitePress | API references generated by litedoc', + copyright: 'Copyright (C) 2020-2024 SnowyKami. All Rights Reserved' + } }, }) \ No newline at end of file diff --git a/docs/.vitepress/config/index.ts b/docs/.vitepress/config/index.ts index 4abf4a1..f79dc25 100644 --- a/docs/.vitepress/config/index.ts +++ b/docs/.vitepress/config/index.ts @@ -1,19 +1,6 @@ import {defineConfig} from "vitepress"; import {common} from './common' -import {en} from './en' -import {zh} from './zh' -import {zht} from './zht' -import {ja} from './ja' - - - export default defineConfig({ ...common, - locales:{ - root: { label: "简体中文", ...zh }, - en: { label: "English", ...en }, - ja: { label: "日本語", ...ja }, - zht: { label: "繁體中文", ...zht }, - } }) \ No newline at end of file diff --git a/docs/.vitepress/config/ja.ts b/docs/.vitepress/config/ja.ts index 4cbd9e9..6a2c6b6 100644 --- a/docs/.vitepress/config/ja.ts +++ b/docs/.vitepress/config/ja.ts @@ -1,14 +1,17 @@ import {defineConfig} from 'vitepress' export const ja = defineConfig({ - lang: "ja-JP", description: "Minecraftのパーティクル生成用のライブラリ", themeConfig: { nav: [ - {text: 'スタート', link: '/guide'}, - {text: 'APIドキュメント', link: '/api/'}, - {text: 'インスタンス', link: '/demo/'}, + {text: 'スタート', link: '/ja/guide/'}, + {text: 'APIドキュメント', link: '/ja/api/'}, + {text: 'インスタンス', link: '/ja/demo/'}, ], + footer: { + message: 'VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス', + copyright: 'Copyright (C) 2020-2024 SnowyKami. All Rights Reserved' + } }, }) \ No newline at end of file diff --git a/docs/.vitepress/config/zh.ts b/docs/.vitepress/config/zh.ts index 0068f3d..ed48488 100644 --- a/docs/.vitepress/config/zh.ts +++ b/docs/.vitepress/config/zh.ts @@ -1,7 +1,6 @@ import {defineConfig} from 'vitepress' export const zh = defineConfig({ - lang: "zh-Hans", description: "一个用于Minecraft粒子计算和生成的库", themeConfig: { @@ -10,5 +9,9 @@ export const zh = defineConfig({ {text: 'API文档', link: '/api/'}, {text: '实例', link: '/demo/'}, ], + footer: { + message: '文档由 VitePress 构建 | API引用由 litedoc 生成', + copyright: 'Copyright (C) 2020-2024 SnowyKami. All Rights Reserved' + } }, }) \ No newline at end of file diff --git a/docs/.vitepress/config/zht.ts b/docs/.vitepress/config/zht.ts index c937048..11da194 100644 --- a/docs/.vitepress/config/zht.ts +++ b/docs/.vitepress/config/zht.ts @@ -6,9 +6,13 @@ export const zht = defineConfig({ description: "一個用於Minecraft粒子計算和生成的軟體庫", themeConfig: { nav: [ - {text: '指引', link: '/guide/'}, - {text: 'API文檔', link: '/api/'}, - {text: '示範', link: '/demo/'}, + {text: '指引', link: '/zht/guide/'}, + {text: 'API文檔', link: '/zht/api/'}, + {text: '示範', link: '/zht/demo/'}, ], + footer: { + message: '文檔由 VitePress 構建 | API引用由 litedoc 生成', + copyright: 'Copyright (C) 2020-2024 SnowyKami. All Rights Reserved' + } }, }) \ No newline at end of file diff --git a/docs/api-ex.md b/docs/api-ex.md deleted file mode 100644 index 6bd8bb5..0000000 --- a/docs/api-ex.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -outline: deep ---- - -# Runtime API Examples - -This page demonstrates usage of some of the runtime APIs provided by VitePress. - -The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files: - -```md - - -## Results - -### Theme Data -
{{ theme }}
- -### Page Data -
{{ page }}
- -### Page Frontmatter -
{{ frontmatter }}
-``` - - - -## Results - -### Theme Data -
{{ theme }}
- -### Page Data -
{{ page }}
- -### Page Frontmatter -
{{ frontmatter }}
- -## More - -Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata). diff --git a/docs/en/guide/index.md b/docs/en/guide/index.md new file mode 100644 index 0000000..ff1ece4 --- /dev/null +++ b/docs/en/guide/index.md @@ -0,0 +1,3 @@ +# 开始不了一点 + +$\int_{1}^{2} x111$ \ No newline at end of file diff --git a/docs/en/index.md b/docs/en/index.md new file mode 100644 index 0000000..435bd93 --- /dev/null +++ b/docs/en/index.md @@ -0,0 +1,24 @@ +--- +# https://vitepress.dev/reference/default-theme-home-page +layout: home + +hero: + name: "MBCP docs" + text: "More basic change particle" + tagline: A Library for Python to create particle effects and geometric figures + actions: + - theme: brand + text: Get Started + link: ./guide/ + - theme: alt + text: API Reference + link: ./api/ + +features: + - title: Easy to use + details: Through a simple interface, most of the geometric operations and particle production requirements have been achieved + - title: Integrated + details: Encapsulated and integratednumpy, scipy and sympy, making script writing as simple as using Geogebra + - title: Rich presets + details: Rich presets and examples, you can use it directly, and you can also customize the parameters to create your own effects +--- diff --git a/docs/guide/index.md b/docs/guide/index.md deleted file mode 100644 index c888f8c..0000000 --- a/docs/guide/index.md +++ /dev/null @@ -1 +0,0 @@ -# 开始不了一点 \ No newline at end of file diff --git a/docs/ja/guide/index.md b/docs/ja/guide/index.md new file mode 100644 index 0000000..ff1ece4 --- /dev/null +++ b/docs/ja/guide/index.md @@ -0,0 +1,3 @@ +# 开始不了一点 + +$\int_{1}^{2} x111$ \ No newline at end of file diff --git a/docs/ja/index.md b/docs/ja/index.md new file mode 100644 index 0000000..bc8ec78 --- /dev/null +++ b/docs/ja/index.md @@ -0,0 +1,24 @@ +--- +# https://vitepress.dev/reference/default-theme-home-page +layout: home + +hero: + name: "MBCP docs" + text: "More basic change particle" + tagline: ジオメトリ演算とパーティクル作成のためのライブラリ + actions: + - theme: brand + text: はじめる + link: ./guide/ + - theme: alt + text: API リファレンス + link: ./api/ + +features: + - title: 高可用性 + details: シンプルなインターフェースを通じて、ほとんどのジオメトリ演算とパーティクル作成のニーズを実現しました + - title: 高集積度 + details: numpyscipy、およびsympyをラップして統合し、Geogebraを使用するように簡単にスクリプトを作成できます + - title: 組み込みプリセット + details: 多くのプリセットを提供しており、一般的なジオメトリ図形やパーティクル効果など、迅速に作成できます +--- diff --git a/docs/md-ex.md b/docs/md-ex.md deleted file mode 100644 index f9258a5..0000000 --- a/docs/md-ex.md +++ /dev/null @@ -1,85 +0,0 @@ -# Markdown Extension Examples - -This page demonstrates some of the built-in markdown extensions provided by VitePress. - -## Syntax Highlighting - -VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting: - -**Input** - -````md -```js{4} -export default { - data () { - return { - msg: 'Highlighted!' - } - } -} -``` -```` - -**Output** - -```js{4} -export default { - data () { - return { - msg: 'Highlighted!' - } - } -} -``` - -## Custom Containers - -**Input** - -```md -::: info -This is an info box. -::: - -::: tip -This is a tip. -::: - -::: warning -This is a warning. -::: - -::: danger -This is a dangerous warning. -::: - -::: details -This is a details block. -::: -``` - -**Output** - -::: info -This is an info box. -::: - -::: tip -This is a tip. -::: - -::: warning -This is a warning. -::: - -::: danger -This is a dangerous warning. -::: - -::: details -This is a details block. -::: - -## More - -Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown). diff --git a/docs/package.json b/docs/package.json index ae45d0a..7b6c127 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,12 +1,16 @@ { "devDependencies": { "vitepress": "^1.3.4", - "vitepress-auto-sidebar-plugin": "^0.2.4" + "vitepress-auto-sidebar-plugin": "^0.2.4", + "vitepress-sidebar": "^1.25.0" }, "scripts": { "docs:dev": "vitepress dev", "docs:build": "vitepress build", "docs:preview": "vitepress preview" }, - "type": "module" + "type": "module", + "dependencies": { + "markdown-it-mathjax3": "^4.3.2" + } } \ No newline at end of file diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index f876605..9e42609 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -4,13 +4,21 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +dependencies: + markdown-it-mathjax3: + specifier: ^4.3.2 + version: 4.3.2 + devDependencies: vitepress: specifier: ^1.3.4 - version: 1.3.4(@algolia/client-search@5.1.1)(search-insights@2.17.0) + version: 1.3.4(@algolia/client-search@5.1.1)(markdown-it-mathjax3@4.3.2)(search-insights@2.17.0) vitepress-auto-sidebar-plugin: specifier: ^0.2.4 version: 0.2.4(vite@5.4.2)(vitepress@1.3.4) + vitepress-sidebar: + specifier: ^1.25.0 + version: 1.25.0 packages: @@ -880,6 +888,10 @@ packages: '@algolia/transporter': 4.24.0 dev: true + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -890,6 +902,9 @@ packages: resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} dev: true + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + /braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -897,6 +912,35 @@ packages: fill-range: 7.1.1 dev: true + /cheerio-select@1.6.0: + resolution: {integrity: sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==} + dependencies: + css-select: 4.3.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 4.3.1 + domutils: 2.8.0 + + /cheerio@1.0.0-rc.10: + resolution: {integrity: sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==} + engines: {node: '>= 6'} + dependencies: + cheerio-select: 1.6.0 + dom-serializer: 1.4.1 + domhandler: 4.3.1 + htmlparser2: 6.1.0 + parse5: 6.0.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + tslib: 2.7.0 + + /commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + + /commander@9.2.0: + resolution: {integrity: sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==} + engines: {node: ^12.20.0 || >=14} + /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -909,10 +953,55 @@ packages: is-what: 4.1.16 dev: true + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} dev: true + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + /domhandler@3.3.0: + resolution: {integrity: sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -949,6 +1038,14 @@ packages: '@esbuild/win32-x64': 0.21.5 dev: true + /escape-goat@3.0.0: + resolution: {integrity: sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==} + engines: {node: '>=10'} + + /esm@3.2.25: + resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} + engines: {node: '>=6'} + /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -1025,6 +1122,22 @@ packages: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} dev: true + /htmlparser2@5.0.1: + resolution: {integrity: sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==} + dependencies: + domelementtype: 2.3.0 + domhandler: 3.3.0 + domutils: 2.8.0 + entities: 2.2.0 + + /htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + domutils: 2.8.0 + entities: 2.2.0 + /is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -1060,6 +1173,19 @@ packages: esprima: 4.0.1 dev: true + /juice@8.1.0: + resolution: {integrity: sha512-FLzurJrx5Iv1e7CfBSZH68dC04EEvXvvVvPYB7Vx1WAuhCp1ZPIMtqxc+WTWxVkpTIC2Ach/GAv0rQbtGf6YMA==} + engines: {node: '>=10.0.0'} + hasBin: true + dependencies: + cheerio: 1.0.0-rc.10 + commander: 6.2.1 + mensch: 0.3.4 + slick: 1.12.2 + web-resource-inliner: 6.0.1 + transitivePeerDependencies: + - encoding + /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -1075,11 +1201,33 @@ packages: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} dev: true + /markdown-it-mathjax3@4.3.2: + resolution: {integrity: sha512-TX3GW5NjmupgFtMJGRauioMbbkGsOXAAt1DZ/rzzYmTHqzkO1rNAdiMD4NiruurToPApn2kYy76x02QN26qr2w==} + dependencies: + juice: 8.1.0 + mathjax-full: 3.2.2 + transitivePeerDependencies: + - encoding + + /mathjax-full@3.2.2: + resolution: {integrity: sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==} + dependencies: + esm: 3.2.25 + mhchemparser: 4.2.1 + mj-context-menu: 0.6.1 + speech-rule-engine: 4.0.7 + + /mensch@0.3.4: + resolution: {integrity: sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==} + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} dev: true + /mhchemparser@4.2.1: + resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} + /micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -1088,6 +1236,11 @@ packages: picomatch: 2.3.1 dev: true + /mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + /minisearch@7.1.0: resolution: {integrity: sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA==} dev: true @@ -1096,12 +1249,39 @@ packages: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} dev: true + /mj-context-menu@0.6.1: + resolution: {integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==} + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + + /parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + dependencies: + parse5: 6.0.1 + + /parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + /pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} dev: true @@ -1196,6 +1376,9 @@ packages: '@types/hast': 3.0.4 dev: true + /slick@1.12.2: + resolution: {integrity: sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==} + /source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} @@ -1206,6 +1389,14 @@ packages: engines: {node: '>=0.10.0'} dev: true + /speech-rule-engine@4.0.7: + resolution: {integrity: sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==} + hasBin: true + dependencies: + commander: 9.2.0 + wicked-good-xpath: 1.3.0 + xmldom-sre: 0.1.31 + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true @@ -1238,6 +1429,16 @@ packages: is-number: 7.0.0 dev: true + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + /tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + /valid-data-url@3.0.1: + resolution: {integrity: sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==} + engines: {node: '>=10'} + /vite@5.4.2: resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -1288,10 +1489,17 @@ packages: pathe: 1.1.2 perfect-debounce: 1.0.0 vite: 5.4.2 - vitepress: 1.3.4(@algolia/client-search@5.1.1)(search-insights@2.17.0) + vitepress: 1.3.4(@algolia/client-search@5.1.1)(markdown-it-mathjax3@4.3.2)(search-insights@2.17.0) dev: true - /vitepress@1.3.4(@algolia/client-search@5.1.1)(search-insights@2.17.0): + /vitepress-sidebar@1.25.0: + resolution: {integrity: sha512-hbS6DEQjdZS1lbm8p1AKrzdfoFDf4Eas/Dmr1xbN+yv9XVf6xAW+q4tJINmuAt6vnvkEgylZlcH1PGzKX0RgcA==} + engines: {node: '>=18.0.0'} + dependencies: + gray-matter: 4.0.3 + dev: true + + /vitepress@1.3.4(@algolia/client-search@5.1.1)(markdown-it-mathjax3@4.3.2)(search-insights@2.17.0): resolution: {integrity: sha512-I1/F6OW1xl3kW4PaIMC6snxjWgf3qfziq2aqsDoFc/Gt41WbcRv++z8zjw8qGRIJ+I4bUW7ZcKFDHHN/jkH9DQ==} hasBin: true peerDependencies: @@ -1315,6 +1523,7 @@ packages: '@vueuse/integrations': 11.0.3(focus-trap@7.5.4)(vue@3.4.38) focus-trap: 7.5.4 mark.js: 8.11.1 + markdown-it-mathjax3: 4.3.2 minisearch: 7.1.0 shiki: 1.14.1 vite: 5.4.2 @@ -1377,3 +1586,32 @@ packages: '@vue/server-renderer': 3.4.38(vue@3.4.38) '@vue/shared': 3.4.38 dev: true + + /web-resource-inliner@6.0.1: + resolution: {integrity: sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==} + engines: {node: '>=10.0.0'} + dependencies: + ansi-colors: 4.1.3 + escape-goat: 3.0.0 + htmlparser2: 5.0.1 + mime: 2.6.0 + node-fetch: 2.7.0 + valid-data-url: 3.0.1 + transitivePeerDependencies: + - encoding + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + /wicked-good-xpath@1.3.0: + resolution: {integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==} + + /xmldom-sre@0.1.31: + resolution: {integrity: sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==} + engines: {node: '>=0.1'} diff --git a/docs/zh/demo/index.md b/docs/zh/demo/index.md new file mode 100644 index 0000000..97be136 --- /dev/null +++ b/docs/zh/demo/index.md @@ -0,0 +1 @@ +# demo \ No newline at end of file diff --git a/docs/zh/guide/index.md b/docs/zh/guide/index.md new file mode 100644 index 0000000..ff1ece4 --- /dev/null +++ b/docs/zh/guide/index.md @@ -0,0 +1,3 @@ +# 开始不了一点 + +$\int_{1}^{2} x111$ \ No newline at end of file diff --git a/docs/index.md b/docs/zh/index.md similarity index 94% rename from docs/index.md rename to docs/zh/index.md index 48bd33c..140bd0a 100644 --- a/docs/index.md +++ b/docs/zh/index.md @@ -9,10 +9,10 @@ hero: actions: - theme: brand text: 快速开始 - link: guide/ + link: ./guide/ - theme: alt text: API文档 - link: api/ + link: ./api/ features: - title: 高可用性 diff --git a/docs/zht/guide/index.md b/docs/zht/guide/index.md new file mode 100644 index 0000000..ff1ece4 --- /dev/null +++ b/docs/zht/guide/index.md @@ -0,0 +1,3 @@ +# 开始不了一点 + +$\int_{1}^{2} x111$ \ No newline at end of file diff --git a/docs/zht/index.md b/docs/zht/index.md new file mode 100644 index 0000000..aa32e62 --- /dev/null +++ b/docs/zht/index.md @@ -0,0 +1,24 @@ +--- +# https://vitepress.dev/reference/default-theme-home-page +layout: home + +hero: + name: "MBCP docs" + text: "More basic change particle" + tagline: 用於幾何運算和粒子製作的軟體庫 + actions: + - theme: brand + text: 跟隨引導 + link: ./guide/ + - theme: alt + text: API文檔 + link: ./api/ + +features: + - title: 高度易用 + details: 通過簡單的接口,實現了大部分幾何運算及粒子製作的需求 + - title: 高度集成 + details: 對numpyscipysympy進行了封裝和集成,使腳本編寫像使用Geogebra一樣easy + - title: 內置預設 + details: 提供了大量的預設,包括常見的幾何圖形、粒子效果等,便於快速生產 +--- diff --git a/mbcp/__init__.py b/mbcp/__init__.py index 6321264..56f5cf4 100644 --- a/mbcp/__init__.py +++ b/mbcp/__init__.py @@ -1,11 +1,5 @@ # -*- coding: utf-8 -*- """ -Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved - -@Time : 2024/8/6 下午12:54 -@Author : snowykami -@Email : snowykami@outlook.com -@File : __init__.py -@Software: PyCharm +本模块塞了一些预设的粒子生成器 """ from .mp_math import * diff --git a/mbcp/mp_math/__init__.py b/mbcp/mp_math/__init__.py index aab25a0..53c006d 100644 --- a/mbcp/mp_math/__init__.py +++ b/mbcp/mp_math/__init__.py @@ -1,12 +1,14 @@ # -*- coding: utf-8 -*- """ -Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved - -@Time : 2024/8/6 下午12:57 -@Author : snowykami -@Email : snowykami@outlook.com -@File : __init__.py.py -@Software: PyCharm +本包定义了一些常用的导入,可直接从`mbcp.mp_math`导入使用 +导入的类有: +- `AnyAngle`:任意角 +- `CurveEquation`:曲线方程 +- `Line3`:三维直线 +- `Plane3`:三维平面 +- `Point3`:三维点 +- `Segment3`:三维线段 +- `Vector3`:三维向量 """ from .angle import AnyAngle from .const import * diff --git a/mbcp/mp_math/angle.py b/mbcp/mp_math/angle.py index a7fc861..b375af0 100644 --- a/mbcp/mp_math/angle.py +++ b/mbcp/mp_math/angle.py @@ -1,12 +1,6 @@ # -*- coding: utf-8 -*- """ -Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved - -@Time : 2024/8/26 上午6:29 -@Author : snowykami -@Email : snowykami@outlook.com -@File : angle.py -@Software: PyCharm +本模块定义了角度相关的类 """ import math from typing import overload diff --git a/mbcp/mp_math/const.py b/mbcp/mp_math/const.py index ac54de6..a7e3e2b 100644 --- a/mbcp/mp_math/const.py +++ b/mbcp/mp_math/const.py @@ -1,21 +1,19 @@ # -*- coding: utf-8 -*- """ -Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved - -@Time : 2024/8/25 下午9:45 -@Author : snowykami -@Email : snowykami@outlook.com -@File : const.py -@Software: PyCharm +本模块定义了一些常用的常量 """ import math PI = math.pi +"""常量 π""" E = math.e +"""自然对数的底 exp(1)""" GOLDEN_RATIO = (1 + math.sqrt(5)) / 2 +"""黄金分割比""" GAMMA = 0.57721566490153286060651209008240243104215933593992 +"""欧拉常数""" EPSILON = 0.0001 -"""ε""" +"""精度误差""" APPROX = 0.001 -"""约等于误差""" +"""约等于判定误差""" diff --git a/mbcp/mp_math/equation.py b/mbcp/mp_math/equation.py index 869f9bc..e63797c 100644 --- a/mbcp/mp_math/equation.py +++ b/mbcp/mp_math/equation.py @@ -1,17 +1,11 @@ # -*- coding: utf-8 -*- """ -Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved - -@Time : 2024/8/9 上午11:32 -@Author : snowykami -@Email : snowykami@outlook.com -@File : equation.py -@Software: PyCharm +本模块定义了方程相关的类和函数以及一些常用的数学函数 """ -from mbcp.mp_math.mp_math_typing import OneVarFunc, Var, MultiVarsFunc, Number -from mbcp.mp_math.point import Point3 -from mbcp.mp_math.const import EPSILON +from .mp_math_typing import OneVarFunc, Var, MultiVarsFunc, Number +from .point import Point3 +from .const import EPSILON class CurveEquation: @@ -34,7 +28,7 @@ class CurveEquation: *t: 参数 Returns: - + 目标点 """ if len(t) == 1: return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0])) @@ -73,7 +67,14 @@ def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], return partial_derivative_func elif isinstance(var, tuple): def high_order_partial_derivative_func(*args: Var) -> Var: - """@litedoc-hide""" + """ + @litedoc-hide + 求高阶偏导函数 + Args: + *args: 参数 + Returns: + 高阶偏导数值 + """ result_func = func for v in var: result_func = get_partial_derivative_func(result_func, v, epsilon) diff --git a/mbcp/mp_math/function.py b/mbcp/mp_math/function.py new file mode 100644 index 0000000..821db9a --- /dev/null +++ b/mbcp/mp_math/function.py @@ -0,0 +1,27 @@ +""" +AAA +""" + +from .mp_math_typing import ThreeSingleVarsFunc +from .point import Point3 +from .vector import Vector3 +from .const import EPSILON + + +def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3: + r""" + 计算三元函数在某点的梯度向量。 + > [!tip] + > 已知一个函数$f(x, y, z)$,则其在点$(x_0, y_0, z_0)$处的梯度向量为: + $\nabla f(x_0, y_0, z_0) = \left(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z}\right)$ + Args: + func: 三元函数 + p: 点 + epsilon: 偏移量 + Returns: + 梯度 + """ + dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon) + dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon) + dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon) + return Vector3(dx, dy, dz) diff --git a/mbcp/mp_math/line.py b/mbcp/mp_math/line.py index c108d9a..b238ac1 100644 --- a/mbcp/mp_math/line.py +++ b/mbcp/mp_math/line.py @@ -1,12 +1,6 @@ # -*- coding: utf-8 -*- """ -Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved - -@Time : 2024/8/6 下午12:57 -@Author : snowykami -@Email : snowykami@outlook.com -@File : other.py -@Software: PyCharm +本模块定义了三维空间中的直线类 """ import math from typing import TYPE_CHECKING diff --git a/mbcp/mp_math/mp_math_typing.py b/mbcp/mp_math/mp_math_typing.py index 5190894..bb9dc3f 100644 --- a/mbcp/mp_math/mp_math_typing.py +++ b/mbcp/mp_math/mp_math_typing.py @@ -1,12 +1,6 @@ # -*- coding: utf-8 -*- """ -Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved - -@Time : 2024/8/9 上午11:35 -@Author : snowykami -@Email : snowykami@outlook.com -@File : mp_math_typing.py -@Software: PyCharm +本模块用于内部类型提示 """ from typing import Callable, Iterable, TypeAlias, TypeVar diff --git a/mbcp/mp_math/plane.py b/mbcp/mp_math/plane.py index 992073a..2b59f07 100644 --- a/mbcp/mp_math/plane.py +++ b/mbcp/mp_math/plane.py @@ -1,17 +1,16 @@ # -*- coding: utf-8 -*- """ -平面模块 +本模块定义了三维空间中的平面类 """ import math from typing import TYPE_CHECKING, overload import numpy as np -from .const import APPROX -from .vector import Vector3, zero_vector3 from .line import Line3 from .point import Point3 from .utils import approx, sign +from .vector import Vector3, zero_vector3 if TYPE_CHECKING: from .angle import AnyAngle diff --git a/mbcp/mp_math/point.py b/mbcp/mp_math/point.py index 7a1bed6..96498b0 100644 --- a/mbcp/mp_math/point.py +++ b/mbcp/mp_math/point.py @@ -1,3 +1,7 @@ +""" +本模块定义了三维空间中点的类。 +""" + from typing import TYPE_CHECKING, overload from .const import APPROX diff --git a/mbcp/mp_math/segment.py b/mbcp/mp_math/segment.py index 4168445..ca2bab3 100644 --- a/mbcp/mp_math/segment.py +++ b/mbcp/mp_math/segment.py @@ -1,12 +1,6 @@ # -*- coding: utf-8 -*- """ -Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved - -@Time : 2024/8/7 上午12:42 -@Author : snowykami -@Email : snowykami@outlook.com -@File : segment.py -@Software: PyCharm +本模块定义了三维空间中的线段类 """ from typing import TYPE_CHECKING diff --git a/mbcp/mp_math/utils.py b/mbcp/mp_math/utils.py index 630e926..bbcb3a3 100644 --- a/mbcp/mp_math/utils.py +++ b/mbcp/mp_math/utils.py @@ -1,12 +1,6 @@ # -*- coding: utf-8 -*- """ -Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved - -@Time : 2024/8/12 下午9:16 -@Author : snowykami -@Email : snowykami@outlook.com -@File : utils.py -@Software: PyCharm +本模块定义了一些常用的工具函数 """ from typing import overload, TYPE_CHECKING diff --git a/mbcp/mp_math/vector.py b/mbcp/mp_math/vector.py index cfc6df3..9ffc285 100644 --- a/mbcp/mp_math/vector.py +++ b/mbcp/mp_math/vector.py @@ -1,17 +1,18 @@ +""" +本模块定义了3维向量的类Vector3,以及一些常用的向量。 +""" + import math -from typing import overload, TYPE_CHECKING +from typing import overload import numpy as np +from .angle import AnyAngle from .const import APPROX from .mp_math_typing import RealNumber from .point import Point3 -from .angle import AnyAngle from .utils import approx -# if TYPE_CHECKING: -# - class Vector3: def __init__(self, x: float, y: float, z: float): diff --git a/mbcp/particle/__init__.py b/mbcp/particle/__init__.py index 9e19d4c..4d780f7 100644 --- a/mbcp/particle/__init__.py +++ b/mbcp/particle/__init__.py @@ -1,10 +1,4 @@ # -*- coding: utf-8 -*- """ -Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved - -@Time : 2024/8/12 下午8:54 -@Author : snowykami -@Email : snowykami@outlook.com -@File : __init__.py.py -@Software: PyCharm +本模块定义了粒子生成相关的工具 """ \ No newline at end of file diff --git a/mkdoc.bat b/mkdoc.bat index e31ccbe..682b305 100644 --- a/mkdoc.bat +++ b/mkdoc.bat @@ -1,4 +1,4 @@ -python -m litedoc mbcp -o docs/api -l zh-Hans +python -m litedoc mbcp -o docs/zh/api -l zh-Hans python -m litedoc mbcp -o docs/en/api -l en python -m litedoc mbcp -o docs/ja/api -l ja python -m litedoc mbcp -o docs/zht/api -l zh-Hant \ No newline at end of file