mirror of
https://github.com/snowykami/mbcp.git
synced 2024-11-27 08:45:03 +08:00
219 lines
102 KiB
HTML
219 lines
102 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US" dir="ltr">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>mbcp.mp_math.plane | MBCP docs</title>
|
||
<meta name="description" content="A library made for Minecraft particle generation">
|
||
<meta name="generator" content="VitePress v1.3.4">
|
||
<link rel="preload stylesheet" href="/assets/style.Bb0QBJmh.css" as="style">
|
||
|
||
<script type="module" src="/assets/app.l1Ut0uce.js"></script>
|
||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||
<link rel="modulepreload" href="/assets/chunks/theme.BPuUWxkA.js">
|
||
<link rel="modulepreload" href="/assets/chunks/framework.BV61Qrc0.js">
|
||
<link rel="modulepreload" href="/assets/en_api_mp_math_plane.md.DUu9P3nM.lean.js">
|
||
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
||
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
||
</head>
|
||
<body>
|
||
<div id="app"><div class="Layout" data-v-8e016544><!--[--><!--]--><!--[--><span tabindex="-1" data-v-efdf7a7d></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-efdf7a7d> Skip to content </a><!--]--><!----><header class="VPNav" data-v-8e016544 data-v-0c3b3583><div class="VPNavBar has-sidebar top" data-v-0c3b3583 data-v-af8d762d><div class="wrapper" data-v-af8d762d><div class="container" data-v-af8d762d><div class="title" data-v-af8d762d><div class="VPNavBarTitle has-sidebar" data-v-af8d762d data-v-73c882b0><a class="title" href="/en/" data-v-73c882b0><!--[--><!--]--><!----><span data-v-73c882b0>MBCP docs</span><!--[--><!--]--></a></div></div><div class="content" data-v-af8d762d><div class="content-body" data-v-af8d762d><!--[--><!--]--><div class="VPNavBarSearch search" data-v-af8d762d><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-af8d762d data-v-ae469694><span id="main-nav-aria-label" class="visually-hidden" data-v-ae469694> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide.html" tabindex="0" data-v-ae469694 data-v-4ca2fdac><!--[--><span data-v-4ca2fdac>Get Start</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/api/" tabindex="0" data-v-ae469694 data-v-4ca2fdac><!--[--><span data-v-4ca2fdac>API Document</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/demo/" tabindex="0" data-v-ae469694 data-v-4ca2fdac><!--[--><span data-v-4ca2fdac>Demo</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-af8d762d data-v-ba521018 data-v-6d56b0ed><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-6d56b0ed><span class="text" data-v-6d56b0ed><span class="vpi-languages option-icon" data-v-6d56b0ed></span><!----><span class="vpi-chevron-down text-icon" data-v-6d56b0ed></span></span></button><div class="menu" data-v-6d56b0ed><div class="VPMenu" data-v-6d56b0ed data-v-36a6a4be><!----><!--[--><!--[--><div class="items" data-v-ba521018><p class="title" data-v-ba521018>English</p><!--[--><div class="VPMenuLink" data-v-ba521018 data-v-a9b5eada><a class="VPLink link" href="/api/mp_math/plane.html" data-v-a9b5eada><!--[-->简体中文<!--]--></a></div><div class="VPMenuLink" data-v-ba521018 data-v-a9b5eada><a class="VPLink link" href="/ja/api/mp_math/plane.html" data-v-a9b5eada><!--[-->日本語<!--]--></a></div><div class="VPMenuLink" data-v-ba521018 data-v-a9b5eada><a class="VPLink link" href="/zht/api/mp_math/plane.html" data-v-a9b5eada><!--[-->繁體中文<!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-af8d762d data-v-fd625bab><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-fd625bab data-v-38c704f2 data-v-793caf05><span class="check" data-v-793caf05><span class="icon" data-v-793caf05><!--[--><span class="vpi-sun sun" data-v-38c704f2></span><span class="vpi-moon moon" data-v-38c704f2></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-af8d762d data-v-9b3d2141 data-v-0ada25a4><!--[--><a class="VPSocialLink no-icon" href="https://github.com/snowykami/mbcp" aria-label="github" target="_blank" rel="noopener" data-v-0ada25a4 data-v-36d54f99><span class="vpi-social-github" /></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-af8d762d data-v-8ac0e455 data-v-6d56b0ed><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-6d56b0ed><span class="vpi-more-horizontal icon" data-v-6d56b0ed></span></button><div class="menu" data-v-6d56b0ed><div class="VPMenu" data-v-6d56b0ed data-v-36a6a4be><!----><!--[--><!--[--><div class="group translations" data-v-8ac0e455><p class="trans-title" data-v-8ac0e455>English</p><!--[--><div class="VPMenuLink" data-v-8ac0e455 data-v-a9b5eada><a class="VPLink link" href="/api/mp_math/plane.html" data-v-a9b5eada><!--[-->简体中文<!--]--></a></div><div class="VPMenuLink" data-v-8ac0e455 data-v-a9b5eada><a class="VPLink link" href="/ja/api/mp_math/plane.html" data-v-a9b5eada><!--[-->日本語<!--]--></a></div><div class="VPMenuLink" data-v-8ac0e455 data-v-a9b5eada><a class="VPLink link" href="/zht/api/mp_math/plane.html" data-v-a9b5eada><!--[-->繁體中文<!--]--></a></div><!--]--></div><div class="group" data-v-8ac0e455><div class="item appearance" data-v-8ac0e455><p class="label" data-v-8ac0e455>Appearance</p><div class="appearance-action" data-v-8ac0e455><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-8ac0e455 data-v-38c704f2 data-v-793caf05><span class="check" data-v-793caf05><span class="icon" data-v-793caf05><!--[--><span class="vpi-sun sun" data-v-38c704f2></span><span class="vpi-moon moon" data-v-38c704f2></span><!--]--></span></span></button></div></div></div><div class="group" data-v-8ac0e455><div class="item social-links" data-v-8ac0e455><div class="VPSocialLinks social-links-list" data-v-8ac0e455 data-v-0ada25a4><!--[--><a class="VPSocialLink no-icon" href="https://github.com/snowykami/mbcp" aria-label="github" target="_blank" rel="noopener" data-v-0ada25a4 data-v-36d54f99><span class="vpi-social-github" /></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-af8d762d data-v-9b302893><span class="container" data-v-9b302893><span class="top" data-v-9b302893></span><span class="middle" data-v-9b302893></span><span class="bottom" data-v-9b302893></span></span></button></div></div></div></div><div class="divider" data-v-af8d762d><div class="divider-line" data-v-af8d762d></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-8e016544 data-v-513d39e6><div class="container" data-v-513d39e6><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-513d39e6><span class="vpi-align-left menu-icon" data-v-513d39e6></span><span class="menu-text" data-v-513d39e6>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-513d39e6 data-v-c4b0adf9><button data-v-c4b0adf9>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-8e016544 data-v-a2c838fb><div class="curtain" data-v-a2c838fb></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-a2c838fb><span class="visually-hidden" id="sidebar-aria-label" data-v-a2c838fb> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c4d8cef8><section class="VPSidebarItem level-0 has-active" data-v-c4d8cef8 data-v-e6240f47><div class="item" role="button" tabindex="0" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><h2 class="text" data-v-e6240f47>en</h2><!----></div><div class="items" data-v-e6240f47><!--[--><section class="VPSidebarItem level-1 has-active" data-v-e6240f47 data-v-e6240f47><div class="item" role="button" tabindex="0" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><h3 class="text" data-v-e6240f47>api</h3><!----></div><div class="items" data-v-e6240f47><!--[--><div class="VPSidebarItem level-2 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/index.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 has-active" data-v-e6240f47 data-v-e6240f47><div class="item" role="button" tabindex="0" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><h4 class="text" data-v-e6240f47>mp_math</h4><!----></div><div class="items" data-v-e6240f47><!--[--><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/mp_math/index.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.mp_math</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/mp_math/angle.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.mp_math.angle</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/mp_math/const.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.mp_math.const</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/mp_math/equation.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.mp_math.equation</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/mp_math/line.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.mp_math.line</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/mp_math/mp_math_typing.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.mp_math.mp_math_typing</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/mp_math/plane.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.mp_math.plane</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/mp_math/point.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.mp_math.point</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/mp_math/segment.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.mp_math.segment</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/mp_math/utils.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.mp_math.utils</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/mp_math/vector.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.mp_math.vector</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2" data-v-e6240f47 data-v-e6240f47><div class="item" role="button" tabindex="0" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><h4 class="text" data-v-e6240f47>particle</h4><!----></div><div class="items" data-v-e6240f47><!--[--><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/particle/index.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.particle</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2" data-v-e6240f47 data-v-e6240f47><div class="item" role="button" tabindex="0" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><h4 class="text" data-v-e6240f47>presets</h4><!----></div><div class="items" data-v-e6240f47><!--[--><div class="VPSidebarItem level-3 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/presets/index.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.presets</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-3" data-v-e6240f47 data-v-e6240f47><div class="item" role="button" tabindex="0" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><h5 class="text" data-v-e6240f47>model</h5><!----></div><div class="items" data-v-e6240f47><!--[--><div class="VPSidebarItem level-4 is-link" data-v-e6240f47 data-v-e6240f47><div class="item" data-v-e6240f47><div class="indicator" data-v-e6240f47></div><a class="VPLink link link" href="/en/api/presets/model/index.html" data-v-e6240f47><!--[--><p class="text" data-v-e6240f47>mbcp.presets.model</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><!--]--></div></section><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-8e016544 data-v-4fa77a91><div class="VPDoc has-sidebar has-aside" data-v-4fa77a91 data-v-aa782c77><!--[--><!--]--><div class="container" data-v-aa782c77><div class="aside" data-v-aa782c77><div class="aside-curtain" data-v-aa782c77></div><div class="aside-container" data-v-aa782c77><div class="aside-content" data-v-aa782c77><div class="VPDocAside" data-v-aa782c77 data-v-9030d96a><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-9030d96a data-v-e9eccece><div class="content" data-v-e9eccece><div class="outline-marker" data-v-e9eccece></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-e9eccece>On this page</div><ul class="VPDocOutlineItem root" data-v-e9eccece data-v-f55eb20b><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-9030d96a></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-aa782c77><div class="content-container" data-v-aa782c77><!--[--><!--]--><main class="main" data-v-aa782c77><div style="position:relative;" class="vp-doc _en_api_mp_math_plane" data-v-aa782c77><div><h3 id="class-plane3" tabindex="-1"><strong>class</strong> <code>Plane3</code> <a class="header-anchor" href="#class-plane3" aria-label="Permalink to "**class** `Plane3`""></a></h3><h3 id="method-init-self-a-float-b-float-c-float-d-float" tabindex="-1"><em><strong>method</strong></em> <code>__init__(self, a: float, b: float, c: float, d: float)</code> <a class="header-anchor" href="#method-init-self-a-float-b-float-c-float-d-float" aria-label="Permalink to "***method*** `__init__(self, a: float, b: float, c: float, d: float)`""></a></h3><p><strong>Description</strong>: 平面方程:ax + by + cz + d = 0</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>a: x系数</li><li>b: y系数</li><li>c: z系数</li><li>d: 常数项</li></ul></blockquote><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> __init__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, a: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, b: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, c: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, d: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">):</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 平面方程:ax + by + cz + d = 0</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> a: x系数</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> b: y系数</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> c: z系数</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> d: 常数项</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> a</span></span>
|
||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> b</span></span>
|
||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> c</span></span>
|
||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.d </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> d</span></span></code></pre></div></details><h3 id="method-approx-self-other-plane3-bool" tabindex="-1"><em><strong>method</strong></em> <code>approx(self, other: Plane3) -> bool</code> <a class="header-anchor" href="#method-approx-self-other-plane3-bool" aria-label="Permalink to "***method*** `approx(self, other: Plane3) -> bool`""></a></h3><p><strong>Description</strong>: 判断两个平面是否近似相等。</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>other: 另一个平面</li></ul></blockquote><p><strong>Return</strong>: 是否近似相等</p><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> approx</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, other: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Plane3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">bool</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 判断两个平面是否近似相等。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> other: 另一个平面</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 是否近似相等</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">/</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> approx(other.b, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> approx(other.c, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> approx(other.d, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.d </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> elif</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">/</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> approx(other.a, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> approx(other.c, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> approx(other.d, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.d </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> elif</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">/</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> approx(other.a, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> approx(other.b, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> approx(other.d, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.d </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> k)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> False</span></span></code></pre></div></details><h3 id="method-cal-angle-self-other-line3-plane3-anyangle" tabindex="-1"><em><strong>method</strong></em> <code>cal_angle(self, other: Line3 | Plane3) -> AnyAngle</code> <a class="header-anchor" href="#method-cal-angle-self-other-line3-plane3-anyangle" aria-label="Permalink to "***method*** `cal_angle(self, other: Line3 | Plane3) -> AnyAngle`""></a></h3><p><strong>Description</strong>: 计算平面与平面之间的夹角。</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>other: 另一个平面</li></ul></blockquote><p><strong>Return</strong>: 夹角弧度</p><p><strong>Raises</strong>:</p><blockquote><ul><li>TypeError 不支持的类型</li></ul></blockquote><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> cal_angle</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, other: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Line3 | Plane3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'AnyAngle'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 计算平面与平面之间的夹角。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> other: 另一个平面</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 夹角弧度</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Raises:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> TypeError: 不支持的类型</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> isinstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(other, Line3):</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.normal.cal_angle(other.direction).complementary</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> elif</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> isinstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(other, Plane3):</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> AnyAngle(math.acos(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.normal </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.normal </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.normal.length </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.normal.length)), </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">is_radian</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> raise</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> TypeError</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Unsupported type: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(other)</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></div></details><h3 id="method-cal-distance-self-other-plane3-point3-float" tabindex="-1"><em><strong>method</strong></em> <code>cal_distance(self, other: Plane3 | Point3) -> float</code> <a class="header-anchor" href="#method-cal-distance-self-other-plane3-point3-float" aria-label="Permalink to "***method*** `cal_distance(self, other: Plane3 | Point3) -> float`""></a></h3><p><strong>Description</strong>: 计算平面与平面或点之间的距离。</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>other: 另一个平面或点</li></ul></blockquote><p><strong>Return</strong>: 距离</p><p><strong>Raises</strong>:</p><blockquote><ul><li>TypeError 不支持的类型</li></ul></blockquote><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> cal_distance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, other: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Plane3 | Point3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 计算平面与平面或点之间的距离。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> other: 另一个平面或点</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 距离</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Raises:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> TypeError: 不支持的类型</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> isinstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(other, Plane3):</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> elif</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> isinstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(other, Point3):</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> abs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.y </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.z </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.d) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">**</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> +</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">**</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> +</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">**</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">**</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0.5</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> raise</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> TypeError</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Unsupported type: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(other)</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></div></details><h3 id="method-cal-intersection-line3-self-other-plane3-line3" tabindex="-1"><em><strong>method</strong></em> <code>cal_intersection_line3(self, other: Plane3) -> Line3</code> <a class="header-anchor" href="#method-cal-intersection-line3-self-other-plane3-line3" aria-label="Permalink to "***method*** `cal_intersection_line3(self, other: Plane3) -> Line3`""></a></h3><p><strong>Description</strong>: 计算两平面的交线。</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>other: 另一个平面</li></ul></blockquote><p><strong>Return</strong>: 两平面的交线</p><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> cal_intersection_line3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, other: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Plane3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Line3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 计算两平面的交线。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> other: 另一个平面</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 两平面的交线</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Raises:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.normal.is_parallel(other.normal):</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> raise</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> ValueError</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Planes are parallel and have no intersection.'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> direction </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.normal.cross(other.normal)</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> x, y, z </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> A </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> np.array([[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c], [other.b, other.c]])</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> B </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> np.array([</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.d, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">other.d])</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> y, z </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> np.linalg.solve(A, B)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> elif</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> A </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> np.array([[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c], [other.a, other.c]])</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> B </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> np.array([</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.d, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">other.d])</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> x, z </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> np.linalg.solve(A, B)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> elif</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> A </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> np.array([[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b], [other.a, other.b]])</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> B </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> np.array([</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.d, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">other.d])</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> x, y </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> np.linalg.solve(A, B)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Line3(Point3(x, y, z), direction)</span></span></code></pre></div></details><h3 id="method-cal-intersection-point3-self-other-line3-point3" tabindex="-1"><em><strong>method</strong></em> <code>cal_intersection_point3(self, other: Line3) -> Point3</code> <a class="header-anchor" href="#method-cal-intersection-point3-self-other-line3-point3" aria-label="Permalink to "***method*** `cal_intersection_point3(self, other: Line3) -> Point3`""></a></h3><p><strong>Description</strong>: 计算平面与直线的交点。</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>other: 不与平面平行或在平面上的直线</li></ul></blockquote><p><strong>Return</strong>: 交点</p><p><strong>Raises</strong>:</p><blockquote><ul><li>ValueError 平面与直线平行或重合</li></ul></blockquote><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> cal_intersection_point3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, other: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Line3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Point3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 计算平面与直线的交点。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> other: 不与平面平行或在平面上的直线</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 交点</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Raises:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ValueError: 平面与直线平行或重合</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.normal </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.direction </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> raise</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> ValueError</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'The plane and the line are parallel or coincident.'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> x, y, z </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.get_parametric_equations()</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> t </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> -</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.point.x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.point.y </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.point.z </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.d) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.direction.x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.direction.y </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.direction.z)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Point3(x(t), y(t), z(t))</span></span></code></pre></div></details><h3 id="method-cal-parallel-plane3-self-point-point3-plane3" tabindex="-1"><em><strong>method</strong></em> <code>cal_parallel_plane3(self, point: Point3) -> Plane3</code> <a class="header-anchor" href="#method-cal-parallel-plane3-self-point-point3-plane3" aria-label="Permalink to "***method*** `cal_parallel_plane3(self, point: Point3) -> Plane3`""></a></h3><p><strong>Description</strong>: 计算平行于该平面且过指定点的平面。</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>point: 指定点</li></ul></blockquote><p><strong>Return</strong>: 所求平面</p><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> cal_parallel_plane3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, point: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Point3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Plane3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 计算平行于该平面且过指定点的平面。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> point: 指定点</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 所求平面</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Plane3.from_point_and_normal(point, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.normal)</span></span></code></pre></div></details><h3 id="method-is-parallel-self-other-plane3-bool" tabindex="-1"><em><strong>method</strong></em> <code>is_parallel(self, other: Plane3) -> bool</code> <a class="header-anchor" href="#method-is-parallel-self-other-plane3-bool" aria-label="Permalink to "***method*** `is_parallel(self, other: Plane3) -> bool`""></a></h3><p><strong>Description</strong>: 判断两个平面是否平行。</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>other: 另一个平面</li></ul></blockquote><p><strong>Return</strong>: 是否平行</p><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> is_parallel</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, other: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Plane3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">bool</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 判断两个平面是否平行。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> other: 另一个平面</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 是否平行</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.normal.is_parallel(other.normal)</span></span></code></pre></div></details><h3 id="property" tabindex="-1"><code>@property</code> <a class="header-anchor" href="#property" aria-label="Permalink to "`@property`""></a></h3><h3 id="method-normal-self-vector3" tabindex="-1"><em><strong>method</strong></em> <code>normal(self) -> Vector3</code> <a class="header-anchor" href="#method-normal-self-vector3" aria-label="Permalink to "***method*** `normal(self) -> Vector3`""></a></h3><p><strong>Description</strong>: 平面的法向量。</p><p><strong>Return</strong>: 法向量</p><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">property</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> normal</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Vector3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 平面的法向量。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 法向量</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Vector3(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.a, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.b, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.c)</span></span></code></pre></div></details><h3 id="classmethod" tabindex="-1"><code>@classmethod</code> <a class="header-anchor" href="#classmethod" aria-label="Permalink to "`@classmethod`""></a></h3><h3 id="method-from-point-and-normal-cls-point-point3-normal-vector3-plane3" tabindex="-1"><em><strong>method</strong></em> <code>from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3</code> <a class="header-anchor" href="#method-from-point-and-normal-cls-point-point3-normal-vector3-plane3" aria-label="Permalink to "***method*** `from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3`""></a></h3><p><strong>Description</strong>: 工厂函数 由点和法向量构造平面(点法式构造)。</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>point: 平面上的一点</li><li>normal: 法向量</li></ul></blockquote><p><strong>Return</strong>: 平面</p><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">classmethod</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> from_point_and_normal</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(cls, point: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Point3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, normal: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Vector3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Plane3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 工厂函数 由点和法向量构造平面(点法式构造)。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> point: 平面上的一点</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> normal: 法向量</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 平面</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> a, b, c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (normal.x, normal.y, normal.z)</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> d </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> -</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> point.x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> point.y </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> point.z</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> cls</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(a, b, c, d)</span></span></code></pre></div></details><h3 id="classmethod-1" tabindex="-1"><code>@classmethod</code> <a class="header-anchor" href="#classmethod-1" aria-label="Permalink to "`@classmethod`""></a></h3><h3 id="method-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3" tabindex="-1"><em><strong>method</strong></em> <code>from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3</code> <a class="header-anchor" href="#method-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3" aria-label="Permalink to "***method*** `from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3`""></a></h3><p><strong>Description</strong>: 工厂函数 由三点构造平面。</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>p1: 点1</li><li>p2: 点2</li><li>p3: 点3</li></ul></blockquote><p><strong>Return</strong>: 平面</p><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">classmethod</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> from_three_points</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(cls, p1: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Point3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, p2: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Point3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, p3: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Point3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Plane3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 工厂函数 由三点构造平面。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> p1: 点1</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> p2: 点2</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> p3: 点3</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 平面</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> v1 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> p2 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> p1</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> v2 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> p3 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> p1</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> normal </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> v1.cross(v2)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> cls</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.from_point_and_normal(p1, normal)</span></span></code></pre></div></details><h3 id="classmethod-2" tabindex="-1"><code>@classmethod</code> <a class="header-anchor" href="#classmethod-2" aria-label="Permalink to "`@classmethod`""></a></h3><h3 id="method-from-two-lines-cls-l1-line3-l2-line3-plane3" tabindex="-1"><em><strong>method</strong></em> <code>from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3</code> <a class="header-anchor" href="#method-from-two-lines-cls-l1-line3-l2-line3-plane3" aria-label="Permalink to "***method*** `from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3`""></a></h3><p><strong>Description</strong>: 工厂函数 由两直线构造平面。</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>l1: 直线1</li><li>l2: 直线2</li></ul></blockquote><p><strong>Return</strong>: 平面</p><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">classmethod</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> from_two_lines</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(cls, l1: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Line3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, l2: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Line3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Plane3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 工厂函数 由两直线构造平面。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> l1: 直线1</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> l2: 直线2</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 平面</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> v1 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> l1.direction</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> v2 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> l2.point </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> l1.point</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> v2 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> zero_vector3:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> v2 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> l2.get_point(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> l1.point</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> cls</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.from_point_and_normal(l1.point, v1.cross(v2))</span></span></code></pre></div></details><h3 id="classmethod-3" tabindex="-1"><code>@classmethod</code> <a class="header-anchor" href="#classmethod-3" aria-label="Permalink to "`@classmethod`""></a></h3><h3 id="method-from-point-and-line-cls-point-point3-line-line3-plane3" tabindex="-1"><em><strong>method</strong></em> <code>from_point_and_line(cls, point: Point3, line: Line3) -> Plane3</code> <a class="header-anchor" href="#method-from-point-and-line-cls-point-point3-line-line3-plane3" aria-label="Permalink to "***method*** `from_point_and_line(cls, point: Point3, line: Line3) -> Plane3`""></a></h3><p><strong>Description</strong>: 工厂函数 由点和直线构造平面。</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>point: 面上一点</li><li>line: 面上直线,不包含点</li></ul></blockquote><p><strong>Return</strong>: 平面</p><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">classmethod</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> from_point_and_line</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(cls, point: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Point3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, line: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Line3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Plane3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 工厂函数 由点和直线构造平面。</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> point: 面上一点</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> line: 面上直线,不包含点</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 平面</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> cls</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.from_point_and_normal(point, line.direction)</span></span></code></pre></div></details><h3 id="overload" tabindex="-1"><code>@overload</code> <a class="header-anchor" href="#overload" aria-label="Permalink to "`@overload`""></a></h3><h3 id="method-and-self-other-line3-point3-none" tabindex="-1"><em><strong>method</strong></em> <code>__and__(self, other: Line3) -> Point3 | None</code> <a class="header-anchor" href="#method-and-self-other-line3-point3-none" aria-label="Permalink to "***method*** `__and__(self, other: Line3) -> Point3 | None`""></a></h3><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@overload</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> __and__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, other: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Line3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Point3 | None'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> ...</span></span></code></pre></div></details><h3 id="overload-1" tabindex="-1"><code>@overload</code> <a class="header-anchor" href="#overload-1" aria-label="Permalink to "`@overload`""></a></h3><h3 id="method-and-self-other-plane3-line3-none" tabindex="-1"><em><strong>method</strong></em> <code>__and__(self, other: Plane3) -> Line3 | None</code> <a class="header-anchor" href="#method-and-self-other-plane3-line3-none" aria-label="Permalink to "***method*** `__and__(self, other: Plane3) -> Line3 | None`""></a></h3><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@overload</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> __and__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, other: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Plane3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Line3 | None'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> ...</span></span></code></pre></div></details><h3 id="method-and-self-other" tabindex="-1"><em><strong>method</strong></em> <code>__and__(self, other)</code> <a class="header-anchor" href="#method-and-self-other" aria-label="Permalink to "***method*** `__and__(self, other)`""></a></h3><p><strong>Description</strong>: 取两平面的交集(人话:交线)</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>other:</li></ul></blockquote><p><strong>Return</strong>: 不平行平面的交线,平面平行返回None</p><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> __and__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, other):</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 取两平面的交集(人话:交线)</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Args:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> other:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Returns:</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 不平行平面的交线,平面平行返回None</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> """</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> isinstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(other, Plane3):</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.normal.is_parallel(other.normal):</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.cal_intersection_line3(other)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> elif</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> isinstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(other, Line3):</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.normal </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> other.direction </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.cal_intersection_point3(other)</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> raise</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> TypeError</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"unsupported operand type(s) for &: 'Plane3' and '</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(other)</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></div></details><h3 id="method-eq-self-other-bool" tabindex="-1"><em><strong>method</strong></em> <code>__eq__(self, other) -> bool</code> <a class="header-anchor" href="#method-eq-self-other-bool" aria-label="Permalink to "***method*** `__eq__(self, other) -> bool`""></a></h3><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> __eq__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, other) -> </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">bool</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.approx(other)</span></span></code></pre></div></details><h3 id="method-rand-self-other-line3-point3" tabindex="-1"><em><strong>method</strong></em> <code>__rand__(self, other: Line3) -> Point3</code> <a class="header-anchor" href="#method-rand-self-other-line3-point3" aria-label="Permalink to "***method*** `__rand__(self, other: Line3) -> Point3`""></a></h3><details><summary><b>Source code</b></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> __rand__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, other: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Line3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -> </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Point3'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.cal_intersection_point3(other)</span></span></code></pre></div></details></div></div></main><footer class="VPDocFooter" data-v-aa782c77 data-v-f33b051d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-f33b051d><span class="visually-hidden" id="doc-footer-aria-label" data-v-f33b051d>Pager</span><div class="pager" data-v-f33b051d><a class="VPLink link pager-link prev" href="/en/api/mp_math/mp_math_typing.html" data-v-f33b051d><!--[--><span class="desc" data-v-f33b051d>Previous page</span><span class="title" data-v-f33b051d>mbcp.mp_math.mp_math_typing</span><!--]--></a></div><div class="pager" data-v-f33b051d><a class="VPLink link pager-link next" href="/en/api/mp_math/point.html" data-v-f33b051d><!--[--><span class="desc" data-v-f33b051d>Next page</span><span class="title" data-v-f33b051d>mbcp.mp_math.point</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
|
||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"api-ex.md\":\"DOsKaL8H\",\"api_index.md\":\"BvazTqTB\",\"api_mp_math_angle.md\":\"eAy7w1HN\",\"api_mp_math_const.md\":\"D9zs7__H\",\"api_mp_math_equation.md\":\"D6QhNvHe\",\"api_mp_math_index.md\":\"4P0hk6gb\",\"api_mp_math_line.md\":\"DsJQDchM\",\"api_mp_math_mp_math_typing.md\":\"COrE_fd3\",\"api_mp_math_plane.md\":\"CmoVvPiw\",\"api_mp_math_point.md\":\"ClJD85mP\",\"api_mp_math_segment.md\":\"7jBtS4F1\",\"api_mp_math_utils.md\":\"BMwtm7TJ\",\"api_mp_math_vector.md\":\"CROCIDXX\",\"api_particle_index.md\":\"BRCSxC3e\",\"api_presets_index.md\":\"Dl6Ss91J\",\"api_presets_model_index.md\":\"DUZx13AW\",\"en_api_index.md\":\"Bgu-LD1B\",\"en_api_mp_math_angle.md\":\"BuhpKHnt\",\"en_api_mp_math_const.md\":\"D_Flpj8t\",\"en_api_mp_math_equation.md\":\"CdqZIJEO\",\"en_api_mp_math_index.md\":\"DrjDUYBY\",\"en_api_mp_math_line.md\":\"BEvxdWYQ\",\"en_api_mp_math_mp_math_typing.md\":\"CyXXFdS4\",\"en_api_mp_math_plane.md\":\"DUu9P3nM\",\"en_api_mp_math_point.md\":\"DMig0FI1\",\"en_api_mp_math_segment.md\":\"CcaokAF8\",\"en_api_mp_math_utils.md\":\"DZohqw2b\",\"en_api_mp_math_vector.md\":\"Sd_IZsgE\",\"en_api_particle_index.md\":\"CmC1QX5o\",\"en_api_presets_index.md\":\"CZ5hl_7D\",\"en_api_presets_model_index.md\":\"Cs8vON2C\",\"guide_index.md\":\"BE2yloik\",\"index.md\":\"BE1qChTt\",\"ja_api_index.md\":\"4BnflFIm\",\"ja_api_mp_math_angle.md\":\"DL9J6RE2\",\"ja_api_mp_math_const.md\":\"CyaIJkFx\",\"ja_api_mp_math_equation.md\":\"B2lD-VSI\",\"ja_api_mp_math_index.md\":\"CSAMHYsB\",\"ja_api_mp_math_line.md\":\"fj-_s5Ug\",\"ja_api_mp_math_mp_math_typing.md\":\"Bl5kyhpI\",\"ja_api_mp_math_plane.md\":\"yLekgCvK\",\"ja_api_mp_math_point.md\":\"CpHHrSk8\",\"ja_api_mp_math_segment.md\":\"CB1_z-rn\",\"ja_api_mp_math_utils.md\":\"BrfEEfl-\",\"ja_api_mp_math_vector.md\":\"p54TKACE\",\"ja_api_particle_index.md\":\"E2YnH7EN\",\"ja_api_presets_index.md\":\"ATGcHt9d\",\"ja_api_presets_model_index.md\":\"D8yZmO5R\",\"md-ex.md\":\"BX0WqOqv\",\"zht_api_index.md\":\"Dq4XPUKZ\",\"zht_api_mp_math_angle.md\":\"B4T6L25M\",\"zht_api_mp_math_const.md\":\"B8uQOIr_\",\"zht_api_mp_math_equation.md\":\"H6Y480q1\",\"zht_api_mp_math_index.md\":\"D09y2ubg\",\"zht_api_mp_math_line.md\":\"DYC1X0oD\",\"zht_api_mp_math_mp_math_typing.md\":\"DLx0IibM\",\"zht_api_mp_math_plane.md\":\"B6GWRRF6\",\"zht_api_mp_math_point.md\":\"Bm1IEwlI\",\"zht_api_mp_math_segment.md\":\"Bop8t2IE\",\"zht_api_mp_math_utils.md\":\"CERv8c-M\",\"zht_api_mp_math_vector.md\":\"BTWxlpB1\",\"zht_api_particle_index.md\":\"kAm9VAEw\",\"zht_api_presets_index.md\":\"BmouaEaT\",\"zht_api_presets_model_index.md\":\"SQ5PPdaL\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"MBCP docs\",\"description\":\"MBCP library docs\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/snowykami/mbcp\"}],\"sidebar\":{\"/api/\":[{\"text\":\"api\",\"items\":[{\"text\":\"mbcp\",\"link\":\"/api/index.md\"},{\"text\":\"mp_math\",\"items\":[{\"text\":\"mbcp.mp_math\",\"link\":\"/api/mp_math/index.md\"},{\"text\":\"mbcp.mp_math.angle\",\"link\":\"/api/mp_math/angle.md\"},{\"text\":\"mbcp.mp_math.const\",\"link\":\"/api/mp_math/const.md\"},{\"text\":\"mbcp.mp_math.equation\",\"link\":\"/api/mp_math/equation.md\"},{\"text\":\"mbcp.mp_math.line\",\"link\":\"/api/mp_math/line.md\"},{\"text\":\"mbcp.mp_math.mp_math_typing\",\"link\":\"/api/mp_math/mp_math_typing.md\"},{\"text\":\"mbcp.mp_math.plane\",\"link\":\"/api/mp_math/plane.md\"},{\"text\":\"mbcp.mp_math.point\",\"link\":\"/api/mp_math/point.md\"},{\"text\":\"mbcp.mp_math.segment\",\"link\":\"/api/mp_math/segment.md\"},{\"text\":\"mbcp.mp_math.utils\",\"link\":\"/api/mp_math/utils.md\"},{\"text\":\"mbcp.mp_math.vector\",\"link\":\"/api/mp_math/vector.md\"}]},{\"text\":\"particle\",\"items\":[{\"text\":\"mbcp.particle\",\"link\":\"/api/particle/index.md\"}]},{\"text\":\"presets\",\"items\":[{\"text\":\"mbcp.presets\",\"link\":\"/api/presets/index.md\"},{\"text\":\"model\",\"items\":[{\"text\":\"mbcp.presets.model\",\"link\":\"/api/presets/model/index.md\"}]}]}]}],\"/guide/\":[{\"text\":\"guide\",\"items\":[{\"text\":\"开始不了一点\",\"link\":\"/guide/index.md\"}]}],\"/en/\":[{\"text\":\"en\",\"items\":[{\"text\":\"api\",\"items\":[{\"text\":\"mbcp\",\"link\":\"/en/api/index.md\"},{\"text\":\"mp_math\",\"items\":[{\"text\":\"mbcp.mp_math\",\"link\":\"/en/api/mp_math/index.md\"},{\"text\":\"mbcp.mp_math.angle\",\"link\":\"/en/api/mp_math/angle.md\"},{\"text\":\"mbcp.mp_math.const\",\"link\":\"/en/api/mp_math/const.md\"},{\"text\":\"mbcp.mp_math.equation\",\"link\":\"/en/api/mp_math/equation.md\"},{\"text\":\"mbcp.mp_math.line\",\"link\":\"/en/api/mp_math/line.md\"},{\"text\":\"mbcp.mp_math.mp_math_typing\",\"link\":\"/en/api/mp_math/mp_math_typing.md\"},{\"text\":\"mbcp.mp_math.plane\",\"link\":\"/en/api/mp_math/plane.md\"},{\"text\":\"mbcp.mp_math.point\",\"link\":\"/en/api/mp_math/point.md\"},{\"text\":\"mbcp.mp_math.segment\",\"link\":\"/en/api/mp_math/segment.md\"},{\"text\":\"mbcp.mp_math.utils\",\"link\":\"/en/api/mp_math/utils.md\"},{\"text\":\"mbcp.mp_math.vector\",\"link\":\"/en/api/mp_math/vector.md\"}]},{\"text\":\"particle\",\"items\":[{\"text\":\"mbcp.particle\",\"link\":\"/en/api/particle/index.md\"}]},{\"text\":\"presets\",\"items\":[{\"text\":\"mbcp.presets\",\"link\":\"/en/api/presets/index.md\"},{\"text\":\"model\",\"items\":[{\"text\":\"mbcp.presets.model\",\"link\":\"/en/api/presets/model/index.md\"}]}]}]}]}],\"/ja/\":[{\"text\":\"ja\",\"items\":[{\"text\":\"api\",\"items\":[{\"text\":\"mbcp\",\"link\":\"/ja/api/index.md\"},{\"text\":\"mp_math\",\"items\":[{\"text\":\"mbcp.mp_math\",\"link\":\"/ja/api/mp_math/index.md\"},{\"text\":\"mbcp.mp_math.angle\",\"link\":\"/ja/api/mp_math/angle.md\"},{\"text\":\"mbcp.mp_math.const\",\"link\":\"/ja/api/mp_math/const.md\"},{\"text\":\"mbcp.mp_math.equation\",\"link\":\"/ja/api/mp_math/equation.md\"},{\"text\":\"mbcp.mp_math.line\",\"link\":\"/ja/api/mp_math/line.md\"},{\"text\":\"mbcp.mp_math.mp_math_typing\",\"link\":\"/ja/api/mp_math/mp_math_typing.md\"},{\"text\":\"mbcp.mp_math.plane\",\"link\":\"/ja/api/mp_math/plane.md\"},{\"text\":\"mbcp.mp_math.point\",\"link\":\"/ja/api/mp_math/point.md\"},{\"text\":\"mbcp.mp_math.segment\",\"link\":\"/ja/api/mp_math/segment.md\"},{\"text\":\"mbcp.mp_math.utils\",\"link\":\"/ja/api/mp_math/utils.md\"},{\"text\":\"mbcp.mp_math.vector\",\"link\":\"/ja/api/mp_math/vector.md\"}]},{\"text\":\"particle\",\"items\":[{\"text\":\"mbcp.particle\",\"link\":\"/ja/api/particle/index.md\"}]},{\"text\":\"presets\",\"items\":[{\"text\":\"mbcp.presets\",\"link\":\"/ja/api/presets/index.md\"},{\"text\":\"model\",\"items\":[{\"text\":\"mbcp.presets.model\",\"link\":\"/ja/api/presets/model/index.md\"}]}]}]}]}],\"/zht/\":[{\"text\":\"zht\",\"items\":[{\"text\":\"api\",\"items\":[{\"text\":\"mbcp\",\"link\":\"/zht/api/index.md\"},{\"text\":\"mp_math\",\"items\":[{\"text\":\"mbcp.mp_math\",\"link\":\"/zht/api/mp_math/index.md\"},{\"text\":\"mbcp.mp_math.angle\",\"link\":\"/zht/api/mp_math/angle.md\"},{\"text\":\"mbcp.mp_math.const\",\"link\":\"/zht/api/mp_math/const.md\"},{\"text\":\"mbcp.mp_math.equation\",\"link\":\"/zht/api/mp_math/equation.md\"},{\"text\":\"mbcp.mp_math.line\",\"link\":\"/zht/api/mp_math/line.md\"},{\"text\":\"mbcp.mp_math.mp_math_typing\",\"link\":\"/zht/api/mp_math/mp_math_typing.md\"},{\"text\":\"mbcp.mp_math.plane\",\"link\":\"/zht/api/mp_math/plane.md\"},{\"text\":\"mbcp.mp_math.point\",\"link\":\"/zht/api/mp_math/point.md\"},{\"text\":\"mbcp.mp_math.segment\",\"link\":\"/zht/api/mp_math/segment.md\"},{\"text\":\"mbcp.mp_math.utils\",\"link\":\"/zht/api/mp_math/utils.md\"},{\"text\":\"mbcp.mp_math.vector\",\"link\":\"/zht/api/mp_math/vector.md\"}]},{\"text\":\"particle\",\"items\":[{\"text\":\"mbcp.particle\",\"link\":\"/zht/api/particle/index.md\"}]},{\"text\":\"presets\",\"items\":[{\"text\":\"mbcp.presets\",\"link\":\"/zht/api/presets/index.md\"},{\"text\":\"model\",\"items\":[{\"text\":\"mbcp.presets.model\",\"link\":\"/zht/api/presets/model/index.md\"}]}]}]}]}],\"/api-ex.md/\":[{\"text\":\"Runtime API Examples\",\"items\":[]}],\"/md-ex.md/\":[{\"text\":\"Markdown Extension Examples\",\"items\":[]}]}},\"locales\":{\"root\":{\"label\":\"简体中文\",\"lang\":\"zh-Hans\",\"description\":\"一个用于Minecraft粒子计算和生成的库\",\"themeConfig\":{\"nav\":[{\"text\":\"快速开始\",\"link\":\"/guide/\"},{\"text\":\"API文档\",\"link\":\"/api/\"},{\"text\":\"实例\",\"link\":\"/demo/\"}]}},\"en\":{\"label\":\"English\",\"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/\"}]}},\"ja\":{\"label\":\"日本語\",\"lang\":\"ja-JP\",\"description\":\"Minecraftのパーティクル生成用のライブラリ\",\"themeConfig\":{\"nav\":[{\"text\":\"スタート\",\"link\":\"/guide\"},{\"text\":\"APIドキュメント\",\"link\":\"/api/\"},{\"text\":\"インスタンス\",\"link\":\"/demo/\"}]}},\"zht\":{\"label\":\"繁體中文\",\"lang\":\"zh-Hant\",\"description\":\"一個用於Minecraft粒子計算和生成的軟體庫\",\"themeConfig\":{\"nav\":[{\"text\":\"指引\",\"link\":\"/guide/\"},{\"text\":\"API文檔\",\"link\":\"/api/\"},{\"text\":\"示範\",\"link\":\"/demo/\"}]}}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||
|
||
</body>
|
||
</html> |