2024-08-28 20:35:22 +08:00
<!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.line | 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" >
2024-08-28 22:08:21 +08:00
< link rel = "modulepreload" href = "/assets/en_api_mp_math_line.md.CAJnDKCu.lean.js" >
2024-08-28 20:35:22 +08:00
< 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 >
2024-08-28 22:08:21 +08:00
< 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/line.html" data-v-a9b5eada > <!-- [ --> 简体中文<!-- ] --> < / a > < / div > < div class = "VPMenuLink" data-v-ba521018 data-v-a9b5eada > < a class = "VPLink link" href = "/ja/api/mp_math/line.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/line.html" data-v-a9b5eada > <!-- [ --> 简体中文<!-- ] --> < / a > < / div > < div class = "VPMenuLink" data-v-8ac0e455 data-v-a9b5eada > < a class = "VPLink link" href = "/ja/a
2024-08-28 20:35:22 +08:00
< 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;" > direction: 直线的方向向量< / 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;" > .point < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > =< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > point< / span > < / span >
2024-08-28 22:08:21 +08:00
< span class = "line" > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > =< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > direction< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-approx-self-other-line3-epsilon-float-approx-bool" tabindex = "-1" > < em > def< / em > < code > approx(self, other: ' Line3' , epsilon: float = APPROX) -> bool< / code > < a class = "header-anchor" href = "#def-approx-self-other-line3-epsilon-float-approx-bool" aria-label = "Permalink to "*def* `approx(self, other: 'Line3', epsilon: float = APPROX) -> bool`"" > < / a > < / h3 > < p > 判断两条直线是否近似相等。< / p > < p > Args:< / p > < ul > < li > < p > other: 另一条直线< / p > < / li > < li > < p > epsilon: 误差< / p > < / li > < / ul > < p > Return:< / p > < ul > < li > 是否近似相等< / li > < / ul > < details > < summary > Source code< / 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;" > ' Line3' < / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > , epsilon: < / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > float< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > =< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > APPROX< / 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 >
2024-08-28 20:35:22 +08:00
< 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;" > epsilon: 误差< / 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 >
2024-08-28 22:08:21 +08:00
< 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;" > .is_approx_parallel(other, epsilon) < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > and< / 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;" > .point < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > -< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > other.point).is_approx_parallel(< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction, epsilon)< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-cal-angle-self-other-line3-anyangle" tabindex = "-1" > < em > def< / em > < code > cal_angle(self, other: ' Line3' ) -> ' AnyAngle' < / code > < a class = "header-anchor" href = "#def-cal-angle-self-other-line3-anyangle" aria-label = "Permalink to "*def* `cal_angle(self, other: 'Line3') -> 'AnyAngle'`"" > < / a > < / h3 > < p > 计算直线和直线之间的夹角。< / p > < p > Args:< / p > < ul > < li > other: 另一条直线< / li > < / ul > < p > Return:< / p > < ul > < li > 夹角弧度< / li > < / ul > < p > Raises:< / p > < ul > < li > TypeError 不支持的类型< / li > < / ul > < details > < summary > Source code< / 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' < / 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 >
2024-08-28 20:35:22 +08:00
< 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 >
2024-08-28 22:08:21 +08:00
< 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;" > .direction.cal_angle(other.direction)< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-cal-distance-self-other-line3-point3-float" tabindex = "-1" > < em > def< / em > < code > cal_distance(self, other: ' Line3 | Point3' ) -> float< / code > < a class = "header-anchor" href = "#def-cal-distance-self-other-line3-point3-float" aria-label = "Permalink to "*def* `cal_distance(self, other: 'Line3 | Point3') -> float`"" > < / a > < / h3 > < p > 计算直线和直线或点之间的距离。< / p > < p > Args:< / p > < ul > < li > other: 平行直线或点< / li > < / ul > < p > Return:< / p > < ul > < li > 距离< / li > < / ul > < p > Raises:< / p > < ul > < li > TypeError 不支持的类型< / li > < / ul > < details > < summary > Source code< / 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;" > ' Line3 | 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 >
2024-08-28 20:35:22 +08:00
< 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 >
< 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;" > if< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > ==< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > other:< / 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;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .is_parallel(other):< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > return< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (other.point < / 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;" > .point).cross(< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction).length < / 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;" > .direction.length< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > elif< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > not< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .is_coplanar(other):< / 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;" > .direction.cross(other.direction) < / 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;" > .point < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > -< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > other.point) < / 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;" > .direction.cross(other.direction).length)< / 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;" > 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:#24292E;--shiki-dark:#E1E4E8;" > (other < / 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;" > .point).cross(< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction).length < / 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;" > .direction.length< / 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 >
2024-08-28 22:08:21 +08:00
< 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:#032F62;--shiki-dark:#9ECBFF;" > ' Unsupported type.' < / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > )< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-cal-intersection-self-other-line3-point3" tabindex = "-1" > < em > def< / em > < code > cal_intersection(self, other: ' Line3' ) -> ' Point3' < / code > < a class = "header-anchor" href = "#def-cal-intersection-self-other-line3-point3" aria-label = "Permalink to "*def* `cal_intersection(self, other: 'Line3') -> 'Point3'`"" > < / a > < / h3 > < p > 计算两条直线的交点。< / p > < p > Args:< / p > < ul > < li > other: 另一条直线< / li > < / ul > < p > Return:< / p > < ul > < li > 交点< / li > < / ul > < p > Raises:< / p > < ul > < li > < p > ValueError 直线平行< / p > < / li > < li > < p > ValueError 直线不共面< / p > < / li > < / ul > < details > < summary > Source code< / 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< / 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 >
2024-08-28 20:35:22 +08:00
< 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;" > 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;" > .is_parallel(other):< / 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;" > ' Lines are parallel and do not intersect.' < / 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:#D73A49;--shiki-dark:#F97583;" > not< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .is_coplanar(other):< / 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;" > ' Lines are not coplanar and do not intersect.' < / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > )< / span > < / span >
2024-08-28 22:08:21 +08:00
< 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;" > .point < / 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;" > .direction.cross(other.direction) < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > @< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > other.direction.cross(< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .point < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > -< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > other.point) < / 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;" > .direction.cross(other.direction).length < / 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;" > .direction< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-cal-perpendicular-self-point-point3-line3" tabindex = "-1" > < em > def< / em > < code > cal_perpendicular(self, point: ' Point3' ) -> ' Line3' < / code > < a class = "header-anchor" href = "#def-cal-perpendicular-self-point-point3-line3" aria-label = "Permalink to "*def* `cal_perpendicular(self, point: 'Point3') -> 'Line3'`"" > < / a > < / h3 > < p > 计算直线经过指定点p的垂线。< / p > < p > Args:< / p > < ul > < li > point: 指定点< / li > < / ul > < p > Return:< / p > < ul > < li > 垂线< / li > < / ul > < details > < summary > Source code< / 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_perpendicular< / 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;" > ' Line3' < / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > :< / span > < / span >
2024-08-28 20:35:22 +08:00
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > " " " < / span > < / span >
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > 计算直线经过指定点p的垂线。< / 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 >
2024-08-28 22:08:21 +08:00
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > return< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > Line3(point, < / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction.cross(point < / 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;" > .point))< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-get-point-self-t-realnumber-point3" tabindex = "-1" > < em > def< / em > < code > get_point(self, t: RealNumber) -> ' Point3' < / code > < a class = "header-anchor" href = "#def-get-point-self-t-realnumber-point3" aria-label = "Permalink to "*def* `get_point(self, t: RealNumber) -> 'Point3'`"" > < / a > < / h3 > < p > 获取直线上的点。同一条直线, 但起始点和方向向量不同, 则同一个t对应的点不同。< / p > < p > Args:< / p > < ul > < li > t: 参数t< / li > < / ul > < p > Return:< / p > < ul > < li > 点< / li > < / ul > < details > < summary > Source code< / 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;" > get_point< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (self, t: RealNumber) -> < / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' Point3' < / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > :< / span > < / span >
2024-08-28 20:35:22 +08:00
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > " " " < / span > < / span >
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > 获取直线上的点。同一条直线, 但起始点和方向向量不同, 则同一个t对应的点不同。< / 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;" > t: 参数t< / 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 >
2024-08-28 21:28:34 +08:00
< 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;" > .point < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > +< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > t < / 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;" > .direction< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc" tabindex = "-1" > < em > def< / em > < code > get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]< / code > < a class = "header-anchor" href = "#def-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc" aria-label = "Permalink to "*def* `get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]`"" > < / a > < / h3 > < p > 获取直线的参数方程。< / p > < p > Return:< / p > < ul > < li > x(t), y(t), z(t)< / li > < / ul > < details > < summary > Source code< / 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;" > get_parametric_equations< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:< / span > < / span >
2024-08-28 20:35:22 +08:00
< 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;" > x(t), y(t), z(t)< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > " " " < / span > < / span >
2024-08-28 22:08:21 +08:00
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > return< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > lambda< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > t: < / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / 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:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction.x < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > *< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > t, < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > lambda< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > t: < / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / 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:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction.y < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > *< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > t, < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > lambda< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > t: < / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .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;" > .direction.z < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > *< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > t)< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool" tabindex = "-1" > < em > def< / em > < code > is_approx_parallel(self, other: ' Line3' , epsilon: float = 1e-06) -> bool< / code > < a class = "header-anchor" href = "#def-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool" aria-label = "Permalink to "*def* `is_approx_parallel(self, other: 'Line3', epsilon: float = 1e-06) -> bool`"" > < / a > < / h3 > < p > 判断两条直线是否近似平行。< / p > < p > Args:< / p > < ul > < li > < p > other: 另一条直线< / p > < / li > < li > < p > epsilon: 误差< / p > < / li > < / ul > < p > Return:< / p > < ul > < li > 是否近似平行< / li > < / ul > < details > < summary > Source code< / 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_approx_parallel< / 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;" > , epsilon: < / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > float< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > =< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > 1e-06< / 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 >
2024-08-28 20:35:22 +08:00
< 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;" > epsilon: 误差< / 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 >
2024-08-28 22:08:21 +08:00
< 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;" > .direction.is_approx_parallel(other.direction, epsilon)< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-is-parallel-self-other-line3-bool" tabindex = "-1" > < em > def< / em > < code > is_parallel(self, other: ' Line3' ) -> bool< / code > < a class = "header-anchor" href = "#def-is-parallel-self-other-line3-bool" aria-label = "Permalink to "*def* `is_parallel(self, other: 'Line3') -> bool`"" > < / a > < / h3 > < p > 判断两条直线是否平行。< / p > < p > Args:< / p > < ul > < li > other: 另一条直线< / li > < / ul > < p > Return:< / p > < ul > < li > 是否平行< / li > < / ul > < details > < summary > Source code< / 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;" > ' Line3' < / 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 >
2024-08-28 20:35:22 +08:00
< 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 >
2024-08-28 22:08:21 +08:00
< 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;" > .direction.is_parallel(other.direction)< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-is-collinear-self-other-line3-bool" tabindex = "-1" > < em > def< / em > < code > is_collinear(self, other: ' Line3' ) -> bool< / code > < a class = "header-anchor" href = "#def-is-collinear-self-other-line3-bool" aria-label = "Permalink to "*def* `is_collinear(self, other: 'Line3') -> bool`"" > < / a > < / h3 > < p > 判断两条直线是否共线。< / p > < p > Args:< / p > < ul > < li > other: 另一条直线< / li > < / ul > < p > Return:< / p > < ul > < li > 是否共线< / li > < / ul > < details > < summary > Source code< / 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_collinear< / 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:#005CC5;--shiki-dark:#79B8FF;" > bool< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > :< / span > < / span >
2024-08-28 20:35:22 +08:00
< 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 >
2024-08-28 22:08:21 +08:00
< 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;" > .is_parallel(other) < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > and< / 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;" > .point < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > -< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > other.point).is_parallel(< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction)< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-is-point-on-self-point-point3-bool" tabindex = "-1" > < em > def< / em > < code > is_point_on(self, point: ' Point3' ) -> bool< / code > < a class = "header-anchor" href = "#def-is-point-on-self-point-point3-bool" aria-label = "Permalink to "*def* `is_point_on(self, point: 'Point3') -> bool`"" > < / a > < / h3 > < p > 判断点是否在直线上。< / p > < p > Args:< / p > < ul > < li > point: 点< / li > < / ul > < p > Return:< / p > < ul > < li > 是否在直线上< / li > < / ul > < details > < summary > Source code< / 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_point_on< / 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:#005CC5;--shiki-dark:#79B8FF;" > bool< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > :< / span > < / span >
2024-08-28 20:35:22 +08:00
< 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 >
2024-08-28 22:08:21 +08:00
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > return< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (point < / 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;" > .point).is_parallel(< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction)< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-is-coplanar-self-other-line3-bool" tabindex = "-1" > < em > def< / em > < code > is_coplanar(self, other: ' Line3' ) -> bool< / code > < a class = "header-anchor" href = "#def-is-coplanar-self-other-line3-bool" aria-label = "Permalink to "*def* `is_coplanar(self, other: 'Line3') -> bool`"" > < / a > < / h3 > < p > 判断两条直线是否共面。 充要条件: 两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。< / p > < p > Args:< / p > < ul > < li > other: 另一条直线< / li > < / ul > < p > Return:< / p > < ul > < li > 是否共面< / li > < / ul > < details > < summary > Source code< / 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_coplanar< / 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:#005CC5;--shiki-dark:#79B8FF;" > bool< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > :< / span > < / span >
2024-08-28 20:35:22 +08:00
< 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;" > 充要条件: 两直线方向向量的叉乘与两直线上任意一点的向量的点积为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;" > 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 >
2024-08-28 21:28:34 +08:00
< 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;" > .direction.cross(other.direction) < / 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;" > .point < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > -< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > other.point) < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > ==< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > 0< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-simplify-self" tabindex = "-1" > < em > def< / em > < code > simplify(self)< / code > < a class = "header-anchor" href = "#def-simplify-self" aria-label = "Permalink to "*def* `simplify(self)`"" > < / a > < / h3 > < p > 简化直线方程,等价相等。 自体简化,不返回值。< / p > < p > 按照可行性一次对x y z 化 0 处理,并对向量单位化< / p > < details > < summary > Source code< / 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;" > simplify< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (self):< / span > < / span >
2024-08-28 20:35:22 +08:00
< 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;" > 自体简化,不返回值。< / span > < / span >
< span class = "line" > < / span >
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > 按照可行性一次对x y z 化 0 处理,并对向量单位化< / 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;" > .direction.normalize()< / 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;" > .direction.x < / 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:#005CC5;--shiki-dark:#79B8FF;" > self< / 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:#005CC5;--shiki-dark:#79B8FF;" > 0< / 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;" > .direction.y < / 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:#005CC5;--shiki-dark:#79B8FF;" > self< / 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:#005CC5;--shiki-dark:#79B8FF;" > 0< / 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;" > .direction.z < / 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 >
2024-08-28 22:08:21 +08:00
< span class = "line" > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .point.z < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > =< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > 0< / 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 = "def-from-two-points-cls-p1-point3-p2-point3-line3" tabindex = "-1" > < em > def< / em > < code > from_two_points(cls, p1: ' Point3' , p2: ' Point3' ) -> ' Line3' < / code > < a class = "header-anchor" href = "#def-from-two-points-cls-p1-point3-p2-point3-line3" aria-label = "Permalink to "*def* `from_two_points(cls, p1: 'Point3', p2: 'Point3') -> 'Line3'`"" > < / a > < / h3 > < p > 工厂函数 由两点构造直线。< / p > < p > Args:< / p > < ul > < li > < p > p1: 点1< / p > < / li > < li > < p > p2: 点2< / p > < / li > < / ul > < p > Return:< / p > < ul > < li > 直线< / li > < / ul > < details > < summary > Source code< / 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 >
2024-08-28 20:35:22 +08:00
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > def< / span > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > from_two_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;" > ) -> < / 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;" > 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;" > 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;" > direction < / 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 >
2024-08-28 22:08:21 +08:00
< 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;" > (p1, direction)< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-and-self-other-line3-line3-point3-none" tabindex = "-1" > < em > def< / em > < code > __and__(self, other: ' Line3' ) -> ' Line3 | Point3 | None' < / code > < a class = "header-anchor" href = "#def-and-self-other-line3-line3-point3-none" aria-label = "Permalink to "*def* `__and__(self, other: 'Line3') -> 'Line3 | Point3 | None'`"" > < / a > < / h3 > < p > 计算两条直线点集合的交集。重合线返回自身, 平行线返回None, 交线返回交点。< / p > < p > Args:< / p > < ul > < li > other: 另一条直线< / li > < / ul > < p > Return:< / p > < ul > < li > 交点< / li > < / ul > < details > < summary > Source code< / 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 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;" > ' Line3 | Point3 | None' < / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > :< / span > < / span >
2024-08-28 20:35:22 +08:00
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > " " " < / 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;" > 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;" > .is_collinear(other):< / 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 >
< 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;" > .is_parallel(other) < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > or< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > not< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .is_coplanar(other):< / 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;" > else< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > :< / span > < / span >
2024-08-28 21:28:34 +08:00
< 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(other)< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-eq-self-other-bool" tabindex = "-1" > < em > def< / em > < code > __eq__(self, other) -> bool< / code > < a class = "header-anchor" href = "#def-eq-self-other-bool" aria-label = "Permalink to "*def* `__eq__(self, other) -> bool`"" > < / a > < / h3 > < p > 判断两条直线是否等价。< / p > < p > v1 // v2 ∧ (p1 - p2) // v1< / p > < p > Args:< / p > < ul > < li > other:< / li > < / ul > < details > < summary > Source code< / 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 >
2024-08-28 20:35:22 +08:00
< 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 >
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > v1 // v2 ∧ (p1 - p2) // v1< / 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 >
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > Returns:< / span > < / span >
< span class = "line" > < / span >
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > " " " < / span > < / span >
2024-08-28 21:28:34 +08:00
< 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;" > .direction.is_parallel(other.direction) < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > and< / 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;" > .point < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > -< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > other.point).is_parallel(< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction)< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-str-self" tabindex = "-1" > < em > def< / em > < code > __str__(self)< / code > < a class = "header-anchor" href = "#def-str-self" aria-label = "Permalink to "*def* `__str__(self)`"" > < / a > < / h3 > < details > < summary > Source code< / 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;" > __str__< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (self):< / span > < / span >
2024-08-28 20:35:22 +08:00
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > " " " < / span > < / span >
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > 返回点向式( x-x0) < / span > < / span >
< span class = "line" > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > Returns:< / span > < / span >
< span class = "line" > < / 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;" > s < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > =< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' 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;" > .direction.x < / 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;" > s < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > +=< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > f< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' (x< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > {< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > sign_format(< / 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;" > .point.x)< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > }< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > )/< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > {self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction.x< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > }< / span > < 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;" > .direction.y < / 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;" > s < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > +=< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > f< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' = (y< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > {< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > sign_format(< / 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;" > .point.y)< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > }< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > )/< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > {self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction.y< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > }< / span > < 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;" > .direction.z < / 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;" > s < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > +=< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > f< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' = (z< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > {< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > sign_format(< / 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;" > .point.z)< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > }< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > )/< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > {self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction.z< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > }< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' < / span > < / span >
2024-08-28 21:28:34 +08:00
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > return< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > s< / span > < / span > < / code > < / pre > < / div > < / details > < h3 id = "def-repr-self" tabindex = "-1" > < em > def< / em > < code > __repr__(self)< / code > < a class = "header-anchor" href = "#def-repr-self" aria-label = "Permalink to "*def* `__repr__(self)`"" > < / a > < / h3 > < details > < summary > Source code< / 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;" > __repr__< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (self):< / span > < / span >
2024-08-28 20:35:22 +08:00
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > return< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > f< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' Line3(< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > {self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .point< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > }< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > , < / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > {self< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > .direction< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > }< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > )' < / 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/equation.html" data-v-f33b051d > <!-- [ --> < span class = "desc" data-v-f33b051d > Previous page< / span > < span class = "title" data-v-f33b051d > mbcp.mp_math.equation< / span > <!-- ] --> < / a > < / div > < div class = "pager" data-v-f33b051d > < a class = "VPLink link pager-link next" href = "/en/api/mp_math/mp_math_typing.html" data-v-f33b051d > <!-- [ --> < span class = "desc" data-v-f33b051d > Next page< / span > < span class = "title" data-v-f33b051d > mbcp.mp_math.mp_math_typing< / span > <!-- ] --> < / a > < / div > < / nav > < / footer > <!-- [ --> <!-- ] --> < / div > < / div > < / div > <!-- [ --> <!-- ] --> < / div > < / div > <!-- --> <!-- [ --> <!-- ] --> < / div > < / div >
2024-08-28 22:08:21 +08:00
< script > w i n d o w . _ _ V P _ H A S H _ M A P _ _ = J S O N . p a r s e ( " { \ " a p i - e x . m d \ " : \ " D O s K a L 8 H \ " , \ " a p i _ i n d e x . m d \ " : \ " B v a z T q T B \ " , \ " a p i _ m p _ m a t h _ a n g l e . m d \ " : \ " D K M X A F b W \ " , \ " a p i _ m p _ m a t h _ c o n s t . m d \ " : \ " B c 1 L x t c U \ " , \ " a p i _ m p _ m a t h _ e q u a t i o n . m d \ " : \ " C Z g n s 2 9 7 \ " , \ " a p i _ m p _ m a t h _ i n d e x . m d \ " : \ " 4 P 0 h k 6 g b \ " , \ " a p i _ m p _ m a t h _ l i n e . m d \ " : \ " D H o f g y J O \ " , \ " a p i _ m p _ m a t h _ m p _ m a t h _ t y p i n g . m d \ " : \ " B H J O A x T l \ " , \ " a p i _ m p _ m a t h _ p l a n e . m d \ " : \ " D Z B u - H I q \ " , \ " a p i _ m p _ m a t h _ p o i n t . m d \ " : \ " C G q z S 8 e w \ " , \ " a p i _ m p _ m a t h _ s e g m e n t . m d \ " : \ " B 0 w R l 0 b P \ " , \ " a p i _ m p _ m a t h _ u t i l s . m d \ " : \ " C 9 b d p h O 4 \ " , \ " a p i _ m p _ m a t h _ v e c t o r . m d \ " : \ " B E h 6 3 _ Z E \ " , \ " a p i _ p a r t i c l e _ i n d e x . m d \ " : \ " B R C S x C 3 e \ " , \ " a p i _ p r e s e t s _ i n d e x . m d \ " : \ " D l 6 S s 9 1 J \ " , \ " a p i _ p r e s e t s _ m o d e l _ i n d e x . m d \ " : \ " D L r c h _ J u \ " , \ " e n _ a p i _ i n d e x . m d \ " : \ " B g u - L D 1 B \ " , \ " e n _ a p i _ m p _ m a t h _ a n g l e . m d \ " : \ " D Y Z o 7 h B D \ " , \ " e n _ a p i _ m p _ m a t h _ c o n s t . m d \ " : \ " D f c W u G e V \ " , \ " e n _ a p i _ m p _ m a t h _ e q u a t i o n . m d \ " : \ " B Q v 4 W W i J \ " , \ " e n _ a p i _ m p _ m a t h _ i n d e x . m d \ " : \ " D r j D U Y B Y \ " , \ " e n _ a p i _ m p _ m a t h _ l i n e . m d \ " : \ " C A J n D K C u \ " , \ " e n _ a p i _ m p _ m a t h _ m p _ m a t h _ t y p i n g . m d \ " : \ " D h 1 b y 9 k w \ " , \ " e n _ a p i _ m p _ m a t h _ p l a n e . m d \ " : \ " B - V J J l l R \ " , \ " e n _ a p i _ m p _ m a t h _ p o i n t . m d \ " : \ " C C E - y f r m \ " , \ " e n _ a p i _ m p _ m a t h _ s e g m e n t . m d \ " : \ " C U Q F M m 0 Q \ " , \ " e n _ a p i _ m p _ m a t h _ u t i l s . m d \ " : \ " C u i y H R t Y \ " , \ " e n _ a p i _ m p _ m a t h _ v e c t o r . m d \ " : \ " 3 x e p 9 o D m \ " , \ " e n _ a p i _ p a r t i c l e _ i n d e x . m d \ " : \ " C m C 1 Q X 5 o \ " , \ " e n _ a p i _ p r e s e t s _ i n d e x . m d \ " : \ " C Z 5 h l _ 7 D \ " , \ " e n _ a p i _ p r e s e t s _ m o d e l _ i n d e x . m d \ " : \ " 1 e w G i 0 d o \ " , \ " g u i d e _ i n d e x . m d \ " : \ " B E 2 y l o i k \ " , \ " i n d e x . m d \ " : \ " B E 1 q C h T t \ " , \ " j a _ a p i _ i n d e x . m d \ " : \ " 4 B n f l F I m \ " , \ " j a _ a p i _ m p _ m a t h _ a n g l e . m d \ " : \ " _ x B K Q u i r \ " , \ " j a _ a p i _ m p _ m a t h _ c o n s t . m d \ " : \ " C Q Y - Q d b h \ " , \ " j a _ a p i _ m p _ m a t h _ e q u a t i o n . m d \ " : \ " B E T l i f w h \ " , \ " j a _ a p i _ m p _ m a t h _ i n d e x . m d \ " : \ " C S A M H Y s B \ " , \ " j a _ a p i _ m p _ m a t h _ l i n e . m d \ " : \ " C k 5 u y 5 C p \ " , \ " j a _ a p i _ m p _ m a t h _ m p _ m a t h _ t y p i n g . m d \ " : \ " C e A S N a i E \ " , \ " j a _ a p i _ m p _ m a t h _ p l a n e . m d \ " : \ " C 5 q F t Y 9 2 \ " , \ " j a _ a p i _ m p _ m a t h _ p o i n t . m d \ " : \ " C c _ R L e t h \ " , \ " j a _ a p i _ m p _ m a t h _ s e g m e n t . m d \ " : \ " o i O N X y s Z \ " , \ " j a _ a p i _ m p _ m a t h _ u t i l s . m d \ " : \ " D g z o i 9 e c \ " , \ " j a _ a p i _ m p _ m a t h _ v e c t o r . m d \ " : \ " k N 2 P 6 b p C \ " , \ " j a _ a p i _ p a r t i c l e _ i n d e x . m d \ " : \ " E 2 Y n H 7 E N \ " , \ " j a _ a p i _ p r e s e t s _ i n d e x . m d \ " : \ " A T G c H t 9 d \ " , \ " j a _ a p i _ p r e s e t s _ m o d e l _ i n d e x . m d \ " : \ " Q P 3 v 3 m p P \ " , \ " m d - e x . m d \ " : \ " B X 0 W q O q v \ " , \ " z h - h a n t _ a p i _ i n d e x . m d \ " : \ " D - i B k J b - \ " , \ " z h - h a n t _ a p i _ m p _ m a t h _ a n g l e . m d \ " : \ " e K Q S p i M X \ " , \ " z h - h a n t _ a p i _ m p _ m a t h _ c o n s t . m d \ " : \ " B _ t Z 9 w L 7 \ " , \ " z h - h a n t _ a p i _ m p _ m a t h _ e q u a t i o n . m d \ " : \ " D P i n r p 8 _ \ " , \ " z h - h a n t _ a p i _ m p _ m a t h _ i n d e x . m d \ " : \ " B 8 N L V 8 C f \ " , \ " z h - h a n t _ a p i _ m p _ m a t h _ l i n e . m d \ " : \ " B - s 8 a L x Y \ " , \ " z h - h a n t _ a p i _ m p _ m a t h _ m p _ m a t h _ t y p i n g . m d \ " : \ " D O w D U O u 8 \ " , \ " z h - h a n t _ a p i _ m p _ m a t h _ p l a n e . m d \ " : \ " B 6 0 B z q 3 i \ " , \ " z h - h a n t _ a p i _ m p _ m a t h _ p o i n t . m d \ " : \ " B E s H V _ 8 G \ " , \ " z h - h a n t _ a p i _ m p _ m a t h _ s e g m e n t . m d \ " : \ " C - 4 e J k - Y \ " , \ " z h - h a n t _ a p i _ m p _ m a t h _ u t i l s . m d \ " : \ " z 2 l M M p n T \ " , \ " z h - h a n t _ a p i _ m p _ m a t h _ v e c t o r . m d \ " : \ " n 5 E f a e 6 D \ " , \ " z h - h a n t _ a p i _ p a r t i c l e _ i n d e x . m d \ " : \ " B l d u I P t w \ " , \ " z h - h a n t _ a p i _ p r e s e t s _ i n d e x . m d \ " : \ " C D y g 8 7 e 9 \ " , \ " z h - h a n t _ a p i _ p r e s e t s _ m o d e l _ i n d e x . m d \ " : \ " D C H p j j Z _ \ " } " ) ; w i n d o w . _ _ V P _ S I T E _ D A T A _ _ = J S O N . p a r s e ( " { \ " l a n g \ " : \ " e n - U S \ " , \ " d i r \ " : \ " l t r \ " , \ " t i t l e \ " : \ " M B C P d o c s \ " , \ " d e s c r i p t i o n \ " : \ " M B C P l i b r a r y d o c s \ " , \ " b a s e \ " : \ " / \ " , \ " h e a d \ " : [ ] , \ " r o u t e r \ " : { \ " p r e f e t c h L i n k s \ " : t r u e } , \ " a p p e a r a n c e \ " : t r u e , \ " t h e m e C o n f i g \ " : { \ " s o c i a l L i n k s \ " : [ { \ " i c o n \ " : \ " g i t h u b \ " , \ " l i n k \ " : \ " h t t p s : / / g i t h u b . c o m / s n o w y k a m i / m b c p \ " } ] , \ " s i d e b a r \ " : { \ " / a p i / \ " : [ { \ " t e x t \ " : \ " a p i \ " , \ " i t e m s \ " : [ { \ " t e x t \ " : \ " m b c p \ " , \ " l i n k \ " : \ " / a p i / i n d e x . m d \ " } , { \ " t e x t \ " : \ " m p _ m a t h \ " , \ " i t e m s \ " : [ { \ " t e x t \ " : \ " m b c p . m p _ m a t h \ " , \ " l i n k \ " : \ " / a p i / m p _ m a t h / i n d e x . m d \ " } , { \ " t e x t \ " : \ " m b c p . m p _ m a t h . a n g l e \ " , \ " l i n k \ " : \ " / a p i / m p _ m a t h / a n g l e . m d \ " } , { \ " t e x t \ " : \ " m b c p . m p _ m a t h . c o n s t \ " , \ " l i n k \ " : \ " / a p i / m p _ m a t h / c o n s t . m d \ " } , { \ " t e x t \ " : \ " m b c p . m p _ m a t h . e q u a t i o n \ " , \ " l i n k \ " : \ " / a p i / m p _ m a t h / e q u a t i o n . m d \ " } , { \ " t e x t \ " : \ " m b c p . m p _ m a t h . l i n e \ " , \ " l i n k \ " : \ " / a p i / m p _ m a t h / l i n e . m d \ " } , { \ " t e x t \ " : \ " m b c p . m p _ m a t h . m p _ m a t h _ t y p i n g \ " , \ " l i n k \ " : \ " / a p i / m p _ m a t h / m p _ m a t h _ t y p i n g . m d \ " } , { \ " t e x t \ " : \ " m b c p . m p _ m a t h . p l a n e \ " , \ " l i n k \ " : \ " / a p i / m p _ m a t h / p l a n e . m d \ " } , { \ " t e x t \ " : \ " m b c p . m p _ m a t h . p o i n t \ " , \ " l i n k \ " : \ " / a p i / m p _ m a t h / p o i n t . m d \ " } , { \ " t e x t \ " : \ " m b c p . m p _ m a t h . s e g m e n t \ " , \ " l i n k \ " : \ " / a p i / m p _ m a t h / s e g m e n t . m d \ " } , { \ " t e x t \ " : \ " m b c p . m p _ m a t h . u t i l s \ " , \ " l i n k \ " : \ " / a p i / m p _ m a t h / u t i l s . m d \ " } , { \ " t e x t \ " : \ " m b c p . m p _ m a t h . v e c t o r \ " , \ " l i n k \ " : \ " / a p i / m p _ m a t h / v e c t o r . m d \ " } ] } , { \ " t e x t \ " : \ " p a r t i c l e \ " , \ " i t e m s \ " : [ { \ " t e x t \ " : \ " m b c p . p a r t i c l e \ " , \ " l i n k \ " : \ " / a p i / p a r t i c l e / i n d e x . m d \ " } ] } , { \ " t e x t \ " : \ " p r e s e t s \ " , \ " i t e m s \ " : [ { \ " t e x t \ " : \ " m b c p . p r e
2024-08-28 20:35:22 +08:00
< / body >
< / html >