diff --git a/404.html b/404.html index 8572951..42d03bf 100644 --- a/404.html +++ b/404.html @@ -6,9 +6,9 @@ 404 | MBCP 文档 - + - + @@ -16,7 +16,7 @@
- + \ No newline at end of file diff --git a/api/index.html b/api/index.html index 82df417..bf11d1d 100644 --- a/api/index.html +++ b/api/index.html @@ -6,10 +6,10 @@ mbcp | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

模块 mbcp

本模块是主模块,提供了一些工具 可导入

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/angle.html b/api/mp_math/angle.html index 848d457..5e971c4 100644 --- a/api/mp_math/angle.html +++ b/api/mp_math/angle.html @@ -6,12 +6,12 @@ mbcp.mp_math.angle | MBCP 文档 - + - - + + - + @@ -19,92 +19,31 @@
Skip to content

模块 mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

说明: 任意角度。

参数:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
源代码在GitHub上查看
python
def __init__(self, value: float, is_radian: bool=False):
-    """
-        任意角度。
-        Args:
-            value: 角度或弧度值
-            is_radian: 是否为弧度,默认为否
-        """
     if is_radian:
         self.radian = value
     else:
         self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

说明: 余角:两角的和为90°。

返回: 余角

源代码在GitHub上查看
python
@property
 def complementary(self) -> 'AnyAngle':
-    """
-        余角:两角的和为90°。
-        Returns:
-            余角
-        """
     return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

说明: 补角:两角的和为180°。

返回: 补角

源代码在GitHub上查看
python
@property
 def supplementary(self) -> 'AnyAngle':
-    """
-        补角:两角的和为180°。
-        Returns:
-            补角
-        """
     return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

说明: 角度。

返回: 弧度

源代码在GitHub上查看
python
@property
 def degree(self) -> float:
-    """
-        角度。
-        Returns:
-            弧度
-        """
     return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

说明: 最小正角。

返回: 最小正角度

源代码在GitHub上查看
python
@property
 def minimum_positive(self) -> 'AnyAngle':
-    """
-        最小正角。
-        Returns:
-            最小正角度
-        """
     return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

说明: 最大负角。

返回: 最大负角度

源代码在GitHub上查看
python
@property
 def maximum_negative(self) -> 'AnyAngle':
-    """
-        最大负角。
-        Returns:
-            最大负角度
-        """
     return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

说明: 正弦值。

返回: 正弦值

源代码在GitHub上查看
python
@property
 def sin(self) -> float:
-    """
-        正弦值。
-        Returns:
-            正弦值
-        """
     return math.sin(self.radian)

@property

method cos(self) -> float

说明: 余弦值。

返回: 余弦值

源代码在GitHub上查看
python
@property
 def cos(self) -> float:
-    """
-        余弦值。
-        Returns:
-            余弦值
-        """
     return math.cos(self.radian)

@property

method tan(self) -> float

说明: 正切值。

返回: 正切值

源代码在GitHub上查看
python
@property
 def tan(self) -> float:
-    """
-        正切值。
-        Returns:
-            正切值
-        """
     return math.tan(self.radian)

@property

method cot(self) -> float

说明: 余切值。

返回: 余切值

源代码在GitHub上查看
python
@property
 def cot(self) -> float:
-    """
-        余切值。
-        Returns:
-            余切值
-        """
     return 1 / math.tan(self.radian)

@property

method sec(self) -> float

说明: 正割值。

返回: 正割值

源代码在GitHub上查看
python
@property
 def sec(self) -> float:
-    """
-        正割值。
-        Returns:
-            正割值
-        """
     return 1 / math.cos(self.radian)

@property

method csc(self) -> float

说明: 余割值。

返回: 余割值

源代码在GitHub上查看
python
@property
 def csc(self) -> float:
-    """
-        余割值。
-        Returns:
-            余割值
-        """
     return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

源代码在GitHub上查看
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
     return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

源代码在GitHub上查看
python
def __eq__(self, other):
     return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

源代码在GitHub上查看
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
@@ -117,7 +56,7 @@
     if isinstance(other, AnyAngle):
         return self.radian / other.radian
     return AnyAngle(self.radian / other, is_radian=True)

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/const.html b/api/mp_math/const.html index e3993b1..c55967e 100644 --- a/api/mp_math/const.html +++ b/api/mp_math/const.html @@ -6,10 +6,10 @@ mbcp.mp_math.const | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

模块 mbcp.mp_math.const

本模块定义了一些常用的常量

var PI

  • 说明: 常量 π

  • 默认值: math.pi

var E

  • 说明: 自然对数的底 exp(1)

  • 默认值: math.e

var GOLDEN_RATIO

  • 说明: 黄金分割比

  • 默认值: (1 + math.sqrt(5)) / 2

var GAMMA

  • 说明: 欧拉常数

  • 默认值: 0.5772156649015329

var EPSILON

  • 说明: 精度误差

  • 默认值: 0.0001

var APPROX

  • 说明: 约等于判定误差

  • 默认值: 0.001

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/equation.html b/api/mp_math/equation.html index bf860ef..14ef05a 100644 --- a/api/mp_math/equation.html +++ b/api/mp_math/equation.html @@ -6,12 +6,12 @@ mbcp.mp_math.equation | MBCP 文档 - + - - + + - + @@ -19,46 +19,16 @@
Skip to content

模块 mbcp.mp_math.equation

本模块定义了方程相关的类和函数以及一些常用的数学函数

class CurveEquation

method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)

说明: 曲线方程。

参数:

源代码在GitHub上查看
python
def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc):
-    """
-        曲线方程。
-        Args:
-            x_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): x函数
-            y_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): y函数
-            z_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): z函数
-        """
     self.x_func = x_func
     self.y_func = y_func
     self.z_func = z_func

method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

说明: 计算曲线上的点。

参数:

  • *t:
  • 参数:

返回: 目标点

源代码在GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
-    """
-        计算曲线上的点。
-        Args:
-            *t:
-                参数
-        Returns:
-            目标点
-        """
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
         return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

说明: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

参数:

  • func (MultiVarsFunc): N元函数
  • var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
  • epsilon: 偏移量

返回: 偏导函数

引发:

  • ValueError 无效变量类型
源代码在GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
-    """
-    求N元函数一阶偏导函数。这玩意不太稳定,慎用。
-    > [!warning]
-    > 目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升
-
-    Args:
-        func ([`MultiVarsFunc`](./mp_math_typing#var-multivarsfunc)): N元函数
-        var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
-        epsilon: 偏移量
-    Returns:
-        偏导函数
-    Raises:
-        ValueError: 无效变量类型
-    """
     if isinstance(var, int):
 
         def partial_derivative_func(*args: Var) -> Var:
-            """@litedoc-hide"""
             args_list_plus = list(args)
             args_list_plus[var] += epsilon
             args_list_minus = list(args)
@@ -68,14 +38,6 @@
     elif isinstance(var, tuple):
 
         def high_order_partial_derivative_func(*args: Var) -> Var:
-            """
-            @litedoc-hide
-            求高阶偏导函数
-            Args:
-                *args: 参数
-            Returns:
-                高阶偏导数值
-            """
             result_func = func
             for v in var:
                 result_func = get_partial_derivative_func(result_func, v, epsilon)
@@ -83,7 +45,7 @@
         return high_order_partial_derivative_func
     else:
         raise ValueError('Invalid var type')

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/function.html b/api/mp_math/function.html index 24881a3..bc4e85a 100644 --- a/api/mp_math/function.html +++ b/api/mp_math/function.html @@ -6,12 +6,12 @@ mbcp.mp_math.function | MBCP 文档 - + - - + + - + @@ -19,18 +19,6 @@
Skip to content

模块 mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

说明: 计算三元函数在某点的梯度向量。

TIP

已知一个函数f(x,y,z),则其在点(x0,y0,z0)处的梯度向量为: f(x0,y0,z0)=(fx,fy,fz)

参数:

返回: 梯度

源代码在GitHub上查看
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
-    """
-    计算三元函数在某点的梯度向量。
-    > [!tip]
-    > 已知一个函数$f(x, y, z)$,则其在点$(x_0, y_0, z_0)$处的梯度向量为:
-    $\\nabla f(x_0, y_0, z_0) = \\left(\\frac{\\partial f}{\\partial x}, \\frac{\\partial f}{\\partial y}, \\frac{\\partial f}{\\partial z}\\right)$
-    Args:
-        func ([`ThreeSingleVarsFunc`](./mp_math_typing#var-threesinglevarsfunc)): 三元函数
-        p ([`Point3`](./point#class-point3)): 点
-        epsilon: 偏移量
-    Returns:
-        梯度
-    """
     dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
     dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
     dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
@@ -38,29 +26,11 @@
     return a + b + c
 add_curried = curry(add, 1, 2)
 add_curried(3)  # 6
源代码在GitHub上查看
python
def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc:
-    """
-    对多参数函数进行柯里化。
-    > [!tip]
-    > 有关函数柯里化,可参考[函数式编程--柯理化(Currying)](https://zhuanlan.zhihu.com/p/355859667)
-    Args:
-        func ([`MultiVarsFunc`](./mp_math_typing#var-multivarsfunc)): 函数
-        *args ([`Var`](./mp_math_typing#var-var)): 参数
-    Returns:
-        柯里化后的函数
-    Examples:
-        ```python
-        def add(a: int, b: int, c: int) -> int:
-            return a + b + c
-        add_curried = curry(add, 1, 2)
-        add_curried(3)  # 6
-        ```
-    """
 
     def curried_func(*args2: Var) -> Var:
-        """@litedoc-hide"""
         return func(*args, *args2)
     return curried_func

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/index.html b/api/mp_math/index.html index 4a196e5..ae20195 100644 --- a/api/mp_math/index.html +++ b/api/mp_math/index.html @@ -6,10 +6,10 @@ mbcp.mp_math | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

模块 mbcp.mp_math

本包定义了一些常用的导入,可直接从mbcp.mp_math导入使用 导入的类有:

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/line.html b/api/mp_math/line.html index ec26be4..3877bc3 100644 --- a/api/mp_math/line.html +++ b/api/mp_math/line.html @@ -6,12 +6,12 @@ mbcp.mp_math.line | MBCP 文档 - + - - + + - + @@ -19,40 +19,10 @@
Skip to content

模块 mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

说明: 三维空间中的直线。由一个点和一个方向向量确定。

参数:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
源代码在GitHub上查看
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
-    """
-        三维空间中的直线。由一个点和一个方向向量确定。
-        Args:
-            point ([`Point3`](./point#class-point3)): 直线上的一点
-            direction ([`Vector3`](./vector#class-vector3)): 方向向量
-        """
     self.point = point
     self.direction = direction

method approx(self, other: Line3, epsilon: float = APPROX) -> bool

说明: 判断两条直线是否近似相等。

参数:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
-    """
-        判断两条直线是否近似相等。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-            epsilon ([`float`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return self.is_approx_parallel(other, epsilon) and (self.point - other.point).is_approx_parallel(self.direction, epsilon)

method cal_angle(self, other: Line3) -> AnyAngle

说明: 计算直线和直线之间的夹角。

参数:

  • other (Line3): 另一条直线

返回: AnyAngle: 夹角

源代码在GitHub上查看
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
-    """
-        计算直线和直线之间的夹角。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        """
     return self.direction.cal_angle(other.direction)

method cal_distance(self, other: Line3 | Point3) -> float

说明: 计算直线和直线或点之间的距离。

参数:

返回: float: 距离

引发:

源代码在GitHub上查看
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
-    """
-        计算直线和直线或点之间的距离。
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Point3`](./point#class-point3)): 另一条直线或点
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         if self == other:
             return 0
@@ -66,91 +36,19 @@
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
         raise TypeError('Unsupported type.')

method cal_intersection(self, other: Line3) -> Point3

说明: 计算两条直线的交点。

参数:

  • other (Line3): 另一条直线

返回: Point3: 交点

引发:

源代码在GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
-    """
-        计算两条直线的交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`Point3`](./point#class-point3): 交点
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 直线平行
-            `ValueError`: 直线不共面
-        """
     if self.is_parallel(other):
         raise ValueError('Lines are parallel and do not intersect.')
     if not self.is_coplanar(other):
         raise ValueError('Lines are not coplanar and do not intersect.')
     return self.point + self.direction.cross(other.direction) @ other.direction.cross(self.point - other.point) / self.direction.cross(other.direction).length ** 2 * self.direction

method cal_perpendicular(self, point: Point3) -> Line3

说明: 计算直线经过指定点p的垂线。

参数:

返回: Line3: 垂线

源代码在GitHub上查看
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
-    """
-        计算直线经过指定点p的垂线。
-        Args:
-            point ([`Point3`](./point#class-point3)): 指定点
-        Returns:
-            [`Line3`](./line#class-line3): 垂线
-        """
     return Line3(point, self.direction.cross(point - self.point))

method get_point(self, t: RealNumber) -> Point3

说明: 获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。

参数:

返回: Point3: 点

源代码在GitHub上查看
python
def get_point(self, t: RealNumber) -> 'Point3':
-    """
-        获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。
-        Args:
-            t ([`RealNumber`](./mp_math_typing#var-realnumber)): 参数t
-        Returns:
-            [`Point3`](./point#class-point3): 点
-        """
     return self.point + t * self.direction

method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]

说明: 获取直线的参数方程。

返回: tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]: 参数方程

源代码在GitHub上查看
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
-    """
-        获取直线的参数方程。
-        Returns:
-            [`tuple`](https%3A//docs.python.org/3/library/stdtypes.html#tuple)[[`OneSingleVarFunc`](./mp_math_typing#var-onesinglevarfunc), `OneSingleVarFunc`, `OneSingleVarFunc`]: 参数方程
-        """
     return (lambda t: self.point.x + self.direction.x * t, lambda t: self.point.y + self.direction.y * t, lambda t: self.point.z + self.direction.z * t)

method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool

说明: 判断两条直线是否近似平行。

参数:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

返回: bool: 是否近似平行

源代码在GitHub上查看
python
def is_approx_parallel(self, other: 'Line3', epsilon: float=1e-06) -> bool:
-    """
-        判断两条直线是否近似平行。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.direction.is_approx_parallel(other.direction, epsilon)

method is_parallel(self, other: Line3) -> bool

说明: 判断两条直线是否平行。

参数:

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否平行。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.direction.is_parallel(other.direction)

method is_collinear(self, other: Line3) -> bool

说明: 判断两条直线是否共线。

参数:

返回: bool: 是否共线

源代码在GitHub上查看
python
def is_collinear(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共线。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共线
-        """
     return self.is_parallel(other) and (self.point - other.point).is_parallel(self.direction)

method is_point_on(self, point: Point3) -> bool

说明: 判断点是否在直线上。

参数:

返回: bool: 是否在直线上

源代码在GitHub上查看
python
def is_point_on(self, point: 'Point3') -> bool:
-    """
-        判断点是否在直线上。
-        Args:
-            point ([`Point3`](./point#class-point3)): 点
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
-        """
     return (point - self.point).is_parallel(self.direction)

method is_coplanar(self, other: Line3) -> bool

说明: 判断两条直线是否共面。 充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。

参数:

返回: bool: 是否共面

源代码在GitHub上查看
python
def is_coplanar(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共面。
-        充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
-        """
     return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

说明: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

源代码在GitHub上查看
python
def simplify(self):
-    """
-        简化直线方程,等价相等。
-        自体简化,不返回值。
-
-        按照可行性一次对x y z 化 0 处理,并对向量单位化
-        """
     self.direction.normalize()
     if self.direction.x == 0:
         self.point.x = 0
@@ -159,40 +57,16 @@
     if self.direction.z == 0:
         self.point.z = 0

@classmethod

method from_two_points(cls, p1: Point3, p2: Point3) -> Line3

说明: 工厂函数 由两点构造直线。

参数:

返回: Line3: 直线

源代码在GitHub上查看
python
@classmethod
 def from_two_points(cls, p1: 'Point3', p2: 'Point3') -> 'Line3':
-    """
-        工厂函数 由两点构造直线。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 点1
-            p2 ([`Point3`](./point#class-point3)): 点2
-        Returns:
-            [`Line3`](./line#class-line3): 直线
-        """
     direction = p2 - p1
     return cls(p1, direction)

method __and__(self, other: Line3) -> Line3 | Point3 | None

说明: 计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。

参数:

  • other (Line3): 另一条直线

返回: Line3 | Point3 | None: 交集

源代码在GitHub上查看
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
-    """
-        计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`Line3`](./line#class-line3) | [`Point3`](./point#class-point3) | [`None`](https://docs.python.org/3/library/constants.html#None): 交集
-        """
     if self.is_collinear(other):
         return self
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
         return self.cal_intersection(other)

method __eq__(self, other) -> bool

说明: 判断两条直线是否等价。

v1 // v2 ∧ (p1 - p2) // v1

参数:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源代码在GitHub上查看
python
def __eq__(self, other) -> bool:
-    """
-        判断两条直线是否等价。
-
-        v1 // v2 ∧ (p1 - p2) // v1
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/mp_math_typing.html b/api/mp_math/mp_math_typing.html index a1b12dc..b7dcad2 100644 --- a/api/mp_math/mp_math_typing.html +++ b/api/mp_math/mp_math_typing.html @@ -6,10 +6,10 @@ mbcp.mp_math.mp_math_typing | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

模块 mbcp.mp_math.mp_math_typing

本模块用于内部类型提示

var RealNumber

  • 说明: 实数

  • 类型: TypeAlias

  • 默认值: int | float

var Number

  • 说明: 数

  • 类型: TypeAlias

  • 默认值: RealNumber | complex

var SingleVar

  • 说明: 单变量

  • 默认值: TypeVar('SingleVar', bound=Number)

var ArrayVar

  • 说明: 数组变量

  • 默认值: TypeVar('ArrayVar', bound=Iterable[Number])

var Var

  • 说明: 变量

  • 类型: TypeAlias

  • 默认值: SingleVar | ArrayVar

var OneSingleVarFunc

  • 说明: 一元单变量函数

  • 类型: TypeAlias

  • 默认值: Callable[[SingleVar], SingleVar]

var OneArrayFunc

  • 说明: 一元数组函数

  • 类型: TypeAlias

  • 默认值: Callable[[ArrayVar], ArrayVar]

var OneVarFunc

  • 说明: 一元函数

  • 类型: TypeAlias

  • 默认值: OneSingleVarFunc | OneArrayFunc

var TwoSingleVarsFunc

  • 说明: 二元单变量函数

  • 类型: TypeAlias

  • 默认值: Callable[[SingleVar, SingleVar], SingleVar]

var TwoArraysFunc

  • 说明: 二元数组函数

  • 类型: TypeAlias

  • 默认值: Callable[[ArrayVar, ArrayVar], ArrayVar]

var TwoVarsFunc

  • 说明: 二元函数

  • 类型: TypeAlias

  • 默认值: TwoSingleVarsFunc | TwoArraysFunc

var ThreeSingleVarsFunc

  • 说明: 三元单变量函数

  • 类型: TypeAlias

  • 默认值: Callable[[SingleVar, SingleVar, SingleVar], SingleVar]

var ThreeArraysFunc

  • 说明: 三元数组函数

  • 类型: TypeAlias

  • 默认值: Callable[[ArrayVar, ArrayVar, ArrayVar], ArrayVar]

var ThreeVarsFunc

  • 说明: 三元函数

  • 类型: TypeAlias

  • 默认值: ThreeSingleVarsFunc | ThreeArraysFunc

var MultiSingleVarsFunc

  • 说明: 多元单变量函数

  • 类型: TypeAlias

  • 默认值: Callable[..., SingleVar]

var MultiArraysFunc

  • 说明: 多元数组函数

  • 类型: TypeAlias

  • 默认值: Callable[..., ArrayVar]

var MultiVarsFunc

  • 说明: 多元函数

  • 类型: TypeAlias

  • 默认值: MultiSingleVarsFunc | MultiArraysFunc

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/plane.html b/api/mp_math/plane.html index 879a5a4..5e4a05a 100644 --- a/api/mp_math/plane.html +++ b/api/mp_math/plane.html @@ -6,12 +6,12 @@ mbcp.mp_math.plane | MBCP 文档 - + - - + + - + @@ -19,25 +19,10 @@
Skip to content

模块 mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

说明: 平面方程:ax + by + cz + d = 0

参数:

  • a (float): x系数
  • b (float): y系数
  • c (float): z系数
  • d (float): 常数项
源代码在GitHub上查看
python
def __init__(self, a: float, b: float, c: float, d: float):
-    """
-        平面方程:ax + by + cz + d = 0
-        Args:
-            a ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x系数
-            b (`float`): y系数
-            c (`float`): z系数
-            d (`float`): 常数项
-        """
     self.a = a
     self.b = b
     self.c = c
     self.d = d

method approx(self, other: Plane3) -> bool

说明: 判断两个平面是否近似相等。

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否近似相等。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     if self.a != 0:
         k = other.a / self.a
         return approx(other.b, self.b * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
@@ -49,66 +34,18 @@
         return approx(other.a, self.a * k) and approx(other.b, self.b * k) and approx(other.d, self.d * k)
     else:
         return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

说明: 计算平面与平面之间的夹角。

TIP

平面间夹角计算公式:

θ=arccos(n1n2|n1||n2|)

其中 n1n2 分别为两个平面的法向量

TIP

平面与直线夹角计算公式:

θ=arccos(nd|n||d|)

其中 n 为平面的法向量,d 为直线的方向向量

参数:

返回: AnyAngle: 夹角

引发:

源代码在GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
-    """
-        计算平面与平面之间的夹角。
-        :::tip
-        平面间夹角计算公式:
-        $$\\theta = \\arccos(\\frac{n1 \\cdot n2}{|n1| \\cdot |n2|})$$
-        其中 $n1$ 和 $n2$ 分别为两个平面的法向量
-        :::
-        :::tip
-        平面与直线夹角计算公式:
-        $$\\theta = \\arccos(\\frac{n \\cdot d}{|n| \\cdot |d|})$$
-        其中 $n$ 为平面的法向量,$d$ 为直线的方向向量
-        :::
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Plane3`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         return self.normal.cal_angle(other.direction).complementary
     elif isinstance(other, Plane3):
         return AnyAngle(math.acos(self.normal @ other.normal / (self.normal.length * other.normal.length)), is_radian=True)
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_distance(self, other: Plane3 | Point3) -> float

说明: 计算平面与平面或点之间的距离。

参数:

返回: float: 距离

引发:

源代码在GitHub上查看
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
-    """
-        计算平面与平面或点之间的距离。
-        Args:
-            other ([`Plane3`](./plane#class-plane3) | [`Point3`](./point#class-point3)): 另一个平面或点
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         return 0
     elif isinstance(other, Point3):
         return abs(self.a * other.x + self.b * other.y + self.c * other.z + self.d) / (self.a ** 2 + self.b ** 2 + self.c ** 2) ** 0.5
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

说明: 计算两平面的交线。

TIP

计算两平面交线的一般步骤:

  1. 求两平面的法向量的叉乘得到方向向量
d=n1×n2
  1. 寻找直线上的一点,依次假设x=0, y=0, z=0,并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示
{x=x0+dty=y0+dtz=z0+dt

xx0m=yy0n=zz0p

参数:

  • other (Plane3): 另一个平面

返回: Line3: 交线

引发:

源代码在GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
-    """
-        计算两平面的交线。
-        :::tip
-        计算两平面交线的一般步骤:
-        1. 求两平面的法向量的叉乘得到方向向量
-        $$ d = n1 \\times n2 $$
-        2. 寻找直线上的一点,依次假设$x=0$, $y=0$, $z=0$,并代入两平面方程求出合适的点
-        直线最终可用参数方程或点向式表示
-        $$ \\begin{cases} x = x_0 + dt \\\\ y = y_0 + dt \\\\ z = z_0 + dt \\end{cases} $$
-
-        $$ \\frac{x - x_0}{m} = \\frac{y - y_0}{n} = \\frac{z - z_0}{p} $$
-        :::
-
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`Line3`](./line#class-line3): 交线
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面平行且无交线
-        """
     if self.normal.is_parallel(other.normal):
         raise ValueError('Planes are parallel and have no intersection.')
     direction = self.normal.cross(other.normal)
@@ -126,106 +63,36 @@
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
     return Line3(Point3(x, y, z), direction)

method cal_intersection_point3(self, other: Line3) -> Point3

说明: 计算平面与直线的交点。

参数:

返回: Point3: 交点

引发:

源代码在GitHub上查看
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
-    """
-        计算平面与直线的交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 直线
-        Returns:
-            [`Point3`](./point#class-point3): 交点
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面与直线平行或重合
-        """
     if self.normal @ other.direction == 0:
         raise ValueError('The plane and the line are parallel or coincident.')
     x, y, z = other.get_parametric_equations()
     t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)
     return Point3(x(t), y(t), z(t))

method cal_parallel_plane3(self, point: Point3) -> Plane3

说明: 计算平行于该平面且过指定点的平面。

参数:

返回: Plane3: 平面

源代码在GitHub上查看
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
-    """
-        计算平行于该平面且过指定点的平面。
-        Args:
-            point ([`Point3`](./point#class-point3)): 指定点
-        Returns:
-            [`Plane3`](./plane#class-plane3): 平面
-        """
     return Plane3.from_point_and_normal(point, self.normal)

method is_parallel(self, other: Plane3) -> bool

说明: 判断两个平面是否平行。

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否平行。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.normal.is_parallel(other.normal)

@property

method normal(self) -> Vector3

说明: 平面的法向量。

返回: Vector3: 法向量

源代码在GitHub上查看
python
@property
 def normal(self) -> 'Vector3':
-    """
-        平面的法向量。
-        Returns:
-            [`Vector3`](./vector#class-vector3): 法向量
-        """
     return Vector3(self.a, self.b, self.c)

@classmethod

method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3

说明: 工厂函数 由点和法向量构造平面(点法式构造)。

参数:

返回: Plane3: 平面

源代码在GitHub上查看
python
@classmethod
 def from_point_and_normal(cls, point: 'Point3', normal: 'Vector3') -> 'Plane3':
-    """
-        工厂函数 由点和法向量构造平面(点法式构造)。
-        Args:
-            point ([`Point3`](./point#class-point3)): 平面上一点
-            normal ([`Vector3`](./vector#class-vector3)): 法向量
-        Returns:
-            [`Plane3`](./plane#class-plane3): 平面
-        """
     a, b, c = (normal.x, normal.y, normal.z)
     d = -a * point.x - b * point.y - c * point.z
     return cls(a, b, c, d)

@classmethod

method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3

说明: 工厂函数 由三点构造平面。

参数:

  • p1 (Point3): 点1
  • p2 (Point3): 点2
  • p3 (Point3): 点3

返回: 平面

源代码在GitHub上查看
python
@classmethod
 def from_three_points(cls, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3':
-    """
-        工厂函数 由三点构造平面。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 点1
-            p2 (`Point3`): 点2
-            p3 (`Point3`): 点3
-        Returns:
-            平面
-        """
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
     return cls.from_point_and_normal(p1, normal)

@classmethod

method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3

说明: 工厂函数 由两直线构造平面。

参数:

  • l1 (Line3): 直线
  • l2 (Line3): 直线

返回: 平面

源代码在GitHub上查看
python
@classmethod
 def from_two_lines(cls, l1: 'Line3', l2: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由两直线构造平面。
-        Args:
-            l1 ([`Line3`](./line#class-line3)): 直线
-            l2 (`Line3`): 直线
-        Returns:
-            平面
-        """
     v1 = l1.direction
     v2 = l2.point - l1.point
     if v2 == zero_vector3:
         v2 = l2.get_point(1) - l1.point
     return cls.from_point_and_normal(l1.point, v1.cross(v2))

@classmethod

method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3

说明: 工厂函数 由点和直线构造平面。

参数:

返回: 平面

源代码在GitHub上查看
python
@classmethod
 def from_point_and_line(cls, point: 'Point3', line: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由点和直线构造平面。
-        Args:
-            point ([`Point3`](./point#class-point3)): 平面上一点
-            line ([`Line3`](./line#class-line3)): 直线
-        Returns:
-            平面
-        """
     return cls.from_point_and_normal(point, line.direction)

@overload

method __and__(self, other: Line3) -> Point3 | None

源代码在GitHub上查看
python
@overload
 def __and__(self, other: 'Line3') -> 'Point3 | None':
     ...

@overload

method __and__(self, other: Plane3) -> Line3 | None

源代码在GitHub上查看
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
     ...

method __and__(self, other)

说明: 取两平面的交集(人话:交线)

参数:

返回: Line3 | Point3 | None: 交集

引发:

源代码在GitHub上查看
python
def __and__(self, other):
-    """
-        取两平面的交集(人话:交线)
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Plane3`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [`Line3`](./line#class-line3) | [`Point3`](./point#class-point3) | [`None`](https%3A//docs.python.org/3/library/constants.html#None): 交集
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         if self.normal.is_parallel(other.normal):
             return None
@@ -236,16 +103,9 @@
         return self.cal_intersection_point3(other)
     else:
         raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

method __eq__(self, other) -> bool

说明: 判断两个平面是否等价。

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否等价

源代码在GitHub上查看
python
def __eq__(self, other) -> bool:
-    """
-        判断两个平面是否等价。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.approx(other)

method __rand__(self, other: Line3) -> Point3

源代码在GitHub上查看
python
def __rand__(self, other: 'Line3') -> 'Point3':
     return self.cal_intersection_point3(other)

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/point.html b/api/mp_math/point.html index 1c8cf0d..6aa37e8 100644 --- a/api/mp_math/point.html +++ b/api/mp_math/point.html @@ -6,12 +6,12 @@ mbcp.mp_math.point | MBCP 文档 - + - - + + - + @@ -19,58 +19,19 @@
Skip to content

模块 mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

说明: 笛卡尔坐标系中的点。

参数:

  • x (float): x 坐标
  • y (float): y 坐标
  • z (float): z 坐标
源代码在GitHub上查看
python
def __init__(self, x: float, y: float, z: float):
-    """
-        笛卡尔坐标系中的点。
-        Args:
-            x ([`float`](https://docs.python.org/3/library/functions.html#float)): x 坐标
-            y (`float`): y 坐标
-            z (`float`): z 坐标
-        """
     self.x = x
     self.y = y
     self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

说明: 判断两个点是否近似相等。

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个点是否近似相等。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-            epsilon ([`float`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

源代码在GitHub上查看
python
@overload
 def __add__(self, other: 'Vector3') -> 'Point3':
     ...

@overload

method self + other: Point3 => Point3

源代码在GitHub上查看
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
     ...

method self + other

说明: P + V -> P P + P -> P

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __add__(self, other):
-    """
-        P + V -> P
-        P + P -> P
-        Args:
-            other ([`Vector3`](./vector#class-vector3) | [`Point3`](./point#class-point3)): 另一个点或向量
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

说明: 判断两个点是否相等。

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):
-    """
-        判断两个点是否相等。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否相等
-        """
     return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

说明: P - P -> V

P - V -> P 已在 Vector3 中实现

参数:

返回: Vector3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':
-    """
-        P - P -> V
-
-        P - V -> P  已在 [`Vector3`](./vector#class-vector3) 中实现
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Vector3`](./vector#class-vector3): 新的向量
-        """
     from .vector import Vector3
     return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/segment.html b/api/mp_math/segment.html index e12f835..8d9acf4 100644 --- a/api/mp_math/segment.html +++ b/api/mp_math/segment.html @@ -6,12 +6,12 @@ mbcp.mp_math.segment | MBCP 文档 - + - - + + - + @@ -19,12 +19,6 @@
Skip to content

模块 mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

说明: 三维空间中的线段。

参数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源代码在GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
-    """
-        三维空间中的线段。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 线段的一个端点
-            p2 ([`Point3`](./point#class-point3)): 线段的另一个端点
-        """
     self.p1 = p1
     self.p2 = p2
     '方向向量'
@@ -33,7 +27,7 @@
     self.length = self.direction.length
     '中心点'
     self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/utils.html b/api/mp_math/utils.html index b5af2c5..c61f6b5 100644 --- a/api/mp_math/utils.html +++ b/api/mp_math/utils.html @@ -6,12 +6,12 @@ mbcp.mp_math.utils | MBCP 文档 - + - - + + - + @@ -19,22 +19,7 @@
Skip to content

模块 mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

说明: 区间限定函数

参数:

  • x (float): 值
  • min_ (float): 最小值
  • max_ (float): 最大值

返回: float: 限定在区间内的值

源代码在GitHub上查看
python
def clamp(x: float, min_: float, max_: float) -> float:
-    """
-    区间限定函数
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 值
-        min_ (`float`): 最小值
-        max_ (`float`): 最大值
-
-    Returns:
-        `float`: 限定在区间内的值
-    """
     return max(min(x, max_), min_)

class Approx

method __init__(self, value: RealNumber)

说明: 用于近似比较对象

参数:

源代码在GitHub上查看
python
def __init__(self, value: RealNumber):
-    """
-        用于近似比较对象
-        Args:
-            value ([`RealNumber`](./mp_math_typing#realnumber)): 实数
-        """
     self.value = value

method __eq__(self, other)

源代码在GitHub上查看
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
@@ -48,46 +33,20 @@
             self.raise_type_error(other)

method raise_type_error(self, other)

源代码在GitHub上查看
python
def raise_type_error(self, other):
     raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

method __ne__(self, other)

源代码在GitHub上查看
python
def __ne__(self, other):
     return not self.__eq__(other)

func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool

说明: 判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

参数:

  • x (float): 数1
  • y (float): 数2
  • epsilon (float): 误差

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
-    """
-    判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数1
-        y (`float`): 数2
-        epsilon (`float`): 误差
-    Returns:
-        [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-    """
     return abs(x - y) < epsilon

func sign(x: float, only_neg: bool = False) -> str

说明: 获取数的符号。

参数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源代码在GitHub上查看
python
def sign(x: float, only_neg: bool=False) -> str:
-    """获取数的符号。
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([`bool`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [`str`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return '+' if not only_neg else ''
     elif x < 0:
         return '-'
     else:
         return ''

func sign_format(x: float, only_neg: bool = False) -> str

说明: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

参数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源代码在GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
-    """格式化符号数
-    -1 -> -1
-    1 -> +1
-    0 -> ""
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([`bool`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [`str`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return f'+{x}' if not only_neg else f'{x}'
     elif x < 0:
         return f'-{abs(x)}'
     else:
         return ''

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/mp_math/vector.html b/api/mp_math/vector.html index b21d4a5..553ddef 100644 --- a/api/mp_math/vector.html +++ b/api/mp_math/vector.html @@ -6,12 +6,12 @@ mbcp.mp_math.vector | MBCP 文档 - + - - + + - + @@ -19,164 +19,47 @@
Skip to content

模块 mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

说明: 3维向量

参数:

  • x (float): x轴分量
  • y (float): y轴分量
  • z (float): z轴分量
源代码在GitHub上查看
python
def __init__(self, x: float, y: float, z: float):
-    """
-        3维向量
-        Args:
-            x ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x轴分量
-            y (`float`): y轴分量
-            z (`float`): z轴分量
-        """
     self.x = x
     self.y = y
     self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

说明: 判断两个向量是否近似相等。

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似相等。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

说明: 计算两个向量之间的夹角。

TIP

向量夹角计算公式:

θ=arccos(v1v2|v1||v2|)

参数:

返回: AnyAngle: 夹角

源代码在GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
-    """
-        计算两个向量之间的夹角。
-        :::tip
-        向量夹角计算公式:
-        $$\\theta = \\arccos(\\frac{v1 \\cdot v2}{|v1| \\cdot |v2|})$$
-        :::
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        """
     return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

说明: 向量积 叉乘:v1 x v2 -> v3

TIP

叉乘运算法则为:

v1×v2=(v1yv2zv1zv2y,v1zv2xv1xv2z,v1xv2yv1yv2x)

转换为行列式形式:

v1×v2=|ijkv1xv1yv1zv2xv2yv2z|

参数:

返回: Vector3: 叉乘结果

源代码在GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':
-    """
-        向量积 叉乘:v1 x v2 -> v3
-
-        :::tip
-        叉乘运算法则为:
-        $$ v1 \\times v2 = (v1_y \\cdot v2_z - v1_z \\cdot v2_y, v1_z \\cdot v2_x - v1_x \\cdot v2_z, v1_x \\cdot v2_y - v1_y \\cdot v2_x) $$
-        转换为行列式形式:
-        $$ v1 \\times v2 = \\begin{vmatrix} i & j & k \\\\ v1_x & v1_y & v1_z \\\\ v2_x & v2_y & v2_z \\end{vmatrix} $$
-        :::
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`Vector3`](#class-vector3): 叉乘结果
-        """
     return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

说明: 判断两个向量是否近似平行。

参数:

返回: bool: 是否近似平行

源代码在GitHub上查看
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似平行。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

说明: 判断两个向量是否平行。

参数:

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> bool:
-    """
-        判断两个向量是否平行。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.cross(other).approx(zero_vector3)

method normalize(self)

说明: 将向量归一化。

自体归一化,不返回值。

源代码在GitHub上查看
python
def normalize(self):
-    """
-        将向量归一化。
-
-        自体归一化,不返回值。
-        """
     length = self.length
     self.x /= length
     self.y /= length
     self.z /= length

@property

method np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源代码在GitHub上查看
python
@property
 def np_array(self) -> 'np.ndarray':
-    """
-        返回numpy数组
-        Returns:
-            [`np.ndarray`](https%3A//numpy.org/doc/stable/reference/generated/numpy.ndarray.html): numpy数组
-        """
     return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

说明: 向量的模。

返回: float: 模

源代码在GitHub上查看
python
@property
 def length(self) -> float:
-    """
-        向量的模。
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 模
-        """
     return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

说明: 获取该向量的单位向量。

返回: Vector3: 单位向量

源代码在GitHub上查看
python
@property
 def unit(self) -> 'Vector3':
-    """
-        获取该向量的单位向量。
-        Returns:
-            [`Vector3`](#class-vector3): 单位向量
-        """
     return self / self.length

method __abs__(self)

源代码在GitHub上查看
python
def __abs__(self):
     return self.length

@overload

method self + other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
 def __add__(self, other: 'Vector3') -> 'Vector3':
     ...

@overload

method self + other: Point3 => Point3

源代码在GitHub上查看
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
     ...

method self + other

说明: V + P -> P

V + V -> V

参数:

返回: Vector3 | Point3: 新的向量或点

源代码在GitHub上查看
python
def __add__(self, other):
-    """
-        V + P -> P
-
-        V + V -> V
-        Args:
-            other ([`Vector3`](#class-vector3) | [`Point3`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [`Vector3`](#class-vector3) | [`Point3`](./point#class-point3): 新的向量或点
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)
     elif isinstance(other, Point3):
         return Point3(self.x + other.x, self.y + other.y, self.z + other.z)
     else:
         raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

说明: 判断两个向量是否相等。

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):
-    """
-        判断两个向量是否相等。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否相等
-        """
     return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

说明: P + V -> P

别去点那边实现了。

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __radd__(self, other: 'Point3') -> 'Point3':
-    """
-        P + V -> P
-
-        别去点那边实现了。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
 def __sub__(self, other: 'Vector3') -> 'Vector3':
     ...

@overload

method self - other: Point3 => Point3

源代码在GitHub上查看
python
@overload
 def __sub__(self, other: 'Point3') -> 'Point3':
     ...

method self - other

说明: V - P -> P

V - V -> V

参数:

返回: Vector3 | Point3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other):
-    """
-        V - P -> P
-
-        V - V -> V
-        Args:
-            other ([`Vector3`](#class-vector3) | [`Point3`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [`Vector3`](#class-vector3) | [`Point3`](./point#class-point3): 新的向量
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
     elif isinstance(other, Point3):
         return Point3(self.x - other.x, self.y - other.y, self.z - other.z)
     else:
         raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

说明: P - V -> P

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __rsub__(self, other: 'Point3'):
-    """
-        P - V -> P
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     if isinstance(other, Point3):
         return Point3(other.x - self.x, other.y - self.y, other.z - self.z)
     else:
@@ -185,13 +68,6 @@
     ...

@overload

method self * other: RealNumber => Vector3

源代码在GitHub上查看
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
     ...

method self * other: int | float | Vector3 => Vector3

说明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

参数:

返回: Vector3: 数组运算结果

源代码在GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
-    """
-        数组运算 非点乘。点乘使用@,叉乘使用cross。
-        Args:
-            other ([`Vector3`](#class-vector3) | [`float`](https%3A//docs.python.org/3/library/functions.html#float)): 另一个向量或数
-        Returns:
-            [`Vector3`](#class-vector): 数组运算结果
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)
     elif isinstance(other, (float, int)):
@@ -199,22 +75,10 @@
     else:
         raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

源代码在GitHub上查看
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
     return self.__mul__(other)

method self @ other: Vector3 => RealNumber

说明: 点乘。

参数:

返回: float: 点乘结果

源代码在GitHub上查看
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
-    """
-        点乘。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 点乘结果
-        """
     return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

源代码在GitHub上查看
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
     return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

说明: 取负。

返回: Vector3: 负向量

源代码在GitHub上查看
python
def __neg__(self) -> 'Vector3':
-    """
-        取负。
-        Returns:
-            [`Vector3`](#class-vector3): 负向量
-        """
     return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • 说明: 零向量

  • 类型: Vector3

  • 默认值: Vector3(0, 0, 0)

var x_axis

  • 说明: x轴单位向量

  • 类型: Vector3

  • 默认值: Vector3(1, 0, 0)

var y_axis

  • 说明: y轴单位向量

  • 类型: Vector3

  • 默认值: Vector3(0, 1, 0)

var z_axis

  • 说明: z轴单位向量

  • 类型: Vector3

  • 默认值: Vector3(0, 0, 1)

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/particle/index.html b/api/particle/index.html index 6bf7659..69c5d59 100644 --- a/api/particle/index.html +++ b/api/particle/index.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

模块 mbcp.particle

本模块定义了粒子生成相关的工具

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/presets/index.html b/api/presets/index.html index ab0a6b0..c3d6e92 100644 --- a/api/presets/index.html +++ b/api/presets/index.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/api/presets/model/index.html b/api/presets/model/index.html index d64cce4..4821238 100644 --- a/api/presets/model/index.html +++ b/api/presets/model/index.html @@ -6,12 +6,12 @@ mbcp.presets.model | MBCP 文档 - + - - + + - + @@ -20,14 +20,6 @@
Skip to content

模块 mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

说明: 生成球体上的点集。

参数:

  • radius:
  • density:

返回: List[Point3]: 球体上的点集。

源代码在GitHub上查看
python
@staticmethod
 def sphere(radius: float, density: float):
-    """
-        生成球体上的点集。
-        Args:
-            radius:
-            density:
-        Returns:
-            List[Point3]: 球体上的点集。
-        """
     area = 4 * np.pi * radius ** 2
     num = int(area * density)
     phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
@@ -36,7 +28,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/assets/api_mp_math_angle.md.DRCLNUJL.js b/assets/api_mp_math_angle.md.DRCLNUJL.js new file mode 100644 index 0000000..9b44677 --- /dev/null +++ b/assets/api_mp_math_angle.md.DRCLNUJL.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as i,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/angle.md","filePath":"zh/api/mp_math/angle.md"}'),e={name:"api/mp_math/angle.md"},n=t('

模块 mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

说明: 任意角度。

参数:

源代码在GitHub上查看
python
def __init__(self, value: float, is_radian: bool=False):\n    if is_radian:\n        self.radian = value\n    else:\n        self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

说明: 余角:两角的和为90°。

返回: 余角

源代码在GitHub上查看
python
@property\ndef complementary(self) -> 'AnyAngle':\n    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

说明: 补角:两角的和为180°。

返回: 补角

源代码在GitHub上查看
python
@property\ndef supplementary(self) -> 'AnyAngle':\n    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

说明: 角度。

返回: 弧度

源代码在GitHub上查看
python
@property\ndef degree(self) -> float:\n    return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

说明: 最小正角。

返回: 最小正角度

源代码在GitHub上查看
python
@property\ndef minimum_positive(self) -> 'AnyAngle':\n    return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

说明: 最大负角。

返回: 最大负角度

源代码在GitHub上查看
python
@property\ndef maximum_negative(self) -> 'AnyAngle':\n    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

说明: 正弦值。

返回: 正弦值

源代码在GitHub上查看
python
@property\ndef sin(self) -> float:\n    return math.sin(self.radian)

@property

method cos(self) -> float

说明: 余弦值。

返回: 余弦值

源代码在GitHub上查看
python
@property\ndef cos(self) -> float:\n    return math.cos(self.radian)

@property

method tan(self) -> float

说明: 正切值。

返回: 正切值

源代码在GitHub上查看
python
@property\ndef tan(self) -> float:\n    return math.tan(self.radian)

@property

method cot(self) -> float

说明: 余切值。

返回: 余切值

源代码在GitHub上查看
python
@property\ndef cot(self) -> float:\n    return 1 / math.tan(self.radian)

@property

method sec(self) -> float

说明: 正割值。

返回: 正割值

源代码在GitHub上查看
python
@property\ndef sec(self) -> float:\n    return 1 / math.cos(self.radian)

@property

method csc(self) -> float

说明: 余割值。

返回: 余割值

源代码在GitHub上查看
python
@property\ndef csc(self) -> float:\n    return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

源代码在GitHub上查看
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':\n    return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

源代码在GitHub上查看
python
def __eq__(self, other):\n    return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

源代码在GitHub上查看
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':\n    return AnyAngle(self.radian - other.radian, is_radian=True)

method self * other: float => AnyAngle

源代码在GitHub上查看
python
def __mul__(self, other: float) -> 'AnyAngle':\n    return AnyAngle(self.radian * other, is_radian=True)

@overload

method self / other: float => AnyAngle

源代码在GitHub上查看
python
@overload\ndef __truediv__(self, other: float) -> 'AnyAngle':\n    ...

@overload

method self / other: AnyAngle => float

源代码在GitHub上查看
python
@overload\ndef __truediv__(self, other: 'AnyAngle') -> float:\n    ...

method self / other

源代码在GitHub上查看
python
def __truediv__(self, other):\n    if isinstance(other, AnyAngle):\n        return self.radian / other.radian\n    return AnyAngle(self.radian / other, is_radian=True)
',80),h=[n];function l(p,k,r,o,d,g){return i(),a("div",null,h)}const c=s(e,[["render",l]]);export{m as __pageData,c as default}; diff --git a/assets/api_mp_math_angle.md.DRCLNUJL.lean.js b/assets/api_mp_math_angle.md.DRCLNUJL.lean.js new file mode 100644 index 0000000..4a08902 --- /dev/null +++ b/assets/api_mp_math_angle.md.DRCLNUJL.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as i,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/angle.md","filePath":"zh/api/mp_math/angle.md"}'),e={name:"api/mp_math/angle.md"},n=t("",80),h=[n];function l(p,k,r,o,d,g){return i(),a("div",null,h)}const c=s(e,[["render",l]]);export{m as __pageData,c as default}; diff --git a/assets/api_mp_math_angle.md.DXjHPMcZ.js b/assets/api_mp_math_angle.md.DXjHPMcZ.js deleted file mode 100644 index 188d692..0000000 --- a/assets/api_mp_math_angle.md.DXjHPMcZ.js +++ /dev/null @@ -1,99 +0,0 @@ -import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/angle.md","filePath":"zh/api/mp_math/angle.md"}'),t={name:"api/mp_math/angle.md"},e=n(`

模块 mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

说明: 任意角度。

参数:

源代码在GitHub上查看
python
def __init__(self, value: float, is_radian: bool=False):
-    """
-        任意角度。
-        Args:
-            value: 角度或弧度值
-            is_radian: 是否为弧度,默认为否
-        """
-    if is_radian:
-        self.radian = value
-    else:
-        self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

说明: 余角:两角的和为90°。

返回: 余角

源代码在GitHub上查看
python
@property
-def complementary(self) -> 'AnyAngle':
-    """
-        余角:两角的和为90°。
-        Returns:
-            余角
-        """
-    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

说明: 补角:两角的和为180°。

返回: 补角

源代码在GitHub上查看
python
@property
-def supplementary(self) -> 'AnyAngle':
-    """
-        补角:两角的和为180°。
-        Returns:
-            补角
-        """
-    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

说明: 角度。

返回: 弧度

源代码在GitHub上查看
python
@property
-def degree(self) -> float:
-    """
-        角度。
-        Returns:
-            弧度
-        """
-    return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

说明: 最小正角。

返回: 最小正角度

源代码在GitHub上查看
python
@property
-def minimum_positive(self) -> 'AnyAngle':
-    """
-        最小正角。
-        Returns:
-            最小正角度
-        """
-    return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

说明: 最大负角。

返回: 最大负角度

源代码在GitHub上查看
python
@property
-def maximum_negative(self) -> 'AnyAngle':
-    """
-        最大负角。
-        Returns:
-            最大负角度
-        """
-    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

说明: 正弦值。

返回: 正弦值

源代码在GitHub上查看
python
@property
-def sin(self) -> float:
-    """
-        正弦值。
-        Returns:
-            正弦值
-        """
-    return math.sin(self.radian)

@property

method cos(self) -> float

说明: 余弦值。

返回: 余弦值

源代码在GitHub上查看
python
@property
-def cos(self) -> float:
-    """
-        余弦值。
-        Returns:
-            余弦值
-        """
-    return math.cos(self.radian)

@property

method tan(self) -> float

说明: 正切值。

返回: 正切值

源代码在GitHub上查看
python
@property
-def tan(self) -> float:
-    """
-        正切值。
-        Returns:
-            正切值
-        """
-    return math.tan(self.radian)

@property

method cot(self) -> float

说明: 余切值。

返回: 余切值

源代码在GitHub上查看
python
@property
-def cot(self) -> float:
-    """
-        余切值。
-        Returns:
-            余切值
-        """
-    return 1 / math.tan(self.radian)

@property

method sec(self) -> float

说明: 正割值。

返回: 正割值

源代码在GitHub上查看
python
@property
-def sec(self) -> float:
-    """
-        正割值。
-        Returns:
-            正割值
-        """
-    return 1 / math.cos(self.radian)

@property

method csc(self) -> float

说明: 余割值。

返回: 余割值

源代码在GitHub上查看
python
@property
-def csc(self) -> float:
-    """
-        余割值。
-        Returns:
-            余割值
-        """
-    return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

源代码在GitHub上查看
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

源代码在GitHub上查看
python
def __eq__(self, other):
-    return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

源代码在GitHub上查看
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian - other.radian, is_radian=True)

method self * other: float => AnyAngle

源代码在GitHub上查看
python
def __mul__(self, other: float) -> 'AnyAngle':
-    return AnyAngle(self.radian * other, is_radian=True)

@overload

method self / other: float => AnyAngle

源代码在GitHub上查看
python
@overload
-def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

method self / other: AnyAngle => float

源代码在GitHub上查看
python
@overload
-def __truediv__(self, other: 'AnyAngle') -> float:
-    ...

method self / other

源代码在GitHub上查看
python
def __truediv__(self, other):
-    if isinstance(other, AnyAngle):
-        return self.radian / other.radian
-    return AnyAngle(self.radian / other, is_radian=True)
`,80),l=[e];function h(p,k,r,o,d,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; diff --git a/assets/api_mp_math_angle.md.DXjHPMcZ.lean.js b/assets/api_mp_math_angle.md.DXjHPMcZ.lean.js deleted file mode 100644 index 5db2722..0000000 --- a/assets/api_mp_math_angle.md.DXjHPMcZ.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/angle.md","filePath":"zh/api/mp_math/angle.md"}'),t={name:"api/mp_math/angle.md"},e=n("",80),l=[e];function h(p,k,r,o,d,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; diff --git a/assets/api_mp_math_equation.md.qaTLbds6.js b/assets/api_mp_math_equation.md.Q6tfqPV1.js similarity index 76% rename from assets/api_mp_math_equation.md.qaTLbds6.js rename to assets/api_mp_math_equation.md.Q6tfqPV1.js index 986185a..c157530 100644 --- a/assets/api_mp_math_equation.md.qaTLbds6.js +++ b/assets/api_mp_math_equation.md.Q6tfqPV1.js @@ -1,44 +1,14 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/equation.md","filePath":"zh/api/mp_math/equation.md"}'),t={name:"api/mp_math/equation.md"},l=n(`

模块 mbcp.mp_math.equation

本模块定义了方程相关的类和函数以及一些常用的数学函数

class CurveEquation

method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)

说明: 曲线方程。

参数:

源代码在GitHub上查看
python
def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc):
-    """
-        曲线方程。
-        Args:
-            x_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): x函数
-            y_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): y函数
-            z_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): z函数
-        """
     self.x_func = x_func
     self.y_func = y_func
     self.z_func = z_func

method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

说明: 计算曲线上的点。

参数:

返回: 目标点

源代码在GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
-    """
-        计算曲线上的点。
-        Args:
-            *t:
-                参数
-        Returns:
-            目标点
-        """
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
         return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

说明: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

参数:

返回: 偏导函数

引发:

源代码在GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
-    """
-    求N元函数一阶偏导函数。这玩意不太稳定,慎用。
-    > [!warning]
-    > 目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升
-
-    Args:
-        func ([\`MultiVarsFunc\`](./mp_math_typing#var-multivarsfunc)): N元函数
-        var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
-        epsilon: 偏移量
-    Returns:
-        偏导函数
-    Raises:
-        ValueError: 无效变量类型
-    """
     if isinstance(var, int):
 
         def partial_derivative_func(*args: Var) -> Var:
-            """@litedoc-hide"""
             args_list_plus = list(args)
             args_list_plus[var] += epsilon
             args_list_minus = list(args)
@@ -48,18 +18,10 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
     elif isinstance(var, tuple):
 
         def high_order_partial_derivative_func(*args: Var) -> Var:
-            """
-            @litedoc-hide
-            求高阶偏导函数
-            Args:
-                *args: 参数
-            Returns:
-                高阶偏导数值
-            """
             result_func = func
             for v in var:
                 result_func = get_partial_derivative_func(result_func, v, epsilon)
             return result_func(*args)
         return high_order_partial_derivative_func
     else:
-        raise ValueError('Invalid var type')
`,23),p=[l];function h(e,k,r,E,d,c){return a(),i("div",null,p)}const F=s(t,[["render",h]]);export{u as __pageData,F as default}; + raise ValueError('Invalid var type')`,23),h=[l];function p(e,k,r,E,d,c){return a(),i("div",null,h)}const o=s(t,[["render",p]]);export{u as __pageData,o as default}; diff --git a/assets/api_mp_math_equation.md.qaTLbds6.lean.js b/assets/api_mp_math_equation.md.Q6tfqPV1.lean.js similarity index 67% rename from assets/api_mp_math_equation.md.qaTLbds6.lean.js rename to assets/api_mp_math_equation.md.Q6tfqPV1.lean.js index 450e361..3cfbaf2 100644 --- a/assets/api_mp_math_equation.md.qaTLbds6.lean.js +++ b/assets/api_mp_math_equation.md.Q6tfqPV1.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/equation.md","filePath":"zh/api/mp_math/equation.md"}'),t={name:"api/mp_math/equation.md"},l=n("",23),p=[l];function h(e,k,r,E,d,c){return a(),i("div",null,p)}const F=s(t,[["render",h]]);export{u as __pageData,F as default}; +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/equation.md","filePath":"zh/api/mp_math/equation.md"}'),t={name:"api/mp_math/equation.md"},l=n("",23),h=[l];function p(e,k,r,E,d,c){return a(),i("div",null,h)}const o=s(t,[["render",p]]);export{u as __pageData,o as default}; diff --git a/assets/api_mp_math_function.md.D6Sk-jUO.js b/assets/api_mp_math_function.md.CDW7K4aO.js similarity index 82% rename from assets/api_mp_math_function.md.D6Sk-jUO.js rename to assets/api_mp_math_function.md.CDW7K4aO.js index f907517..f19a152 100644 --- a/assets/api_mp_math_function.md.D6Sk-jUO.js +++ b/assets/api_mp_math_function.md.CDW7K4aO.js @@ -1,16 +1,4 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/function.md","filePath":"zh/api/mp_math/function.md"}'),e={name:"api/mp_math/function.md"},Q=a('

模块 mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

说明: 计算三元函数在某点的梯度向量。

',4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a('',1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a('',1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a('',1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a(`

参数:

返回: 梯度

源代码在GitHub上查看
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
-    """
-    计算三元函数在某点的梯度向量。
-    > [!tip]
-    > 已知一个函数$f(x, y, z)$,则其在点$(x_0, y_0, z_0)$处的梯度向量为:
-    $\\\\nabla f(x_0, y_0, z_0) = \\\\left(\\\\frac{\\\\partial f}{\\\\partial x}, \\\\frac{\\\\partial f}{\\\\partial y}, \\\\frac{\\\\partial f}{\\\\partial z}\\\\right)$
-    Args:
-        func ([\`ThreeSingleVarsFunc\`](./mp_math_typing#var-threesinglevarsfunc)): 三元函数
-        p ([\`Point3\`](./point#class-point3)): 点
-        epsilon: 偏移量
-    Returns:
-        梯度
-    """
+import{_ as n,c as s,j as t,a as Q,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/function.md","filePath":"zh/api/mp_math/function.md"}'),T={name:"api/mp_math/function.md"},e=a('

模块 mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

说明: 计算三元函数在某点的梯度向量。

',4),l={class:"tip custom-block github-alert"},h=t("p",{class:"custom-block-title"},"TIP",-1),r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},p=a('',1),o=[p],m=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("mi",null,"x"),t("mo",null,","),t("mi",null,"y"),t("mo",null,","),t("mi",null,"z"),t("mo",{stretchy:"false"},")")])],-1),k={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},g=a('',1),u=[g],y=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},_=a('',1),w=[_],x=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",{mathvariant:"normal"},"∇"),t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")"),t("mo",null,"="),t("mrow",{"data-mjx-texclass":"INNER"},[t("mo",{"data-mjx-texclass":"OPEN"},"("),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"x")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"y")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"z")])]),t("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),b=a(`

参数:

返回: 梯度

源代码在GitHub上查看
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
     dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
     dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
     dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
@@ -18,25 +6,7 @@ import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1Zp
     return a + b + c
 add_curried = curry(add, 1, 2)
 add_curried(3)  # 6
源代码在GitHub上查看
python
def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc:
-    """
-    对多参数函数进行柯里化。
-    > [!tip]
-    > 有关函数柯里化,可参考[函数式编程--柯理化(Currying)](https://zhuanlan.zhihu.com/p/355859667)
-    Args:
-        func ([\`MultiVarsFunc\`](./mp_math_typing#var-multivarsfunc)): 函数
-        *args ([\`Var\`](./mp_math_typing#var-var)): 参数
-    Returns:
-        柯里化后的函数
-    Examples:
-        \`\`\`python
-        def add(a: int, b: int, c: int) -> int:
-            return a + b + c
-        add_curried = curry(add, 1, 2)
-        add_curried(3)  # 6
-        \`\`\`
-    """
 
     def curried_func(*args2: Var) -> Var:
-        """@litedoc-hide"""
         return func(*args, *args2)
-    return curried_func
`,13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; + return curried_func
`,13);function L(H,F,M,v,D,Z){return i(),s("div",null,[e,t("div",l,[h,t("p",null,[Q("已知一个函数"),t("mjx-container",r,[(i(),s("svg",d,o)),m]),Q(",则其在点"),t("mjx-container",k,[(i(),s("svg",c,u)),y]),Q("处的梯度向量为: "),t("mjx-container",E,[(i(),s("svg",f,w)),x])])]),b])}const A=n(T,[["render",L]]);export{V as __pageData,A as default}; diff --git a/assets/api_mp_math_function.md.CDW7K4aO.lean.js b/assets/api_mp_math_function.md.CDW7K4aO.lean.js new file mode 100644 index 0000000..4c93a8e --- /dev/null +++ b/assets/api_mp_math_function.md.CDW7K4aO.lean.js @@ -0,0 +1 @@ +import{_ as n,c as s,j as t,a as Q,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/function.md","filePath":"zh/api/mp_math/function.md"}'),T={name:"api/mp_math/function.md"},e=a("",4),l={class:"tip custom-block github-alert"},h=t("p",{class:"custom-block-title"},"TIP",-1),r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},p=a("",1),o=[p],m=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("mi",null,"x"),t("mo",null,","),t("mi",null,"y"),t("mo",null,","),t("mi",null,"z"),t("mo",{stretchy:"false"},")")])],-1),k={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},g=a("",1),u=[g],y=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},_=a("",1),w=[_],x=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",{mathvariant:"normal"},"∇"),t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")"),t("mo",null,"="),t("mrow",{"data-mjx-texclass":"INNER"},[t("mo",{"data-mjx-texclass":"OPEN"},"("),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"x")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"y")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"z")])]),t("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),b=a("",13);function L(H,F,M,v,D,Z){return i(),s("div",null,[e,t("div",l,[h,t("p",null,[Q("已知一个函数"),t("mjx-container",r,[(i(),s("svg",d,o)),m]),Q(",则其在点"),t("mjx-container",k,[(i(),s("svg",c,u)),y]),Q("处的梯度向量为: "),t("mjx-container",E,[(i(),s("svg",f,w)),x])])]),b])}const A=n(T,[["render",L]]);export{V as __pageData,A as default}; diff --git a/assets/api_mp_math_function.md.D6Sk-jUO.lean.js b/assets/api_mp_math_function.md.D6Sk-jUO.lean.js deleted file mode 100644 index 48b5568..0000000 --- a/assets/api_mp_math_function.md.D6Sk-jUO.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/function.md","filePath":"zh/api/mp_math/function.md"}'),e={name:"api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; diff --git a/assets/api_mp_math_line.md.K-HhIsvU.lean.js b/assets/api_mp_math_line.md.K-HhIsvU.lean.js deleted file mode 100644 index 28b458f..0000000 --- a/assets/api_mp_math_line.md.K-HhIsvU.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/line.md","filePath":"zh/api/mp_math/line.md"}'),t={name:"api/mp_math/line.md"},l=n("",106),e=[l];function h(p,k,o,r,d,g){return a(),i("div",null,e)}const E=s(t,[["render",h]]);export{F as __pageData,E as default}; diff --git a/assets/api_mp_math_line.md.K-HhIsvU.js b/assets/api_mp_math_line.md.Ld9EytA4.js similarity index 74% rename from assets/api_mp_math_line.md.K-HhIsvU.js rename to assets/api_mp_math_line.md.Ld9EytA4.js index bdce64d..0420ad2 100644 --- a/assets/api_mp_math_line.md.K-HhIsvU.js +++ b/assets/api_mp_math_line.md.Ld9EytA4.js @@ -1,38 +1,8 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/line.md","filePath":"zh/api/mp_math/line.md"}'),t={name:"api/mp_math/line.md"},l=n(`

模块 mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

说明: 三维空间中的直线。由一个点和一个方向向量确定。

参数:

源代码在GitHub上查看
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
-    """
-        三维空间中的直线。由一个点和一个方向向量确定。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 直线上的一点
-            direction ([\`Vector3\`](./vector#class-vector3)): 方向向量
-        """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/line.md","filePath":"zh/api/mp_math/line.md"}'),n={name:"api/mp_math/line.md"},e=t(`

模块 mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

说明: 三维空间中的直线。由一个点和一个方向向量确定。

参数:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
源代码在GitHub上查看
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
     self.point = point
     self.direction = direction

method approx(self, other: Line3, epsilon: float = APPROX) -> bool

说明: 判断两条直线是否近似相等。

参数:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
-    """
-        判断两条直线是否近似相等。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-            epsilon ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return self.is_approx_parallel(other, epsilon) and (self.point - other.point).is_approx_parallel(self.direction, epsilon)

method cal_angle(self, other: Line3) -> AnyAngle

说明: 计算直线和直线之间的夹角。

参数:

  • other (Line3): 另一条直线

返回: AnyAngle: 夹角

源代码在GitHub上查看
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
-    """
-        计算直线和直线之间的夹角。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        """
     return self.direction.cal_angle(other.direction)

method cal_distance(self, other: Line3 | Point3) -> float

说明: 计算直线和直线或点之间的距离。

参数:

返回: float: 距离

引发:

源代码在GitHub上查看
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
-    """
-        计算直线和直线或点之间的距离。
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3)): 另一条直线或点
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         if self == other:
             return 0
@@ -46,91 +16,19 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
         raise TypeError('Unsupported type.')

method cal_intersection(self, other: Line3) -> Point3

说明: 计算两条直线的交点。

参数:

  • other (Line3): 另一条直线

返回: Point3: 交点

引发:

源代码在GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
-    """
-        计算两条直线的交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`Point3\`](./point#class-point3): 交点
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 直线平行
-            \`ValueError\`: 直线不共面
-        """
     if self.is_parallel(other):
         raise ValueError('Lines are parallel and do not intersect.')
     if not self.is_coplanar(other):
         raise ValueError('Lines are not coplanar and do not intersect.')
     return self.point + self.direction.cross(other.direction) @ other.direction.cross(self.point - other.point) / self.direction.cross(other.direction).length ** 2 * self.direction

method cal_perpendicular(self, point: Point3) -> Line3

说明: 计算直线经过指定点p的垂线。

参数:

返回: Line3: 垂线

源代码在GitHub上查看
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
-    """
-        计算直线经过指定点p的垂线。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 指定点
-        Returns:
-            [\`Line3\`](./line#class-line3): 垂线
-        """
     return Line3(point, self.direction.cross(point - self.point))

method get_point(self, t: RealNumber) -> Point3

说明: 获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。

参数:

返回: Point3: 点

源代码在GitHub上查看
python
def get_point(self, t: RealNumber) -> 'Point3':
-    """
-        获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。
-        Args:
-            t ([\`RealNumber\`](./mp_math_typing#var-realnumber)): 参数t
-        Returns:
-            [\`Point3\`](./point#class-point3): 点
-        """
     return self.point + t * self.direction

method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]

说明: 获取直线的参数方程。

返回: tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]: 参数方程

源代码在GitHub上查看
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
-    """
-        获取直线的参数方程。
-        Returns:
-            [\`tuple\`](https%3A//docs.python.org/3/library/stdtypes.html#tuple)[[\`OneSingleVarFunc\`](./mp_math_typing#var-onesinglevarfunc), \`OneSingleVarFunc\`, \`OneSingleVarFunc\`]: 参数方程
-        """
     return (lambda t: self.point.x + self.direction.x * t, lambda t: self.point.y + self.direction.y * t, lambda t: self.point.z + self.direction.z * t)

method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool

说明: 判断两条直线是否近似平行。

参数:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

返回: bool: 是否近似平行

源代码在GitHub上查看
python
def is_approx_parallel(self, other: 'Line3', epsilon: float=1e-06) -> bool:
-    """
-        判断两条直线是否近似平行。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-            epsilon ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.direction.is_approx_parallel(other.direction, epsilon)

method is_parallel(self, other: Line3) -> bool

说明: 判断两条直线是否平行。

参数:

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否平行。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.direction.is_parallel(other.direction)

method is_collinear(self, other: Line3) -> bool

说明: 判断两条直线是否共线。

参数:

返回: bool: 是否共线

源代码在GitHub上查看
python
def is_collinear(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共线。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共线
-        """
     return self.is_parallel(other) and (self.point - other.point).is_parallel(self.direction)

method is_point_on(self, point: Point3) -> bool

说明: 判断点是否在直线上。

参数:

返回: bool: 是否在直线上

源代码在GitHub上查看
python
def is_point_on(self, point: 'Point3') -> bool:
-    """
-        判断点是否在直线上。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 点
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
-        """
     return (point - self.point).is_parallel(self.direction)

method is_coplanar(self, other: Line3) -> bool

说明: 判断两条直线是否共面。 充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。

参数:

返回: bool: 是否共面

源代码在GitHub上查看
python
def is_coplanar(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共面。
-        充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
-        """
     return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

说明: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

源代码在GitHub上查看
python
def simplify(self):
-    """
-        简化直线方程,等价相等。
-        自体简化,不返回值。
-
-        按照可行性一次对x y z 化 0 处理,并对向量单位化
-        """
     self.direction.normalize()
     if self.direction.x == 0:
         self.point.x = 0
@@ -139,36 +37,12 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     if self.direction.z == 0:
         self.point.z = 0

@classmethod

method from_two_points(cls, p1: Point3, p2: Point3) -> Line3

说明: 工厂函数 由两点构造直线。

参数:

返回: Line3: 直线

源代码在GitHub上查看
python
@classmethod
 def from_two_points(cls, p1: 'Point3', p2: 'Point3') -> 'Line3':
-    """
-        工厂函数 由两点构造直线。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 点1
-            p2 ([\`Point3\`](./point#class-point3)): 点2
-        Returns:
-            [\`Line3\`](./line#class-line3): 直线
-        """
     direction = p2 - p1
     return cls(p1, direction)

method __and__(self, other: Line3) -> Line3 | Point3 | None

说明: 计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。

参数:

  • other (Line3): 另一条直线

返回: Line3 | Point3 | None: 交集

源代码在GitHub上查看
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
-    """
-        计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3) | [\`None\`](https://docs.python.org/3/library/constants.html#None): 交集
-        """
     if self.is_collinear(other):
         return self
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
         return self.cal_intersection(other)

method __eq__(self, other) -> bool

说明: 判断两条直线是否等价。

v1 // v2 ∧ (p1 - p2) // v1

参数:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源代码在GitHub上查看
python
def __eq__(self, other) -> bool:
-    """
-        判断两条直线是否等价。
-
-        v1 // v2 ∧ (p1 - p2) // v1
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
-    return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)
`,106),e=[l];function h(p,k,o,r,d,g){return a(),i("div",null,e)}const E=s(t,[["render",h]]);export{F as __pageData,E as default}; + return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)
`,106),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; diff --git a/assets/api_mp_math_line.md.Ld9EytA4.lean.js b/assets/api_mp_math_line.md.Ld9EytA4.lean.js new file mode 100644 index 0000000..528ed79 --- /dev/null +++ b/assets/api_mp_math_line.md.Ld9EytA4.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/line.md","filePath":"zh/api/mp_math/line.md"}'),n={name:"api/mp_math/line.md"},e=t("",106),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; diff --git a/assets/api_mp_math_plane.md.dDWoDJrS.js b/assets/api_mp_math_plane.md.DRZNcHy5.js similarity index 85% rename from assets/api_mp_math_plane.md.dDWoDJrS.js rename to assets/api_mp_math_plane.md.DRZNcHy5.js index 57cde13..e1a9cf1 100644 --- a/assets/api_mp_math_plane.md.dDWoDJrS.js +++ b/assets/api_mp_math_plane.md.DRZNcHy5.js @@ -1,23 +1,8 @@ -import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const qs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/plane.md","filePath":"zh/api/mp_math/plane.md"}'),e={name:"api/mp_math/plane.md"},h=t(`

模块 mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

说明: 平面方程:ax + by + cz + d = 0

参数:

源代码在GitHub上查看
python
def __init__(self, a: float, b: float, c: float, d: float):
-    """
-        平面方程:ax + by + cz + d = 0
-        Args:
-            a ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): x系数
-            b (\`float\`): y系数
-            c (\`float\`): z系数
-            d (\`float\`): 常数项
-        """
+import{_ as n,c as a,j as s,a as e,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Zs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/plane.md","filePath":"zh/api/mp_math/plane.md"}'),l={name:"api/mp_math/plane.md"},h=t(`

模块 mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

说明: 平面方程:ax + by + cz + d = 0

参数:

  • a (float): x系数
  • b (float): y系数
  • c (float): z系数
  • d (float): 常数项
源代码在GitHub上查看
python
def __init__(self, a: float, b: float, c: float, d: float):
     self.a = a
     self.b = b
     self.c = c
     self.d = d

method approx(self, other: Plane3) -> bool

说明: 判断两个平面是否近似相等。

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否近似相等。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     if self.a != 0:
         k = other.a / self.a
         return approx(other.b, self.b * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
@@ -28,67 +13,19 @@ import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1Zp
         k = other.c / self.c
         return approx(other.a, self.a * k) and approx(other.b, self.b * k) and approx(other.d, self.d * k)
     else:
-        return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

说明: 计算平面与平面之间的夹角。

`,16),p={class:"tip custom-block"},k=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"平面间夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t('',1),g=[Q],c=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),T={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},m={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t('',1),y=[E],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),u={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},C={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},f=t('',1),b=[f],_=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},B=s("p",{class:"custom-block-title"},"TIP",-1),w=s("p",null,"平面与直线夹角计算公式:",-1),H={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},L={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t('',1),D=[A],v=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},q=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[q],Z=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},R=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),z=[R],$=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),N=t(`

参数:

返回: AnyAngle: 夹角

引发:

源代码在GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
-    """
-        计算平面与平面之间的夹角。
-        :::tip
-        平面间夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{n1 \\\\cdot n2}{|n1| \\\\cdot |n2|})$$
-        其中 $n1$ 和 $n2$ 分别为两个平面的法向量
-        :::
-        :::tip
-        平面与直线夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{n \\\\cdot d}{|n| \\\\cdot |d|})$$
-        其中 $n$ 为平面的法向量,$d$ 为直线的方向向量
-        :::
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Plane3\`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
+        return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

说明: 计算平面与平面之间的夹角。

`,16),p={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),o=s("p",null,"平面间夹角计算公式:",-1),k={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t('',1),T=[Q],g=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t('',1),y=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},_=t('',1),b=[_],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},w=s("p",{class:"custom-block-title"},"TIP",-1),H=s("p",null,"平面与直线夹角计算公式:",-1),L={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},D={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t('',1),v=[A],B=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},Z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[Z],q=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},N=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),z=[N],G=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),I=t(`

参数:

返回: AnyAngle: 夹角

引发:

源代码在GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     if isinstance(other, Line3):
         return self.normal.cal_angle(other.direction).complementary
     elif isinstance(other, Plane3):
         return AnyAngle(math.acos(self.normal @ other.normal / (self.normal.length * other.normal.length)), is_radian=True)
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_distance(self, other: Plane3 | Point3) -> float

说明: 计算平面与平面或点之间的距离。

参数:

返回: float: 距离

引发:

源代码在GitHub上查看
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
-    """
-        计算平面与平面或点之间的距离。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3) | [\`Point3\`](./point#class-point3)): 另一个平面或点
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         return 0
     elif isinstance(other, Point3):
         return abs(self.a * other.x + self.b * other.y + self.c * other.z + self.d) / (self.a ** 2 + self.b ** 2 + self.c ** 2) ** 0.5
     else:
-        raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

说明: 计算两平面的交线。

`,16),G={class:"tip custom-block"},I=s("p",{class:"custom-block-title"},"TIP",-1),J=s("p",null,"计算两平面交线的一般步骤:",-1),O=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t('',1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t('',1),ns=[ts],ls=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),es={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t('',1),ks=[ps],rs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),os={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t('',1),gs=[Qs],cs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),Ts={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ms={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t('',1),ys=[Es],Fs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),us=s("p",null,"或",-1),Cs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},fs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t('',1),_s=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),Bs=t(`

参数:

  • other (Plane3): 另一个平面

返回: Line3: 交线

引发:

源代码在GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
-    """
-        计算两平面的交线。
-        :::tip
-        计算两平面交线的一般步骤:
-        1. 求两平面的法向量的叉乘得到方向向量
-        $$ d = n1 \\\\times n2 $$
-        2. 寻找直线上的一点,依次假设$x=0$, $y=0$, $z=0$,并代入两平面方程求出合适的点
-        直线最终可用参数方程或点向式表示
-        $$ \\\\begin{cases} x = x_0 + dt \\\\\\\\ y = y_0 + dt \\\\\\\\ z = z_0 + dt \\\\end{cases} $$
-
-        $$ \\\\frac{x - x_0}{m} = \\\\frac{y - y_0}{n} = \\\\frac{z - z_0}{p} $$
-        :::
-
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`Line3\`](./line#class-line3): 交线
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面平行且无交线
-        """
+        raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

说明: 计算两平面的交线。

`,16),R={class:"tip custom-block"},J=s("p",{class:"custom-block-title"},"TIP",-1),O=s("p",null,"计算两平面交线的一般步骤:",-1),$=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t('',1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t('',1),es=[ts],ns=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),ls={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t('',1),rs=[ps],os=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),ks={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t('',1),Ts=[Qs],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),ms={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},cs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t('',1),ys=[Es],us=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),Fs=s("p",null,"或",-1),fs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},_s={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t('',1),Cs=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),ws=t(`

参数:

  • other (Plane3): 另一个平面

返回: Line3: 交线

引发:

源代码在GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     if self.normal.is_parallel(other.normal):
         raise ValueError('Planes are parallel and have no intersection.')
     direction = self.normal.cross(other.normal)
@@ -106,106 +43,36 @@ import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1Zp
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
     return Line3(Point3(x, y, z), direction)

method cal_intersection_point3(self, other: Line3) -> Point3

说明: 计算平面与直线的交点。

参数:

返回: Point3: 交点

引发:

源代码在GitHub上查看
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
-    """
-        计算平面与直线的交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 直线
-        Returns:
-            [\`Point3\`](./point#class-point3): 交点
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面与直线平行或重合
-        """
     if self.normal @ other.direction == 0:
         raise ValueError('The plane and the line are parallel or coincident.')
     x, y, z = other.get_parametric_equations()
     t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)
     return Point3(x(t), y(t), z(t))

method cal_parallel_plane3(self, point: Point3) -> Plane3

说明: 计算平行于该平面且过指定点的平面。

参数:

返回: Plane3: 平面

源代码在GitHub上查看
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
-    """
-        计算平行于该平面且过指定点的平面。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 指定点
-        Returns:
-            [\`Plane3\`](./plane#class-plane3): 平面
-        """
     return Plane3.from_point_and_normal(point, self.normal)

method is_parallel(self, other: Plane3) -> bool

说明: 判断两个平面是否平行。

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否平行。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.normal.is_parallel(other.normal)

@property

method normal(self) -> Vector3

说明: 平面的法向量。

返回: Vector3: 法向量

源代码在GitHub上查看
python
@property
 def normal(self) -> 'Vector3':
-    """
-        平面的法向量。
-        Returns:
-            [\`Vector3\`](./vector#class-vector3): 法向量
-        """
     return Vector3(self.a, self.b, self.c)

@classmethod

method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3

说明: 工厂函数 由点和法向量构造平面(点法式构造)。

参数:

返回: Plane3: 平面

源代码在GitHub上查看
python
@classmethod
 def from_point_and_normal(cls, point: 'Point3', normal: 'Vector3') -> 'Plane3':
-    """
-        工厂函数 由点和法向量构造平面(点法式构造)。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 平面上一点
-            normal ([\`Vector3\`](./vector#class-vector3)): 法向量
-        Returns:
-            [\`Plane3\`](./plane#class-plane3): 平面
-        """
     a, b, c = (normal.x, normal.y, normal.z)
     d = -a * point.x - b * point.y - c * point.z
     return cls(a, b, c, d)

@classmethod

method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3

说明: 工厂函数 由三点构造平面。

参数:

  • p1 (Point3): 点1
  • p2 (Point3): 点2
  • p3 (Point3): 点3

返回: 平面

源代码在GitHub上查看
python
@classmethod
 def from_three_points(cls, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3':
-    """
-        工厂函数 由三点构造平面。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 点1
-            p2 (\`Point3\`): 点2
-            p3 (\`Point3\`): 点3
-        Returns:
-            平面
-        """
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
     return cls.from_point_and_normal(p1, normal)

@classmethod

method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3

说明: 工厂函数 由两直线构造平面。

参数:

  • l1 (Line3): 直线
  • l2 (Line3): 直线

返回: 平面

源代码在GitHub上查看
python
@classmethod
 def from_two_lines(cls, l1: 'Line3', l2: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由两直线构造平面。
-        Args:
-            l1 ([\`Line3\`](./line#class-line3)): 直线
-            l2 (\`Line3\`): 直线
-        Returns:
-            平面
-        """
     v1 = l1.direction
     v2 = l2.point - l1.point
     if v2 == zero_vector3:
         v2 = l2.get_point(1) - l1.point
     return cls.from_point_and_normal(l1.point, v1.cross(v2))

@classmethod

method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3

说明: 工厂函数 由点和直线构造平面。

参数:

返回: 平面

源代码在GitHub上查看
python
@classmethod
 def from_point_and_line(cls, point: 'Point3', line: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由点和直线构造平面。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 平面上一点
-            line ([\`Line3\`](./line#class-line3)): 直线
-        Returns:
-            平面
-        """
     return cls.from_point_and_normal(point, line.direction)

@overload

method __and__(self, other: Line3) -> Point3 | None

源代码在GitHub上查看
python
@overload
 def __and__(self, other: 'Line3') -> 'Point3 | None':
     ...

@overload

method __and__(self, other: Plane3) -> Line3 | None

源代码在GitHub上查看
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
     ...

method __and__(self, other)

说明: 取两平面的交集(人话:交线)

参数:

返回: Line3 | Point3 | None: 交集

引发:

源代码在GitHub上查看
python
def __and__(self, other):
-    """
-        取两平面的交集(人话:交线)
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Plane3\`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3) | [\`None\`](https%3A//docs.python.org/3/library/constants.html#None): 交集
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         if self.normal.is_parallel(other.normal):
             return None
@@ -216,12 +83,5 @@ import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1Zp
         return self.cal_intersection_point3(other)
     else:
         raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

method __eq__(self, other) -> bool

说明: 判断两个平面是否等价。

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否等价

源代码在GitHub上查看
python
def __eq__(self, other) -> bool:
-    """
-        判断两个平面是否等价。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.approx(other)

method __rand__(self, other: Line3) -> Point3

源代码在GitHub上查看
python
def __rand__(self, other: 'Line3') -> 'Point3':
-    return self.cal_intersection_point3(other)
`,81);function ws(Hs,Ls,As,Ds,vs,Ms){return i(),a("div",null,[h,s("div",p,[k,r,s("mjx-container",o,[(i(),a("svg",d,g)),c]),s("p",null,[n("其中 "),s("mjx-container",T,[(i(),a("svg",m,y)),F]),n(" 和 "),s("mjx-container",u,[(i(),a("svg",C,b)),_]),n(" 分别为两个平面的法向量")])]),s("div",x,[B,w,s("mjx-container",H,[(i(),a("svg",L,D)),v]),s("p",null,[n("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),Z]),n(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,z)),$]),n(" 为直线的方向向量")])]),N,s("div",G,[I,J,O,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[n("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,ns)),ls]),n(", "),s("mjx-container",es,[(i(),a("svg",hs,ks)),rs]),n(", "),s("mjx-container",os,[(i(),a("svg",ds,gs)),cs]),n(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",Ts,[(i(),a("svg",ms,ys)),Fs]),us,s("mjx-container",Cs,[(i(),a("svg",fs,_s)),xs])]),Bs])}const Ps=l(e,[["render",ws]]);export{qs as __pageData,Ps as default}; + return self.cal_intersection_point3(other)
`,81);function Hs(Ls,Ds,As,vs,Bs,Ms){return i(),a("div",null,[h,s("div",p,[r,o,s("mjx-container",k,[(i(),a("svg",d,T)),g]),s("p",null,[e("其中 "),s("mjx-container",m,[(i(),a("svg",c,y)),u]),e(" 和 "),s("mjx-container",F,[(i(),a("svg",f,b)),C]),e(" 分别为两个平面的法向量")])]),s("div",x,[w,H,s("mjx-container",L,[(i(),a("svg",D,v)),B]),s("p",null,[e("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),q]),e(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,z)),G]),e(" 为直线的方向向量")])]),I,s("div",R,[J,O,$,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[e("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,es)),ns]),e(", "),s("mjx-container",ls,[(i(),a("svg",hs,rs)),os]),e(", "),s("mjx-container",ks,[(i(),a("svg",ds,Ts)),gs]),e(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",ms,[(i(),a("svg",cs,ys)),us]),Fs,s("mjx-container",fs,[(i(),a("svg",_s,Cs)),xs])]),ws])}const Ps=n(l,[["render",Hs]]);export{Zs as __pageData,Ps as default}; diff --git a/assets/api_mp_math_plane.md.dDWoDJrS.lean.js b/assets/api_mp_math_plane.md.DRZNcHy5.lean.js similarity index 79% rename from assets/api_mp_math_plane.md.dDWoDJrS.lean.js rename to assets/api_mp_math_plane.md.DRZNcHy5.lean.js index 344f31b..6c117e1 100644 --- a/assets/api_mp_math_plane.md.dDWoDJrS.lean.js +++ b/assets/api_mp_math_plane.md.DRZNcHy5.lean.js @@ -1 +1 @@ -import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const qs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/plane.md","filePath":"zh/api/mp_math/plane.md"}'),e={name:"api/mp_math/plane.md"},h=t("",16),p={class:"tip custom-block"},k=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"平面间夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t("",1),g=[Q],c=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),T={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},m={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t("",1),y=[E],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),u={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},C={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},f=t("",1),b=[f],_=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},B=s("p",{class:"custom-block-title"},"TIP",-1),w=s("p",null,"平面与直线夹角计算公式:",-1),H={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},L={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t("",1),D=[A],v=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},q=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[q],Z=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},R=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),z=[R],$=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),N=t("",16),G={class:"tip custom-block"},I=s("p",{class:"custom-block-title"},"TIP",-1),J=s("p",null,"计算两平面交线的一般步骤:",-1),O=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t("",1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t("",1),ns=[ts],ls=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),es={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t("",1),ks=[ps],rs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),os={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t("",1),gs=[Qs],cs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),Ts={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ms={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t("",1),ys=[Es],Fs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),us=s("p",null,"或",-1),Cs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},fs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t("",1),_s=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),Bs=t("",81);function ws(Hs,Ls,As,Ds,vs,Ms){return i(),a("div",null,[h,s("div",p,[k,r,s("mjx-container",o,[(i(),a("svg",d,g)),c]),s("p",null,[n("其中 "),s("mjx-container",T,[(i(),a("svg",m,y)),F]),n(" 和 "),s("mjx-container",u,[(i(),a("svg",C,b)),_]),n(" 分别为两个平面的法向量")])]),s("div",x,[B,w,s("mjx-container",H,[(i(),a("svg",L,D)),v]),s("p",null,[n("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),Z]),n(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,z)),$]),n(" 为直线的方向向量")])]),N,s("div",G,[I,J,O,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[n("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,ns)),ls]),n(", "),s("mjx-container",es,[(i(),a("svg",hs,ks)),rs]),n(", "),s("mjx-container",os,[(i(),a("svg",ds,gs)),cs]),n(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",Ts,[(i(),a("svg",ms,ys)),Fs]),us,s("mjx-container",Cs,[(i(),a("svg",fs,_s)),xs])]),Bs])}const Ps=l(e,[["render",ws]]);export{qs as __pageData,Ps as default}; +import{_ as n,c as a,j as s,a as e,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Zs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/plane.md","filePath":"zh/api/mp_math/plane.md"}'),l={name:"api/mp_math/plane.md"},h=t("",16),p={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),o=s("p",null,"平面间夹角计算公式:",-1),k={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t("",1),T=[Q],g=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t("",1),y=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},_=t("",1),b=[_],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},w=s("p",{class:"custom-block-title"},"TIP",-1),H=s("p",null,"平面与直线夹角计算公式:",-1),L={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},D={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t("",1),v=[A],B=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},Z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[Z],q=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},N=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),z=[N],G=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),I=t("",16),R={class:"tip custom-block"},J=s("p",{class:"custom-block-title"},"TIP",-1),O=s("p",null,"计算两平面交线的一般步骤:",-1),$=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t("",1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t("",1),es=[ts],ns=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),ls={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t("",1),rs=[ps],os=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),ks={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t("",1),Ts=[Qs],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),ms={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},cs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t("",1),ys=[Es],us=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),Fs=s("p",null,"或",-1),fs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},_s={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t("",1),Cs=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),ws=t("",81);function Hs(Ls,Ds,As,vs,Bs,Ms){return i(),a("div",null,[h,s("div",p,[r,o,s("mjx-container",k,[(i(),a("svg",d,T)),g]),s("p",null,[e("其中 "),s("mjx-container",m,[(i(),a("svg",c,y)),u]),e(" 和 "),s("mjx-container",F,[(i(),a("svg",f,b)),C]),e(" 分别为两个平面的法向量")])]),s("div",x,[w,H,s("mjx-container",L,[(i(),a("svg",D,v)),B]),s("p",null,[e("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),q]),e(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,z)),G]),e(" 为直线的方向向量")])]),I,s("div",R,[J,O,$,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[e("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,es)),ns]),e(", "),s("mjx-container",ls,[(i(),a("svg",hs,rs)),os]),e(", "),s("mjx-container",ks,[(i(),a("svg",ds,Ts)),gs]),e(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",ms,[(i(),a("svg",cs,ys)),us]),Fs,s("mjx-container",fs,[(i(),a("svg",_s,Cs)),xs])]),ws])}const Ps=n(l,[["render",Hs]]);export{Zs as __pageData,Ps as default}; diff --git a/assets/api_mp_math_point.md.C4s5FhwG.js b/assets/api_mp_math_point.md.C4s5FhwG.js new file mode 100644 index 0000000..4122ec3 --- /dev/null +++ b/assets/api_mp_math_point.md.C4s5FhwG.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/point.md","filePath":"zh/api/mp_math/point.md"}'),e={name:"api/mp_math/point.md"},h=t('

模块 mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

说明: 笛卡尔坐标系中的点。

参数:

源代码在GitHub上查看
python
def __init__(self, x: float, y: float, z: float):\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

说明: 判断两个点是否近似相等。

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

源代码在GitHub上查看
python
@overload\ndef __add__(self, other: 'Vector3') -> 'Point3':\n    ...

@overload

method self + other: Point3 => Point3

源代码在GitHub上查看
python
@overload\ndef __add__(self, other: 'Point3') -> 'Point3':\n    ...

method self + other

说明: P + V -> P P + P -> P

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __add__(self, other):\n    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

说明: 判断两个点是否相等。

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):\n    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

说明: P - P -> V

P - V -> P 已在 Vector3 中实现

参数:

返回: Vector3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':\n    from .vector import Vector3\n    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
',39),n=[h];function l(p,o,k,r,d,g){return a(),i("div",null,n)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; diff --git a/assets/api_mp_math_point.md.C4s5FhwG.lean.js b/assets/api_mp_math_point.md.C4s5FhwG.lean.js new file mode 100644 index 0000000..b929e32 --- /dev/null +++ b/assets/api_mp_math_point.md.C4s5FhwG.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/point.md","filePath":"zh/api/mp_math/point.md"}'),e={name:"api/mp_math/point.md"},h=t("",39),n=[h];function l(p,o,k,r,d,g){return a(),i("div",null,n)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; diff --git a/assets/api_mp_math_point.md.NLp_Sg9U.js b/assets/api_mp_math_point.md.NLp_Sg9U.js deleted file mode 100644 index 3c06616..0000000 --- a/assets/api_mp_math_point.md.NLp_Sg9U.js +++ /dev/null @@ -1,52 +0,0 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/point.md","filePath":"zh/api/mp_math/point.md"}'),n={name:"api/mp_math/point.md"},h=t(`

模块 mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

说明: 笛卡尔坐标系中的点。

参数:

源代码在GitHub上查看
python
def __init__(self, x: float, y: float, z: float):
-    """
-        笛卡尔坐标系中的点。
-        Args:
-            x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): x 坐标
-            y (\`float\`): y 坐标
-            z (\`float\`): z 坐标
-        """
-    self.x = x
-    self.y = y
-    self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

说明: 判断两个点是否近似相等。

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个点是否近似相等。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-            epsilon ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
-    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

源代码在GitHub上查看
python
@overload
-def __add__(self, other: 'Vector3') -> 'Point3':
-    ...

@overload

method self + other: Point3 => Point3

源代码在GitHub上查看
python
@overload
-def __add__(self, other: 'Point3') -> 'Point3':
-    ...

method self + other

说明: P + V -> P P + P -> P

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __add__(self, other):
-    """
-        P + V -> P
-        P + P -> P
-        Args:
-            other ([\`Vector3\`](./vector#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个点或向量
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

说明: 判断两个点是否相等。

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):
-    """
-        判断两个点是否相等。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否相等
-        """
-    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

说明: P - P -> V

P - V -> P 已在 Vector3 中实现

参数:

返回: Vector3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':
-    """
-        P - P -> V
-
-        P - V -> P  已在 [\`Vector3\`](./vector#class-vector3) 中实现
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Vector3\`](./vector#class-vector3): 新的向量
-        """
-    from .vector import Vector3
-    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
`,39),l=[h];function e(p,o,k,r,d,g){return a(),i("div",null,l)}const y=s(n,[["render",e]]);export{E as __pageData,y as default}; diff --git a/assets/api_mp_math_point.md.NLp_Sg9U.lean.js b/assets/api_mp_math_point.md.NLp_Sg9U.lean.js deleted file mode 100644 index 0ab8c06..0000000 --- a/assets/api_mp_math_point.md.NLp_Sg9U.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/point.md","filePath":"zh/api/mp_math/point.md"}'),n={name:"api/mp_math/point.md"},h=t("",39),l=[h];function e(p,o,k,r,d,g){return a(),i("div",null,l)}const y=s(n,[["render",e]]);export{E as __pageData,y as default}; diff --git a/assets/api_mp_math_segment.md.C2PEP6H5.lean.js b/assets/api_mp_math_segment.md.C2PEP6H5.lean.js deleted file mode 100644 index b310795..0000000 --- a/assets/api_mp_math_segment.md.C2PEP6H5.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/segment.md","filePath":"zh/api/mp_math/segment.md"}'),t={name:"api/mp_math/segment.md"},p=n("",8),h=[p];function l(e,k,r,d,o,E){return a(),i("div",null,h)}const c=s(t,[["render",l]]);export{F as __pageData,c as default}; diff --git a/assets/api_mp_math_segment.md.C2PEP6H5.js b/assets/api_mp_math_segment.md.JYVgLepk.js similarity index 83% rename from assets/api_mp_math_segment.md.C2PEP6H5.js rename to assets/api_mp_math_segment.md.JYVgLepk.js index 5e8b841..861ef9f 100644 --- a/assets/api_mp_math_segment.md.C2PEP6H5.js +++ b/assets/api_mp_math_segment.md.JYVgLepk.js @@ -1,10 +1,4 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/segment.md","filePath":"zh/api/mp_math/segment.md"}'),t={name:"api/mp_math/segment.md"},p=n(`

模块 mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

说明: 三维空间中的线段。

参数:

源代码在GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
-    """
-        三维空间中的线段。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 线段的一个端点
-            p2 ([\`Point3\`](./point#class-point3)): 线段的另一个端点
-        """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/segment.md","filePath":"zh/api/mp_math/segment.md"}'),n={name:"api/mp_math/segment.md"},h=t(`

模块 mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

说明: 三维空间中的线段。

参数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源代码在GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
     self.p1 = p1
     self.p2 = p2
     '方向向量'
@@ -12,4 +6,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     '长度'
     self.length = self.direction.length
     '中心点'
-    self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)
`,8),h=[p];function l(e,k,r,d,o,E){return a(),i("div",null,h)}const c=s(t,[["render",l]]);export{F as __pageData,c as default}; + self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)
`,8),p=[h];function e(l,k,r,d,E,g){return a(),i("div",null,p)}const c=s(n,[["render",e]]);export{m as __pageData,c as default}; diff --git a/assets/api_mp_math_segment.md.JYVgLepk.lean.js b/assets/api_mp_math_segment.md.JYVgLepk.lean.js new file mode 100644 index 0000000..11c604f --- /dev/null +++ b/assets/api_mp_math_segment.md.JYVgLepk.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/segment.md","filePath":"zh/api/mp_math/segment.md"}'),n={name:"api/mp_math/segment.md"},h=t("",8),p=[h];function e(l,k,r,d,E,g){return a(),i("div",null,p)}const c=s(n,[["render",e]]);export{m as __pageData,c as default}; diff --git a/assets/api_mp_math_utils.md.QB0hGGMg.js b/assets/api_mp_math_utils.md.DuXZd_EC.js similarity index 81% rename from assets/api_mp_math_utils.md.QB0hGGMg.js rename to assets/api_mp_math_utils.md.DuXZd_EC.js index 01901d1..19db17d 100644 --- a/assets/api_mp_math_utils.md.QB0hGGMg.js +++ b/assets/api_mp_math_utils.md.DuXZd_EC.js @@ -1,20 +1,5 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/utils.md","filePath":"zh/api/mp_math/utils.md"}'),n={name:"api/mp_math/utils.md"},l=t(`

模块 mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

说明: 区间限定函数

参数:

返回: float: 限定在区间内的值

源代码在GitHub上查看
python
def clamp(x: float, min_: float, max_: float) -> float:
-    """
-    区间限定函数
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 值
-        min_ (\`float\`): 最小值
-        max_ (\`float\`): 最大值
-
-    Returns:
-        \`float\`: 限定在区间内的值
-    """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/utils.md","filePath":"zh/api/mp_math/utils.md"}'),l={name:"api/mp_math/utils.md"},n=t(`

模块 mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

说明: 区间限定函数

参数:

  • x (float): 值
  • min_ (float): 最小值
  • max_ (float): 最大值

返回: float: 限定在区间内的值

源代码在GitHub上查看
python
def clamp(x: float, min_: float, max_: float) -> float:
     return max(min(x, max_), min_)

class Approx

method __init__(self, value: RealNumber)

说明: 用于近似比较对象

参数:

源代码在GitHub上查看
python
def __init__(self, value: RealNumber):
-    """
-        用于近似比较对象
-        Args:
-            value ([\`RealNumber\`](./mp_math_typing#realnumber)): 实数
-        """
     self.value = value

method __eq__(self, other)

源代码在GitHub上查看
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
@@ -28,42 +13,16 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
             self.raise_type_error(other)

method raise_type_error(self, other)

源代码在GitHub上查看
python
def raise_type_error(self, other):
     raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

method __ne__(self, other)

源代码在GitHub上查看
python
def __ne__(self, other):
     return not self.__eq__(other)

func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool

说明: 判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

参数:

  • x (float): 数1
  • y (float): 数2
  • epsilon (float): 误差

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
-    """
-    判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数1
-        y (\`float\`): 数2
-        epsilon (\`float\`): 误差
-    Returns:
-        [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-    """
     return abs(x - y) < epsilon

func sign(x: float, only_neg: bool = False) -> str

说明: 获取数的符号。

参数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源代码在GitHub上查看
python
def sign(x: float, only_neg: bool=False) -> str:
-    """获取数的符号。
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([\`bool\`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [\`str\`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return '+' if not only_neg else ''
     elif x < 0:
         return '-'
     else:
         return ''

func sign_format(x: float, only_neg: bool = False) -> str

说明: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

参数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源代码在GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
-    """格式化符号数
-    -1 -> -1
-    1 -> +1
-    0 -> ""
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([\`bool\`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [\`str\`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return f'+{x}' if not only_neg else f'{x}'
     elif x < 0:
         return f'-{abs(x)}'
     else:
-        return ''
`,38),h=[l];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const E=s(n,[["render",e]]);export{F as __pageData,E as default}; + return ''
`,38),h=[n];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const c=s(l,[["render",e]]);export{E as __pageData,c as default}; diff --git a/assets/api_mp_math_utils.md.DuXZd_EC.lean.js b/assets/api_mp_math_utils.md.DuXZd_EC.lean.js new file mode 100644 index 0000000..5f34385 --- /dev/null +++ b/assets/api_mp_math_utils.md.DuXZd_EC.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/utils.md","filePath":"zh/api/mp_math/utils.md"}'),l={name:"api/mp_math/utils.md"},n=t("",38),h=[n];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const c=s(l,[["render",e]]);export{E as __pageData,c as default}; diff --git a/assets/api_mp_math_utils.md.QB0hGGMg.lean.js b/assets/api_mp_math_utils.md.QB0hGGMg.lean.js deleted file mode 100644 index db5f944..0000000 --- a/assets/api_mp_math_utils.md.QB0hGGMg.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/utils.md","filePath":"zh/api/mp_math/utils.md"}'),n={name:"api/mp_math/utils.md"},l=t("",38),h=[l];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const E=s(n,[["render",e]]);export{F as __pageData,E as default}; diff --git a/assets/api_mp_math_vector.md.BzTv8qws.js b/assets/api_mp_math_vector.md.BzTv8qws.js deleted file mode 100644 index 22017a8..0000000 --- a/assets/api_mp_math_vector.md.BzTv8qws.js +++ /dev/null @@ -1,176 +0,0 @@ -import{_ as n,c as i,j as s,a4 as a,o as t}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/vector.md","filePath":"zh/api/mp_math/vector.md"}'),l={name:"api/mp_math/vector.md"},e=a('

模块 mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

说明: 3维向量

参数:

源代码在GitHub上查看
python
def __init__(self, x: float, y: float, z: float):\n    """\n        3维向量\n        Args:\n            x ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x轴分量\n            y (`float`): y轴分量\n            z (`float`): z轴分量\n        """\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

说明: 判断两个向量是否近似相等。

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    """\n        判断两个向量是否近似相等。\n        Args:\n            other ([`Vector3`](#class-vector3)): 另一个向量\n            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差\n\n        Returns:\n            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似相等\n        """\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

说明: 计算两个向量之间的夹角。

',16),h={class:"tip custom-block"},p=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},d=a('',1),T=[d],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a(`

参数:

返回: AnyAngle: 夹角

源代码在GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
-    """
-        计算两个向量之间的夹角。
-        :::tip
-        向量夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{v1 \\\\cdot v2}{|v1| \\\\cdot |v2|})$$
-        :::
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

说明: 向量积 叉乘:v1 x v2 -> v3

`,6),c={class:"tip custom-block"},m=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},u=a('',1),b=[u],f=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),v={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},_=a('',1),V=[_],H=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),x=a(`

参数:

返回: Vector3: 叉乘结果

源代码在GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':
-    """
-        向量积 叉乘:v1 x v2 -> v3
-
-        :::tip
-        叉乘运算法则为:
-        $$ v1 \\\\times v2 = (v1_y \\\\cdot v2_z - v1_z \\\\cdot v2_y, v1_z \\\\cdot v2_x - v1_x \\\\cdot v2_z, v1_x \\\\cdot v2_y - v1_y \\\\cdot v2_x) $$
-        转换为行列式形式:
-        $$ v1 \\\\times v2 = \\\\begin{vmatrix} i & j & k \\\\\\\\ v1_x & v1_y & v1_z \\\\\\\\ v2_x & v2_y & v2_z \\\\end{vmatrix} $$
-        :::
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`Vector3\`](#class-vector3): 叉乘结果
-        """
-    return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

说明: 判断两个向量是否近似平行。

参数:

返回: bool: 是否近似平行

源代码在GitHub上查看
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似平行。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-            epsilon ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
-    return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

说明: 判断两个向量是否平行。

参数:

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> bool:
-    """
-        判断两个向量是否平行。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
-    return self.cross(other).approx(zero_vector3)

method normalize(self)

说明: 将向量归一化。

自体归一化,不返回值。

源代码在GitHub上查看
python
def normalize(self):
-    """
-        将向量归一化。
-
-        自体归一化,不返回值。
-        """
-    length = self.length
-    self.x /= length
-    self.y /= length
-    self.z /= length

@property

method np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源代码在GitHub上查看
python
@property
-def np_array(self) -> 'np.ndarray':
-    """
-        返回numpy数组
-        Returns:
-            [\`np.ndarray\`](https%3A//numpy.org/doc/stable/reference/generated/numpy.ndarray.html): numpy数组
-        """
-    return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

说明: 向量的模。

返回: float: 模

源代码在GitHub上查看
python
@property
-def length(self) -> float:
-    """
-        向量的模。
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 模
-        """
-    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

说明: 获取该向量的单位向量。

返回: Vector3: 单位向量

源代码在GitHub上查看
python
@property
-def unit(self) -> 'Vector3':
-    """
-        获取该向量的单位向量。
-        Returns:
-            [\`Vector3\`](#class-vector3): 单位向量
-        """
-    return self / self.length

method __abs__(self)

源代码在GitHub上查看
python
def __abs__(self):
-    return self.length

@overload

method self + other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
-def __add__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self + other: Point3 => Point3

源代码在GitHub上查看
python
@overload
-def __add__(self, other: 'Point3') -> 'Point3':
-    ...

method self + other

说明: V + P -> P

V + V -> V

参数:

返回: Vector3 | Point3: 新的向量或点

源代码在GitHub上查看
python
def __add__(self, other):
-    """
-        V + P -> P
-
-        V + V -> V
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3): 新的向量或点
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)
-    elif isinstance(other, Point3):
-        return Point3(self.x + other.x, self.y + other.y, self.z + other.z)
-    else:
-        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

说明: 判断两个向量是否相等。

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):
-    """
-        判断两个向量是否相等。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否相等
-        """
-    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

说明: P + V -> P

别去点那边实现了。

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __radd__(self, other: 'Point3') -> 'Point3':
-    """
-        P + V -> P
-
-        别去点那边实现了。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
-def __sub__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self - other: Point3 => Point3

源代码在GitHub上查看
python
@overload
-def __sub__(self, other: 'Point3') -> 'Point3':
-    ...

method self - other

说明: V - P -> P

V - V -> V

参数:

返回: Vector3 | Point3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other):
-    """
-        V - P -> P
-
-        V - V -> V
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3): 新的向量
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
-    elif isinstance(other, Point3):
-        return Point3(self.x - other.x, self.y - other.y, self.z - other.z)
-    else:
-        raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

说明: P - V -> P

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __rsub__(self, other: 'Point3'):
-    """
-        P - V -> P
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    if isinstance(other, Point3):
-        return Point3(other.x - self.x, other.y - self.y, other.z - self.z)
-    else:
-        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

method self * other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
-def __mul__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self * other: RealNumber => Vector3

源代码在GitHub上查看
python
@overload
-def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

method self * other: int | float | Vector3 => Vector3

说明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

参数:

返回: Vector3: 数组运算结果

源代码在GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
-    """
-        数组运算 非点乘。点乘使用@,叉乘使用cross。
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 另一个向量或数
-        Returns:
-            [\`Vector3\`](#class-vector): 数组运算结果
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)
-    elif isinstance(other, (float, int)):
-        return Vector3(self.x * other, self.y * other, self.z * other)
-    else:
-        raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

源代码在GitHub上查看
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

method self @ other: Vector3 => RealNumber

说明: 点乘。

参数:

返回: float: 点乘结果

源代码在GitHub上查看
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
-    """
-        点乘。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 点乘结果
-        """
-    return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

源代码在GitHub上查看
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
-    return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

说明: 取负。

返回: Vector3: 负向量

源代码在GitHub上查看
python
def __neg__(self) -> 'Vector3':
-    """
-        取负。
-        Returns:
-            [\`Vector3\`](#class-vector3): 负向量
-        """
-    return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

var x_axis

var y_axis

var z_axis

`,115);function q(D,A,w,L,M,P){return t(),i("div",null,[e,s("div",h,[p,r,s("mjx-container",o,[(t(),i("svg",k,T)),Q])]),g,s("div",c,[m,y,s("mjx-container",E,[(t(),i("svg",F,b)),f]),C,s("mjx-container",v,[(t(),i("svg",B,V)),H])]),x])}const R=n(l,[["render",q]]);export{z as __pageData,R as default}; diff --git a/assets/api_mp_math_vector.md.FC-qe2-I.js b/assets/api_mp_math_vector.md.FC-qe2-I.js new file mode 100644 index 0000000..1033b28 --- /dev/null +++ b/assets/api_mp_math_vector.md.FC-qe2-I.js @@ -0,0 +1 @@ +import{_ as e,c as t,j as s,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/vector.md","filePath":"zh/api/mp_math/vector.md"}'),l={name:"api/mp_math/vector.md"},h=a('

模块 mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

说明: 3维向量

参数:

源代码在GitHub上查看
python
def __init__(self, x: float, y: float, z: float):\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

说明: 判断两个向量是否近似相等。

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

说明: 计算两个向量之间的夹角。

',16),n={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),p=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},k=a('',1),T=[k],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a('

参数:

返回: AnyAngle: 夹角

源代码在GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':\n    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

说明: 向量积 叉乘:v1 x v2 -> v3

',6),m={class:"tip custom-block"},c=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},u={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},b=a('',1),f=[b],F=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),_={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},v={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},V=a('',1),H=[V],x=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),D=a('

参数:

返回: Vector3: 叉乘结果

源代码在GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':\n    return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

说明: 判断两个向量是否近似平行。

参数:

返回: bool: 是否近似平行

源代码在GitHub上查看
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

说明: 判断两个向量是否平行。

参数:

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> bool:\n    return self.cross(other).approx(zero_vector3)

method normalize(self)

说明: 将向量归一化。

自体归一化,不返回值。

源代码在GitHub上查看
python
def normalize(self):\n    length = self.length\n    self.x /= length\n    self.y /= length\n    self.z /= length

@property

method np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源代码在GitHub上查看
python
@property\ndef np_array(self) -> 'np.ndarray':\n    return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

说明: 向量的模。

返回: float: 模

源代码在GitHub上查看
python
@property\ndef length(self) -> float:\n    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

说明: 获取该向量的单位向量。

返回: Vector3: 单位向量

源代码在GitHub上查看
python
@property\ndef unit(self) -> 'Vector3':\n    return self / self.length

method __abs__(self)

源代码在GitHub上查看
python
def __abs__(self):\n    return self.length

@overload

method self + other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload\ndef __add__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self + other: Point3 => Point3

源代码在GitHub上查看
python
@overload\ndef __add__(self, other: 'Point3') -> 'Point3':\n    ...

method self + other

说明: V + P -> P

V + V -> V

参数:

返回: Vector3 | Point3: 新的向量或点

源代码在GitHub上查看
python
def __add__(self, other):\n    if isinstance(other, Vector3):\n        return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)\n    elif isinstance(other, Point3):\n        return Point3(self.x + other.x, self.y + other.y, self.z + other.z)\n    else:\n        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

说明: 判断两个向量是否相等。

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):\n    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

说明: P + V -> P

别去点那边实现了。

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __radd__(self, other: 'Point3') -> 'Point3':\n    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload\ndef __sub__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self - other: Point3 => Point3

源代码在GitHub上查看
python
@overload\ndef __sub__(self, other: 'Point3') -> 'Point3':\n    ...

method self - other

说明: V - P -> P

V - V -> V

参数:

返回: Vector3 | Point3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other):\n    if isinstance(other, Vector3):\n        return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)\n    elif isinstance(other, Point3):\n        return Point3(self.x - other.x, self.y - other.y, self.z - other.z)\n    else:\n        raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

说明: P - V -> P

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __rsub__(self, other: 'Point3'):\n    if isinstance(other, Point3):\n        return Point3(other.x - self.x, other.y - self.y, other.z - self.z)\n    else:\n        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

method self * other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload\ndef __mul__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self * other: RealNumber => Vector3

源代码在GitHub上查看
python
@overload\ndef __mul__(self, other: RealNumber) -> 'Vector3':\n    ...

method self * other: int | float | Vector3 => Vector3

说明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

参数:

返回: Vector3: 数组运算结果

源代码在GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':\n    if isinstance(other, Vector3):\n        return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)\n    elif isinstance(other, (float, int)):\n        return Vector3(self.x * other, self.y * other, self.z * other)\n    else:\n        raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

源代码在GitHub上查看
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':\n    return self.__mul__(other)

method self @ other: Vector3 => RealNumber

说明: 点乘。

参数:

返回: float: 点乘结果

源代码在GitHub上查看
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':\n    return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

源代码在GitHub上查看
python
def __truediv__(self, other: RealNumber) -> 'Vector3':\n    return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

说明: 取负。

返回: Vector3: 负向量

源代码在GitHub上查看
python
def __neg__(self) -> 'Vector3':\n    return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

var x_axis

var y_axis

var z_axis

',115);function B(w,A,L,M,Z,q){return i(),t("div",null,[h,s("div",n,[r,p,s("mjx-container",o,[(i(),t("svg",d,T)),Q])]),g,s("div",m,[c,y,s("mjx-container",E,[(i(),t("svg",u,f)),F]),C,s("mjx-container",_,[(i(),t("svg",v,H)),x])]),D])}const G=e(l,[["render",B]]);export{z as __pageData,G as default}; diff --git a/assets/api_mp_math_vector.md.BzTv8qws.lean.js b/assets/api_mp_math_vector.md.FC-qe2-I.lean.js similarity index 81% rename from assets/api_mp_math_vector.md.BzTv8qws.lean.js rename to assets/api_mp_math_vector.md.FC-qe2-I.lean.js index 0723699..2508eed 100644 --- a/assets/api_mp_math_vector.md.BzTv8qws.lean.js +++ b/assets/api_mp_math_vector.md.FC-qe2-I.lean.js @@ -1 +1 @@ -import{_ as n,c as i,j as s,a4 as a,o as t}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/vector.md","filePath":"zh/api/mp_math/vector.md"}'),l={name:"api/mp_math/vector.md"},e=a("",16),h={class:"tip custom-block"},p=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},d=a("",1),T=[d],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a("",6),c={class:"tip custom-block"},m=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},u=a("",1),b=[u],f=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),v={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},_=a("",1),V=[_],H=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),x=a("",115);function q(D,A,w,L,M,P){return t(),i("div",null,[e,s("div",h,[p,r,s("mjx-container",o,[(t(),i("svg",k,T)),Q])]),g,s("div",c,[m,y,s("mjx-container",E,[(t(),i("svg",F,b)),f]),C,s("mjx-container",v,[(t(),i("svg",B,V)),H])]),x])}const R=n(l,[["render",q]]);export{z as __pageData,R as default}; +import{_ as e,c as t,j as s,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/vector.md","filePath":"zh/api/mp_math/vector.md"}'),l={name:"api/mp_math/vector.md"},h=a("",16),n={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),p=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},k=a("",1),T=[k],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a("",6),m={class:"tip custom-block"},c=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},u={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},b=a("",1),f=[b],F=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),_={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},v={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},V=a("",1),H=[V],x=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),D=a("",115);function B(w,A,L,M,Z,q){return i(),t("div",null,[h,s("div",n,[r,p,s("mjx-container",o,[(i(),t("svg",d,T)),Q])]),g,s("div",m,[c,y,s("mjx-container",E,[(i(),t("svg",u,f)),F]),C,s("mjx-container",_,[(i(),t("svg",v,H)),x])]),D])}const G=e(l,[["render",B]]);export{z as __pageData,G as default}; diff --git a/assets/api_presets_model_index.md.BH3azKA8.js b/assets/api_presets_model_index.md.DTQNHoYw.js similarity index 87% rename from assets/api_presets_model_index.md.BH3azKA8.js rename to assets/api_presets_model_index.md.DTQNHoYw.js index 857fde7..b8ade17 100644 --- a/assets/api_presets_model_index.md.BH3azKA8.js +++ b/assets/api_presets_model_index.md.DTQNHoYw.js @@ -1,13 +1,5 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/model/index.md","filePath":"zh/api/presets/model/index.md"}'),n={name:"api/presets/model/index.md"},h=t(`

模块 mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

说明: 生成球体上的点集。

参数:

返回: List[Point3]: 球体上的点集。

源代码在GitHub上查看
python
@staticmethod
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/model/index.md","filePath":"zh/api/presets/model/index.md"}'),h={name:"api/presets/model/index.md"},n=t(`

模块 mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

说明: 生成球体上的点集。

参数:

  • radius:
  • density:

返回: List[Point3]: 球体上的点集。

源代码在GitHub上查看
python
@staticmethod
 def sphere(radius: float, density: float):
-    """
-        生成球体上的点集。
-        Args:
-            radius:
-            density:
-        Returns:
-            List[Point3]: 球体上的点集。
-        """
     area = 4 * np.pi * radius ** 2
     num = int(area * density)
     phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
@@ -15,4 +7,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y
     x_array = radius * np.sin(phi_list) * np.cos(theta_list)
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
-    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]
`,10),l=[h];function p(e,k,r,d,E,o){return a(),i("div",null,l)}const c=s(n,[["render",p]]);export{y as __pageData,c as default}; + return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]
`,10),l=[n];function e(p,k,r,d,E,o){return a(),i("div",null,l)}const c=s(h,[["render",e]]);export{y as __pageData,c as default}; diff --git a/assets/api_presets_model_index.md.BH3azKA8.lean.js b/assets/api_presets_model_index.md.DTQNHoYw.lean.js similarity index 64% rename from assets/api_presets_model_index.md.BH3azKA8.lean.js rename to assets/api_presets_model_index.md.DTQNHoYw.lean.js index 5dbf3aa..7c01294 100644 --- a/assets/api_presets_model_index.md.BH3azKA8.lean.js +++ b/assets/api_presets_model_index.md.DTQNHoYw.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/model/index.md","filePath":"zh/api/presets/model/index.md"}'),n={name:"api/presets/model/index.md"},h=t("",10),l=[h];function p(e,k,r,d,E,o){return a(),i("div",null,l)}const c=s(n,[["render",p]]);export{y as __pageData,c as default}; +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/model/index.md","filePath":"zh/api/presets/model/index.md"}'),h={name:"api/presets/model/index.md"},n=t("",10),l=[n];function e(p,k,r,d,E,o){return a(),i("div",null,l)}const c=s(h,[["render",e]]);export{y as __pageData,c as default}; diff --git a/assets/app.BOTpTV4k.js b/assets/app.BUlGQzcU.js similarity index 95% rename from assets/app.BOTpTV4k.js rename to assets/app.BUlGQzcU.js index d89ae92..cfe0134 100644 --- a/assets/app.BOTpTV4k.js +++ b/assets/app.BUlGQzcU.js @@ -1 +1 @@ -import{t as p}from"./chunks/theme.Uf1cjNk7.js";import{U as o,a5 as u,a6 as c,a7 as l,a8 as f,a9 as d,aa as m,ab as h,ac as g,ad as A,ae as y,d as P,u as v,y as C,x as b,af as w,ag as E,ah as R,ai as S}from"./chunks/framework.DpC1ZpOZ.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return C(()=>{b(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&w(),E(),R(),s.setup&&s.setup(),()=>S(s.Layout)}});async function x(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function D(){return g(T)}function _(){let e=o,a;return A(t=>{let n=y(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&x().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{x as createApp}; +import{t as p}from"./chunks/theme.4Aq0plHp.js";import{U as o,a5 as u,a6 as c,a7 as l,a8 as f,a9 as d,aa as m,ab as h,ac as g,ad as A,ae as y,d as P,u as v,y as C,x as b,af as w,ag as E,ah as R,ai as S}from"./chunks/framework.DpC1ZpOZ.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return C(()=>{b(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&w(),E(),R(),s.setup&&s.setup(),()=>S(s.Layout)}});async function x(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function D(){return g(T)}function _(){let e=o,a;return A(t=>{let n=y(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&x().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{x as createApp}; diff --git a/assets/chunks/@localSearchIndexen.BXFpxQIZ.js b/assets/chunks/@localSearchIndexen.BXFpxQIZ.js deleted file mode 100644 index 61c17e4..0000000 --- a/assets/chunks/@localSearchIndexen.BXFpxQIZ.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":160,"nextId":160,"documentIds":{"0":"/en/api/#module-mbcp","1":"/en/api/mp_math/const.html#module-mbcp-mp-math-const","2":"/en/api/mp_math/const.html#var-pi","3":"/en/api/mp_math/const.html#var-e","4":"/en/api/mp_math/const.html#var-golden-ratio","5":"/en/api/mp_math/const.html#var-gamma","6":"/en/api/mp_math/const.html#var-epsilon","7":"/en/api/mp_math/const.html#var-approx","8":"/en/api/mp_math/angle.html#module-mbcp-mp-math-angle","9":"/en/api/mp_math/angle.html#class-angle","10":"/en/api/mp_math/angle.html#class-anyangle-angle","11":"/en/api/mp_math/angle.html#method-init-self-value-float-is-radian-bool-false","12":"/en/api/mp_math/angle.html#method-complementary-self-anyangle","13":"/en/api/mp_math/angle.html#method-supplementary-self-anyangle","14":"/en/api/mp_math/angle.html#method-degree-self-float","15":"/en/api/mp_math/angle.html#method-minimum-positive-self-anyangle","16":"/en/api/mp_math/angle.html#method-maximum-negative-self-anyangle","17":"/en/api/mp_math/angle.html#method-sin-self-float","18":"/en/api/mp_math/angle.html#method-cos-self-float","19":"/en/api/mp_math/angle.html#method-tan-self-float","20":"/en/api/mp_math/angle.html#method-cot-self-float","21":"/en/api/mp_math/angle.html#method-sec-self-float","22":"/en/api/mp_math/angle.html#method-csc-self-float","23":"/en/api/mp_math/angle.html#method-self-other-anyangle-anyangle","24":"/en/api/mp_math/angle.html#method-eq-self-other","25":"/en/api/mp_math/angle.html#method-self-other-anyangle-anyangle-1","26":"/en/api/mp_math/angle.html#method-self-other-float-anyangle","27":"/en/api/mp_math/angle.html#method-self-other-float-anyangle-1","28":"/en/api/mp_math/angle.html#method-self-other-anyangle-float","29":"/en/api/mp_math/angle.html#method-self-other","30":"/en/api/mp_math/equation.html#module-mbcp-mp-math-equation","31":"/en/api/mp_math/equation.html#class-curveequation","32":"/en/api/mp_math/equation.html#method-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","33":"/en/api/mp_math/equation.html#method-call-self-t-var-point3-tuple-point3","34":"/en/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","35":"/en/api/mp_math/function.html#module-mbcp-mp-math-function","36":"/en/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","37":"/en/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","38":"/en/api/mp_math/#module-mbcp-mp-math","39":"/en/api/mp_math/line.html#module-mbcp-mp-math-line","40":"/en/api/mp_math/line.html#class-line3","41":"/en/api/mp_math/line.html#method-init-self-point-point3-direction-vector3","42":"/en/api/mp_math/line.html#method-approx-self-other-line3-epsilon-float-approx-bool","43":"/en/api/mp_math/line.html#method-cal-angle-self-other-line3-anyangle","44":"/en/api/mp_math/line.html#method-cal-distance-self-other-line3-point3-float","45":"/en/api/mp_math/line.html#method-cal-intersection-self-other-line3-point3","46":"/en/api/mp_math/line.html#method-cal-perpendicular-self-point-point3-line3","47":"/en/api/mp_math/line.html#method-get-point-self-t-realnumber-point3","48":"/en/api/mp_math/line.html#method-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","49":"/en/api/mp_math/line.html#method-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","50":"/en/api/mp_math/line.html#method-is-parallel-self-other-line3-bool","51":"/en/api/mp_math/line.html#method-is-collinear-self-other-line3-bool","52":"/en/api/mp_math/line.html#method-is-point-on-self-point-point3-bool","53":"/en/api/mp_math/line.html#method-is-coplanar-self-other-line3-bool","54":"/en/api/mp_math/line.html#method-simplify-self","55":"/en/api/mp_math/line.html#method-from-two-points-cls-p1-point3-p2-point3-line3","56":"/en/api/mp_math/line.html#method-and-self-other-line3-line3-point3-none","57":"/en/api/mp_math/line.html#method-eq-self-other-bool","58":"/en/api/mp_math/mp_math_typing.html#module-mbcp-mp-math-mp-math-typing","59":"/en/api/mp_math/mp_math_typing.html#var-realnumber","60":"/en/api/mp_math/mp_math_typing.html#var-number","61":"/en/api/mp_math/mp_math_typing.html#var-singlevar","62":"/en/api/mp_math/mp_math_typing.html#var-arrayvar","63":"/en/api/mp_math/mp_math_typing.html#var-var","64":"/en/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","65":"/en/api/mp_math/mp_math_typing.html#var-onearrayfunc","66":"/en/api/mp_math/mp_math_typing.html#var-onevarfunc","67":"/en/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","68":"/en/api/mp_math/mp_math_typing.html#var-twoarraysfunc","69":"/en/api/mp_math/mp_math_typing.html#var-twovarsfunc","70":"/en/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","71":"/en/api/mp_math/mp_math_typing.html#var-threearraysfunc","72":"/en/api/mp_math/mp_math_typing.html#var-threevarsfunc","73":"/en/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","74":"/en/api/mp_math/mp_math_typing.html#var-multiarraysfunc","75":"/en/api/mp_math/mp_math_typing.html#var-multivarsfunc","76":"/en/api/mp_math/plane.html#module-mbcp-mp-math-plane","77":"/en/api/mp_math/plane.html#class-plane3","78":"/en/api/mp_math/plane.html#method-init-self-a-float-b-float-c-float-d-float","79":"/en/api/mp_math/plane.html#method-approx-self-other-plane3-bool","80":"/en/api/mp_math/plane.html#method-cal-angle-self-other-line3-plane3-anyangle","81":"/en/api/mp_math/plane.html#method-cal-distance-self-other-plane3-point3-float","82":"/en/api/mp_math/plane.html#method-cal-intersection-line3-self-other-plane3-line3","83":"/en/api/mp_math/plane.html#method-cal-intersection-point3-self-other-line3-point3","84":"/en/api/mp_math/plane.html#method-cal-parallel-plane3-self-point-point3-plane3","85":"/en/api/mp_math/plane.html#method-is-parallel-self-other-plane3-bool","86":"/en/api/mp_math/plane.html#method-normal-self-vector3","87":"/en/api/mp_math/plane.html#method-from-point-and-normal-cls-point-point3-normal-vector3-plane3","88":"/en/api/mp_math/plane.html#method-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","89":"/en/api/mp_math/plane.html#method-from-two-lines-cls-l1-line3-l2-line3-plane3","90":"/en/api/mp_math/plane.html#method-from-point-and-line-cls-point-point3-line-line3-plane3","91":"/en/api/mp_math/plane.html#method-and-self-other-line3-point3-none","92":"/en/api/mp_math/plane.html#method-and-self-other-plane3-line3-none","93":"/en/api/mp_math/plane.html#method-and-self-other","94":"/en/api/mp_math/plane.html#method-eq-self-other-bool","95":"/en/api/mp_math/plane.html#method-rand-self-other-line3-point3","96":"/en/api/mp_math/point.html#module-mbcp-mp-math-point","97":"/en/api/mp_math/point.html#class-point3","98":"/en/api/mp_math/point.html#method-init-self-x-float-y-float-z-float","99":"/en/api/mp_math/point.html#method-approx-self-other-point3-epsilon-float-approx-bool","100":"/en/api/mp_math/point.html#method-self-other-vector3-point3","101":"/en/api/mp_math/point.html#method-self-other-point3-point3","102":"/en/api/mp_math/point.html#method-self-other","103":"/en/api/mp_math/point.html#method-eq-self-other","104":"/en/api/mp_math/point.html#method-self-other-point3-vector3","105":"/en/api/mp_math/segment.html#module-mbcp-mp-math-segment","106":"/en/api/mp_math/segment.html#class-segment3","107":"/en/api/mp_math/segment.html#method-init-self-p1-point3-p2-point3","108":"/en/api/mp_math/utils.html#module-mbcp-mp-math-utils","109":"/en/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","110":"/en/api/mp_math/utils.html#class-approx","111":"/en/api/mp_math/utils.html#method-init-self-value-realnumber","112":"/en/api/mp_math/utils.html#method-eq-self-other","113":"/en/api/mp_math/utils.html#method-raise-type-error-self-other","114":"/en/api/mp_math/utils.html#method-ne-self-other","115":"/en/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","116":"/en/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","117":"/en/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","118":"/en/api/mp_math/vector.html#module-mbcp-mp-math-vector","119":"/en/api/mp_math/vector.html#class-vector3","120":"/en/api/mp_math/vector.html#method-init-self-x-float-y-float-z-float","121":"/en/api/mp_math/vector.html#method-approx-self-other-vector3-epsilon-float-approx-bool","122":"/en/api/mp_math/vector.html#method-cal-angle-self-other-vector3-anyangle","123":"/en/api/mp_math/vector.html#method-cross-self-other-vector3-vector3","124":"/en/api/mp_math/vector.html#method-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","125":"/en/api/mp_math/vector.html#method-is-parallel-self-other-vector3-bool","126":"/en/api/mp_math/vector.html#method-normalize-self","127":"/en/api/mp_math/vector.html#method-np-array-self-np-ndarray","128":"/en/api/mp_math/vector.html#method-length-self-float","129":"/en/api/mp_math/vector.html#method-unit-self-vector3","130":"/en/api/mp_math/vector.html#method-abs-self","131":"/en/api/mp_math/vector.html#method-self-other-vector3-vector3","132":"/en/api/mp_math/vector.html#method-self-other-point3-point3","133":"/en/api/mp_math/vector.html#method-self-other","134":"/en/api/mp_math/vector.html#method-eq-self-other","135":"/en/api/mp_math/vector.html#method-self-other-point3-point3-1","136":"/en/api/mp_math/vector.html#method-self-other-vector3-vector3-1","137":"/en/api/mp_math/vector.html#method-self-other-point3-point3-2","138":"/en/api/mp_math/vector.html#method-self-other-1","139":"/en/api/mp_math/vector.html#method-self-other-point3","140":"/en/api/mp_math/vector.html#method-self-other-vector3-vector3-2","141":"/en/api/mp_math/vector.html#method-self-other-realnumber-vector3","142":"/en/api/mp_math/vector.html#method-self-other-int-float-vector3-vector3","143":"/en/api/mp_math/vector.html#method-self-other-realnumber-vector3-1","144":"/en/api/mp_math/vector.html#method-self-other-vector3-realnumber","145":"/en/api/mp_math/vector.html#method-self-other-realnumber-vector3-2","146":"/en/api/mp_math/vector.html#method-self-vector3","147":"/en/api/mp_math/vector.html#var-zero-vector3","148":"/en/api/mp_math/vector.html#var-x-axis","149":"/en/api/mp_math/vector.html#var-y-axis","150":"/en/api/mp_math/vector.html#var-z-axis","151":"/en/api/particle/#module-mbcp-particle","152":"/en/api/presets/#module-mbcp-presets","153":"/en/api/presets/model/#module-mbcp-presets-model","154":"/en/api/presets/model/#class-geometricmodels","155":"/en/api/presets/model/#method-sphere-radius-float-density-float","156":"/en/demo/best-practice.html#best-practice","157":"/en/demo/best-practice.html#works","158":"/en/guide/#开始不了一点","159":"/en/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,12],"1":[5,1,2],"2":[2,5,7],"3":[2,5,8],"4":[3,5,10],"5":[2,5,6],"6":[2,5,6],"7":[2,5,6],"8":[5,1,2],"9":[2,5,1],"10":[4,5,1],"11":[11,9,28],"12":[5,9,27],"13":[5,9,26],"14":[5,9,23],"15":[6,9,24],"16":[6,9,26],"17":[5,9,21],"18":[5,9,21],"19":[5,9,21],"20":[5,9,23],"21":[5,9,23],"22":[5,9,23],"23":[7,9,18],"24":[5,9,14],"25":[6,9,17],"26":[7,9,19],"27":[7,9,16],"28":[7,9,16],"29":[3,9,18],"30":[5,1,2],"31":[2,5,1],"32":[9,7,29],"33":[10,7,38],"34":[14,5,76],"35":[5,1,2],"36":[13,5,72],"37":[7,5,65],"38":[4,1,20],"39":[5,1,2],"40":[2,5,1],"41":[8,7,28],"42":[11,7,46],"43":[8,7,31],"44":[10,7,65],"45":[8,7,62],"46":[8,7,32],"47":[8,7,38],"48":[9,7,45],"49":[14,7,46],"50":[8,7,39],"51":[8,7,42],"52":[8,7,38],"53":[8,7,45],"54":[4,7,30],"55":[10,7,39],"56":[9,7,54],"57":[6,7,47],"58":[5,1,2],"59":[2,5,9],"60":[2,5,9],"61":[2,5,7],"62":[2,5,8],"63":[2,5,9],"64":[2,5,8],"65":[2,5,8],"66":[2,5,9],"67":[2,5,8],"68":[2,5,8],"69":[2,5,9],"70":[2,5,8],"71":[2,5,8],"72":[2,5,9],"73":[2,5,8],"74":[2,5,8],"75":[2,5,9],"76":[5,1,2],"77":[2,5,1],"78":[9,7,39],"79":[7,7,48],"80":[10,7,94],"81":[10,7,68],"82":[9,7,105],"83":[9,7,70],"84":[9,7,33],"85":[8,7,40],"86":[5,7,28],"87":[10,7,48],"88":[11,7,42],"89":[10,7,47],"90":[10,7,38],"91":[9,7,18],"92":[9,7,18],"93":[5,7,72],"94":[6,7,38],"95":[7,7,18],"96":[5,1,2],"97":[2,5,1],"98":[8,7,29],"99":[11,7,48],"100":[8,7,16],"101":[7,7,15],"102":[4,7,37],"103":[5,7,40],"104":[7,7,39],"105":[5,1,2],"106":[2,5,1],"107":[7,7,35],"108":[5,1,2],"109":[7,5,34],"110":[2,5,1],"111":[6,7,23],"112":[5,7,34],"113":[7,7,18],"114":[5,7,14],"115":[11,5,43],"116":[11,5,46],"117":[12,5,52],"118":[5,1,3],"119":[2,5,1],"120":[8,7,32],"121":[11,7,47],"122":[8,7,49],"123":[6,7,53],"124":[13,7,46],"125":[8,7,40],"126":[4,7,20],"127":[6,7,34],"128":[5,7,36],"129":[5,7,24],"130":[4,7,13],"131":[7,7,15],"132":[7,7,15],"133":[4,7,49],"134":[5,7,40],"135":[7,7,34],"136":[6,7,15],"137":[6,7,15],"138":[3,7,48],"139":[4,7,45],"140":[6,7,15],"141":[7,7,16],"142":[9,7,58],"143":[7,7,16],"144":[7,7,41],"145":[7,7,18],"146":[5,7,24],"147":[3,5,7],"148":[3,5,8],"149":[3,5,8],"150":[3,5,8],"151":[3,1,2],"152":[3,1,2],"153":[4,1,2],"154":[2,4,2],"155":[6,6,51],"156":[2,1,1],"157":[1,2,25],"158":[1,1,2],"159":[1,1,7]},"averageFieldLength":[5.749999999999999,5.931249999999998,25.187500000000004],"storedFields":{"0":{"title":"Module mbcp","titles":[]},"1":{"title":"Module mbcp.mp_math.const","titles":[]},"2":{"title":"var PI","titles":["Module mbcp.mp_math.const"]},"3":{"title":"var E","titles":["Module mbcp.mp_math.const"]},"4":{"title":"var GOLDEN_RATIO","titles":["Module mbcp.mp_math.const"]},"5":{"title":"var GAMMA","titles":["Module mbcp.mp_math.const"]},"6":{"title":"var EPSILON","titles":["Module mbcp.mp_math.const"]},"7":{"title":"var APPROX","titles":["Module mbcp.mp_math.const"]},"8":{"title":"Module mbcp.mp_math.angle","titles":[]},"9":{"title":"class Angle","titles":["Module mbcp.mp_math.angle"]},"10":{"title":"class AnyAngle(Angle)","titles":["Module mbcp.mp_math.angle"]},"11":{"title":"method __init__(self, value: float, is_radian: bool = False)","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"method complementary(self) -> AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"method supplementary(self) -> AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"method degree(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"method minimum_positive(self) -> AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"method maximum_negative(self) -> AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"method sin(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"method cos(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"method tan(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"method cot(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"method sec(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"method csc(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"method self + other: AnyAngle => AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"24":{"title":"method __eq__(self, other)","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"25":{"title":"method self - other: AnyAngle => AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"26":{"title":"method self * other: float => AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"27":{"title":"method self / other: float => AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"28":{"title":"method self / other: AnyAngle => float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"29":{"title":"method self / other","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"30":{"title":"Module mbcp.mp_math.equation","titles":[]},"31":{"title":"class CurveEquation","titles":["Module mbcp.mp_math.equation"]},"32":{"title":"method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["Module mbcp.mp_math.equation","class CurveEquation"]},"33":{"title":"method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["Module mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["Module mbcp.mp_math.equation"]},"35":{"title":"Module mbcp.mp_math.function","titles":[]},"36":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["Module mbcp.mp_math.function"]},"37":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["Module mbcp.mp_math.function"]},"38":{"title":"Module mbcp.mp_math","titles":[]},"39":{"title":"Module mbcp.mp_math.line","titles":[]},"40":{"title":"class Line3","titles":["Module mbcp.mp_math.line"]},"41":{"title":"method __init__(self, point: Point3, direction: Vector3)","titles":["Module mbcp.mp_math.line","class Line3"]},"42":{"title":"method approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"43":{"title":"method cal_angle(self, other: Line3) -> AnyAngle","titles":["Module mbcp.mp_math.line","class Line3"]},"44":{"title":"method cal_distance(self, other: Line3 | Point3) -> float","titles":["Module mbcp.mp_math.line","class Line3"]},"45":{"title":"method cal_intersection(self, other: Line3) -> Point3","titles":["Module mbcp.mp_math.line","class Line3"]},"46":{"title":"method cal_perpendicular(self, point: Point3) -> Line3","titles":["Module mbcp.mp_math.line","class Line3"]},"47":{"title":"method get_point(self, t: RealNumber) -> Point3","titles":["Module mbcp.mp_math.line","class Line3"]},"48":{"title":"method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["Module mbcp.mp_math.line","class Line3"]},"49":{"title":"method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"50":{"title":"method is_parallel(self, other: Line3) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"51":{"title":"method is_collinear(self, other: Line3) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"52":{"title":"method is_point_on(self, point: Point3) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"53":{"title":"method is_coplanar(self, other: Line3) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"54":{"title":"method simplify(self)","titles":["Module mbcp.mp_math.line","class Line3"]},"55":{"title":"method from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["Module mbcp.mp_math.line","class Line3"]},"56":{"title":"method __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["Module mbcp.mp_math.line","class Line3"]},"57":{"title":"method __eq__(self, other) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"58":{"title":"Module mbcp.mp_math.mp_math_typing","titles":[]},"59":{"title":"var RealNumber","titles":["Module mbcp.mp_math.mp_math_typing"]},"60":{"title":"var Number","titles":["Module mbcp.mp_math.mp_math_typing"]},"61":{"title":"var SingleVar","titles":["Module mbcp.mp_math.mp_math_typing"]},"62":{"title":"var ArrayVar","titles":["Module mbcp.mp_math.mp_math_typing"]},"63":{"title":"var Var","titles":["Module mbcp.mp_math.mp_math_typing"]},"64":{"title":"var OneSingleVarFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"65":{"title":"var OneArrayFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"66":{"title":"var OneVarFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"67":{"title":"var TwoSingleVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"68":{"title":"var TwoArraysFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"69":{"title":"var TwoVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"70":{"title":"var ThreeSingleVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"71":{"title":"var ThreeArraysFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"72":{"title":"var ThreeVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"73":{"title":"var MultiSingleVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"74":{"title":"var MultiArraysFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"75":{"title":"var MultiVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"76":{"title":"Module mbcp.mp_math.plane","titles":[]},"77":{"title":"class Plane3","titles":["Module mbcp.mp_math.plane"]},"78":{"title":"method __init__(self, a: float, b: float, c: float, d: float)","titles":["Module mbcp.mp_math.plane","class Plane3"]},"79":{"title":"method approx(self, other: Plane3) -> bool","titles":["Module mbcp.mp_math.plane","class Plane3"]},"80":{"title":"method cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["Module mbcp.mp_math.plane","class Plane3"]},"81":{"title":"method cal_distance(self, other: Plane3 | Point3) -> float","titles":["Module mbcp.mp_math.plane","class Plane3"]},"82":{"title":"method cal_intersection_line3(self, other: Plane3) -> Line3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"83":{"title":"method cal_intersection_point3(self, other: Line3) -> Point3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"84":{"title":"method cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"85":{"title":"method is_parallel(self, other: Plane3) -> bool","titles":["Module mbcp.mp_math.plane","class Plane3"]},"86":{"title":"method normal(self) -> Vector3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"87":{"title":"method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"88":{"title":"method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"89":{"title":"method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"90":{"title":"method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"91":{"title":"method __and__(self, other: Line3) -> Point3 | None","titles":["Module mbcp.mp_math.plane","class Plane3"]},"92":{"title":"method __and__(self, other: Plane3) -> Line3 | None","titles":["Module mbcp.mp_math.plane","class Plane3"]},"93":{"title":"method __and__(self, other)","titles":["Module mbcp.mp_math.plane","class Plane3"]},"94":{"title":"method __eq__(self, other) -> bool","titles":["Module mbcp.mp_math.plane","class Plane3"]},"95":{"title":"method __rand__(self, other: Line3) -> Point3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"96":{"title":"Module mbcp.mp_math.point","titles":[]},"97":{"title":"class Point3","titles":["Module mbcp.mp_math.point"]},"98":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["Module mbcp.mp_math.point","class Point3"]},"99":{"title":"method approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["Module mbcp.mp_math.point","class Point3"]},"100":{"title":"method self + other: Vector3 => Point3","titles":["Module mbcp.mp_math.point","class Point3"]},"101":{"title":"method self + other: Point3 => Point3","titles":["Module mbcp.mp_math.point","class Point3"]},"102":{"title":"method self + other","titles":["Module mbcp.mp_math.point","class Point3"]},"103":{"title":"method __eq__(self, other)","titles":["Module mbcp.mp_math.point","class Point3"]},"104":{"title":"method self - other: Point3 => Vector3","titles":["Module mbcp.mp_math.point","class Point3"]},"105":{"title":"Module mbcp.mp_math.segment","titles":[]},"106":{"title":"class Segment3","titles":["Module mbcp.mp_math.segment"]},"107":{"title":"method __init__(self, p1: Point3, p2: Point3)","titles":["Module mbcp.mp_math.segment","class Segment3"]},"108":{"title":"Module mbcp.mp_math.utils","titles":[]},"109":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["Module mbcp.mp_math.utils"]},"110":{"title":"class Approx","titles":["Module mbcp.mp_math.utils"]},"111":{"title":"method __init__(self, value: RealNumber)","titles":["Module mbcp.mp_math.utils","class Approx"]},"112":{"title":"method __eq__(self, other)","titles":["Module mbcp.mp_math.utils","class Approx"]},"113":{"title":"method raise_type_error(self, other)","titles":["Module mbcp.mp_math.utils","class Approx"]},"114":{"title":"method __ne__(self, other)","titles":["Module mbcp.mp_math.utils","class Approx"]},"115":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["Module mbcp.mp_math.utils"]},"116":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["Module mbcp.mp_math.utils"]},"117":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["Module mbcp.mp_math.utils"]},"118":{"title":"Module mbcp.mp_math.vector","titles":[]},"119":{"title":"class Vector3","titles":["Module mbcp.mp_math.vector"]},"120":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["Module mbcp.mp_math.vector","class Vector3"]},"121":{"title":"method approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["Module mbcp.mp_math.vector","class Vector3"]},"122":{"title":"method cal_angle(self, other: Vector3) -> AnyAngle","titles":["Module mbcp.mp_math.vector","class Vector3"]},"123":{"title":"method cross(self, other: Vector3) -> Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"124":{"title":"method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["Module mbcp.mp_math.vector","class Vector3"]},"125":{"title":"method is_parallel(self, other: Vector3) -> bool","titles":["Module mbcp.mp_math.vector","class Vector3"]},"126":{"title":"method normalize(self)","titles":["Module mbcp.mp_math.vector","class Vector3"]},"127":{"title":"method np_array(self) -> np.ndarray","titles":["Module mbcp.mp_math.vector","class Vector3"]},"128":{"title":"method length(self) -> float","titles":["Module mbcp.mp_math.vector","class Vector3"]},"129":{"title":"method unit(self) -> Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"130":{"title":"method __abs__(self)","titles":["Module mbcp.mp_math.vector","class Vector3"]},"131":{"title":"method self + other: Vector3 => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"132":{"title":"method self + other: Point3 => Point3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"133":{"title":"method self + other","titles":["Module mbcp.mp_math.vector","class Vector3"]},"134":{"title":"method __eq__(self, other)","titles":["Module mbcp.mp_math.vector","class Vector3"]},"135":{"title":"method self + other: Point3 => Point3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"136":{"title":"method self - other: Vector3 => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"137":{"title":"method self - other: Point3 => Point3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"138":{"title":"method self - other","titles":["Module mbcp.mp_math.vector","class Vector3"]},"139":{"title":"method self - other: Point3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"140":{"title":"method self * other: Vector3 => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"141":{"title":"method self * other: RealNumber => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"142":{"title":"method self * other: int | float | Vector3 => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"143":{"title":"method self * other: RealNumber => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"144":{"title":"method self @ other: Vector3 => RealNumber","titles":["Module mbcp.mp_math.vector","class Vector3"]},"145":{"title":"method self / other: RealNumber => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"146":{"title":"method - self => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"147":{"title":"var zero_vector3","titles":["Module mbcp.mp_math.vector"]},"148":{"title":"var x_axis","titles":["Module mbcp.mp_math.vector"]},"149":{"title":"var y_axis","titles":["Module mbcp.mp_math.vector"]},"150":{"title":"var z_axis","titles":["Module mbcp.mp_math.vector"]},"151":{"title":"Module mbcp.particle","titles":[]},"152":{"title":"Module mbcp.presets","titles":[]},"153":{"title":"Module mbcp.presets.model","titles":[]},"154":{"title":"class GeometricModels","titles":["Module mbcp.presets.model"]},"155":{"title":"method sphere(radius: float, density: float)","titles":["Module mbcp.presets.model","class GeometricModels"]},"156":{"title":"Best Practice","titles":[]},"157":{"title":"Works","titles":["Best Practice"]},"158":{"title":"开始不了一点","titles":[]},"159":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["∫12x111",{"2":{"158":1}}],["开始不了一点",{"0":{"158":1}}],["红石音乐",{"2":{"157":1}}],["这么可爱真是抱歉",{"2":{"157":1}}],["这玩意不太稳定",{"2":{"34":2}}],["轻涟",{"2":{"157":1}}],["芙宁娜pv曲",{"2":{"157":1}}],["有点甜~",{"2":{"157":1}}],["有关函数柯里化",{"2":{"37":2}}],["星穹铁道",{"2":{"157":1}}],["崩坏",{"2":{"157":1}}],["使一颗心免于哀伤",{"2":{"157":1}}],["总有一条蜿蜒在童话镇里",{"2":{"157":1}}],["童话镇~",{"2":{"157":1}}],["特效红石音乐",{"2":{"157":2}}],["works",{"0":{"157":1}}],["warning",{"2":{"34":2}}],["4",{"2":{"155":1}}],["球体上的点集",{"2":{"155":2}}],["生成球体上的点集",{"2":{"155":2}}],["几何模型点集",{"2":{"153":1}}],["零向量",{"2":{"147":1}}],["负向量",{"2":{"146":2}}],["取负",{"2":{"146":2}}],["取两平面的交集",{"2":{"93":2}}],["非点乘",{"2":{"142":2}}],["别去点那边实现了",{"2":{"135":2}}],["单位向量",{"2":{"129":2}}],["单变量",{"2":{"61":1}}],["模",{"2":{"128":2}}],["返回numpy数组",{"2":{"127":1}}],["将向量归一化",{"2":{"126":2}}],["j",{"2":{"123":1}}],["转换为行列式形式",{"2":{"123":2}}],["叉乘使用cross",{"2":{"142":2}}],["叉乘结果",{"2":{"123":2}}],["叉乘运算法则为",{"2":{"123":2}}],["叉乘",{"2":{"123":2}}],["向量的模",{"2":{"128":2}}],["向量积",{"2":{"123":2}}],["向量夹角计算公式",{"2":{"122":2}}],["以及一些常用的向量",{"2":{"118":1}}],["格式化符号数",{"2":{"117":2}}],["quot",{"2":{"116":2,"117":4}}],["符号",{"2":{"116":2,"117":2}}],["获取该向量的单位向量",{"2":{"129":2}}],["获取数的符号",{"2":{"116":2}}],["获取直线的参数方程",{"2":{"48":2}}],["获取直线上的点",{"2":{"47":2}}],["用于判断是否近似于0",{"2":{"115":2}}],["用于近似比较对象",{"2":{"111":2}}],["限定在区间内的值",{"2":{"109":2}}],["值",{"2":{"109":2}}],["区间限定函数",{"2":{"109":2}}],["us",{"2":{"159":1}}],["unit",{"0":{"129":1},"2":{"129":1}}],["unsupported",{"2":{"44":1,"80":1,"81":1,"93":1,"113":1,"133":1,"138":1,"139":1,"142":1}}],["utils",{"0":{"108":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1}}],["中心点",{"2":{"107":1}}],["中实现",{"2":{"104":2}}],["长度",{"2":{"107":1}}],["线段的另一个端点",{"2":{"107":2}}],["线段的一个端点",{"2":{"107":2}}],["新的向量或点",{"2":{"133":2}}],["新的向量",{"2":{"104":2,"138":2}}],["新的点",{"2":{"102":2,"135":2,"139":2}}],["已在",{"2":{"104":2}}],["已知一个函数$f",{"2":{"36":1}}],["已知一个函数f",{"2":{"36":1}}],["坐标",{"2":{"98":6}}],["笛卡尔坐标系中的点",{"2":{"98":2}}],["人话",{"2":{"93":2}}],["法向量",{"2":{"86":2,"87":2}}],["或包装一个实数",{"2":{"115":2}}],["或",{"2":{"82":1}}],["或整数元组",{"2":{"34":2}}],["依次假设$x=0$",{"2":{"82":1}}],["依次假设x=0",{"2":{"82":1}}],["并代入两平面方程求出合适的点",{"2":{"82":2}}],["并对向量单位化",{"2":{"54":2}}],["寻找直线上的一点",{"2":{"82":2}}],["为直线的方向向量",{"2":{"80":2}}],["为平面的法向量",{"2":{"80":2}}],["分别为两个平面的法向量",{"2":{"80":2}}],["和",{"2":{"80":2}}],["其中",{"2":{"80":4}}],["θ=arccos⁡",{"2":{"80":2,"122":1}}],["k",{"2":{"79":12,"123":1}}],["常数项",{"2":{"78":2}}],["常量",{"2":{"2":1}}],["平面上一点",{"2":{"87":2,"90":2}}],["平面的法向量",{"2":{"86":2}}],["平面",{"2":{"84":2,"87":2,"88":2,"89":2,"90":2}}],["平面与直线平行或重合",{"2":{"83":2}}],["平面与直线夹角计算公式",{"2":{"80":2}}],["平面平行且无交线",{"2":{"82":2}}],["平面间夹角计算公式",{"2":{"80":2}}],["平面方程",{"2":{"78":2}}],["平行线返回none",{"2":{"56":2}}],["多元函数",{"2":{"75":1}}],["多元数组函数",{"2":{"74":1}}],["多元单变量函数",{"2":{"73":1}}],["二元函数",{"2":{"69":1}}],["二元数组函数",{"2":{"68":1}}],["二元单变量函数",{"2":{"67":1}}],["一元函数",{"2":{"66":1}}],["一元数组函数",{"2":{"65":1}}],["一元单变量函数",{"2":{"64":1}}],["一阶偏导",{"2":{"34":2}}],["变量",{"2":{"63":1}}],["变量位置",{"2":{"34":2}}],["数组运算结果",{"2":{"142":2}}],["数组运算",{"2":{"142":2}}],["数组变量",{"2":{"62":1}}],["数2",{"2":{"115":2}}],["数1",{"2":{"115":2}}],["数",{"2":{"60":1,"116":2,"117":2}}],["数学工具",{"2":{"0":1}}],["实数",{"2":{"59":1,"111":2}}],["∧",{"2":{"57":2}}],["交线",{"2":{"82":2,"93":2}}],["交线返回交点",{"2":{"56":2}}],["交集",{"2":{"56":2,"93":2}}],["交点",{"2":{"45":2,"83":2}}],["重合线返回自身",{"2":{"56":2}}],["由点和直线构造平面",{"2":{"90":2}}],["由点和法向量构造平面",{"2":{"87":2}}],["由两直线构造平面",{"2":{"89":2}}],["由两点构造直线",{"2":{"55":2}}],["由三点构造平面",{"2":{"88":2}}],["由一个点和一个方向向量确定",{"2":{"41":2}}],["工厂函数",{"2":{"55":2,"87":2,"88":2,"89":2,"90":2}}],["处理",{"2":{"54":2}}],["处的梯度向量为",{"2":{"36":1}}],["化",{"2":{"54":2}}],["按照可行性一次对x",{"2":{"54":2}}],["不返回值",{"2":{"54":2,"126":2}}],["不支持的类型",{"2":{"44":2,"80":2,"81":2,"93":2}}],["自体归一化",{"2":{"126":2}}],["自体简化",{"2":{"54":2}}],["自然对数的底",{"2":{"3":1}}],["等价相等",{"2":{"54":2}}],["简化直线方程",{"2":{"54":2}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"53":2}}],["两角的和为180°",{"2":{"13":2}}],["两角的和为90°",{"2":{"12":2}}],["充要条件",{"2":{"53":2}}],["判断两个向量是否相等",{"2":{"134":2}}],["判断两个向量是否平行",{"2":{"125":2}}],["判断两个向量是否近似平行",{"2":{"124":2}}],["判断两个向量是否近似相等",{"2":{"121":2}}],["判断两个数是否近似相等",{"2":{"115":2}}],["判断两个点是否相等",{"2":{"103":2}}],["判断两个点是否近似相等",{"2":{"99":2}}],["判断两个平面是否等价",{"2":{"94":2}}],["判断两个平面是否平行",{"2":{"85":2}}],["判断两个平面是否近似相等",{"2":{"79":2}}],["判断两条直线是否等价",{"2":{"57":2}}],["判断两条直线是否共面",{"2":{"53":2}}],["判断两条直线是否共线",{"2":{"51":2}}],["判断两条直线是否平行",{"2":{"50":2}}],["判断两条直线是否近似平行",{"2":{"49":2}}],["判断两条直线是否近似相等",{"2":{"42":2}}],["判断点是否在直线上",{"2":{"52":2}}],["另一个向量或数",{"2":{"142":2}}],["另一个向量或点",{"2":{"133":2,"138":2}}],["另一个向量",{"2":{"121":2,"122":2,"123":2,"124":2,"125":2,"134":2,"144":2}}],["另一个点或向量",{"2":{"102":2}}],["另一个点",{"2":{"99":2,"103":2,"104":2,"135":2,"139":2}}],["另一个平面或点",{"2":{"81":2}}],["另一个平面或直线",{"2":{"80":2,"93":2}}],["另一个平面",{"2":{"79":2,"82":2,"85":2,"94":2}}],["另一",{"2":{"50":2,"51":2,"53":2}}],["另一条直线或点",{"2":{"44":2}}],["另一条直线",{"2":{"42":2,"43":2,"45":2,"49":2,"56":2,"57":2}}],["则同一个t对应的点不同",{"2":{"47":2}}],["则其在点$",{"2":{"36":1}}],["则其在点",{"2":{"36":1}}],["但起始点和方向向量不同",{"2":{"47":2}}],["同一条直线",{"2":{"47":2}}],["垂线",{"2":{"46":2}}],["指定点",{"2":{"46":2,"84":2}}],["直线最终可用参数方程或点向式表示",{"2":{"82":2}}],["直线",{"2":{"55":2,"83":2,"89":4,"90":2}}],["直线不共面",{"2":{"45":2}}],["直线平行",{"2":{"45":2}}],["直线上的一点",{"2":{"41":2}}],["距离",{"2":{"44":2,"81":2}}],["夹角",{"2":{"43":2,"80":2,"122":2}}],["是否只返回负数的符号",{"2":{"116":2,"117":2}}],["是否相等",{"2":{"103":2,"134":2}}],["是否等价",{"2":{"57":2,"94":2}}],["是否共面",{"2":{"53":2}}],["是否共线",{"2":{"51":2}}],["是否在直线上",{"2":{"52":2}}],["是否平行",{"2":{"50":2,"85":2,"125":2}}],["是否近似平行",{"2":{"49":2,"124":2}}],["是否近似相等",{"2":{"42":2,"79":2,"99":2,"115":2,"121":2}}],["是否为弧度",{"2":{"11":2}}],["误差",{"2":{"42":2,"49":2,"99":2,"115":2,"121":2,"124":2}}],["方向向量",{"2":{"41":2,"107":1}}],["三元数组函数",{"2":{"71":1}}],["三元单变量函数",{"2":{"70":1}}],["三元函数",{"2":{"36":2,"72":1}}],["三维空间中的线段",{"2":{"107":2}}],["三维空间中的直线",{"2":{"41":2}}],["三维向量",{"2":{"38":1}}],["三维线段",{"2":{"38":1}}],["三维点",{"2":{"38":1}}],["三维平面",{"2":{"38":1}}],["三维直线",{"2":{"38":1}}],["导入的类有",{"2":{"38":1}}],["本包定义了一些常用的导入",{"2":{"38":1}}],["本模块塞了一些预设",{"2":{"152":1}}],["本模块用于内部类型提示",{"2":{"58":1}}],["本模块定义了粒子生成相关的工具",{"2":{"151":1}}],["本模块定义了3维向量的类vector3",{"2":{"118":1}}],["本模块定义了一些常用的工具函数",{"2":{"108":1}}],["本模块定义了一些常用的常量",{"2":{"1":1}}],["本模块定义了三维空间中点的类",{"2":{"96":1}}],["本模块定义了三维空间中的线段类",{"2":{"105":1}}],["本模块定义了三维空间中的平面类",{"2":{"76":1}}],["本模块定义了三维空间中的直线类",{"2":{"39":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"30":1}}],["本模块定义了角度相关的类",{"2":{"8":1}}],["本模块是主模块",{"2":{"0":1}}],["help",{"2":{"159":1}}],["heart",{"2":{"157":1}}],["have",{"2":{"82":1}}],["html",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["https",{"2":{"37":1,"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["high",{"2":{"34":2}}],["hide",{"2":{"34":2,"37":1}}],["6",{"2":{"37":2}}],["3维向量",{"2":{"120":2}}],["3a",{"2":{"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"57":1,"78":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["355859667",{"2":{"37":1}}],["3",{"2":{"37":2,"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["3vf",{"0":{"36":1},"2":{"36":1}}],["breaking",{"2":{"157":1}}],["best",{"0":{"156":1},"1":{"157":1}}],["begin",{"2":{"82":1,"123":1}}],["by",{"2":{"78":2}}],["bound=iterable",{"2":{"62":1}}],["bound=number",{"2":{"61":1}}],["bool=false",{"2":{"11":1,"116":1,"117":1}}],["bool",{"0":{"11":1,"42":1,"49":1,"50":1,"51":1,"52":1,"53":1,"57":1,"79":1,"85":1,"94":1,"99":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1},"2":{"42":3,"49":3,"50":3,"51":3,"52":3,"53":3,"57":3,"79":3,"85":3,"94":3,"99":3,"103":2,"115":3,"116":2,"117":2,"121":3,"124":3,"125":3,"134":2}}],["b",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["柯里化后的函数",{"2":{"37":2}}],["柯理化",{"2":{"37":2}}],["函数式编程",{"2":{"37":1}}],["函数",{"2":{"37":2}}],["对多参数函数进行柯里化",{"2":{"37":2}}],["dt",{"2":{"82":3}}],["d=n1×n2",{"2":{"82":1}}],["d",{"0":{"78":1},"2":{"78":7,"79":6,"80":2,"81":1,"82":7,"83":1,"87":2}}],["documentation",{"2":{"159":1}}],["doc",{"2":{"127":1}}],["docs",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["do",{"2":{"45":2}}],["distance",{"0":{"44":1,"81":1},"2":{"44":1,"81":1}}],["direction",{"0":{"41":1},"2":{"41":5,"42":1,"43":2,"44":8,"45":6,"46":1,"47":1,"48":3,"49":2,"50":2,"51":1,"52":1,"53":2,"54":4,"55":2,"57":3,"80":1,"82":2,"83":4,"89":1,"90":1,"93":1,"107":2}}],["dz",{"2":{"36":2}}],["dy",{"2":{"36":2}}],["dx",{"2":{"36":2}}],["density",{"0":{"155":1},"2":{"155":4}}],["derivative",{"0":{"34":1},"2":{"34":6}}],["degree",{"0":{"14":1},"2":{"14":1}}],["def",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"27":1,"28":1,"34":2,"37":2,"55":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"155":1}}],["default",{"2":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1}}],["description",{"2":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"147":1,"148":1,"149":1,"150":1,"155":1}}],["$z=0$",{"2":{"82":1}}],["$y=0$",{"2":{"82":1}}],["$d$",{"2":{"80":1}}],["$n$",{"2":{"80":1}}],["$n2$",{"2":{"80":1}}],["$n1$",{"2":{"80":1}}],["$$",{"2":{"80":4,"82":6,"122":2,"123":4}}],["$处的梯度向量为",{"2":{"36":1}}],["$",{"2":{"36":3}}],["梯度",{"2":{"36":2}}],["点乘结果",{"2":{"144":2}}],["点乘",{"2":{"144":2}}],["点乘使用",{"2":{"142":2}}],["点3",{"2":{"88":2}}],["点法式构造",{"2":{"87":2}}],["点2",{"2":{"55":2,"88":2}}],["点1",{"2":{"55":2,"88":2}}],["点",{"2":{"36":2,"47":2,"52":2}}],["∂f∂z",{"2":{"36":1}}],["∂f∂y",{"2":{"36":1}}],["∂f∂x",{"2":{"36":1}}],["∇f",{"2":{"36":1}}],["计算平行于该平面且过指定点的平面",{"2":{"84":2}}],["计算平面与直线的交点",{"2":{"83":2}}],["计算平面与平面或点之间的距离",{"2":{"81":2}}],["计算平面与平面之间的夹角",{"2":{"80":2}}],["计算两个向量之间的夹角",{"2":{"122":2}}],["计算两平面交线的一般步骤",{"2":{"82":2}}],["计算两平面的交线",{"2":{"82":2}}],["计算两条直线点集合的交集",{"2":{"56":2}}],["计算两条直线的交点",{"2":{"45":2}}],["计算直线经过指定点p的垂线",{"2":{"46":2}}],["计算直线和直线或点之间的距离",{"2":{"44":2}}],["计算直线和直线之间的夹角",{"2":{"43":2}}],["计算三元函数在某点的梯度向量",{"2":{"36":2}}],["计算曲线上的点",{"2":{"33":2}}],["求两平面的法向量的叉乘得到方向向量",{"2":{"82":2}}],["求高阶偏导函数",{"2":{"34":1}}],["求n元函数一阶偏导函数",{"2":{"34":2}}],["l2",{"0":{"89":1},"2":{"89":5}}],["l1",{"0":{"89":1},"2":{"89":7}}],["lambda",{"2":{"48":3}}],["left",{"2":{"36":1}}],["length",{"0":{"128":1},"2":{"44":5,"45":1,"80":2,"107":2,"122":2,"124":1,"126":5,"128":1,"129":1,"130":1}}],["len",{"2":{"33":1}}],["linalg",{"2":{"82":3}}],["lines",{"0":{"89":1},"2":{"45":2,"89":1}}],["line",{"0":{"39":1,"90":2},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"57":1,"80":1,"82":1,"83":2,"89":1,"90":6,"93":2}}],["line3",{"0":{"40":1,"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"80":1,"82":2,"83":1,"89":2,"90":1,"91":1,"92":1,"95":1},"1":{"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"38":1,"42":3,"43":3,"44":4,"45":3,"46":4,"49":3,"50":3,"51":3,"53":3,"55":3,"56":6,"57":2,"80":4,"82":5,"83":3,"89":5,"90":3,"91":1,"92":1,"93":6,"95":1,"112":1}}],["library",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["list",{"2":{"34":8,"155":10}}],["litedoc",{"2":{"34":2,"37":1}}],["`np",{"2":{"127":1}}],["`none`",{"2":{"56":1,"93":1}}],["`str`",{"2":{"116":1,"117":1}}],["`plane3`",{"2":{"79":1,"80":1,"81":1,"82":1,"84":1,"85":1,"87":1,"93":1,"94":1}}],["`point3`",{"2":{"36":1,"41":1,"44":1,"45":1,"46":1,"47":1,"52":1,"55":2,"56":1,"81":1,"83":1,"84":1,"87":1,"88":3,"90":1,"93":1,"99":1,"102":2,"103":1,"104":1,"107":2,"133":2,"135":2,"138":2,"139":2}}],["`onesinglevarfunc`",{"2":{"48":3}}],["`onevarfunc`",{"2":{"32":3}}],["`realnumber`",{"2":{"47":1,"111":1}}],["`tuple`",{"2":{"48":1}}],["`typeerror`",{"2":{"44":1,"80":1,"81":1,"93":1}}],["`threesinglevarsfunc`",{"2":{"36":1}}],["`anyangle`",{"2":{"43":1,"80":1,"122":1}}],["`bool`",{"2":{"42":1,"49":1,"50":1,"51":1,"52":1,"53":1,"57":1,"79":1,"85":1,"94":1,"99":1,"103":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1,"134":1}}],["`float`",{"2":{"42":1,"44":1,"49":1,"78":4,"81":1,"98":3,"99":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"144":1}}],["`line3`",{"2":{"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"57":1,"80":1,"82":1,"83":1,"89":2,"90":1,"93":2}}],["`valueerror`",{"2":{"45":2,"82":1,"83":1}}],["`var`",{"2":{"37":1}}],["`vector3`",{"2":{"41":1,"86":1,"87":1,"102":1,"104":2,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"133":2,"134":1,"138":2,"142":2,"144":1,"146":1}}],["```",{"2":{"37":1}}],["```python",{"2":{"37":1}}],["`multivarsfunc`",{"2":{"34":1,"37":1}}],["无效变量类型",{"2":{"34":2}}],["偏导函数",{"2":{"34":2}}],["偏移量",{"2":{"34":2,"36":2}}],["高阶偏导数值",{"2":{"34":1}}],["高阶偏导",{"2":{"34":2}}],["可愛くてごめん",{"2":{"157":1}}],["可直接从mbcp",{"2":{"38":1}}],["可参考",{"2":{"37":1}}],["可参考函数式编程",{"2":{"37":1}}],["可为整数",{"2":{"34":2}}],["可导入",{"2":{"0":1}}],["因此该函数的稳定性有待提升",{"2":{"34":2}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"34":2}}],["目标点",{"2":{"33":2}}],["慎用",{"2":{"34":2}}],["num",{"2":{"155":5}}],["numpy",{"2":{"127":2}}],["numpy数组",{"2":{"127":2}}],["number=epsilon",{"2":{"34":1}}],["number",{"0":{"34":1,"60":1},"2":{"62":1}}],["ndarray`",{"2":{"127":1}}],["ndarray",{"0":{"127":1},"2":{"127":3}}],["neg",{"0":{"116":1,"117":1},"2":{"116":4,"117":4,"146":1}}],["negative",{"0":{"16":1},"2":{"16":1}}],["ne",{"0":{"114":1},"2":{"114":1}}],["np",{"0":{"127":2},"2":{"82":9,"127":4,"155":9}}],["n",{"2":{"80":2,"82":1}}],["n⋅d|n|⋅|d|",{"2":{"80":1}}],["n2",{"2":{"80":2,"82":1}}],["n1",{"2":{"80":2,"82":1}}],["n1⋅n2|n1|⋅|n2|",{"2":{"80":1}}],["no",{"2":{"82":1}}],["normal",{"0":{"86":1,"87":2},"2":{"80":5,"82":4,"83":1,"84":2,"85":2,"86":1,"87":7,"88":3,"89":1,"90":1,"93":3}}],["normalize",{"0":{"126":1},"2":{"54":1,"126":1}}],["none",{"0":{"56":1,"91":1,"92":1},"2":{"56":4,"91":1,"92":1,"93":4}}],["not",{"2":{"44":1,"45":4,"56":1,"114":1,"116":1,"117":1}}],["nabla",{"2":{"36":1}}],["n元函数",{"2":{"34":2}}],["参数方程",{"2":{"48":2}}],["参数t",{"2":{"47":2}}],["参数",{"2":{"33":2,"34":1,"37":2}}],["|v2|",{"2":{"122":1}}],["|v1|",{"2":{"122":1}}],["|d|",{"2":{"80":1}}],["|n|",{"2":{"80":1}}],["|n2|",{"2":{"80":1}}],["|n1|",{"2":{"80":1}}],["|",{"0":{"33":1,"34":1,"44":1,"56":2,"80":1,"81":1,"91":1,"92":1,"142":2},"2":{"33":1,"34":1,"44":3,"56":6,"59":1,"60":1,"63":1,"66":1,"69":1,"72":1,"75":1,"80":3,"81":3,"91":1,"92":1,"93":6,"102":2,"133":4,"138":4,"142":4}}],["曲线方程",{"2":{"32":2,"38":1}}],["z轴单位向量",{"2":{"150":1}}],["z轴分量",{"2":{"120":2}}],["zero",{"0":{"147":1},"2":{"89":1,"125":1}}],["z=0",{"2":{"82":1}}],["z系数",{"2":{"78":2}}],["zhihu",{"2":{"37":1}}],["zhuanlan",{"2":{"37":1}}],["z0",{"2":{"36":2}}],["zip",{"2":{"33":1}}],["z函数",{"2":{"32":2}}],["z",{"0":{"32":1,"98":1,"120":1,"150":1},"2":{"32":5,"33":4,"36":11,"48":2,"54":4,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"120":5,"121":2,"123":10,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["y轴单位向量",{"2":{"149":1}}],["y轴分量",{"2":{"120":2}}],["y=0",{"2":{"82":1}}],["y系数",{"2":{"78":2}}],["y0",{"2":{"36":2}}],["y函数",{"2":{"32":2}}],["y",{"0":{"32":1,"98":1,"115":1,"120":1,"149":1},"2":{"32":5,"33":4,"36":11,"48":2,"54":4,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"115":4,"120":5,"121":2,"123":10,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["x轴单位向量",{"2":{"148":1}}],["x轴分量",{"2":{"120":2}}],["x3c",{"2":{"99":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x26",{"2":{"93":1,"123":6}}],["x−x0m=y−y0n=z−z0p",{"2":{"82":1}}],["x=x0+dty=y0+dtz=z0+dt或",{"2":{"82":1}}],["x系数",{"2":{"78":2}}],["x0",{"2":{"36":2}}],["x函数",{"2":{"32":2}}],["x",{"0":{"32":1,"98":1,"109":1,"115":1,"116":1,"117":1,"120":1,"148":1},"2":{"32":5,"33":4,"36":11,"48":2,"54":2,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"109":4,"112":2,"115":4,"116":5,"117":8,"120":5,"121":2,"123":12,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["to",{"2":{"159":1}}],["times",{"2":{"82":1,"123":2}}],["tip",{"2":{"36":2,"37":2,"80":4,"82":2,"122":2,"123":2}}],["the",{"2":{"83":2,"159":1}}],["theta",{"2":{"80":2,"122":1,"155":3}}],["three",{"0":{"88":1},"2":{"88":1}}],["threevarsfunc",{"0":{"72":1}}],["threearraysfunc",{"0":{"71":1},"2":{"72":1}}],["threesinglevarsfunc",{"0":{"36":1,"70":1},"2":{"36":3,"72":1}}],["twovarsfunc",{"0":{"69":1}}],["twoarraysfunc",{"0":{"68":1},"2":{"69":1}}],["twosinglevarsfunc",{"0":{"67":1},"2":{"69":1}}],["two",{"0":{"55":1,"89":1},"2":{"55":1,"89":1}}],["typevar",{"2":{"61":1,"62":1}}],["typealias",{"2":{"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["typeerror",{"2":{"44":3,"45":1,"80":3,"81":3,"93":3,"113":1,"133":1,"138":1,"139":1,"142":1}}],["type",{"0":{"113":1},"2":{"34":1,"44":1,"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"80":2,"81":2,"93":2,"112":2,"113":4,"133":2,"138":2,"139":2,"142":2,"147":1,"148":1,"149":1,"150":1}}],["typing",{"0":{"58":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1},"2":{"32":3,"34":1,"36":1,"37":2,"47":1,"48":1,"111":1}}],["tuple",{"0":{"33":1,"34":1,"48":1},"2":{"33":2,"34":2,"48":3}}],["t",{"0":{"33":1,"47":1},"2":{"33":10,"47":4,"48":6,"83":4}}],["truediv",{"2":{"27":1,"28":1,"29":1,"145":1}}],["tan",{"0":{"19":1},"2":{"19":2,"20":1}}],["正割值",{"2":{"21":4}}],["正切值",{"2":{"19":4}}],["正弦值",{"2":{"17":4}}],["余割值",{"2":{"22":4}}],["余切值",{"2":{"20":4}}],["余弦值",{"2":{"18":4}}],["余角",{"2":{"12":4}}],["最大值",{"2":{"109":2}}],["最大负角度",{"2":{"16":2}}],["最大负角",{"2":{"16":2}}],["最小值",{"2":{"109":2}}],["最小正角度",{"2":{"15":2}}],["最小正角",{"2":{"15":2}}],["弧度",{"2":{"14":2}}],["角度",{"2":{"14":2}}],["角度或弧度值",{"2":{"11":2}}],["补角",{"2":{"13":4}}],[">",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"25":1,"26":1,"27":1,"28":1,"33":1,"34":5,"36":3,"37":6,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"102":2,"104":3,"109":1,"115":1,"116":2,"117":5,"121":1,"122":1,"123":2,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"133":2,"135":2,"136":1,"137":1,"138":2,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["rmul",{"2":{"143":1}}],["rsub",{"2":{"139":1}}],["right",{"2":{"36":1}}],["reference",{"0":{"159":1},"2":{"127":1}}],["realnumber",{"0":{"47":1,"59":1,"111":1,"141":1,"143":1,"144":1,"145":1},"2":{"47":3,"60":1,"111":3,"141":1,"143":1,"144":1,"145":1}}],["result",{"2":{"34":4}}],["returns",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"33":1,"34":2,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"99":1,"102":1,"103":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"155":1}}],["return",{"2":{"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":2,"23":1,"24":1,"25":1,"26":1,"29":2,"33":3,"34":5,"36":2,"37":5,"42":2,"43":2,"44":6,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"55":2,"56":4,"57":2,"79":5,"80":3,"81":3,"82":2,"83":2,"84":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":5,"94":2,"95":1,"99":2,"102":2,"103":2,"104":2,"109":2,"112":2,"114":1,"115":2,"116":4,"117":4,"121":2,"122":2,"123":2,"124":2,"125":2,"127":2,"128":2,"129":2,"130":1,"133":3,"134":2,"135":2,"138":3,"139":2,"142":3,"143":1,"144":2,"145":1,"146":2,"155":2}}],["range",{"2":{"155":2}}],["rand",{"0":{"95":1},"2":{"95":1}}],["radius",{"0":{"155":1},"2":{"155":7}}],["radian=true",{"2":{"12":1,"13":1,"16":1,"23":1,"25":1,"26":1,"29":1,"80":1,"122":1}}],["radian",{"0":{"11":1},"2":{"11":6,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":2,"24":2,"25":2,"26":1,"29":3}}],["radd",{"2":{"135":1}}],["raise",{"0":{"113":1},"2":{"34":1,"44":1,"45":2,"80":1,"81":1,"82":1,"83":1,"93":1,"112":2,"113":2,"133":1,"138":1,"139":1,"142":1}}],["raises",{"2":{"34":2,"44":2,"45":2,"80":2,"81":2,"82":2,"83":2,"93":2}}],["ratio",{"0":{"4":1}}],["operand",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["overload",{"2":{"26":1,"27":2,"28":1,"90":1,"91":2,"92":1,"99":1,"100":2,"101":1,"130":1,"131":2,"132":1,"135":1,"136":2,"137":1,"139":1,"140":2,"141":1}}],["other",{"0":{"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"42":1,"43":1,"44":1,"45":1,"49":1,"50":1,"51":1,"53":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"85":1,"91":1,"92":1,"93":1,"94":1,"95":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"112":1,"113":1,"114":1,"121":1,"122":1,"123":1,"124":1,"125":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1},"2":{"23":2,"24":2,"25":2,"26":2,"27":1,"28":1,"29":4,"42":5,"43":4,"44":13,"45":9,"49":4,"50":4,"51":5,"53":5,"56":7,"57":5,"79":15,"80":9,"81":9,"82":17,"83":11,"85":4,"91":1,"92":1,"93":10,"94":4,"95":2,"99":6,"100":1,"101":1,"102":6,"103":6,"104":6,"112":9,"113":2,"114":2,"121":6,"122":5,"123":9,"124":4,"125":4,"131":1,"132":1,"133":12,"134":6,"135":6,"136":1,"137":1,"138":12,"139":8,"140":1,"141":1,"142":12,"143":2,"144":6,"145":4}}],["only",{"0":{"116":1,"117":1},"2":{"116":4,"117":4}}],["one",{"2":{"157":1}}],["onearrayfunc",{"0":{"65":1},"2":{"66":1}}],["onesinglevarfunc",{"0":{"48":3,"64":1},"2":{"48":7,"66":1}}],["onevarfunc",{"0":{"32":3,"37":1,"66":1},"2":{"32":9,"37":1}}],["on",{"0":{"52":1},"2":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":2,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["org",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["order",{"2":{"34":2}}],["or",{"2":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":2,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["vmatrix",{"2":{"123":2}}],["v3",{"2":{"123":2}}],["v2",{"2":{"57":2,"88":2,"89":4,"122":1,"123":13}}],["v1x⋅v2y−v1y⋅v2x",{"2":{"123":1}}],["v1z⋅v2x−v1x⋅v2z",{"2":{"123":1}}],["v1y⋅v2z−v1z⋅v2y",{"2":{"123":1}}],["v1×v2=|ijkv1xv1yv1zv2xv2yv2z|",{"2":{"123":1}}],["v1×v2=",{"2":{"123":1}}],["v1⋅v2|v1|⋅|v2|",{"2":{"122":1}}],["v1",{"2":{"57":4,"88":2,"89":2,"122":1,"123":13}}],["vector",{"0":{"118":1},"1":{"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"41":1,"86":1,"87":1,"102":1,"104":3,"142":1}}],["vector3",{"0":{"36":1,"41":1,"86":1,"87":1,"100":1,"104":1,"119":1,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"131":2,"136":2,"140":2,"141":1,"142":2,"143":1,"144":1,"145":1,"146":1,"147":1},"1":{"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"36":2,"38":1,"41":3,"86":4,"87":3,"89":1,"100":1,"102":2,"104":7,"112":2,"121":3,"122":3,"123":7,"124":3,"125":4,"129":3,"131":2,"133":7,"134":2,"136":2,"138":7,"139":1,"140":2,"141":1,"142":9,"143":1,"144":3,"145":2,"146":4,"147":2,"148":2,"149":2,"150":2}}],["v",{"2":{"34":2,"102":2,"104":4,"133":8,"135":2,"138":8,"139":2}}],["view",{"2":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["valueerror",{"2":{"34":3,"45":4,"82":3,"83":3}}],["value",{"0":{"11":1,"111":1},"2":{"11":5,"111":5,"112":6,"113":1}}],["var",{"0":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"33":1,"34":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":2,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1},"2":{"32":3,"33":1,"34":14,"36":1,"37":7,"47":1,"48":1}}],["默认为否",{"2":{"11":2}}],["任意角度",{"2":{"11":2,"38":1}}],["from",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":1,"84":1,"87":1,"88":2,"89":2,"90":2,"104":1,"157":1}}],["frac",{"2":{"36":3,"80":2,"82":3,"122":1}}],["f",{"2":{"36":4,"80":1,"81":1,"93":1,"113":1,"117":3,"133":1,"138":1,"139":1,"142":1}}],["format",{"0":{"117":1},"2":{"117":1}}],["for",{"2":{"33":1,"34":1,"93":1,"133":1,"138":1,"139":1,"142":1,"155":2}}],["functions",{"2":{"42":2,"44":1,"49":2,"50":1,"51":1,"52":1,"53":1,"57":1,"78":1,"79":1,"81":1,"85":1,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["function",{"0":{"35":1},"1":{"36":1,"37":1}}],["func",{"0":{"32":3,"34":3,"36":2,"37":2,"109":1,"115":1,"116":1,"117":1},"2":{"32":15,"33":6,"34":16,"36":9,"37":6}}],["false",{"0":{"11":1,"116":1,"117":1},"2":{"79":1}}],["float=0",{"2":{"115":1}}],["float=1e",{"2":{"49":1}}],["float=approx",{"2":{"42":1,"99":1,"115":1,"121":1,"124":1}}],["float=epsilon",{"2":{"36":1}}],["float",{"0":{"11":1,"14":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"26":1,"27":1,"28":1,"36":1,"42":1,"44":1,"49":1,"78":4,"81":1,"98":3,"99":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"155":2},"2":{"11":1,"14":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"26":1,"27":1,"28":1,"42":2,"44":3,"49":2,"59":1,"78":9,"81":3,"98":7,"99":2,"109":9,"112":2,"115":5,"116":3,"117":3,"120":7,"121":2,"124":2,"128":3,"142":4,"144":2,"155":2}}],["==",{"2":{"33":1,"44":1,"53":1,"54":3,"83":1,"89":1,"93":1}}],["=",{"0":{"11":1,"23":1,"25":1,"26":1,"27":1,"28":1,"34":1,"36":1,"42":1,"49":1,"99":1,"100":1,"101":1,"104":1,"115":2,"116":1,"117":1,"121":1,"124":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"11":2,"32":3,"34":5,"36":5,"37":2,"41":2,"54":3,"55":1,"78":6,"79":6,"80":2,"82":23,"83":2,"87":2,"88":3,"89":3,"98":3,"107":5,"111":1,"120":3,"122":1,"123":2,"126":4,"155":7}}],["improve",{"2":{"159":1}}],["import",{"2":{"104":1}}],["i",{"2":{"123":1,"155":4,"157":1}}],["invalid",{"2":{"34":1}}],["intersect",{"2":{"45":2}}],["intersection",{"0":{"45":1,"82":1,"83":1},"2":{"45":1,"56":1,"82":2,"83":1,"93":2,"95":1}}],["int",{"0":{"34":2,"142":1},"2":{"34":3,"37":8,"59":1,"112":2,"142":2,"155":1}}],["in",{"2":{"33":1,"34":1,"155":2}}],["init",{"0":{"11":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1},"2":{"11":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1}}],["if",{"2":{"11":1,"29":1,"33":1,"34":1,"44":2,"45":2,"54":3,"56":1,"79":1,"80":1,"81":1,"82":2,"83":1,"89":1,"93":3,"112":3,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1,"157":1}}],["isinstance",{"2":{"29":1,"34":2,"44":2,"80":2,"81":2,"93":2,"112":4,"133":2,"138":2,"139":1,"142":2}}],["is",{"0":{"11":1,"49":1,"50":1,"51":1,"52":1,"53":1,"85":1,"124":1,"125":1},"2":{"11":4,"12":1,"13":1,"16":1,"23":1,"25":1,"26":1,"29":1,"42":2,"44":2,"45":2,"49":2,"50":2,"51":3,"52":2,"53":1,"56":3,"57":2,"80":1,"82":1,"85":2,"93":1,"122":1,"124":1,"125":1}}],["sphere",{"0":{"155":1},"2":{"155":1}}],["stop",{"2":{"157":1}}],["staticmethod",{"2":{"154":1,"155":1}}],["stable",{"2":{"127":1}}],["str",{"0":{"116":1,"117":1},"2":{"116":3,"117":3}}],["stdtypes",{"2":{"48":1}}],["s",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["solve",{"2":{"82":3}}],["source",{"2":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["sign",{"0":{"116":1,"117":1},"2":{"116":1,"117":1}}],["simplify",{"0":{"54":1},"2":{"54":1}}],["singlevar",{"0":{"61":1},"2":{"61":1,"63":1,"64":2,"67":3,"70":4,"73":1}}],["sin",{"0":{"17":1},"2":{"17":2,"22":1,"155":3}}],["sub",{"2":{"25":1,"104":1,"136":1,"137":1,"138":1}}],["supplementary",{"0":{"13":1},"2":{"13":1}}],["segment",{"0":{"105":1},"1":{"106":1,"107":1}}],["segment3",{"0":{"106":1},"1":{"107":1},"2":{"38":1}}],["sec",{"0":{"21":1},"2":{"21":1}}],["self",{"0":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"11":3,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"25":2,"26":2,"27":1,"28":1,"29":3,"32":4,"33":7,"41":3,"42":4,"43":2,"44":13,"45":8,"46":3,"47":3,"48":7,"49":2,"50":2,"51":4,"52":3,"53":3,"54":8,"56":6,"57":4,"78":5,"79":16,"80":4,"81":8,"82":15,"83":9,"84":2,"85":2,"86":4,"91":1,"92":1,"93":5,"94":2,"95":2,"98":4,"99":4,"100":1,"101":1,"102":4,"103":4,"104":4,"107":15,"111":2,"112":9,"113":2,"114":2,"120":4,"121":4,"122":3,"123":7,"124":2,"125":2,"126":5,"127":4,"128":4,"129":3,"130":2,"131":1,"132":1,"133":7,"134":4,"135":4,"136":1,"137":1,"138":7,"139":4,"140":1,"141":1,"142":7,"143":2,"144":4,"145":4,"146":4}}],["sqrt",{"2":{"4":1,"128":1,"155":1}}],["can",{"2":{"157":1}}],["cases",{"2":{"82":2}}],["cal",{"0":{"36":1,"43":1,"44":1,"45":1,"46":1,"80":1,"81":1,"82":1,"83":1,"84":1,"122":1},"2":{"36":1,"43":2,"44":1,"45":1,"46":1,"56":1,"80":2,"81":1,"82":1,"83":1,"84":1,"93":2,"95":1,"122":1}}],["callable",{"2":{"64":1,"65":1,"67":1,"68":1,"70":1,"71":1,"73":1,"74":1}}],["call",{"0":{"33":1},"2":{"33":1}}],["cdot",{"2":{"80":4,"122":2,"123":6}}],["cz",{"2":{"78":2}}],["clamp",{"0":{"109":1},"2":{"109":1,"155":1}}],["classmethod",{"2":{"54":1,"55":1,"86":1,"87":2,"88":2,"89":2,"90":1}}],["class",{"0":{"9":1,"10":1,"31":1,"40":1,"77":1,"97":1,"106":1,"110":1,"119":1,"154":1},"1":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1},"2":{"36":1,"41":2,"42":1,"43":2,"44":2,"45":2,"46":2,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":3,"56":3,"57":1,"79":1,"80":3,"81":2,"82":2,"83":2,"84":2,"85":1,"86":1,"87":3,"88":1,"89":1,"90":2,"93":4,"94":1,"99":1,"102":3,"103":1,"104":3,"107":2,"121":1,"122":2,"123":2,"124":1,"125":1,"129":1,"133":4,"134":1,"135":2,"138":4,"139":2,"142":2,"144":1,"146":1}}],["cls",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":2,"87":2,"88":2,"89":2,"90":2}}],["cross",{"0":{"123":1},"2":{"44":4,"45":3,"46":1,"53":1,"82":1,"88":1,"89":1,"123":1,"124":1,"125":1}}],["c",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":6,"83":2,"86":1,"87":3}}],["curried",{"2":{"37":6}}],["currying",{"2":{"37":2}}],["curry",{"0":{"37":1},"2":{"37":3}}],["curveequation",{"0":{"31":1},"1":{"32":1,"33":1},"2":{"38":1}}],["csc",{"0":{"22":1},"2":{"22":1}}],["coincident",{"2":{"83":1}}],["collinear",{"0":{"51":1},"2":{"51":1,"56":1}}],["coplanar",{"0":{"53":1},"2":{"44":1,"45":2,"53":1,"56":1}}],["complex",{"2":{"60":1}}],["complementary",{"0":{"12":1},"2":{"12":1,"80":1}}],["com",{"2":{"37":1}}],["cot",{"0":{"20":1},"2":{"20":1}}],["cos",{"0":{"18":1},"2":{"18":2,"21":1,"155":2}}],["code",{"2":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["constants",{"2":{"56":1,"93":1}}],["const",{"0":{"1":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1}}],["all",{"2":{"99":1,"112":1,"121":1}}],["acos",{"2":{"80":1,"122":1}}],["axis",{"0":{"148":1,"149":1,"150":1}}],["ax",{"2":{"78":2}}],["array",{"0":{"127":1},"2":{"82":6,"127":2,"155":6}}],["arrayvar",{"0":{"62":1},"2":{"62":1,"63":1,"65":2,"68":3,"71":4,"74":1}}],["arccos",{"2":{"80":2,"122":1,"155":1}}],["area",{"2":{"155":2}}],["are",{"2":{"45":2,"82":1,"83":1}}],["args2",{"2":{"37":2}}],["args",{"0":{"37":1},"2":{"11":1,"32":1,"33":1,"34":14,"36":1,"37":5,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"155":1}}],["arguments",{"2":{"11":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"155":1}}],["abs",{"0":{"130":1},"2":{"44":1,"81":1,"99":3,"112":1,"115":1,"117":1,"121":3,"130":1}}],["a",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["aaa",{"2":{"35":1}}],["add",{"2":{"23":1,"37":8,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1}}],["and",{"0":{"56":1,"87":1,"90":1,"91":1,"92":1,"93":1},"2":{"42":1,"45":2,"51":1,"56":1,"57":1,"79":6,"82":4,"83":1,"84":1,"87":1,"88":1,"89":1,"90":2,"91":1,"92":1,"93":2,"103":2,"113":1,"133":1,"134":2,"138":1,"139":1,"142":1}}],["anyangle",{"0":{"10":1,"12":1,"13":1,"15":1,"16":1,"23":2,"25":2,"26":1,"27":1,"28":1,"43":1,"80":1,"122":1},"1":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1},"2":{"12":2,"13":2,"15":2,"16":2,"23":3,"25":3,"26":2,"27":1,"28":1,"29":2,"38":1,"43":3,"80":4,"122":4}}],["angle",{"0":{"8":1,"9":1,"10":1,"43":1,"80":1,"122":1},"1":{"9":1,"10":1,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"25":2,"26":2,"27":2,"28":2,"29":2},"2":{"43":3,"80":3,"122":2}}],["approx",{"0":{"7":1,"42":2,"49":1,"79":1,"99":2,"110":1,"115":2,"121":2,"124":2},"1":{"111":1,"112":1,"113":1,"114":1},"2":{"24":1,"42":3,"49":2,"79":10,"94":1,"99":1,"103":3,"112":4,"115":1,"121":1,"124":1,"125":1,"134":3}}],["约等于判定误差",{"2":{"7":1}}],["精度误差",{"2":{"6":1}}],["06",{"0":{"49":1},"2":{"49":1}}],["001",{"2":{"7":1}}],["0001",{"2":{"6":1}}],["0",{"0":{"115":2},"2":{"5":1,"6":1,"7":1,"33":3,"36":6,"44":2,"53":1,"54":8,"78":2,"79":3,"81":2,"82":15,"83":1,"93":1,"115":1,"116":2,"117":4,"147":3,"148":2,"149":2,"150":2,"155":2}}],["欧拉常数",{"2":{"5":1}}],["geometricmodels",{"0":{"154":1},"1":{"155":1}}],["generated",{"2":{"127":1}}],["get",{"0":{"34":1,"47":1,"48":1},"2":{"34":2,"47":1,"48":1,"83":1,"89":1}}],["gradient",{"0":{"36":1},"2":{"36":1}}],["gt",{"0":{"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"25":1,"26":1,"27":1,"28":1,"33":1,"34":1,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"102":2,"104":2,"117":3,"123":1,"133":2,"135":1,"138":2,"139":1}}],["github",{"2":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["gamma",{"0":{"5":1}}],["golden",{"0":{"4":1}}],["255万个粒子",{"2":{"157":1}}],["2",{"2":{"4":1,"12":1,"15":1,"16":1,"34":1,"36":3,"37":2,"45":1,"81":3,"82":1,"107":3,"128":3,"155":2}}],["5772156649015329",{"2":{"5":1}}],["5",{"2":{"4":1,"81":1}}],["+1",{"2":{"117":2}}],["+=",{"2":{"34":1}}],["+",{"0":{"23":1,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1,"135":1},"2":{"4":1,"23":1,"36":3,"37":4,"45":1,"47":1,"48":3,"78":6,"81":5,"82":3,"83":5,"102":7,"107":3,"116":3,"117":3,"128":2,"133":11,"135":5,"144":2,"155":1}}],["黄金分割比",{"2":{"4":1}}],["1e",{"0":{"49":1}}],["180",{"2":{"11":1,"14":1}}],["1",{"2":{"3":1,"4":1,"20":1,"21":1,"22":1,"33":1,"37":2,"82":1,"89":1,"117":6,"148":1,"149":1,"150":1,"155":4}}],["ep",{"2":{"157":1}}],["epsilon",{"0":{"6":1,"34":2,"36":2,"42":1,"49":1,"99":1,"115":1,"121":1,"124":1},"2":{"34":7,"36":12,"42":5,"49":4,"99":6,"115":4,"121":6,"124":4}}],["error",{"0":{"113":1},"2":{"112":2,"113":1}}],["end",{"2":{"82":1,"123":1}}],["exceptions",{"2":{"44":1,"45":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["examples",{"2":{"37":2}}],["exp",{"2":{"3":1}}],["elif",{"2":{"34":1,"44":3,"56":1,"79":2,"80":1,"81":1,"82":2,"93":1,"112":1,"116":1,"117":1,"133":1,"138":1,"142":1}}],["else",{"2":{"11":1,"33":1,"34":1,"44":2,"56":1,"79":1,"80":1,"81":1,"93":1,"112":2,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1}}],["equations",{"0":{"48":1},"2":{"48":1,"83":1}}],["equation",{"0":{"30":1},"1":{"31":1,"32":1,"33":1,"34":1}}],["eq",{"0":{"24":1,"57":1,"94":1,"103":1,"112":1,"134":1},"2":{"24":1,"57":1,"94":1,"103":1,"112":1,"114":1,"134":1}}],["e",{"0":{"3":1},"2":{"3":1}}],["π",{"2":{"2":1}}],["预设",{"2":{"0":1}}],["phi",{"2":{"155":5}}],["p3",{"0":{"88":1},"2":{"88":4}}],["p2",{"0":{"55":1,"88":1,"107":1},"2":{"55":4,"57":2,"88":4,"107":9}}],["p1",{"0":{"55":1,"88":1,"107":1},"2":{"55":5,"57":2,"88":6,"107":9}}],["perpendicular",{"0":{"46":1},"2":{"46":1}}],["parametric",{"0":{"48":1},"2":{"48":1,"83":1}}],["parallel",{"0":{"49":1,"50":1,"84":1,"85":1,"124":1,"125":1},"2":{"42":2,"44":1,"45":2,"49":2,"50":2,"51":2,"52":1,"56":1,"57":2,"82":2,"83":1,"84":1,"85":2,"93":1,"124":1,"125":1}}],["partial",{"0":{"34":1},"2":{"34":6,"36":6}}],["particle",{"0":{"151":1},"2":{"0":1}}],["planes",{"2":{"82":1}}],["plane",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"93":1,"94":1}}],["plane3",{"0":{"77":1,"79":1,"80":1,"81":1,"82":1,"84":2,"85":1,"87":1,"88":1,"89":1,"90":1,"92":1},"1":{"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"38":1,"79":3,"80":4,"81":4,"82":3,"84":5,"85":3,"87":3,"88":1,"89":1,"90":1,"92":1,"93":4,"94":2,"112":1}}],["plus",{"2":{"34":3}}],["p",{"0":{"36":1},"2":{"36":21,"37":1,"82":1,"102":10,"104":8,"133":4,"135":4,"138":4,"139":4}}],["points",{"0":{"55":1,"88":1},"2":{"55":1,"88":1}}],["point",{"0":{"41":1,"46":1,"47":1,"52":2,"84":1,"87":2,"90":2,"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"36":1,"41":6,"42":2,"44":6,"45":4,"46":7,"47":3,"48":3,"51":2,"52":7,"53":2,"54":3,"55":2,"56":1,"57":2,"81":1,"83":4,"84":6,"87":8,"88":2,"89":6,"90":7,"93":1,"99":1,"102":2,"103":1,"104":1,"107":2,"133":2,"135":2,"138":2,"139":2}}],["point3",{"0":{"33":2,"36":1,"41":1,"44":1,"45":1,"46":1,"47":1,"52":1,"55":2,"56":1,"81":1,"83":2,"84":1,"87":1,"88":3,"90":1,"91":1,"95":1,"97":1,"99":1,"100":1,"101":2,"104":1,"107":2,"132":2,"135":2,"137":2,"139":1},"1":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"33":4,"36":3,"38":1,"41":3,"44":4,"45":3,"46":3,"47":3,"52":3,"55":6,"56":3,"81":4,"82":1,"83":5,"84":3,"87":3,"88":7,"90":3,"91":1,"93":3,"95":2,"99":3,"100":1,"101":2,"102":5,"103":2,"104":3,"107":7,"112":1,"132":2,"133":6,"135":7,"137":2,"138":6,"139":7,"155":3}}],["positive",{"0":{"15":1},"2":{"12":1,"13":1,"15":1}}],["python",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"27":1,"28":1,"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":2,"94":1,"98":1,"99":2,"100":1,"101":1,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":2,"129":1,"131":1,"132":1,"134":1,"136":1,"137":1,"140":1,"141":1,"142":1,"144":1,"155":1}}],["pythondef",{"2":{"11":1,"23":1,"24":1,"25":1,"26":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":2,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"93":1,"94":1,"95":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"130":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["practice",{"0":{"156":1},"1":{"157":1}}],["property",{"2":{"11":1,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":1,"85":1,"86":1,"126":1,"127":2,"128":2,"129":1}}],["presets",{"0":{"152":1,"153":1},"1":{"154":1,"155":1},"2":{"0":1}}],["pi",{"0":{"2":1},"2":{"2":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"155":2}}],["粒子生成工具",{"2":{"0":1}}],["提供了一些工具",{"2":{"0":1}}],["mc特效红石音乐",{"2":{"157":1}}],["model",{"0":{"153":1},"1":{"154":1,"155":1}}],["module",{"0":{"0":1,"1":1,"8":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1}}],["midpoint",{"2":{"107":1}}],["minecraft",{"2":{"157":1}}],["min",{"0":{"109":1},"2":{"109":5}}],["minus",{"2":{"34":3}}],["minimum",{"0":{"15":1},"2":{"12":1,"13":1,"15":1}}],["m",{"2":{"82":1}}],["multiarraysfunc",{"0":{"74":1},"2":{"75":1}}],["multisinglevarsfunc",{"0":{"73":1},"2":{"75":1}}],["multivarsfunc",{"0":{"34":2,"37":1,"75":1},"2":{"34":4,"37":3}}],["mul",{"2":{"26":1,"140":1,"141":1,"142":1,"143":1}}],["matmul",{"2":{"144":1}}],["math导入使用",{"2":{"38":1}}],["math",{"0":{"1":1,"8":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"2":1,"3":1,"4":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":3,"34":1,"36":1,"37":2,"47":1,"48":1,"80":1,"111":1,"122":1,"128":1}}],["max",{"0":{"109":1},"2":{"109":5}}],["maximum",{"0":{"16":1},"2":{"16":1}}],["method",{"0":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["mp",{"0":{"1":1,"8":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"32":3,"34":1,"36":1,"37":2,"38":1,"47":1,"48":1,"111":1}}],["mbcp",{"0":{"0":1,"1":1,"8":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1},"2":{"0":3}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexen.BiKPGziK.js b/assets/chunks/@localSearchIndexen.BiKPGziK.js new file mode 100644 index 0000000..af10e6d --- /dev/null +++ b/assets/chunks/@localSearchIndexen.BiKPGziK.js @@ -0,0 +1 @@ +const t='{"documentCount":160,"nextId":160,"documentIds":{"0":"/en/api/#module-mbcp","1":"/en/api/mp_math/angle.html#module-mbcp-mp-math-angle","2":"/en/api/mp_math/angle.html#class-angle","3":"/en/api/mp_math/angle.html#class-anyangle-angle","4":"/en/api/mp_math/angle.html#method-init-self-value-float-is-radian-bool-false","5":"/en/api/mp_math/angle.html#method-complementary-self-anyangle","6":"/en/api/mp_math/angle.html#method-supplementary-self-anyangle","7":"/en/api/mp_math/angle.html#method-degree-self-float","8":"/en/api/mp_math/angle.html#method-minimum-positive-self-anyangle","9":"/en/api/mp_math/angle.html#method-maximum-negative-self-anyangle","10":"/en/api/mp_math/angle.html#method-sin-self-float","11":"/en/api/mp_math/angle.html#method-cos-self-float","12":"/en/api/mp_math/angle.html#method-tan-self-float","13":"/en/api/mp_math/angle.html#method-cot-self-float","14":"/en/api/mp_math/angle.html#method-sec-self-float","15":"/en/api/mp_math/angle.html#method-csc-self-float","16":"/en/api/mp_math/angle.html#method-self-other-anyangle-anyangle","17":"/en/api/mp_math/angle.html#method-eq-self-other","18":"/en/api/mp_math/angle.html#method-self-other-anyangle-anyangle-1","19":"/en/api/mp_math/angle.html#method-self-other-float-anyangle","20":"/en/api/mp_math/angle.html#method-self-other-float-anyangle-1","21":"/en/api/mp_math/angle.html#method-self-other-anyangle-float","22":"/en/api/mp_math/angle.html#method-self-other","23":"/en/api/mp_math/const.html#module-mbcp-mp-math-const","24":"/en/api/mp_math/const.html#var-pi","25":"/en/api/mp_math/const.html#var-e","26":"/en/api/mp_math/const.html#var-golden-ratio","27":"/en/api/mp_math/const.html#var-gamma","28":"/en/api/mp_math/const.html#var-epsilon","29":"/en/api/mp_math/const.html#var-approx","30":"/en/api/mp_math/equation.html#module-mbcp-mp-math-equation","31":"/en/api/mp_math/equation.html#class-curveequation","32":"/en/api/mp_math/equation.html#method-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","33":"/en/api/mp_math/equation.html#method-call-self-t-var-point3-tuple-point3","34":"/en/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","35":"/en/api/mp_math/function.html#module-mbcp-mp-math-function","36":"/en/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","37":"/en/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","38":"/en/api/mp_math/#module-mbcp-mp-math","39":"/en/api/mp_math/line.html#module-mbcp-mp-math-line","40":"/en/api/mp_math/line.html#class-line3","41":"/en/api/mp_math/line.html#method-init-self-point-point3-direction-vector3","42":"/en/api/mp_math/line.html#method-approx-self-other-line3-epsilon-float-approx-bool","43":"/en/api/mp_math/line.html#method-cal-angle-self-other-line3-anyangle","44":"/en/api/mp_math/line.html#method-cal-distance-self-other-line3-point3-float","45":"/en/api/mp_math/line.html#method-cal-intersection-self-other-line3-point3","46":"/en/api/mp_math/line.html#method-cal-perpendicular-self-point-point3-line3","47":"/en/api/mp_math/line.html#method-get-point-self-t-realnumber-point3","48":"/en/api/mp_math/line.html#method-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","49":"/en/api/mp_math/line.html#method-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","50":"/en/api/mp_math/line.html#method-is-parallel-self-other-line3-bool","51":"/en/api/mp_math/line.html#method-is-collinear-self-other-line3-bool","52":"/en/api/mp_math/line.html#method-is-point-on-self-point-point3-bool","53":"/en/api/mp_math/line.html#method-is-coplanar-self-other-line3-bool","54":"/en/api/mp_math/line.html#method-simplify-self","55":"/en/api/mp_math/line.html#method-from-two-points-cls-p1-point3-p2-point3-line3","56":"/en/api/mp_math/line.html#method-and-self-other-line3-line3-point3-none","57":"/en/api/mp_math/line.html#method-eq-self-other-bool","58":"/en/api/mp_math/mp_math_typing.html#module-mbcp-mp-math-mp-math-typing","59":"/en/api/mp_math/mp_math_typing.html#var-realnumber","60":"/en/api/mp_math/mp_math_typing.html#var-number","61":"/en/api/mp_math/mp_math_typing.html#var-singlevar","62":"/en/api/mp_math/mp_math_typing.html#var-arrayvar","63":"/en/api/mp_math/mp_math_typing.html#var-var","64":"/en/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","65":"/en/api/mp_math/mp_math_typing.html#var-onearrayfunc","66":"/en/api/mp_math/mp_math_typing.html#var-onevarfunc","67":"/en/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","68":"/en/api/mp_math/mp_math_typing.html#var-twoarraysfunc","69":"/en/api/mp_math/mp_math_typing.html#var-twovarsfunc","70":"/en/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","71":"/en/api/mp_math/mp_math_typing.html#var-threearraysfunc","72":"/en/api/mp_math/mp_math_typing.html#var-threevarsfunc","73":"/en/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","74":"/en/api/mp_math/mp_math_typing.html#var-multiarraysfunc","75":"/en/api/mp_math/mp_math_typing.html#var-multivarsfunc","76":"/en/api/mp_math/plane.html#module-mbcp-mp-math-plane","77":"/en/api/mp_math/plane.html#class-plane3","78":"/en/api/mp_math/plane.html#method-init-self-a-float-b-float-c-float-d-float","79":"/en/api/mp_math/plane.html#method-approx-self-other-plane3-bool","80":"/en/api/mp_math/plane.html#method-cal-angle-self-other-line3-plane3-anyangle","81":"/en/api/mp_math/plane.html#method-cal-distance-self-other-plane3-point3-float","82":"/en/api/mp_math/plane.html#method-cal-intersection-line3-self-other-plane3-line3","83":"/en/api/mp_math/plane.html#method-cal-intersection-point3-self-other-line3-point3","84":"/en/api/mp_math/plane.html#method-cal-parallel-plane3-self-point-point3-plane3","85":"/en/api/mp_math/plane.html#method-is-parallel-self-other-plane3-bool","86":"/en/api/mp_math/plane.html#method-normal-self-vector3","87":"/en/api/mp_math/plane.html#method-from-point-and-normal-cls-point-point3-normal-vector3-plane3","88":"/en/api/mp_math/plane.html#method-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","89":"/en/api/mp_math/plane.html#method-from-two-lines-cls-l1-line3-l2-line3-plane3","90":"/en/api/mp_math/plane.html#method-from-point-and-line-cls-point-point3-line-line3-plane3","91":"/en/api/mp_math/plane.html#method-and-self-other-line3-point3-none","92":"/en/api/mp_math/plane.html#method-and-self-other-plane3-line3-none","93":"/en/api/mp_math/plane.html#method-and-self-other","94":"/en/api/mp_math/plane.html#method-eq-self-other-bool","95":"/en/api/mp_math/plane.html#method-rand-self-other-line3-point3","96":"/en/api/mp_math/point.html#module-mbcp-mp-math-point","97":"/en/api/mp_math/point.html#class-point3","98":"/en/api/mp_math/point.html#method-init-self-x-float-y-float-z-float","99":"/en/api/mp_math/point.html#method-approx-self-other-point3-epsilon-float-approx-bool","100":"/en/api/mp_math/point.html#method-self-other-vector3-point3","101":"/en/api/mp_math/point.html#method-self-other-point3-point3","102":"/en/api/mp_math/point.html#method-self-other","103":"/en/api/mp_math/point.html#method-eq-self-other","104":"/en/api/mp_math/point.html#method-self-other-point3-vector3","105":"/en/api/mp_math/segment.html#module-mbcp-mp-math-segment","106":"/en/api/mp_math/segment.html#class-segment3","107":"/en/api/mp_math/segment.html#method-init-self-p1-point3-p2-point3","108":"/en/api/mp_math/utils.html#module-mbcp-mp-math-utils","109":"/en/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","110":"/en/api/mp_math/utils.html#class-approx","111":"/en/api/mp_math/utils.html#method-init-self-value-realnumber","112":"/en/api/mp_math/utils.html#method-eq-self-other","113":"/en/api/mp_math/utils.html#method-raise-type-error-self-other","114":"/en/api/mp_math/utils.html#method-ne-self-other","115":"/en/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","116":"/en/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","117":"/en/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","118":"/en/api/mp_math/vector.html#module-mbcp-mp-math-vector","119":"/en/api/mp_math/vector.html#class-vector3","120":"/en/api/mp_math/vector.html#method-init-self-x-float-y-float-z-float","121":"/en/api/mp_math/vector.html#method-approx-self-other-vector3-epsilon-float-approx-bool","122":"/en/api/mp_math/vector.html#method-cal-angle-self-other-vector3-anyangle","123":"/en/api/mp_math/vector.html#method-cross-self-other-vector3-vector3","124":"/en/api/mp_math/vector.html#method-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","125":"/en/api/mp_math/vector.html#method-is-parallel-self-other-vector3-bool","126":"/en/api/mp_math/vector.html#method-normalize-self","127":"/en/api/mp_math/vector.html#method-np-array-self-np-ndarray","128":"/en/api/mp_math/vector.html#method-length-self-float","129":"/en/api/mp_math/vector.html#method-unit-self-vector3","130":"/en/api/mp_math/vector.html#method-abs-self","131":"/en/api/mp_math/vector.html#method-self-other-vector3-vector3","132":"/en/api/mp_math/vector.html#method-self-other-point3-point3","133":"/en/api/mp_math/vector.html#method-self-other","134":"/en/api/mp_math/vector.html#method-eq-self-other","135":"/en/api/mp_math/vector.html#method-self-other-point3-point3-1","136":"/en/api/mp_math/vector.html#method-self-other-vector3-vector3-1","137":"/en/api/mp_math/vector.html#method-self-other-point3-point3-2","138":"/en/api/mp_math/vector.html#method-self-other-1","139":"/en/api/mp_math/vector.html#method-self-other-point3","140":"/en/api/mp_math/vector.html#method-self-other-vector3-vector3-2","141":"/en/api/mp_math/vector.html#method-self-other-realnumber-vector3","142":"/en/api/mp_math/vector.html#method-self-other-int-float-vector3-vector3","143":"/en/api/mp_math/vector.html#method-self-other-realnumber-vector3-1","144":"/en/api/mp_math/vector.html#method-self-other-vector3-realnumber","145":"/en/api/mp_math/vector.html#method-self-other-realnumber-vector3-2","146":"/en/api/mp_math/vector.html#method-self-vector3","147":"/en/api/mp_math/vector.html#var-zero-vector3","148":"/en/api/mp_math/vector.html#var-x-axis","149":"/en/api/mp_math/vector.html#var-y-axis","150":"/en/api/mp_math/vector.html#var-z-axis","151":"/en/api/particle/#module-mbcp-particle","152":"/en/api/presets/#module-mbcp-presets","153":"/en/api/presets/model/#module-mbcp-presets-model","154":"/en/api/presets/model/#class-geometricmodels","155":"/en/api/presets/model/#method-sphere-radius-float-density-float","156":"/en/demo/best-practice.html#best-practice","157":"/en/demo/best-practice.html#works","158":"/en/guide/#开始不了一点","159":"/en/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,12],"1":[5,1,2],"2":[2,5,1],"3":[4,5,1],"4":[11,9,27],"5":[5,9,26],"6":[5,9,25],"7":[5,9,22],"8":[6,9,23],"9":[6,9,25],"10":[5,9,20],"11":[5,9,20],"12":[5,9,20],"13":[5,9,22],"14":[5,9,22],"15":[5,9,22],"16":[7,9,18],"17":[5,9,14],"18":[6,9,17],"19":[7,9,19],"20":[7,9,16],"21":[7,9,16],"22":[3,9,18],"23":[5,1,2],"24":[2,5,7],"25":[2,5,8],"26":[3,5,10],"27":[2,5,6],"28":[2,5,6],"29":[2,5,6],"30":[5,1,2],"31":[2,5,1],"32":[9,7,22],"33":[10,7,36],"34":[14,5,63],"35":[5,1,2],"36":[13,5,48],"37":[7,5,43],"38":[4,1,20],"39":[5,1,2],"40":[2,5,1],"41":[8,7,21],"42":[11,7,30],"43":[8,7,23],"44":[10,7,45],"45":[8,7,43],"46":[8,7,24],"47":[8,7,27],"48":[9,7,28],"49":[14,7,29],"50":[8,7,23],"51":[8,7,26],"52":[8,7,23],"53":[8,7,29],"54":[4,7,30],"55":[10,7,30],"56":[9,7,36],"57":[6,7,31],"58":[5,1,2],"59":[2,5,9],"60":[2,5,9],"61":[2,5,7],"62":[2,5,8],"63":[2,5,9],"64":[2,5,8],"65":[2,5,8],"66":[2,5,9],"67":[2,5,8],"68":[2,5,8],"69":[2,5,9],"70":[2,5,8],"71":[2,5,8],"72":[2,5,9],"73":[2,5,8],"74":[2,5,8],"75":[2,5,9],"76":[5,1,2],"77":[2,5,1],"78":[9,7,28],"79":[7,7,33],"80":[10,7,58],"81":[10,7,47],"82":[9,7,67],"83":[9,7,54],"84":[9,7,26],"85":[8,7,24],"86":[5,7,23],"87":[10,7,37],"88":[11,7,37],"89":[10,7,41],"90":[10,7,31],"91":[9,7,18],"92":[9,7,18],"93":[5,7,50],"94":[6,7,22],"95":[7,7,18],"96":[5,1,2],"97":[2,5,1],"98":[8,7,19],"99":[11,7,32],"100":[8,7,16],"101":[7,7,15],"102":[4,7,27],"103":[5,7,25],"104":[7,7,31],"105":[5,1,2],"106":[2,5,1],"107":[7,7,30],"108":[5,1,2],"109":[7,5,23],"110":[2,5,1],"111":[6,7,17],"112":[5,7,34],"113":[7,7,18],"114":[5,7,14],"115":[11,5,31],"116":[11,5,33],"117":[12,5,39],"118":[5,1,3],"119":[2,5,1],"120":[8,7,21],"121":[11,7,31],"122":[8,7,31],"123":[6,7,36],"124":[13,7,30],"125":[8,7,26],"126":[4,7,20],"127":[6,7,21],"128":[5,7,26],"129":[5,7,20],"130":[4,7,13],"131":[7,7,15],"132":[7,7,15],"133":[4,7,40],"134":[5,7,25],"135":[7,7,28],"136":[6,7,15],"137":[6,7,15],"138":[3,7,39],"139":[4,7,38],"140":[6,7,15],"141":[7,7,16],"142":[9,7,42],"143":[7,7,16],"144":[7,7,26],"145":[7,7,18],"146":[5,7,20],"147":[3,5,7],"148":[3,5,8],"149":[3,5,8],"150":[3,5,8],"151":[3,1,2],"152":[3,1,2],"153":[4,1,2],"154":[2,4,2],"155":[6,6,49],"156":[2,1,1],"157":[1,2,25],"158":[1,1,2],"159":[1,1,7]},"averageFieldLength":[5.749999999999999,5.931249999999998,19.8],"storedFields":{"0":{"title":"Module mbcp","titles":[]},"1":{"title":"Module mbcp.mp_math.angle","titles":[]},"2":{"title":"class Angle","titles":["Module mbcp.mp_math.angle"]},"3":{"title":"class AnyAngle(Angle)","titles":["Module mbcp.mp_math.angle"]},"4":{"title":"method __init__(self, value: float, is_radian: bool = False)","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"5":{"title":"method complementary(self) -> AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"method supplementary(self) -> AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"method degree(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"method minimum_positive(self) -> AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"method maximum_negative(self) -> AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"method sin(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"method cos(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"method tan(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"method cot(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"method sec(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"method csc(self) -> float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"method self + other: AnyAngle => AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"method __eq__(self, other)","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"method self - other: AnyAngle => AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"method self * other: float => AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"method self / other: float => AnyAngle","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"method self / other: AnyAngle => float","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"method self / other","titles":["Module mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"Module mbcp.mp_math.const","titles":[]},"24":{"title":"var PI","titles":["Module mbcp.mp_math.const"]},"25":{"title":"var E","titles":["Module mbcp.mp_math.const"]},"26":{"title":"var GOLDEN_RATIO","titles":["Module mbcp.mp_math.const"]},"27":{"title":"var GAMMA","titles":["Module mbcp.mp_math.const"]},"28":{"title":"var EPSILON","titles":["Module mbcp.mp_math.const"]},"29":{"title":"var APPROX","titles":["Module mbcp.mp_math.const"]},"30":{"title":"Module mbcp.mp_math.equation","titles":[]},"31":{"title":"class CurveEquation","titles":["Module mbcp.mp_math.equation"]},"32":{"title":"method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["Module mbcp.mp_math.equation","class CurveEquation"]},"33":{"title":"method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["Module mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["Module mbcp.mp_math.equation"]},"35":{"title":"Module mbcp.mp_math.function","titles":[]},"36":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["Module mbcp.mp_math.function"]},"37":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["Module mbcp.mp_math.function"]},"38":{"title":"Module mbcp.mp_math","titles":[]},"39":{"title":"Module mbcp.mp_math.line","titles":[]},"40":{"title":"class Line3","titles":["Module mbcp.mp_math.line"]},"41":{"title":"method __init__(self, point: Point3, direction: Vector3)","titles":["Module mbcp.mp_math.line","class Line3"]},"42":{"title":"method approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"43":{"title":"method cal_angle(self, other: Line3) -> AnyAngle","titles":["Module mbcp.mp_math.line","class Line3"]},"44":{"title":"method cal_distance(self, other: Line3 | Point3) -> float","titles":["Module mbcp.mp_math.line","class Line3"]},"45":{"title":"method cal_intersection(self, other: Line3) -> Point3","titles":["Module mbcp.mp_math.line","class Line3"]},"46":{"title":"method cal_perpendicular(self, point: Point3) -> Line3","titles":["Module mbcp.mp_math.line","class Line3"]},"47":{"title":"method get_point(self, t: RealNumber) -> Point3","titles":["Module mbcp.mp_math.line","class Line3"]},"48":{"title":"method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["Module mbcp.mp_math.line","class Line3"]},"49":{"title":"method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"50":{"title":"method is_parallel(self, other: Line3) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"51":{"title":"method is_collinear(self, other: Line3) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"52":{"title":"method is_point_on(self, point: Point3) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"53":{"title":"method is_coplanar(self, other: Line3) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"54":{"title":"method simplify(self)","titles":["Module mbcp.mp_math.line","class Line3"]},"55":{"title":"method from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["Module mbcp.mp_math.line","class Line3"]},"56":{"title":"method __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["Module mbcp.mp_math.line","class Line3"]},"57":{"title":"method __eq__(self, other) -> bool","titles":["Module mbcp.mp_math.line","class Line3"]},"58":{"title":"Module mbcp.mp_math.mp_math_typing","titles":[]},"59":{"title":"var RealNumber","titles":["Module mbcp.mp_math.mp_math_typing"]},"60":{"title":"var Number","titles":["Module mbcp.mp_math.mp_math_typing"]},"61":{"title":"var SingleVar","titles":["Module mbcp.mp_math.mp_math_typing"]},"62":{"title":"var ArrayVar","titles":["Module mbcp.mp_math.mp_math_typing"]},"63":{"title":"var Var","titles":["Module mbcp.mp_math.mp_math_typing"]},"64":{"title":"var OneSingleVarFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"65":{"title":"var OneArrayFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"66":{"title":"var OneVarFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"67":{"title":"var TwoSingleVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"68":{"title":"var TwoArraysFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"69":{"title":"var TwoVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"70":{"title":"var ThreeSingleVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"71":{"title":"var ThreeArraysFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"72":{"title":"var ThreeVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"73":{"title":"var MultiSingleVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"74":{"title":"var MultiArraysFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"75":{"title":"var MultiVarsFunc","titles":["Module mbcp.mp_math.mp_math_typing"]},"76":{"title":"Module mbcp.mp_math.plane","titles":[]},"77":{"title":"class Plane3","titles":["Module mbcp.mp_math.plane"]},"78":{"title":"method __init__(self, a: float, b: float, c: float, d: float)","titles":["Module mbcp.mp_math.plane","class Plane3"]},"79":{"title":"method approx(self, other: Plane3) -> bool","titles":["Module mbcp.mp_math.plane","class Plane3"]},"80":{"title":"method cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["Module mbcp.mp_math.plane","class Plane3"]},"81":{"title":"method cal_distance(self, other: Plane3 | Point3) -> float","titles":["Module mbcp.mp_math.plane","class Plane3"]},"82":{"title":"method cal_intersection_line3(self, other: Plane3) -> Line3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"83":{"title":"method cal_intersection_point3(self, other: Line3) -> Point3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"84":{"title":"method cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"85":{"title":"method is_parallel(self, other: Plane3) -> bool","titles":["Module mbcp.mp_math.plane","class Plane3"]},"86":{"title":"method normal(self) -> Vector3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"87":{"title":"method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"88":{"title":"method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"89":{"title":"method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"90":{"title":"method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"91":{"title":"method __and__(self, other: Line3) -> Point3 | None","titles":["Module mbcp.mp_math.plane","class Plane3"]},"92":{"title":"method __and__(self, other: Plane3) -> Line3 | None","titles":["Module mbcp.mp_math.plane","class Plane3"]},"93":{"title":"method __and__(self, other)","titles":["Module mbcp.mp_math.plane","class Plane3"]},"94":{"title":"method __eq__(self, other) -> bool","titles":["Module mbcp.mp_math.plane","class Plane3"]},"95":{"title":"method __rand__(self, other: Line3) -> Point3","titles":["Module mbcp.mp_math.plane","class Plane3"]},"96":{"title":"Module mbcp.mp_math.point","titles":[]},"97":{"title":"class Point3","titles":["Module mbcp.mp_math.point"]},"98":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["Module mbcp.mp_math.point","class Point3"]},"99":{"title":"method approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["Module mbcp.mp_math.point","class Point3"]},"100":{"title":"method self + other: Vector3 => Point3","titles":["Module mbcp.mp_math.point","class Point3"]},"101":{"title":"method self + other: Point3 => Point3","titles":["Module mbcp.mp_math.point","class Point3"]},"102":{"title":"method self + other","titles":["Module mbcp.mp_math.point","class Point3"]},"103":{"title":"method __eq__(self, other)","titles":["Module mbcp.mp_math.point","class Point3"]},"104":{"title":"method self - other: Point3 => Vector3","titles":["Module mbcp.mp_math.point","class Point3"]},"105":{"title":"Module mbcp.mp_math.segment","titles":[]},"106":{"title":"class Segment3","titles":["Module mbcp.mp_math.segment"]},"107":{"title":"method __init__(self, p1: Point3, p2: Point3)","titles":["Module mbcp.mp_math.segment","class Segment3"]},"108":{"title":"Module mbcp.mp_math.utils","titles":[]},"109":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["Module mbcp.mp_math.utils"]},"110":{"title":"class Approx","titles":["Module mbcp.mp_math.utils"]},"111":{"title":"method __init__(self, value: RealNumber)","titles":["Module mbcp.mp_math.utils","class Approx"]},"112":{"title":"method __eq__(self, other)","titles":["Module mbcp.mp_math.utils","class Approx"]},"113":{"title":"method raise_type_error(self, other)","titles":["Module mbcp.mp_math.utils","class Approx"]},"114":{"title":"method __ne__(self, other)","titles":["Module mbcp.mp_math.utils","class Approx"]},"115":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["Module mbcp.mp_math.utils"]},"116":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["Module mbcp.mp_math.utils"]},"117":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["Module mbcp.mp_math.utils"]},"118":{"title":"Module mbcp.mp_math.vector","titles":[]},"119":{"title":"class Vector3","titles":["Module mbcp.mp_math.vector"]},"120":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["Module mbcp.mp_math.vector","class Vector3"]},"121":{"title":"method approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["Module mbcp.mp_math.vector","class Vector3"]},"122":{"title":"method cal_angle(self, other: Vector3) -> AnyAngle","titles":["Module mbcp.mp_math.vector","class Vector3"]},"123":{"title":"method cross(self, other: Vector3) -> Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"124":{"title":"method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["Module mbcp.mp_math.vector","class Vector3"]},"125":{"title":"method is_parallel(self, other: Vector3) -> bool","titles":["Module mbcp.mp_math.vector","class Vector3"]},"126":{"title":"method normalize(self)","titles":["Module mbcp.mp_math.vector","class Vector3"]},"127":{"title":"method np_array(self) -> np.ndarray","titles":["Module mbcp.mp_math.vector","class Vector3"]},"128":{"title":"method length(self) -> float","titles":["Module mbcp.mp_math.vector","class Vector3"]},"129":{"title":"method unit(self) -> Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"130":{"title":"method __abs__(self)","titles":["Module mbcp.mp_math.vector","class Vector3"]},"131":{"title":"method self + other: Vector3 => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"132":{"title":"method self + other: Point3 => Point3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"133":{"title":"method self + other","titles":["Module mbcp.mp_math.vector","class Vector3"]},"134":{"title":"method __eq__(self, other)","titles":["Module mbcp.mp_math.vector","class Vector3"]},"135":{"title":"method self + other: Point3 => Point3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"136":{"title":"method self - other: Vector3 => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"137":{"title":"method self - other: Point3 => Point3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"138":{"title":"method self - other","titles":["Module mbcp.mp_math.vector","class Vector3"]},"139":{"title":"method self - other: Point3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"140":{"title":"method self * other: Vector3 => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"141":{"title":"method self * other: RealNumber => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"142":{"title":"method self * other: int | float | Vector3 => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"143":{"title":"method self * other: RealNumber => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"144":{"title":"method self @ other: Vector3 => RealNumber","titles":["Module mbcp.mp_math.vector","class Vector3"]},"145":{"title":"method self / other: RealNumber => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"146":{"title":"method - self => Vector3","titles":["Module mbcp.mp_math.vector","class Vector3"]},"147":{"title":"var zero_vector3","titles":["Module mbcp.mp_math.vector"]},"148":{"title":"var x_axis","titles":["Module mbcp.mp_math.vector"]},"149":{"title":"var y_axis","titles":["Module mbcp.mp_math.vector"]},"150":{"title":"var z_axis","titles":["Module mbcp.mp_math.vector"]},"151":{"title":"Module mbcp.particle","titles":[]},"152":{"title":"Module mbcp.presets","titles":[]},"153":{"title":"Module mbcp.presets.model","titles":[]},"154":{"title":"class GeometricModels","titles":["Module mbcp.presets.model"]},"155":{"title":"method sphere(radius: float, density: float)","titles":["Module mbcp.presets.model","class GeometricModels"]},"156":{"title":"Best Practice","titles":[]},"157":{"title":"Works","titles":["Best Practice"]},"158":{"title":"开始不了一点","titles":[]},"159":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["∫12x111",{"2":{"158":1}}],["开始不了一点",{"0":{"158":1}}],["红石音乐",{"2":{"157":1}}],["这么可爱真是抱歉",{"2":{"157":1}}],["这玩意不太稳定",{"2":{"34":1}}],["轻涟",{"2":{"157":1}}],["芙宁娜pv曲",{"2":{"157":1}}],["有点甜~",{"2":{"157":1}}],["有关函数柯里化",{"2":{"37":1}}],["星穹铁道",{"2":{"157":1}}],["崩坏",{"2":{"157":1}}],["使一颗心免于哀伤",{"2":{"157":1}}],["总有一条蜿蜒在童话镇里",{"2":{"157":1}}],["童话镇~",{"2":{"157":1}}],["特效红石音乐",{"2":{"157":2}}],["works",{"0":{"157":1}}],["warning",{"2":{"34":1}}],["4",{"2":{"155":1}}],["球体上的点集",{"2":{"155":1}}],["生成球体上的点集",{"2":{"155":1}}],["几何模型点集",{"2":{"153":1}}],["零向量",{"2":{"147":1}}],["负向量",{"2":{"146":1}}],["取负",{"2":{"146":1}}],["取两平面的交集",{"2":{"93":1}}],["非点乘",{"2":{"142":1}}],["别去点那边实现了",{"2":{"135":1}}],["单位向量",{"2":{"129":1}}],["单变量",{"2":{"61":1}}],["模",{"2":{"128":1}}],["将向量归一化",{"2":{"126":1}}],["转换为行列式形式",{"2":{"123":1}}],["叉乘使用cross",{"2":{"142":1}}],["叉乘结果",{"2":{"123":1}}],["叉乘运算法则为",{"2":{"123":1}}],["叉乘",{"2":{"123":1}}],["向量的模",{"2":{"128":1}}],["向量积",{"2":{"123":1}}],["向量夹角计算公式",{"2":{"122":1}}],["以及一些常用的向量",{"2":{"118":1}}],["格式化符号数",{"2":{"117":1}}],["quot",{"2":{"116":2,"117":4}}],["符号",{"2":{"116":1,"117":1}}],["获取该向量的单位向量",{"2":{"129":1}}],["获取数的符号",{"2":{"116":1}}],["获取直线的参数方程",{"2":{"48":1}}],["获取直线上的点",{"2":{"47":1}}],["用于判断是否近似于0",{"2":{"115":1}}],["用于近似比较对象",{"2":{"111":1}}],["或包装一个实数",{"2":{"115":1}}],["或整数元组",{"2":{"34":1}}],["限定在区间内的值",{"2":{"109":1}}],["值",{"2":{"109":1}}],["区间限定函数",{"2":{"109":1}}],["us",{"2":{"159":1}}],["unit",{"0":{"129":1},"2":{"129":1}}],["unsupported",{"2":{"44":1,"80":1,"81":1,"93":1,"113":1,"133":1,"138":1,"139":1,"142":1}}],["utils",{"0":{"108":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1}}],["中心点",{"2":{"107":1}}],["中实现",{"2":{"104":1}}],["长度",{"2":{"107":1}}],["线段的另一个端点",{"2":{"107":1}}],["线段的一个端点",{"2":{"107":1}}],["新的向量或点",{"2":{"133":1}}],["新的向量",{"2":{"104":1,"138":1}}],["新的点",{"2":{"102":1,"135":1,"139":1}}],["已在",{"2":{"104":1}}],["已知一个函数f",{"2":{"36":1}}],["坐标",{"2":{"98":3}}],["笛卡尔坐标系中的点",{"2":{"98":1}}],["人话",{"2":{"93":1}}],["法向量",{"2":{"86":1,"87":1}}],["help",{"2":{"159":1}}],["heart",{"2":{"157":1}}],["have",{"2":{"82":1}}],["high",{"2":{"34":2}}],["并代入两平面方程求出合适的点",{"2":{"82":1}}],["并对向量单位化",{"2":{"54":1}}],["依次假设x=0",{"2":{"82":1}}],["寻找直线上的一点",{"2":{"82":1}}],["求两平面的法向量的叉乘得到方向向量",{"2":{"82":1}}],["求n元函数一阶偏导函数",{"2":{"34":1}}],["为直线的方向向量",{"2":{"80":1}}],["为平面的法向量",{"2":{"80":1}}],["分别为两个平面的法向量",{"2":{"80":1}}],["和",{"2":{"80":1}}],["其中",{"2":{"80":2}}],["θ=arccos⁡",{"2":{"80":2,"122":1}}],["k",{"2":{"79":12}}],["常数项",{"2":{"78":1}}],["常量",{"2":{"24":1}}],["平面上一点",{"2":{"87":1,"90":1}}],["平面的法向量",{"2":{"86":1}}],["平面",{"2":{"84":1,"87":1,"88":1,"89":1,"90":1}}],["平面与直线平行或重合",{"2":{"83":1}}],["平面与直线夹角计算公式",{"2":{"80":1}}],["平面平行且无交线",{"2":{"82":1}}],["平面间夹角计算公式",{"2":{"80":1}}],["平面方程",{"2":{"78":1}}],["平行线返回none",{"2":{"56":1}}],["多元函数",{"2":{"75":1}}],["多元数组函数",{"2":{"74":1}}],["多元单变量函数",{"2":{"73":1}}],["二元函数",{"2":{"69":1}}],["二元数组函数",{"2":{"68":1}}],["二元单变量函数",{"2":{"67":1}}],["一元函数",{"2":{"66":1}}],["一元数组函数",{"2":{"65":1}}],["一元单变量函数",{"2":{"64":1}}],["一阶偏导",{"2":{"34":1}}],["变量",{"2":{"63":1}}],["变量位置",{"2":{"34":1}}],["数组运算结果",{"2":{"142":1}}],["数组运算",{"2":{"142":1}}],["数组变量",{"2":{"62":1}}],["数2",{"2":{"115":1}}],["数1",{"2":{"115":1}}],["数",{"2":{"60":1,"116":1,"117":1}}],["数学工具",{"2":{"0":1}}],["实数",{"2":{"59":1,"111":1}}],["∧",{"2":{"57":1}}],["交线",{"2":{"82":1,"93":1}}],["交线返回交点",{"2":{"56":1}}],["交集",{"2":{"56":1,"93":1}}],["交点",{"2":{"45":1,"83":1}}],["重合线返回自身",{"2":{"56":1}}],["由点和直线构造平面",{"2":{"90":1}}],["由点和法向量构造平面",{"2":{"87":1}}],["由两直线构造平面",{"2":{"89":1}}],["由两点构造直线",{"2":{"55":1}}],["由三点构造平面",{"2":{"88":1}}],["由一个点和一个方向向量确定",{"2":{"41":1}}],["工厂函数",{"2":{"55":1,"87":1,"88":1,"89":1,"90":1}}],["处理",{"2":{"54":1}}],["处的梯度向量为",{"2":{"36":1}}],["化",{"2":{"54":1}}],["按照可行性一次对x",{"2":{"54":1}}],["不返回值",{"2":{"54":1,"126":1}}],["不支持的类型",{"2":{"44":1,"80":1,"81":1,"93":1}}],["自体归一化",{"2":{"126":1}}],["自体简化",{"2":{"54":1}}],["自然对数的底",{"2":{"25":1}}],["等价相等",{"2":{"54":1}}],["简化直线方程",{"2":{"54":1}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"53":1}}],["两角的和为180°",{"2":{"6":1}}],["两角的和为90°",{"2":{"5":1}}],["充要条件",{"2":{"53":1}}],["判断两个向量是否相等",{"2":{"134":1}}],["判断两个向量是否平行",{"2":{"125":1}}],["判断两个向量是否近似平行",{"2":{"124":1}}],["判断两个向量是否近似相等",{"2":{"121":1}}],["判断两个数是否近似相等",{"2":{"115":1}}],["判断两个点是否相等",{"2":{"103":1}}],["判断两个点是否近似相等",{"2":{"99":1}}],["判断两个平面是否等价",{"2":{"94":1}}],["判断两个平面是否平行",{"2":{"85":1}}],["判断两个平面是否近似相等",{"2":{"79":1}}],["判断两条直线是否等价",{"2":{"57":1}}],["判断两条直线是否共面",{"2":{"53":1}}],["判断两条直线是否共线",{"2":{"51":1}}],["判断两条直线是否平行",{"2":{"50":1}}],["判断两条直线是否近似平行",{"2":{"49":1}}],["判断两条直线是否近似相等",{"2":{"42":1}}],["判断点是否在直线上",{"2":{"52":1}}],["另一个向量或数",{"2":{"142":1}}],["另一个向量或点",{"2":{"133":1,"138":1}}],["另一个向量",{"2":{"121":1,"122":1,"123":1,"124":1,"125":1,"134":1,"144":1}}],["另一个点或向量",{"2":{"102":1}}],["另一个点",{"2":{"99":1,"103":1,"104":1,"135":1,"139":1}}],["另一个平面或点",{"2":{"81":1}}],["另一个平面或直线",{"2":{"80":1,"93":1}}],["另一个平面",{"2":{"79":1,"82":1,"85":1,"94":1}}],["另一",{"2":{"50":1,"51":1,"53":1}}],["另一条直线或点",{"2":{"44":1}}],["另一条直线",{"2":{"42":1,"43":1,"45":1,"49":1,"56":1,"57":1}}],["则同一个t对应的点不同",{"2":{"47":1}}],["则其在点",{"2":{"36":1}}],["但起始点和方向向量不同",{"2":{"47":1}}],["同一条直线",{"2":{"47":1}}],["垂线",{"2":{"46":1}}],["指定点",{"2":{"46":1,"84":1}}],["直线最终可用参数方程或点向式表示",{"2":{"82":1}}],["直线",{"2":{"55":1,"83":1,"89":2,"90":1}}],["直线不共面",{"2":{"45":1}}],["直线平行",{"2":{"45":1}}],["直线上的一点",{"2":{"41":1}}],["距离",{"2":{"44":1,"81":1}}],["夹角",{"2":{"43":1,"80":1,"122":1}}],["是否只返回负数的符号",{"2":{"116":1,"117":1}}],["是否相等",{"2":{"103":1,"134":1}}],["是否等价",{"2":{"57":1,"94":1}}],["是否共面",{"2":{"53":1}}],["是否共线",{"2":{"51":1}}],["是否在直线上",{"2":{"52":1}}],["是否平行",{"2":{"50":1,"85":1,"125":1}}],["是否近似平行",{"2":{"49":1,"124":1}}],["是否近似相等",{"2":{"42":1,"79":1,"99":1,"115":1,"121":1}}],["是否为弧度",{"2":{"4":1}}],["误差",{"2":{"42":1,"49":1,"99":1,"115":1,"121":1,"124":1}}],["方向向量",{"2":{"41":1,"107":1}}],["三元数组函数",{"2":{"71":1}}],["三元单变量函数",{"2":{"70":1}}],["三元函数",{"2":{"36":1,"72":1}}],["三维空间中的线段",{"2":{"107":1}}],["三维空间中的直线",{"2":{"41":1}}],["三维向量",{"2":{"38":1}}],["三维线段",{"2":{"38":1}}],["三维点",{"2":{"38":1}}],["三维平面",{"2":{"38":1}}],["三维直线",{"2":{"38":1}}],["导入的类有",{"2":{"38":1}}],["本包定义了一些常用的导入",{"2":{"38":1}}],["本模块塞了一些预设",{"2":{"152":1}}],["本模块用于内部类型提示",{"2":{"58":1}}],["本模块定义了粒子生成相关的工具",{"2":{"151":1}}],["本模块定义了3维向量的类vector3",{"2":{"118":1}}],["本模块定义了一些常用的工具函数",{"2":{"108":1}}],["本模块定义了一些常用的常量",{"2":{"23":1}}],["本模块定义了三维空间中点的类",{"2":{"96":1}}],["本模块定义了三维空间中的线段类",{"2":{"105":1}}],["本模块定义了三维空间中的平面类",{"2":{"76":1}}],["本模块定义了三维空间中的直线类",{"2":{"39":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"30":1}}],["本模块定义了角度相关的类",{"2":{"1":1}}],["本模块是主模块",{"2":{"0":1}}],["6",{"2":{"37":1}}],["3维向量",{"2":{"120":1}}],["3",{"2":{"37":1}}],["3vf",{"0":{"36":1},"2":{"36":1}}],["breaking",{"2":{"157":1}}],["best",{"0":{"156":1},"1":{"157":1}}],["by",{"2":{"78":1}}],["bound=iterable",{"2":{"62":1}}],["bound=number",{"2":{"61":1}}],["bool=false",{"2":{"4":1,"116":1,"117":1}}],["bool",{"0":{"4":1,"42":1,"49":1,"50":1,"51":1,"52":1,"53":1,"57":1,"79":1,"85":1,"94":1,"99":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1},"2":{"42":2,"49":2,"50":2,"51":2,"52":2,"53":2,"57":2,"79":2,"85":2,"94":2,"99":2,"103":1,"115":2,"116":1,"117":1,"121":2,"124":2,"125":2,"134":1}}],["b",{"0":{"78":1},"2":{"37":2,"78":4,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["柯里化后的函数",{"2":{"37":1}}],["柯理化",{"2":{"37":1}}],["函数",{"2":{"37":1}}],["对多参数函数进行柯里化",{"2":{"37":1}}],["d=n1×n2",{"2":{"82":1}}],["d",{"0":{"78":1},"2":{"78":5,"79":6,"80":1,"81":1,"82":6,"83":1,"87":2}}],["documentation",{"2":{"159":1}}],["do",{"2":{"45":2}}],["distance",{"0":{"44":1,"81":1},"2":{"44":1,"81":1}}],["direction",{"0":{"41":1},"2":{"41":4,"42":1,"43":2,"44":8,"45":6,"46":1,"47":1,"48":3,"49":2,"50":2,"51":1,"52":1,"53":2,"54":4,"55":2,"57":3,"80":1,"82":2,"83":4,"89":1,"90":1,"93":1,"107":2}}],["dz",{"2":{"36":2}}],["dy",{"2":{"36":2}}],["dx",{"2":{"36":2}}],["density",{"0":{"155":1},"2":{"155":3}}],["derivative",{"0":{"34":1},"2":{"34":6}}],["degree",{"0":{"7":1},"2":{"7":1}}],["default",{"2":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1}}],["def",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"34":2,"37":1,"55":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"155":1}}],["description",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"147":1,"148":1,"149":1,"150":1,"155":1}}],["梯度",{"2":{"36":1}}],["点乘结果",{"2":{"144":1}}],["点乘",{"2":{"144":1}}],["点乘使用",{"2":{"142":1}}],["点3",{"2":{"88":1}}],["点法式构造",{"2":{"87":1}}],["点2",{"2":{"55":1,"88":1}}],["点1",{"2":{"55":1,"88":1}}],["点",{"2":{"36":1,"47":1,"52":1}}],["∂f∂z",{"2":{"36":1}}],["∂f∂y",{"2":{"36":1}}],["∂f∂x",{"2":{"36":1}}],["∇f",{"2":{"36":1}}],["计算平行于该平面且过指定点的平面",{"2":{"84":1}}],["计算平面与直线的交点",{"2":{"83":1}}],["计算平面与平面或点之间的距离",{"2":{"81":1}}],["计算平面与平面之间的夹角",{"2":{"80":1}}],["计算两个向量之间的夹角",{"2":{"122":1}}],["计算两平面交线的一般步骤",{"2":{"82":1}}],["计算两平面的交线",{"2":{"82":1}}],["计算两条直线点集合的交集",{"2":{"56":1}}],["计算两条直线的交点",{"2":{"45":1}}],["计算直线经过指定点p的垂线",{"2":{"46":1}}],["计算直线和直线或点之间的距离",{"2":{"44":1}}],["计算直线和直线之间的夹角",{"2":{"43":1}}],["计算三元函数在某点的梯度向量",{"2":{"36":1}}],["计算曲线上的点",{"2":{"33":1}}],["l2",{"0":{"89":1},"2":{"89":4}}],["l1",{"0":{"89":1},"2":{"89":6}}],["lambda",{"2":{"48":3}}],["linalg",{"2":{"82":3}}],["lines",{"0":{"89":1},"2":{"45":2,"89":1}}],["line",{"0":{"39":1,"90":2},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"83":1,"90":4}}],["line3",{"0":{"40":1,"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"80":1,"82":2,"83":1,"89":2,"90":1,"91":1,"92":1,"95":1},"1":{"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"38":1,"42":2,"43":2,"44":3,"45":2,"46":3,"49":2,"50":2,"51":2,"53":2,"55":2,"56":4,"57":1,"80":3,"82":4,"83":2,"89":4,"90":2,"91":1,"92":1,"93":4,"95":1,"112":1}}],["list",{"2":{"34":8,"155":9}}],["length",{"0":{"128":1},"2":{"44":5,"45":1,"80":2,"107":2,"122":2,"124":1,"126":5,"128":1,"129":1,"130":1}}],["len",{"2":{"33":1}}],["无效变量类型",{"2":{"34":1}}],["偏导函数",{"2":{"34":1}}],["偏移量",{"2":{"34":1,"36":1}}],["高阶偏导",{"2":{"34":1}}],["可愛くてごめん",{"2":{"157":1}}],["可直接从mbcp",{"2":{"38":1}}],["可参考函数式编程",{"2":{"37":1}}],["可为整数",{"2":{"34":1}}],["可导入",{"2":{"0":1}}],["因此该函数的稳定性有待提升",{"2":{"34":1}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"34":1}}],["目标点",{"2":{"33":1}}],["慎用",{"2":{"34":1}}],["num",{"2":{"155":5}}],["numpy数组",{"2":{"127":1}}],["number=epsilon",{"2":{"34":1}}],["number",{"0":{"34":1,"60":1},"2":{"62":1}}],["ndarray",{"0":{"127":1},"2":{"127":2}}],["neg",{"0":{"116":1,"117":1},"2":{"116":3,"117":3,"146":1}}],["negative",{"0":{"9":1},"2":{"9":1}}],["ne",{"0":{"114":1},"2":{"114":1}}],["np",{"0":{"127":2},"2":{"82":9,"127":4,"155":9}}],["n",{"2":{"80":1}}],["n⋅d|n|⋅|d|",{"2":{"80":1}}],["n2",{"2":{"80":1}}],["n1",{"2":{"80":1}}],["n1⋅n2|n1|⋅|n2|",{"2":{"80":1}}],["no",{"2":{"82":1}}],["normal",{"0":{"86":1,"87":2},"2":{"80":5,"82":4,"83":1,"84":2,"85":2,"86":1,"87":6,"88":3,"89":1,"90":1,"93":3}}],["normalize",{"0":{"126":1},"2":{"54":1,"126":1}}],["none",{"0":{"56":1,"91":1,"92":1},"2":{"56":3,"91":1,"92":1,"93":3}}],["not",{"2":{"44":1,"45":4,"56":1,"114":1,"116":1,"117":1}}],["n元函数",{"2":{"34":1}}],["参数方程",{"2":{"48":1}}],["参数t",{"2":{"47":1}}],["参数",{"2":{"33":1,"37":1}}],["|",{"0":{"33":1,"34":1,"44":1,"56":2,"80":1,"81":1,"91":1,"92":1,"142":2},"2":{"33":1,"34":1,"44":2,"56":4,"59":1,"60":1,"63":1,"66":1,"69":1,"72":1,"75":1,"80":2,"81":2,"91":1,"92":1,"93":3,"102":1,"133":2,"138":2,"142":3}}],["曲线方程",{"2":{"32":1,"38":1}}],["z轴单位向量",{"2":{"150":1}}],["z轴分量",{"2":{"120":1}}],["zero",{"0":{"147":1},"2":{"89":1,"125":1}}],["z=0",{"2":{"82":1}}],["z系数",{"2":{"78":1}}],["z0",{"2":{"36":2}}],["zip",{"2":{"33":1}}],["z函数",{"2":{"32":1}}],["z",{"0":{"32":1,"98":1,"120":1,"150":1},"2":{"32":4,"33":4,"36":7,"48":2,"54":3,"81":1,"82":4,"83":4,"87":2,"98":5,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"120":4,"121":2,"123":4,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["y轴单位向量",{"2":{"149":1}}],["y轴分量",{"2":{"120":1}}],["y=0",{"2":{"82":1}}],["y系数",{"2":{"78":1}}],["y0",{"2":{"36":2}}],["y函数",{"2":{"32":1}}],["y",{"0":{"32":1,"98":1,"115":1,"120":1,"149":1},"2":{"32":4,"33":4,"36":7,"48":2,"54":3,"81":1,"82":4,"83":4,"87":2,"98":5,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"115":3,"120":4,"121":2,"123":4,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["x轴单位向量",{"2":{"148":1}}],["x轴分量",{"2":{"120":1}}],["x3c",{"2":{"99":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x26",{"2":{"93":1}}],["x−x0m=y−y0n=z−z0p",{"2":{"82":1}}],["x=x0+dty=y0+dtz=z0+dt或",{"2":{"82":1}}],["x系数",{"2":{"78":1}}],["x0",{"2":{"36":2}}],["x函数",{"2":{"32":1}}],["x",{"0":{"32":1,"98":1,"109":1,"115":1,"116":1,"117":1,"120":1,"148":1},"2":{"32":4,"33":4,"36":7,"48":2,"54":2,"81":1,"82":4,"83":4,"87":2,"98":5,"99":2,"102":2,"103":2,"104":2,"107":2,"109":3,"112":2,"115":3,"116":4,"117":7,"120":4,"121":2,"123":5,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["约等于判定误差",{"2":{"29":1}}],["精度误差",{"2":{"28":1}}],["06",{"0":{"49":1},"2":{"49":1}}],["001",{"2":{"29":1}}],["0001",{"2":{"28":1}}],["0",{"0":{"115":2},"2":{"27":1,"28":1,"29":1,"33":3,"44":2,"53":1,"54":7,"78":1,"79":3,"81":2,"82":9,"83":1,"93":1,"115":1,"116":2,"117":3,"147":3,"148":2,"149":2,"150":2,"155":2}}],["欧拉常数",{"2":{"27":1}}],["5772156649015329",{"2":{"27":1}}],["5",{"2":{"26":1,"81":1}}],["黄金分割比",{"2":{"26":1}}],["π",{"2":{"24":1}}],["to",{"2":{"159":1}}],["theta",{"2":{"155":3}}],["the",{"2":{"83":2,"159":1}}],["three",{"0":{"88":1},"2":{"88":1}}],["threevarsfunc",{"0":{"72":1}}],["threearraysfunc",{"0":{"71":1},"2":{"72":1}}],["threesinglevarsfunc",{"0":{"36":1,"70":1},"2":{"36":2,"72":1}}],["typing",{"0":{"58":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["typevar",{"2":{"61":1,"62":1}}],["typealias",{"2":{"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["typeerror",{"2":{"44":2,"80":2,"81":2,"93":2,"113":1,"133":1,"138":1,"139":1,"142":1}}],["type",{"0":{"113":1},"2":{"34":1,"44":1,"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"80":2,"81":2,"93":2,"112":2,"113":4,"133":2,"138":2,"139":2,"142":2,"147":1,"148":1,"149":1,"150":1}}],["twovarsfunc",{"0":{"69":1}}],["twoarraysfunc",{"0":{"68":1},"2":{"69":1}}],["twosinglevarsfunc",{"0":{"67":1},"2":{"69":1}}],["two",{"0":{"55":1,"89":1},"2":{"55":1,"89":1}}],["tip",{"2":{"36":1,"37":1,"80":2,"82":1,"122":1,"123":1}}],["tuple",{"0":{"33":1,"34":1,"48":1},"2":{"33":2,"34":2,"48":2}}],["t",{"0":{"33":1,"47":1},"2":{"33":9,"47":3,"48":6,"83":4}}],["truediv",{"2":{"20":1,"21":1,"22":1,"145":1}}],["tan",{"0":{"12":1},"2":{"12":2,"13":1}}],["ep",{"2":{"157":1}}],["epsilon",{"0":{"28":1,"34":2,"36":2,"42":1,"49":1,"99":1,"115":1,"121":1,"124":1},"2":{"34":6,"36":11,"42":4,"49":3,"99":5,"115":3,"121":5,"124":3}}],["error",{"0":{"113":1},"2":{"112":2,"113":1}}],["examples",{"2":{"37":1}}],["exp",{"2":{"25":1}}],["elif",{"2":{"34":1,"44":3,"56":1,"79":2,"80":1,"81":1,"82":2,"93":1,"112":1,"116":1,"117":1,"133":1,"138":1,"142":1}}],["else",{"2":{"4":1,"33":1,"34":1,"44":2,"56":1,"79":1,"80":1,"81":1,"93":1,"112":2,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1}}],["e",{"0":{"25":1},"2":{"25":1}}],["equations",{"0":{"48":1},"2":{"48":1,"83":1}}],["equation",{"0":{"30":1},"1":{"31":1,"32":1,"33":1,"34":1}}],["eq",{"0":{"17":1,"57":1,"94":1,"103":1,"112":1,"134":1},"2":{"17":1,"57":1,"94":1,"103":1,"112":1,"114":1,"134":1}}],["+1",{"2":{"117":1}}],["+=",{"2":{"34":1}}],["+",{"0":{"16":1,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1,"135":1},"2":{"16":1,"26":1,"36":3,"37":2,"45":1,"47":1,"48":3,"78":3,"81":5,"83":5,"102":5,"107":3,"116":2,"117":2,"128":2,"133":9,"135":4,"144":2,"155":1}}],["1e",{"0":{"49":1}}],["1",{"2":{"13":1,"14":1,"15":1,"25":1,"26":1,"33":1,"37":1,"89":1,"117":3,"148":1,"149":1,"150":1,"155":4}}],["180",{"2":{"4":1,"7":1}}],["正割值",{"2":{"14":2}}],["正切值",{"2":{"12":2}}],["正弦值",{"2":{"10":2}}],["余割值",{"2":{"15":2}}],["余切值",{"2":{"13":2}}],["余弦值",{"2":{"11":2}}],["余角",{"2":{"5":2}}],["最大值",{"2":{"109":1}}],["最大负角度",{"2":{"9":1}}],["最大负角",{"2":{"9":1}}],["最小值",{"2":{"109":1}}],["最小正角度",{"2":{"8":1}}],["最小正角",{"2":{"8":1}}],["弧度",{"2":{"7":1}}],["角度",{"2":{"7":1}}],["角度或弧度值",{"2":{"4":1}}],["补角",{"2":{"6":2}}],["255万个粒子",{"2":{"157":1}}],["2",{"2":{"5":1,"8":1,"9":1,"26":1,"34":1,"36":3,"37":1,"45":1,"81":3,"107":3,"128":3,"155":2}}],[">",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":3,"36":1,"37":3,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"104":1,"109":1,"115":1,"116":2,"117":2,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["rmul",{"2":{"143":1}}],["rsub",{"2":{"139":1}}],["reference",{"0":{"159":1}}],["realnumber",{"0":{"47":1,"59":1,"111":1,"141":1,"143":1,"144":1,"145":1},"2":{"47":2,"60":1,"111":2,"141":1,"143":1,"144":1,"145":1}}],["result",{"2":{"34":4}}],["return",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":1,"17":1,"18":1,"19":1,"22":2,"33":3,"34":5,"36":2,"37":4,"42":2,"43":2,"44":6,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"55":2,"56":4,"57":2,"79":5,"80":3,"81":3,"82":2,"83":2,"84":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":5,"94":2,"95":1,"99":2,"102":2,"103":2,"104":2,"109":2,"112":2,"114":1,"115":2,"116":4,"117":4,"121":2,"122":2,"123":2,"124":2,"125":2,"127":2,"128":2,"129":2,"130":1,"133":3,"134":2,"135":2,"138":3,"139":2,"142":3,"143":1,"144":2,"145":1,"146":2,"155":2}}],["range",{"2":{"155":2}}],["rand",{"0":{"95":1},"2":{"95":1}}],["radius",{"0":{"155":1},"2":{"155":6}}],["radian=true",{"2":{"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"80":1,"122":1}}],["radian",{"0":{"4":1},"2":{"4":5,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":2,"17":2,"18":2,"19":1,"22":3}}],["radd",{"2":{"135":1}}],["raise",{"0":{"113":1},"2":{"34":1,"44":1,"45":2,"80":1,"81":1,"82":1,"83":1,"93":1,"112":2,"113":2,"133":1,"138":1,"139":1,"142":1}}],["raises",{"2":{"34":1,"44":1,"45":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["ratio",{"0":{"26":1}}],["geometricmodels",{"0":{"154":1},"1":{"155":1}}],["get",{"0":{"34":1,"47":1,"48":1},"2":{"34":2,"47":1,"48":1,"83":1,"89":1}}],["gradient",{"0":{"36":1},"2":{"36":1}}],["gamma",{"0":{"27":1}}],["golden",{"0":{"26":1}}],["gt",{"0":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":1,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"102":2,"104":2,"117":3,"123":1,"133":2,"135":1,"138":2,"139":1}}],["github",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["operand",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["overload",{"2":{"19":1,"20":2,"21":1,"90":1,"91":2,"92":1,"99":1,"100":2,"101":1,"130":1,"131":2,"132":1,"135":1,"136":2,"137":1,"139":1,"140":2,"141":1}}],["other",{"0":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"42":1,"43":1,"44":1,"45":1,"49":1,"50":1,"51":1,"53":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"85":1,"91":1,"92":1,"93":1,"94":1,"95":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"112":1,"113":1,"114":1,"121":1,"122":1,"123":1,"124":1,"125":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1},"2":{"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":4,"42":4,"43":3,"44":12,"45":8,"49":3,"50":3,"51":4,"53":4,"56":6,"57":4,"79":14,"80":8,"81":8,"82":16,"83":10,"85":3,"91":1,"92":1,"93":9,"94":3,"95":2,"99":5,"100":1,"101":1,"102":5,"103":5,"104":5,"112":9,"113":2,"114":2,"121":5,"122":4,"123":8,"124":3,"125":3,"131":1,"132":1,"133":11,"134":5,"135":5,"136":1,"137":1,"138":11,"139":7,"140":1,"141":1,"142":11,"143":2,"144":5,"145":4}}],["only",{"0":{"116":1,"117":1},"2":{"116":3,"117":3}}],["one",{"2":{"157":1}}],["onearrayfunc",{"0":{"65":1},"2":{"66":1}}],["onesinglevarfunc",{"0":{"48":3,"64":1},"2":{"48":6,"66":1}}],["onevarfunc",{"0":{"32":3,"37":1,"66":1},"2":{"32":6,"37":1}}],["on",{"0":{"52":1},"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":2,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["order",{"2":{"34":2}}],["or",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":2,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["v3",{"2":{"123":1}}],["vector",{"0":{"118":1},"1":{"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"104":1}}],["vector3",{"0":{"36":1,"41":1,"86":1,"87":1,"100":1,"104":1,"119":1,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"131":2,"136":2,"140":2,"141":1,"142":2,"143":1,"144":1,"145":1,"146":1,"147":1},"1":{"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"36":2,"38":1,"41":2,"86":3,"87":2,"89":1,"100":1,"102":1,"104":5,"112":2,"121":2,"122":2,"123":5,"124":2,"125":3,"129":2,"131":2,"133":5,"134":1,"136":2,"138":5,"139":1,"140":2,"141":1,"142":8,"143":1,"144":2,"145":2,"146":3,"147":2,"148":2,"149":2,"150":2}}],["v2",{"2":{"57":1,"88":2,"89":4,"123":1}}],["v1x⋅v2y−v1y⋅v2x",{"2":{"123":1}}],["v1z⋅v2x−v1x⋅v2z",{"2":{"123":1}}],["v1y⋅v2z−v1z⋅v2y",{"2":{"123":1}}],["v1×v2=|ijkv1xv1yv1zv2xv2yv2z|",{"2":{"123":1}}],["v1×v2=",{"2":{"123":1}}],["v1⋅v2|v1|⋅|v2|",{"2":{"122":1}}],["v1",{"2":{"57":2,"88":2,"89":2,"123":1}}],["v",{"2":{"34":2,"102":1,"104":2,"133":4,"135":1,"138":4,"139":1}}],["var",{"0":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"33":1,"34":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":2,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1},"2":{"33":1,"34":12,"37":4}}],["valueerror",{"2":{"34":2,"45":4,"82":2,"83":2}}],["value",{"0":{"4":1,"111":1},"2":{"4":4,"111":4,"112":6,"113":1}}],["view",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["can",{"2":{"157":1}}],["cal",{"0":{"36":1,"43":1,"44":1,"45":1,"46":1,"80":1,"81":1,"82":1,"83":1,"84":1,"122":1},"2":{"36":1,"43":2,"44":1,"45":1,"46":1,"56":1,"80":2,"81":1,"82":1,"83":1,"84":1,"93":2,"95":1,"122":1}}],["callable",{"2":{"64":1,"65":1,"67":1,"68":1,"70":1,"71":1,"73":1,"74":1}}],["call",{"0":{"33":1},"2":{"33":1}}],["cz",{"2":{"78":1}}],["clamp",{"0":{"109":1},"2":{"109":1,"155":1}}],["classmethod",{"2":{"54":1,"55":1,"86":1,"87":2,"88":2,"89":2,"90":1}}],["class",{"0":{"2":1,"3":1,"31":1,"40":1,"77":1,"97":1,"106":1,"110":1,"119":1,"154":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["cls",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":2,"87":2,"88":2,"89":2,"90":2}}],["cross",{"0":{"123":1},"2":{"44":4,"45":3,"46":1,"53":1,"82":1,"88":1,"89":1,"123":1,"124":1,"125":1}}],["c",{"0":{"78":1},"2":{"37":2,"78":4,"79":7,"81":2,"82":6,"83":2,"86":1,"87":3}}],["curried",{"2":{"37":4}}],["currying",{"2":{"37":1}}],["curry",{"0":{"37":1},"2":{"37":2}}],["curveequation",{"0":{"31":1},"1":{"32":1,"33":1},"2":{"38":1}}],["csc",{"0":{"15":1},"2":{"15":1}}],["coincident",{"2":{"83":1}}],["complex",{"2":{"60":1}}],["complementary",{"0":{"5":1},"2":{"5":1,"80":1}}],["collinear",{"0":{"51":1},"2":{"51":1,"56":1}}],["coplanar",{"0":{"53":1},"2":{"44":1,"45":2,"53":1,"56":1}}],["const",{"0":{"23":1},"1":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1}}],["cot",{"0":{"13":1},"2":{"13":1}}],["cos",{"0":{"11":1},"2":{"11":2,"14":1,"155":2}}],["code",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["sphere",{"0":{"155":1},"2":{"155":1}}],["stop",{"2":{"157":1}}],["staticmethod",{"2":{"154":1,"155":1}}],["str",{"0":{"116":1,"117":1},"2":{"116":2,"117":2}}],["s",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["solve",{"2":{"82":3}}],["source",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["sign",{"0":{"116":1,"117":1},"2":{"116":1,"117":1}}],["simplify",{"0":{"54":1},"2":{"54":1}}],["singlevar",{"0":{"61":1},"2":{"61":1,"63":1,"64":2,"67":3,"70":4,"73":1}}],["sin",{"0":{"10":1},"2":{"10":2,"15":1,"155":3}}],["sqrt",{"2":{"26":1,"128":1,"155":1}}],["sub",{"2":{"18":1,"104":1,"136":1,"137":1,"138":1}}],["supplementary",{"0":{"6":1},"2":{"6":1}}],["segment",{"0":{"105":1},"1":{"106":1,"107":1}}],["segment3",{"0":{"106":1},"1":{"107":1},"2":{"38":1}}],["sec",{"0":{"14":1},"2":{"14":1}}],["self",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":3,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":3,"32":4,"33":7,"41":3,"42":4,"43":2,"44":13,"45":8,"46":3,"47":3,"48":7,"49":2,"50":2,"51":4,"52":3,"53":3,"54":8,"56":6,"57":4,"78":5,"79":16,"80":4,"81":8,"82":15,"83":9,"84":2,"85":2,"86":4,"91":1,"92":1,"93":5,"94":2,"95":2,"98":4,"99":4,"100":1,"101":1,"102":4,"103":4,"104":4,"107":15,"111":2,"112":9,"113":2,"114":2,"120":4,"121":4,"122":3,"123":7,"124":2,"125":2,"126":5,"127":4,"128":4,"129":3,"130":2,"131":1,"132":1,"133":7,"134":4,"135":4,"136":1,"137":1,"138":7,"139":4,"140":1,"141":1,"142":7,"143":2,"144":4,"145":4,"146":4}}],["默认为否",{"2":{"4":1}}],["all",{"2":{"99":1,"112":1,"121":1}}],["acos",{"2":{"80":1,"122":1}}],["axis",{"0":{"148":1,"149":1,"150":1}}],["ax",{"2":{"78":1}}],["arccos",{"2":{"155":1}}],["array",{"0":{"127":1},"2":{"82":6,"127":2,"155":6}}],["arrayvar",{"0":{"62":1},"2":{"62":1,"63":1,"65":2,"68":3,"71":4,"74":1}}],["area",{"2":{"155":2}}],["are",{"2":{"45":2,"82":1,"83":1}}],["args2",{"2":{"37":2}}],["args",{"0":{"37":1},"2":{"34":11,"37":3}}],["arguments",{"2":{"4":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"155":1}}],["abs",{"0":{"130":1},"2":{"44":1,"81":1,"99":3,"112":1,"115":1,"117":1,"121":3,"130":1}}],["a",{"0":{"78":1},"2":{"37":2,"78":4,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["aaa",{"2":{"35":1}}],["approx",{"0":{"29":1,"42":2,"49":1,"79":1,"99":2,"110":1,"115":2,"121":2,"124":2},"1":{"111":1,"112":1,"113":1,"114":1},"2":{"17":1,"42":3,"49":2,"79":10,"94":1,"99":1,"103":3,"112":4,"115":1,"121":1,"124":1,"125":1,"134":3}}],["add",{"2":{"16":1,"37":4,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1}}],["and",{"0":{"56":1,"87":1,"90":1,"91":1,"92":1,"93":1},"2":{"42":1,"45":2,"51":1,"56":1,"57":1,"79":6,"82":4,"83":1,"84":1,"87":1,"88":1,"89":1,"90":2,"91":1,"92":1,"93":2,"103":2,"113":1,"133":1,"134":2,"138":1,"139":1,"142":1}}],["anyangle",{"0":{"3":1,"5":1,"6":1,"8":1,"9":1,"16":2,"18":2,"19":1,"20":1,"21":1,"43":1,"80":1,"122":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1},"2":{"5":2,"6":2,"8":2,"9":2,"16":3,"18":3,"19":2,"20":1,"21":1,"22":2,"38":1,"43":2,"80":3,"122":3}}],["angle",{"0":{"1":1,"2":1,"3":1,"43":1,"80":1,"122":1},"1":{"2":1,"3":1,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":2},"2":{"43":2,"80":2,"122":1}}],["任意角度",{"2":{"4":1,"38":1}}],["f",{"2":{"80":1,"81":1,"93":1,"113":1,"117":3,"133":1,"138":1,"139":1,"142":1}}],["from",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":1,"84":1,"87":1,"88":2,"89":2,"90":2,"104":1,"157":1}}],["format",{"0":{"117":1},"2":{"117":1}}],["for",{"2":{"33":1,"34":1,"93":1,"133":1,"138":1,"139":1,"142":1,"155":2}}],["function",{"0":{"35":1},"1":{"36":1,"37":1}}],["func",{"0":{"32":3,"34":3,"36":2,"37":2,"109":1,"115":1,"116":1,"117":1},"2":{"32":12,"33":6,"34":15,"36":8,"37":5}}],["false",{"0":{"4":1,"116":1,"117":1},"2":{"79":1}}],["float=0",{"2":{"115":1}}],["float=1e",{"2":{"49":1}}],["float=approx",{"2":{"42":1,"99":1,"115":1,"121":1,"124":1}}],["float=epsilon",{"2":{"36":1}}],["float",{"0":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"36":1,"42":1,"44":1,"49":1,"78":4,"81":1,"98":3,"99":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"155":2},"2":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"42":1,"44":2,"49":1,"59":1,"78":8,"81":2,"98":6,"99":1,"109":8,"112":2,"115":4,"116":2,"117":2,"120":6,"121":1,"124":1,"128":2,"142":3,"144":1,"155":2}}],["==",{"2":{"33":1,"44":1,"53":1,"54":3,"83":1,"89":1,"93":1}}],["=",{"0":{"4":1,"16":1,"18":1,"19":1,"20":1,"21":1,"34":1,"36":1,"42":1,"49":1,"99":1,"100":1,"101":1,"104":1,"115":2,"116":1,"117":1,"121":1,"124":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":2,"32":3,"34":5,"36":4,"37":1,"41":2,"54":3,"55":1,"78":5,"79":6,"82":17,"83":2,"87":2,"88":3,"89":3,"98":3,"107":5,"111":1,"120":3,"126":4,"155":7}}],["improve",{"2":{"159":1}}],["import",{"2":{"104":1}}],["i",{"2":{"155":4,"157":1}}],["invalid",{"2":{"34":1}}],["intersect",{"2":{"45":2}}],["intersection",{"0":{"45":1,"82":1,"83":1},"2":{"45":1,"56":1,"82":2,"83":1,"93":2,"95":1}}],["int",{"0":{"34":2,"142":1},"2":{"34":3,"37":4,"59":1,"112":2,"142":2,"155":1}}],["in",{"2":{"33":1,"34":1,"155":2}}],["init",{"0":{"4":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1},"2":{"4":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1}}],["if",{"2":{"4":1,"22":1,"33":1,"34":1,"44":2,"45":2,"54":3,"56":1,"79":1,"80":1,"81":1,"82":2,"83":1,"89":1,"93":3,"112":3,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1,"157":1}}],["isinstance",{"2":{"22":1,"34":2,"44":2,"80":2,"81":2,"93":2,"112":4,"133":2,"138":2,"139":1,"142":2}}],["is",{"0":{"4":1,"49":1,"50":1,"51":1,"52":1,"53":1,"85":1,"124":1,"125":1},"2":{"4":3,"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"42":2,"44":2,"45":2,"49":2,"50":2,"51":3,"52":2,"53":1,"56":3,"57":2,"80":1,"82":1,"85":2,"93":1,"122":1,"124":1,"125":1}}],["预设",{"2":{"0":1}}],["phi",{"2":{"155":5}}],["p3",{"0":{"88":1},"2":{"88":3}}],["p2",{"0":{"55":1,"88":1,"107":1},"2":{"55":3,"57":1,"88":3,"107":8}}],["p1",{"0":{"55":1,"88":1,"107":1},"2":{"55":4,"57":1,"88":5,"107":8}}],["perpendicular",{"0":{"46":1},"2":{"46":1}}],["parametric",{"0":{"48":1},"2":{"48":1,"83":1}}],["parallel",{"0":{"49":1,"50":1,"84":1,"85":1,"124":1,"125":1},"2":{"42":2,"44":1,"45":2,"49":2,"50":2,"51":2,"52":1,"56":1,"57":2,"82":2,"83":1,"84":1,"85":2,"93":1,"124":1,"125":1}}],["partial",{"0":{"34":1},"2":{"34":6}}],["particle",{"0":{"151":1},"2":{"0":1}}],["planes",{"2":{"82":1}}],["plane",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"83":1}}],["plane3",{"0":{"77":1,"79":1,"80":1,"81":1,"82":1,"84":2,"85":1,"87":1,"88":1,"89":1,"90":1,"92":1},"1":{"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"38":1,"79":2,"80":3,"81":3,"82":2,"84":4,"85":2,"87":2,"88":1,"89":1,"90":1,"92":1,"93":3,"94":1,"112":1}}],["plus",{"2":{"34":3}}],["p",{"0":{"36":1},"2":{"36":20,"102":5,"104":4,"133":2,"135":2,"138":2,"139":2}}],["points",{"0":{"55":1,"88":1},"2":{"55":1,"88":1}}],["point",{"0":{"41":1,"46":1,"47":1,"52":2,"84":1,"87":2,"90":2,"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"41":4,"42":2,"44":5,"45":3,"46":5,"47":2,"48":3,"51":2,"52":5,"53":2,"54":3,"57":2,"83":3,"84":4,"87":6,"88":1,"89":6,"90":5}}],["point3",{"0":{"33":2,"36":1,"41":1,"44":1,"45":1,"46":1,"47":1,"52":1,"55":2,"56":1,"81":1,"83":2,"84":1,"87":1,"88":3,"90":1,"91":1,"95":1,"97":1,"99":1,"100":1,"101":2,"104":1,"107":2,"132":2,"135":2,"137":2,"139":1},"1":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"33":4,"36":2,"38":1,"41":2,"44":3,"45":2,"46":2,"47":2,"52":2,"55":4,"56":2,"81":3,"82":1,"83":4,"84":2,"87":2,"88":6,"90":2,"91":1,"93":2,"95":2,"99":2,"100":1,"101":2,"102":3,"103":1,"104":2,"107":5,"112":1,"132":2,"133":4,"135":5,"137":2,"138":4,"139":5,"155":2}}],["positive",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["python",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"55":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"155":1}}],["pythondef",{"2":{"4":1,"16":1,"17":1,"18":1,"19":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":2,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"93":1,"94":1,"95":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"130":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["practice",{"0":{"156":1},"1":{"157":1}}],["property",{"2":{"4":1,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":1,"85":1,"86":1,"126":1,"127":2,"128":2,"129":1}}],["presets",{"0":{"152":1,"153":1},"1":{"154":1,"155":1},"2":{"0":1}}],["pi",{"0":{"24":1},"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"24":1,"155":2}}],["粒子生成工具",{"2":{"0":1}}],["提供了一些工具",{"2":{"0":1}}],["mc特效红石音乐",{"2":{"157":1}}],["model",{"0":{"153":1},"1":{"154":1,"155":1}}],["module",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1}}],["midpoint",{"2":{"107":1}}],["minecraft",{"2":{"157":1}}],["min",{"0":{"109":1},"2":{"109":4}}],["minus",{"2":{"34":3}}],["minimum",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["multiarraysfunc",{"0":{"74":1},"2":{"75":1}}],["multisinglevarsfunc",{"0":{"73":1},"2":{"75":1}}],["multivarsfunc",{"0":{"34":2,"37":1,"75":1},"2":{"34":3,"37":2}}],["mul",{"2":{"19":1,"140":1,"141":1,"142":1,"143":1}}],["matmul",{"2":{"144":1}}],["math导入使用",{"2":{"38":1}}],["math",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"80":1,"122":1,"128":1}}],["max",{"0":{"109":1},"2":{"109":4}}],["maximum",{"0":{"9":1},"2":{"9":1}}],["method",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["mp",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"38":1}}],["mbcp",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1},"2":{"0":3}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexja.BL-t7QiB.js b/assets/chunks/@localSearchIndexja.BL-t7QiB.js deleted file mode 100644 index 5040311..0000000 --- a/assets/chunks/@localSearchIndexja.BL-t7QiB.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":160,"nextId":160,"documentIds":{"0":"/ja/api/#モジュール-mbcp","1":"/ja/api/mp_math/angle.html#モジュール-mbcp-mp-math-angle","2":"/ja/api/mp_math/angle.html#class-angle","3":"/ja/api/mp_math/angle.html#class-anyangle-angle","4":"/ja/api/mp_math/angle.html#method-init-self-value-float-is-radian-bool-false","5":"/ja/api/mp_math/angle.html#method-complementary-self-anyangle","6":"/ja/api/mp_math/angle.html#method-supplementary-self-anyangle","7":"/ja/api/mp_math/angle.html#method-degree-self-float","8":"/ja/api/mp_math/angle.html#method-minimum-positive-self-anyangle","9":"/ja/api/mp_math/angle.html#method-maximum-negative-self-anyangle","10":"/ja/api/mp_math/angle.html#method-sin-self-float","11":"/ja/api/mp_math/angle.html#method-cos-self-float","12":"/ja/api/mp_math/angle.html#method-tan-self-float","13":"/ja/api/mp_math/angle.html#method-cot-self-float","14":"/ja/api/mp_math/angle.html#method-sec-self-float","15":"/ja/api/mp_math/angle.html#method-csc-self-float","16":"/ja/api/mp_math/angle.html#method-self-other-anyangle-anyangle","17":"/ja/api/mp_math/angle.html#method-eq-self-other","18":"/ja/api/mp_math/angle.html#method-self-other-anyangle-anyangle-1","19":"/ja/api/mp_math/angle.html#method-self-other-float-anyangle","20":"/ja/api/mp_math/angle.html#method-self-other-float-anyangle-1","21":"/ja/api/mp_math/angle.html#method-self-other-anyangle-float","22":"/ja/api/mp_math/angle.html#method-self-other","23":"/ja/api/mp_math/const.html#モジュール-mbcp-mp-math-const","24":"/ja/api/mp_math/const.html#var-pi","25":"/ja/api/mp_math/const.html#var-e","26":"/ja/api/mp_math/const.html#var-golden-ratio","27":"/ja/api/mp_math/const.html#var-gamma","28":"/ja/api/mp_math/const.html#var-epsilon","29":"/ja/api/mp_math/const.html#var-approx","30":"/ja/api/mp_math/equation.html#モジュール-mbcp-mp-math-equation","31":"/ja/api/mp_math/equation.html#class-curveequation","32":"/ja/api/mp_math/equation.html#method-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","33":"/ja/api/mp_math/equation.html#method-call-self-t-var-point3-tuple-point3","34":"/ja/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","35":"/ja/api/mp_math/function.html#モジュール-mbcp-mp-math-function","36":"/ja/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","37":"/ja/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","38":"/ja/api/mp_math/#モジュール-mbcp-mp-math","39":"/ja/api/mp_math/mp_math_typing.html#モジュール-mbcp-mp-math-mp-math-typing","40":"/ja/api/mp_math/mp_math_typing.html#var-realnumber","41":"/ja/api/mp_math/mp_math_typing.html#var-number","42":"/ja/api/mp_math/mp_math_typing.html#var-singlevar","43":"/ja/api/mp_math/mp_math_typing.html#var-arrayvar","44":"/ja/api/mp_math/mp_math_typing.html#var-var","45":"/ja/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","46":"/ja/api/mp_math/mp_math_typing.html#var-onearrayfunc","47":"/ja/api/mp_math/mp_math_typing.html#var-onevarfunc","48":"/ja/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","49":"/ja/api/mp_math/mp_math_typing.html#var-twoarraysfunc","50":"/ja/api/mp_math/mp_math_typing.html#var-twovarsfunc","51":"/ja/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","52":"/ja/api/mp_math/mp_math_typing.html#var-threearraysfunc","53":"/ja/api/mp_math/mp_math_typing.html#var-threevarsfunc","54":"/ja/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","55":"/ja/api/mp_math/mp_math_typing.html#var-multiarraysfunc","56":"/ja/api/mp_math/mp_math_typing.html#var-multivarsfunc","57":"/ja/api/mp_math/line.html#モジュール-mbcp-mp-math-line","58":"/ja/api/mp_math/line.html#class-line3","59":"/ja/api/mp_math/line.html#method-init-self-point-point3-direction-vector3","60":"/ja/api/mp_math/line.html#method-approx-self-other-line3-epsilon-float-approx-bool","61":"/ja/api/mp_math/line.html#method-cal-angle-self-other-line3-anyangle","62":"/ja/api/mp_math/line.html#method-cal-distance-self-other-line3-point3-float","63":"/ja/api/mp_math/line.html#method-cal-intersection-self-other-line3-point3","64":"/ja/api/mp_math/line.html#method-cal-perpendicular-self-point-point3-line3","65":"/ja/api/mp_math/line.html#method-get-point-self-t-realnumber-point3","66":"/ja/api/mp_math/line.html#method-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","67":"/ja/api/mp_math/line.html#method-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","68":"/ja/api/mp_math/line.html#method-is-parallel-self-other-line3-bool","69":"/ja/api/mp_math/line.html#method-is-collinear-self-other-line3-bool","70":"/ja/api/mp_math/line.html#method-is-point-on-self-point-point3-bool","71":"/ja/api/mp_math/line.html#method-is-coplanar-self-other-line3-bool","72":"/ja/api/mp_math/line.html#method-simplify-self","73":"/ja/api/mp_math/line.html#method-from-two-points-cls-p1-point3-p2-point3-line3","74":"/ja/api/mp_math/line.html#method-and-self-other-line3-line3-point3-none","75":"/ja/api/mp_math/line.html#method-eq-self-other-bool","76":"/ja/api/mp_math/plane.html#モジュール-mbcp-mp-math-plane","77":"/ja/api/mp_math/plane.html#class-plane3","78":"/ja/api/mp_math/plane.html#method-init-self-a-float-b-float-c-float-d-float","79":"/ja/api/mp_math/plane.html#method-approx-self-other-plane3-bool","80":"/ja/api/mp_math/plane.html#method-cal-angle-self-other-line3-plane3-anyangle","81":"/ja/api/mp_math/plane.html#method-cal-distance-self-other-plane3-point3-float","82":"/ja/api/mp_math/plane.html#method-cal-intersection-line3-self-other-plane3-line3","83":"/ja/api/mp_math/plane.html#method-cal-intersection-point3-self-other-line3-point3","84":"/ja/api/mp_math/plane.html#method-cal-parallel-plane3-self-point-point3-plane3","85":"/ja/api/mp_math/plane.html#method-is-parallel-self-other-plane3-bool","86":"/ja/api/mp_math/plane.html#method-normal-self-vector3","87":"/ja/api/mp_math/plane.html#method-from-point-and-normal-cls-point-point3-normal-vector3-plane3","88":"/ja/api/mp_math/plane.html#method-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","89":"/ja/api/mp_math/plane.html#method-from-two-lines-cls-l1-line3-l2-line3-plane3","90":"/ja/api/mp_math/plane.html#method-from-point-and-line-cls-point-point3-line-line3-plane3","91":"/ja/api/mp_math/plane.html#method-and-self-other-line3-point3-none","92":"/ja/api/mp_math/plane.html#method-and-self-other-plane3-line3-none","93":"/ja/api/mp_math/plane.html#method-and-self-other","94":"/ja/api/mp_math/plane.html#method-eq-self-other-bool","95":"/ja/api/mp_math/plane.html#method-rand-self-other-line3-point3","96":"/ja/api/mp_math/point.html#モジュール-mbcp-mp-math-point","97":"/ja/api/mp_math/point.html#class-point3","98":"/ja/api/mp_math/point.html#method-init-self-x-float-y-float-z-float","99":"/ja/api/mp_math/point.html#method-approx-self-other-point3-epsilon-float-approx-bool","100":"/ja/api/mp_math/point.html#method-self-other-vector3-point3","101":"/ja/api/mp_math/point.html#method-self-other-point3-point3","102":"/ja/api/mp_math/point.html#method-self-other","103":"/ja/api/mp_math/point.html#method-eq-self-other","104":"/ja/api/mp_math/point.html#method-self-other-point3-vector3","105":"/ja/api/mp_math/segment.html#モジュール-mbcp-mp-math-segment","106":"/ja/api/mp_math/segment.html#class-segment3","107":"/ja/api/mp_math/segment.html#method-init-self-p1-point3-p2-point3","108":"/ja/api/mp_math/utils.html#モジュール-mbcp-mp-math-utils","109":"/ja/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","110":"/ja/api/mp_math/utils.html#class-approx","111":"/ja/api/mp_math/utils.html#method-init-self-value-realnumber","112":"/ja/api/mp_math/utils.html#method-eq-self-other","113":"/ja/api/mp_math/utils.html#method-raise-type-error-self-other","114":"/ja/api/mp_math/utils.html#method-ne-self-other","115":"/ja/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","116":"/ja/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","117":"/ja/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","118":"/ja/api/mp_math/vector.html#モジュール-mbcp-mp-math-vector","119":"/ja/api/mp_math/vector.html#class-vector3","120":"/ja/api/mp_math/vector.html#method-init-self-x-float-y-float-z-float","121":"/ja/api/mp_math/vector.html#method-approx-self-other-vector3-epsilon-float-approx-bool","122":"/ja/api/mp_math/vector.html#method-cal-angle-self-other-vector3-anyangle","123":"/ja/api/mp_math/vector.html#method-cross-self-other-vector3-vector3","124":"/ja/api/mp_math/vector.html#method-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","125":"/ja/api/mp_math/vector.html#method-is-parallel-self-other-vector3-bool","126":"/ja/api/mp_math/vector.html#method-normalize-self","127":"/ja/api/mp_math/vector.html#method-np-array-self-np-ndarray","128":"/ja/api/mp_math/vector.html#method-length-self-float","129":"/ja/api/mp_math/vector.html#method-unit-self-vector3","130":"/ja/api/mp_math/vector.html#method-abs-self","131":"/ja/api/mp_math/vector.html#method-self-other-vector3-vector3","132":"/ja/api/mp_math/vector.html#method-self-other-point3-point3","133":"/ja/api/mp_math/vector.html#method-self-other","134":"/ja/api/mp_math/vector.html#method-eq-self-other","135":"/ja/api/mp_math/vector.html#method-self-other-point3-point3-1","136":"/ja/api/mp_math/vector.html#method-self-other-vector3-vector3-1","137":"/ja/api/mp_math/vector.html#method-self-other-point3-point3-2","138":"/ja/api/mp_math/vector.html#method-self-other-1","139":"/ja/api/mp_math/vector.html#method-self-other-point3","140":"/ja/api/mp_math/vector.html#method-self-other-vector3-vector3-2","141":"/ja/api/mp_math/vector.html#method-self-other-realnumber-vector3","142":"/ja/api/mp_math/vector.html#method-self-other-int-float-vector3-vector3","143":"/ja/api/mp_math/vector.html#method-self-other-realnumber-vector3-1","144":"/ja/api/mp_math/vector.html#method-self-other-vector3-realnumber","145":"/ja/api/mp_math/vector.html#method-self-other-realnumber-vector3-2","146":"/ja/api/mp_math/vector.html#method-self-vector3","147":"/ja/api/mp_math/vector.html#var-zero-vector3","148":"/ja/api/mp_math/vector.html#var-x-axis","149":"/ja/api/mp_math/vector.html#var-y-axis","150":"/ja/api/mp_math/vector.html#var-z-axis","151":"/ja/api/particle/#モジュール-mbcp-particle","152":"/ja/api/presets/#モジュール-mbcp-presets","153":"/ja/api/presets/model/#モジュール-mbcp-presets-model","154":"/ja/api/presets/model/#class-geometricmodels","155":"/ja/api/presets/model/#method-sphere-radius-float-density-float","156":"/ja/demo/best-practice.html#ベストプラクティス","157":"/ja/demo/best-practice.html#作品","158":"/ja/guide/#开始不了一点","159":"/ja/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,12],"1":[5,1,2],"2":[2,5,1],"3":[4,5,1],"4":[11,9,25],"5":[5,9,24],"6":[5,9,23],"7":[5,9,20],"8":[6,9,21],"9":[6,9,23],"10":[5,9,18],"11":[5,9,18],"12":[5,9,18],"13":[5,9,20],"14":[5,9,20],"15":[5,9,20],"16":[7,9,15],"17":[5,9,11],"18":[6,9,14],"19":[7,9,16],"20":[7,9,13],"21":[7,9,13],"22":[3,9,15],"23":[5,1,2],"24":[2,5,7],"25":[2,5,8],"26":[3,5,10],"27":[2,5,6],"28":[2,5,6],"29":[2,5,6],"30":[5,1,2],"31":[2,5,1],"32":[9,7,26],"33":[10,7,35],"34":[14,5,74],"35":[5,1,2],"36":[13,5,69],"37":[7,5,63],"38":[4,1,20],"39":[5,1,2],"40":[2,5,9],"41":[2,5,9],"42":[2,5,7],"43":[2,5,8],"44":[2,5,9],"45":[2,5,8],"46":[2,5,8],"47":[2,5,9],"48":[2,5,8],"49":[2,5,8],"50":[2,5,9],"51":[2,5,8],"52":[2,5,8],"53":[2,5,9],"54":[2,5,8],"55":[2,5,8],"56":[2,5,9],"57":[5,1,2],"58":[2,5,1],"59":[8,7,25],"60":[11,7,43],"61":[8,7,28],"62":[10,7,63],"63":[8,7,60],"64":[8,7,29],"65":[8,7,35],"66":[9,7,42],"67":[14,7,43],"68":[8,7,36],"69":[8,7,39],"70":[8,7,36],"71":[8,7,42],"72":[4,7,27],"73":[10,7,36],"74":[9,7,52],"75":[6,7,44],"76":[5,1,2],"77":[2,5,1],"78":[9,7,36],"79":[7,7,45],"80":[10,7,92],"81":[10,7,66],"82":[9,7,103],"83":[9,7,69],"84":[9,7,30],"85":[8,7,37],"86":[5,7,25],"87":[10,7,45],"88":[11,7,39],"89":[10,7,44],"90":[10,7,35],"91":[9,7,15],"92":[9,7,15],"93":[5,7,70],"94":[6,7,35],"95":[7,7,15],"96":[5,1,2],"97":[2,5,1],"98":[8,7,26],"99":[11,7,45],"100":[8,7,13],"101":[7,7,12],"102":[4,7,34],"103":[5,7,37],"104":[7,7,36],"105":[5,1,2],"106":[2,5,1],"107":[7,7,32],"108":[5,1,2],"109":[7,5,31],"110":[2,5,1],"111":[6,7,20],"112":[5,7,31],"113":[7,7,15],"114":[5,7,11],"115":[11,5,40],"116":[11,5,43],"117":[12,5,49],"118":[5,1,3],"119":[2,5,1],"120":[8,7,29],"121":[11,7,44],"122":[8,7,46],"123":[6,7,50],"124":[13,7,43],"125":[8,7,37],"126":[4,7,17],"127":[6,7,31],"128":[5,7,33],"129":[5,7,21],"130":[4,7,10],"131":[7,7,12],"132":[7,7,12],"133":[4,7,46],"134":[5,7,37],"135":[7,7,31],"136":[6,7,12],"137":[6,7,12],"138":[3,7,45],"139":[4,7,42],"140":[6,7,12],"141":[7,7,13],"142":[9,7,55],"143":[7,7,13],"144":[7,7,38],"145":[7,7,15],"146":[5,7,21],"147":[3,5,7],"148":[3,5,8],"149":[3,5,8],"150":[3,5,8],"151":[3,1,2],"152":[3,1,2],"153":[4,1,2],"154":[2,4,2],"155":[6,6,48],"156":[1,1,1],"157":[1,1,25],"158":[1,1,2],"159":[1,1,7]},"averageFieldLength":[5.743749999999997,5.924999999999998,23.33125],"storedFields":{"0":{"title":"モジュール mbcp","titles":[]},"1":{"title":"モジュール mbcp.mp_math.angle","titles":[]},"2":{"title":"class Angle","titles":["モジュール mbcp.mp_math.angle"]},"3":{"title":"class AnyAngle(Angle)","titles":["モジュール mbcp.mp_math.angle"]},"4":{"title":"method __init__(self, value: float, is_radian: bool = False)","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"5":{"title":"method complementary(self) -> AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"method supplementary(self) -> AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"method degree(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"method minimum_positive(self) -> AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"method maximum_negative(self) -> AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"method sin(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"method cos(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"method tan(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"method cot(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"method sec(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"method csc(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"method self + other: AnyAngle => AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"method __eq__(self, other)","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"method self - other: AnyAngle => AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"method self * other: float => AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"method self / other: float => AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"method self / other: AnyAngle => float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"method self / other","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"モジュール mbcp.mp_math.const","titles":[]},"24":{"title":"var PI","titles":["モジュール mbcp.mp_math.const"]},"25":{"title":"var E","titles":["モジュール mbcp.mp_math.const"]},"26":{"title":"var GOLDEN_RATIO","titles":["モジュール mbcp.mp_math.const"]},"27":{"title":"var GAMMA","titles":["モジュール mbcp.mp_math.const"]},"28":{"title":"var EPSILON","titles":["モジュール mbcp.mp_math.const"]},"29":{"title":"var APPROX","titles":["モジュール mbcp.mp_math.const"]},"30":{"title":"モジュール mbcp.mp_math.equation","titles":[]},"31":{"title":"class CurveEquation","titles":["モジュール mbcp.mp_math.equation"]},"32":{"title":"method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["モジュール mbcp.mp_math.equation","class CurveEquation"]},"33":{"title":"method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["モジュール mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["モジュール mbcp.mp_math.equation"]},"35":{"title":"モジュール mbcp.mp_math.function","titles":[]},"36":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["モジュール mbcp.mp_math.function"]},"37":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["モジュール mbcp.mp_math.function"]},"38":{"title":"モジュール mbcp.mp_math","titles":[]},"39":{"title":"モジュール mbcp.mp_math.mp_math_typing","titles":[]},"40":{"title":"var RealNumber","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"41":{"title":"var Number","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"42":{"title":"var SingleVar","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"43":{"title":"var ArrayVar","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"44":{"title":"var Var","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"45":{"title":"var OneSingleVarFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"46":{"title":"var OneArrayFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"47":{"title":"var OneVarFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"48":{"title":"var TwoSingleVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"49":{"title":"var TwoArraysFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"50":{"title":"var TwoVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"51":{"title":"var ThreeSingleVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"52":{"title":"var ThreeArraysFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"53":{"title":"var ThreeVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"54":{"title":"var MultiSingleVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"55":{"title":"var MultiArraysFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"56":{"title":"var MultiVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"57":{"title":"モジュール mbcp.mp_math.line","titles":[]},"58":{"title":"class Line3","titles":["モジュール mbcp.mp_math.line"]},"59":{"title":"method __init__(self, point: Point3, direction: Vector3)","titles":["モジュール mbcp.mp_math.line","class Line3"]},"60":{"title":"method approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"61":{"title":"method cal_angle(self, other: Line3) -> AnyAngle","titles":["モジュール mbcp.mp_math.line","class Line3"]},"62":{"title":"method cal_distance(self, other: Line3 | Point3) -> float","titles":["モジュール mbcp.mp_math.line","class Line3"]},"63":{"title":"method cal_intersection(self, other: Line3) -> Point3","titles":["モジュール mbcp.mp_math.line","class Line3"]},"64":{"title":"method cal_perpendicular(self, point: Point3) -> Line3","titles":["モジュール mbcp.mp_math.line","class Line3"]},"65":{"title":"method get_point(self, t: RealNumber) -> Point3","titles":["モジュール mbcp.mp_math.line","class Line3"]},"66":{"title":"method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["モジュール mbcp.mp_math.line","class Line3"]},"67":{"title":"method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"68":{"title":"method is_parallel(self, other: Line3) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"69":{"title":"method is_collinear(self, other: Line3) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"70":{"title":"method is_point_on(self, point: Point3) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"71":{"title":"method is_coplanar(self, other: Line3) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"72":{"title":"method simplify(self)","titles":["モジュール mbcp.mp_math.line","class Line3"]},"73":{"title":"method from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["モジュール mbcp.mp_math.line","class Line3"]},"74":{"title":"method __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["モジュール mbcp.mp_math.line","class Line3"]},"75":{"title":"method __eq__(self, other) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"76":{"title":"モジュール mbcp.mp_math.plane","titles":[]},"77":{"title":"class Plane3","titles":["モジュール mbcp.mp_math.plane"]},"78":{"title":"method __init__(self, a: float, b: float, c: float, d: float)","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"79":{"title":"method approx(self, other: Plane3) -> bool","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"80":{"title":"method cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"81":{"title":"method cal_distance(self, other: Plane3 | Point3) -> float","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"82":{"title":"method cal_intersection_line3(self, other: Plane3) -> Line3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"83":{"title":"method cal_intersection_point3(self, other: Line3) -> Point3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"84":{"title":"method cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"85":{"title":"method is_parallel(self, other: Plane3) -> bool","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"86":{"title":"method normal(self) -> Vector3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"87":{"title":"method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"88":{"title":"method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"89":{"title":"method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"90":{"title":"method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"91":{"title":"method __and__(self, other: Line3) -> Point3 | None","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"92":{"title":"method __and__(self, other: Plane3) -> Line3 | None","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"93":{"title":"method __and__(self, other)","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"94":{"title":"method __eq__(self, other) -> bool","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"95":{"title":"method __rand__(self, other: Line3) -> Point3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"96":{"title":"モジュール mbcp.mp_math.point","titles":[]},"97":{"title":"class Point3","titles":["モジュール mbcp.mp_math.point"]},"98":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["モジュール mbcp.mp_math.point","class Point3"]},"99":{"title":"method approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["モジュール mbcp.mp_math.point","class Point3"]},"100":{"title":"method self + other: Vector3 => Point3","titles":["モジュール mbcp.mp_math.point","class Point3"]},"101":{"title":"method self + other: Point3 => Point3","titles":["モジュール mbcp.mp_math.point","class Point3"]},"102":{"title":"method self + other","titles":["モジュール mbcp.mp_math.point","class Point3"]},"103":{"title":"method __eq__(self, other)","titles":["モジュール mbcp.mp_math.point","class Point3"]},"104":{"title":"method self - other: Point3 => Vector3","titles":["モジュール mbcp.mp_math.point","class Point3"]},"105":{"title":"モジュール mbcp.mp_math.segment","titles":[]},"106":{"title":"class Segment3","titles":["モジュール mbcp.mp_math.segment"]},"107":{"title":"method __init__(self, p1: Point3, p2: Point3)","titles":["モジュール mbcp.mp_math.segment","class Segment3"]},"108":{"title":"モジュール mbcp.mp_math.utils","titles":[]},"109":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["モジュール mbcp.mp_math.utils"]},"110":{"title":"class Approx","titles":["モジュール mbcp.mp_math.utils"]},"111":{"title":"method __init__(self, value: RealNumber)","titles":["モジュール mbcp.mp_math.utils","class Approx"]},"112":{"title":"method __eq__(self, other)","titles":["モジュール mbcp.mp_math.utils","class Approx"]},"113":{"title":"method raise_type_error(self, other)","titles":["モジュール mbcp.mp_math.utils","class Approx"]},"114":{"title":"method __ne__(self, other)","titles":["モジュール mbcp.mp_math.utils","class Approx"]},"115":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["モジュール mbcp.mp_math.utils"]},"116":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["モジュール mbcp.mp_math.utils"]},"117":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["モジュール mbcp.mp_math.utils"]},"118":{"title":"モジュール mbcp.mp_math.vector","titles":[]},"119":{"title":"class Vector3","titles":["モジュール mbcp.mp_math.vector"]},"120":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"121":{"title":"method approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"122":{"title":"method cal_angle(self, other: Vector3) -> AnyAngle","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"123":{"title":"method cross(self, other: Vector3) -> Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"124":{"title":"method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"125":{"title":"method is_parallel(self, other: Vector3) -> bool","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"126":{"title":"method normalize(self)","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"127":{"title":"method np_array(self) -> np.ndarray","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"128":{"title":"method length(self) -> float","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"129":{"title":"method unit(self) -> Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"130":{"title":"method __abs__(self)","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"131":{"title":"method self + other: Vector3 => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"132":{"title":"method self + other: Point3 => Point3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"133":{"title":"method self + other","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"134":{"title":"method __eq__(self, other)","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"135":{"title":"method self + other: Point3 => Point3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"136":{"title":"method self - other: Vector3 => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"137":{"title":"method self - other: Point3 => Point3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"138":{"title":"method self - other","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"139":{"title":"method self - other: Point3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"140":{"title":"method self * other: Vector3 => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"141":{"title":"method self * other: RealNumber => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"142":{"title":"method self * other: int | float | Vector3 => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"143":{"title":"method self * other: RealNumber => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"144":{"title":"method self @ other: Vector3 => RealNumber","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"145":{"title":"method self / other: RealNumber => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"146":{"title":"method - self => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"147":{"title":"var zero_vector3","titles":["モジュール mbcp.mp_math.vector"]},"148":{"title":"var x_axis","titles":["モジュール mbcp.mp_math.vector"]},"149":{"title":"var y_axis","titles":["モジュール mbcp.mp_math.vector"]},"150":{"title":"var z_axis","titles":["モジュール mbcp.mp_math.vector"]},"151":{"title":"モジュール mbcp.particle","titles":[]},"152":{"title":"モジュール mbcp.presets","titles":[]},"153":{"title":"モジュール mbcp.presets.model","titles":[]},"154":{"title":"class GeometricModels","titles":["モジュール mbcp.presets.model"]},"155":{"title":"method sphere(radius: float, density: float)","titles":["モジュール mbcp.presets.model","class GeometricModels"]},"156":{"title":"ベストプラクティス","titles":[]},"157":{"title":"作品","titles":["ベストプラクティス"]},"158":{"title":"开始不了一点","titles":[]},"159":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["∫12x111",{"2":{"158":1}}],["开始不了一点",{"0":{"158":1}}],["红石音乐",{"2":{"157":1}}],["这么可爱真是抱歉",{"2":{"157":1}}],["这玩意不太稳定",{"2":{"34":2}}],["轻涟",{"2":{"157":1}}],["芙宁娜pv曲",{"2":{"157":1}}],["有点甜~",{"2":{"157":1}}],["有关函数柯里化",{"2":{"37":2}}],["星穹铁道",{"2":{"157":1}}],["崩坏",{"2":{"157":1}}],["使一颗心免于哀伤",{"2":{"157":1}}],["总有一条蜿蜒在童话镇里",{"2":{"157":1}}],["童话镇~",{"2":{"157":1}}],["特效红石音乐",{"2":{"157":2}}],["作品",{"0":{"157":1}}],["ベストプラクティス",{"0":{"156":1},"1":{"157":1}}],["4",{"2":{"155":1}}],["球体上的点集",{"2":{"155":2}}],["生成球体上的点集",{"2":{"155":2}}],["几何模型点集",{"2":{"153":1}}],["零向量",{"2":{"147":1}}],["负向量",{"2":{"146":2}}],["取负",{"2":{"146":2}}],["取两平面的交集",{"2":{"93":2}}],["非点乘",{"2":{"142":2}}],["别去点那边实现了",{"2":{"135":2}}],["单位向量",{"2":{"129":2}}],["单变量",{"2":{"42":1}}],["模",{"2":{"128":2}}],["返回numpy数组",{"2":{"127":1}}],["将向量归一化",{"2":{"126":2}}],["j",{"2":{"123":1}}],["转换为行列式形式",{"2":{"123":2}}],["叉乘使用cross",{"2":{"142":2}}],["叉乘结果",{"2":{"123":2}}],["叉乘运算法则为",{"2":{"123":2}}],["叉乘",{"2":{"123":2}}],["向量的模",{"2":{"128":2}}],["向量积",{"2":{"123":2}}],["向量夹角计算公式",{"2":{"122":2}}],["以及一些常用的向量",{"2":{"118":1}}],["格式化符号数",{"2":{"117":2}}],["quot",{"2":{"116":2,"117":4}}],["符号",{"2":{"116":2,"117":2}}],["获取该向量的单位向量",{"2":{"129":2}}],["获取数的符号",{"2":{"116":2}}],["获取直线的参数方程",{"2":{"66":2}}],["获取直线上的点",{"2":{"65":2}}],["用于判断是否近似于0",{"2":{"115":2}}],["用于近似比较对象",{"2":{"111":2}}],["限定在区间内的值",{"2":{"109":2}}],["值",{"2":{"109":2}}],["区间限定函数",{"2":{"109":2}}],["us",{"2":{"159":1}}],["unit",{"0":{"129":1},"2":{"129":1}}],["unsupported",{"2":{"62":1,"80":1,"81":1,"93":1,"113":1,"133":1,"138":1,"139":1,"142":1}}],["utils",{"0":{"108":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1}}],["中心点",{"2":{"107":1}}],["中实现",{"2":{"104":2}}],["长度",{"2":{"107":1}}],["线段的另一个端点",{"2":{"107":2}}],["线段的一个端点",{"2":{"107":2}}],["新的向量或点",{"2":{"133":2}}],["新的向量",{"2":{"104":2,"138":2}}],["新的点",{"2":{"102":2,"135":2,"139":2}}],["已在",{"2":{"104":2}}],["已知一个函数$f",{"2":{"36":1}}],["已知一个函数f",{"2":{"36":1}}],["坐标",{"2":{"98":6}}],["笛卡尔坐标系中的点",{"2":{"98":2}}],["人话",{"2":{"93":2}}],["法向量",{"2":{"86":2,"87":2}}],["或包装一个实数",{"2":{"115":2}}],["或",{"2":{"82":1}}],["或整数元组",{"2":{"34":2}}],["依次假设$x=0$",{"2":{"82":1}}],["依次假设x=0",{"2":{"82":1}}],["并代入两平面方程求出合适的点",{"2":{"82":2}}],["并对向量单位化",{"2":{"72":2}}],["寻找直线上的一点",{"2":{"82":2}}],["为直线的方向向量",{"2":{"80":2}}],["为平面的法向量",{"2":{"80":2}}],["分别为两个平面的法向量",{"2":{"80":2}}],["和",{"2":{"80":2}}],["其中",{"2":{"80":4}}],["θ=arccos⁡",{"2":{"80":2,"122":1}}],["k",{"2":{"79":12,"123":1}}],["常数项",{"2":{"78":2}}],["常量",{"2":{"24":1}}],["平面上一点",{"2":{"87":2,"90":2}}],["平面的法向量",{"2":{"86":2}}],["平面",{"2":{"84":2,"87":2,"88":2,"89":2,"90":2}}],["平面与直线平行或重合",{"2":{"83":2}}],["平面与直线夹角计算公式",{"2":{"80":2}}],["平面平行且无交线",{"2":{"82":2}}],["平面间夹角计算公式",{"2":{"80":2}}],["平面方程",{"2":{"78":2}}],["平行线返回none",{"2":{"74":2}}],["∧",{"2":{"75":2}}],["交线",{"2":{"82":2,"93":2}}],["交线返回交点",{"2":{"74":2}}],["交集",{"2":{"74":2,"93":2}}],["交点",{"2":{"63":2,"83":2}}],["重合线返回自身",{"2":{"74":2}}],["由点和直线构造平面",{"2":{"90":2}}],["由点和法向量构造平面",{"2":{"87":2}}],["由两直线构造平面",{"2":{"89":2}}],["由两点构造直线",{"2":{"73":2}}],["由三点构造平面",{"2":{"88":2}}],["由一个点和一个方向向量确定",{"2":{"59":2}}],["工厂函数",{"2":{"73":2,"87":2,"88":2,"89":2,"90":2}}],["处理",{"2":{"72":2}}],["处的梯度向量为",{"2":{"36":1}}],["化",{"2":{"72":2}}],["按照可行性一次对x",{"2":{"72":2}}],["不返回值",{"2":{"72":2,"126":2}}],["不支持的类型",{"2":{"62":2,"80":2,"81":2,"93":2}}],["自体归一化",{"2":{"126":2}}],["自体简化",{"2":{"72":2}}],["自然对数的底",{"2":{"25":1}}],["等价相等",{"2":{"72":2}}],["简化直线方程",{"2":{"72":2}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"71":2}}],["两角的和为180°",{"2":{"6":2}}],["两角的和为90°",{"2":{"5":2}}],["充要条件",{"2":{"71":2}}],["判断两个向量是否相等",{"2":{"134":2}}],["判断两个向量是否平行",{"2":{"125":2}}],["判断两个向量是否近似平行",{"2":{"124":2}}],["判断两个向量是否近似相等",{"2":{"121":2}}],["判断两个数是否近似相等",{"2":{"115":2}}],["判断两个点是否相等",{"2":{"103":2}}],["判断两个点是否近似相等",{"2":{"99":2}}],["判断两个平面是否等价",{"2":{"94":2}}],["判断两个平面是否平行",{"2":{"85":2}}],["判断两个平面是否近似相等",{"2":{"79":2}}],["判断两条直线是否等价",{"2":{"75":2}}],["判断两条直线是否共面",{"2":{"71":2}}],["判断两条直线是否共线",{"2":{"69":2}}],["判断两条直线是否平行",{"2":{"68":2}}],["判断两条直线是否近似平行",{"2":{"67":2}}],["判断两条直线是否近似相等",{"2":{"60":2}}],["判断点是否在直线上",{"2":{"70":2}}],["另一个向量或数",{"2":{"142":2}}],["另一个向量或点",{"2":{"133":2,"138":2}}],["另一个向量",{"2":{"121":2,"122":2,"123":2,"124":2,"125":2,"134":2,"144":2}}],["另一个点或向量",{"2":{"102":2}}],["另一个点",{"2":{"99":2,"103":2,"104":2,"135":2,"139":2}}],["另一个平面或点",{"2":{"81":2}}],["另一个平面或直线",{"2":{"80":2,"93":2}}],["另一个平面",{"2":{"79":2,"82":2,"85":2,"94":2}}],["另一",{"2":{"68":2,"69":2,"71":2}}],["另一条直线或点",{"2":{"62":2}}],["另一条直线",{"2":{"60":2,"61":2,"63":2,"67":2,"74":2,"75":2}}],["则同一个t对应的点不同",{"2":{"65":2}}],["则其在点$",{"2":{"36":1}}],["则其在点",{"2":{"36":1}}],["但起始点和方向向量不同",{"2":{"65":2}}],["同一条直线",{"2":{"65":2}}],["垂线",{"2":{"64":2}}],["指定点",{"2":{"64":2,"84":2}}],["直线最终可用参数方程或点向式表示",{"2":{"82":2}}],["直线",{"2":{"73":2,"83":2,"89":4,"90":2}}],["直线不共面",{"2":{"63":2}}],["直线平行",{"2":{"63":2}}],["直线上的一点",{"2":{"59":2}}],["距离",{"2":{"62":2,"81":2}}],["夹角",{"2":{"61":2,"80":2,"122":2}}],["是否只返回负数的符号",{"2":{"116":2,"117":2}}],["是否相等",{"2":{"103":2,"134":2}}],["是否等价",{"2":{"75":2,"94":2}}],["是否共面",{"2":{"71":2}}],["是否共线",{"2":{"69":2}}],["是否在直线上",{"2":{"70":2}}],["是否平行",{"2":{"68":2,"85":2,"125":2}}],["是否近似平行",{"2":{"67":2,"124":2}}],["是否近似相等",{"2":{"60":2,"79":2,"99":2,"115":2,"121":2}}],["是否为弧度",{"2":{"4":2}}],["误差",{"2":{"60":2,"67":2,"99":2,"115":2,"121":2,"124":2}}],["方向向量",{"2":{"59":2,"107":1}}],["多元函数",{"2":{"56":1}}],["多元数组函数",{"2":{"55":1}}],["多元单变量函数",{"2":{"54":1}}],["二元函数",{"2":{"50":1}}],["二元数组函数",{"2":{"49":1}}],["二元单变量函数",{"2":{"48":1}}],["一元函数",{"2":{"47":1}}],["一元数组函数",{"2":{"46":1}}],["一元单变量函数",{"2":{"45":1}}],["一阶偏导",{"2":{"34":2}}],["变量",{"2":{"44":1}}],["变量位置",{"2":{"34":2}}],["数组运算结果",{"2":{"142":2}}],["数组运算",{"2":{"142":2}}],["数组变量",{"2":{"43":1}}],["数2",{"2":{"115":2}}],["数1",{"2":{"115":2}}],["数",{"2":{"41":1,"116":2,"117":2}}],["数学工具",{"2":{"0":1}}],["タイプ",{"2":{"40":1,"41":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"147":1,"148":1,"149":1,"150":1}}],["实数",{"2":{"40":1,"111":2}}],["三元数组函数",{"2":{"52":1}}],["三元单变量函数",{"2":{"51":1}}],["三元函数",{"2":{"36":2,"53":1}}],["三维空间中的线段",{"2":{"107":2}}],["三维空间中的直线",{"2":{"59":2}}],["三维向量",{"2":{"38":1}}],["三维线段",{"2":{"38":1}}],["三维点",{"2":{"38":1}}],["三维平面",{"2":{"38":1}}],["三维直线",{"2":{"38":1}}],["导入的类有",{"2":{"38":1}}],["本包定义了一些常用的导入",{"2":{"38":1}}],["本模块塞了一些预设",{"2":{"152":1}}],["本模块用于内部类型提示",{"2":{"39":1}}],["本模块定义了粒子生成相关的工具",{"2":{"151":1}}],["本模块定义了3维向量的类vector3",{"2":{"118":1}}],["本模块定义了一些常用的工具函数",{"2":{"108":1}}],["本模块定义了一些常用的常量",{"2":{"23":1}}],["本模块定义了三维空间中点的类",{"2":{"96":1}}],["本模块定义了三维空间中的线段类",{"2":{"105":1}}],["本模块定义了三维空间中的平面类",{"2":{"76":1}}],["本模块定义了三维空间中的直线类",{"2":{"57":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"30":1}}],["本模块定义了角度相关的类",{"2":{"1":1}}],["本模块是主模块",{"2":{"0":1}}],["help",{"2":{"159":1}}],["heart",{"2":{"157":1}}],["have",{"2":{"82":1}}],["html",{"2":{"60":2,"62":2,"63":1,"66":1,"67":2,"68":1,"69":1,"70":1,"71":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["https",{"2":{"37":1,"60":2,"62":2,"63":1,"66":1,"67":2,"68":1,"69":1,"70":1,"71":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["high",{"2":{"34":2}}],["hide",{"2":{"34":2,"37":1}}],["6",{"2":{"37":2}}],["3维向量",{"2":{"120":2}}],["3a",{"2":{"62":2,"63":1,"66":1,"67":2,"68":1,"69":1,"70":1,"71":1,"75":1,"78":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["355859667",{"2":{"37":1}}],["3",{"2":{"37":2,"60":2,"62":2,"63":1,"66":1,"67":2,"68":1,"69":1,"70":1,"71":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["3vf",{"0":{"36":1},"2":{"36":1}}],["breaking",{"2":{"157":1}}],["begin",{"2":{"82":1,"123":1}}],["by",{"2":{"78":2}}],["bound=iterable",{"2":{"43":1}}],["bound=number",{"2":{"42":1}}],["bool=false",{"2":{"4":1,"116":1,"117":1}}],["bool",{"0":{"4":1,"60":1,"67":1,"68":1,"69":1,"70":1,"71":1,"75":1,"79":1,"85":1,"94":1,"99":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1},"2":{"60":3,"67":3,"68":3,"69":3,"70":3,"71":3,"75":3,"79":3,"85":3,"94":3,"99":3,"103":2,"115":3,"116":2,"117":2,"121":3,"124":3,"125":3,"134":2}}],["b",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["例",{"2":{"37":1}}],["例外",{"2":{"34":1,"62":1,"63":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["柯里化后的函数",{"2":{"37":2}}],["柯理化",{"2":{"37":2}}],["函数式编程",{"2":{"37":1}}],["函数",{"2":{"37":2}}],["对多参数函数进行柯里化",{"2":{"37":2}}],["dt",{"2":{"82":3}}],["d=n1×n2",{"2":{"82":1}}],["d",{"0":{"78":1},"2":{"78":7,"79":6,"80":2,"81":1,"82":7,"83":1,"87":2}}],["documentation",{"2":{"159":1}}],["doc",{"2":{"127":1}}],["docs",{"2":{"60":2,"62":2,"63":1,"66":1,"67":2,"68":1,"69":1,"70":1,"71":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["do",{"2":{"63":2}}],["distance",{"0":{"62":1,"81":1},"2":{"62":1,"81":1}}],["direction",{"0":{"59":1},"2":{"59":5,"60":1,"61":2,"62":8,"63":6,"64":1,"65":1,"66":3,"67":2,"68":2,"69":1,"70":1,"71":2,"72":4,"73":2,"75":3,"80":1,"82":2,"83":4,"89":1,"90":1,"93":1,"107":2}}],["dz",{"2":{"36":2}}],["dy",{"2":{"36":2}}],["dx",{"2":{"36":2}}],["density",{"0":{"155":1},"2":{"155":4}}],["derivative",{"0":{"34":1},"2":{"34":6}}],["degree",{"0":{"7":1},"2":{"7":1}}],["def",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"34":2,"37":2,"73":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"155":1}}],["$z=0$",{"2":{"82":1}}],["$y=0$",{"2":{"82":1}}],["$d$",{"2":{"80":1}}],["$n$",{"2":{"80":1}}],["$n2$",{"2":{"80":1}}],["$n1$",{"2":{"80":1}}],["$$",{"2":{"80":4,"82":6,"122":2,"123":4}}],["$处的梯度向量为",{"2":{"36":1}}],["$",{"2":{"36":3}}],["梯度",{"2":{"36":2}}],["点乘结果",{"2":{"144":2}}],["点乘",{"2":{"144":2}}],["点乘使用",{"2":{"142":2}}],["点3",{"2":{"88":2}}],["点法式构造",{"2":{"87":2}}],["点2",{"2":{"73":2,"88":2}}],["点1",{"2":{"73":2,"88":2}}],["点",{"2":{"36":2,"65":2,"70":2}}],["∂f∂z",{"2":{"36":1}}],["∂f∂y",{"2":{"36":1}}],["∂f∂x",{"2":{"36":1}}],["∇f",{"2":{"36":1}}],["计算平行于该平面且过指定点的平面",{"2":{"84":2}}],["计算平面与直线的交点",{"2":{"83":2}}],["计算平面与平面或点之间的距离",{"2":{"81":2}}],["计算平面与平面之间的夹角",{"2":{"80":2}}],["计算两个向量之间的夹角",{"2":{"122":2}}],["计算两平面交线的一般步骤",{"2":{"82":2}}],["计算两平面的交线",{"2":{"82":2}}],["计算两条直线点集合的交集",{"2":{"74":2}}],["计算两条直线的交点",{"2":{"63":2}}],["计算直线经过指定点p的垂线",{"2":{"64":2}}],["计算直线和直线或点之间的距离",{"2":{"62":2}}],["计算直线和直线之间的夹角",{"2":{"61":2}}],["计算三元函数在某点的梯度向量",{"2":{"36":2}}],["计算曲线上的点",{"2":{"33":2}}],["vmatrix",{"2":{"123":2}}],["v3",{"2":{"123":2}}],["v2",{"2":{"75":2,"88":2,"89":4,"122":1,"123":13}}],["v1x⋅v2y−v1y⋅v2x",{"2":{"123":1}}],["v1z⋅v2x−v1x⋅v2z",{"2":{"123":1}}],["v1y⋅v2z−v1z⋅v2y",{"2":{"123":1}}],["v1×v2=|ijkv1xv1yv1zv2xv2yv2z|",{"2":{"123":1}}],["v1×v2=",{"2":{"123":1}}],["v1⋅v2|v1|⋅|v2|",{"2":{"122":1}}],["v1",{"2":{"75":4,"88":2,"89":2,"122":1,"123":13}}],["vector",{"0":{"118":1},"1":{"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"59":1,"86":1,"87":1,"102":1,"104":3,"142":1}}],["vector3",{"0":{"36":1,"59":1,"86":1,"87":1,"100":1,"104":1,"119":1,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"131":2,"136":2,"140":2,"141":1,"142":2,"143":1,"144":1,"145":1,"146":1,"147":1},"1":{"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"36":2,"38":1,"59":3,"86":4,"87":3,"89":1,"100":1,"102":2,"104":7,"112":2,"121":3,"122":3,"123":7,"124":3,"125":4,"129":3,"131":2,"133":7,"134":2,"136":2,"138":7,"139":1,"140":2,"141":1,"142":9,"143":1,"144":3,"145":2,"146":4,"147":2,"148":2,"149":2,"150":2}}],["v",{"2":{"34":2,"102":2,"104":4,"133":8,"135":2,"138":8,"139":2}}],["var",{"0":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"33":1,"34":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":2,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"147":1,"148":1,"149":1,"150":1},"2":{"32":3,"33":1,"34":14,"36":1,"37":7,"65":1,"66":1}}],["valueerror",{"2":{"34":3,"63":4,"82":3,"83":3}}],["value",{"0":{"4":1,"111":1},"2":{"4":5,"111":5,"112":6,"113":1}}],["求两平面的法向量的叉乘得到方向向量",{"2":{"82":2}}],["求高阶偏导函数",{"2":{"34":1}}],["求n元函数一阶偏导函数",{"2":{"34":2}}],["l2",{"0":{"89":1},"2":{"89":5}}],["l1",{"0":{"89":1},"2":{"89":7}}],["lambda",{"2":{"66":3}}],["left",{"2":{"36":1}}],["length",{"0":{"128":1},"2":{"62":5,"63":1,"80":2,"107":2,"122":2,"124":1,"126":5,"128":1,"129":1,"130":1}}],["len",{"2":{"33":1}}],["linalg",{"2":{"82":3}}],["lines",{"0":{"89":1},"2":{"63":2,"89":1}}],["line",{"0":{"57":1,"90":2},"1":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1},"2":{"60":1,"61":1,"62":1,"63":1,"64":1,"67":1,"68":1,"69":1,"71":1,"73":1,"74":2,"75":1,"80":1,"82":1,"83":2,"89":1,"90":6,"93":2}}],["line3",{"0":{"58":1,"60":1,"61":1,"62":1,"63":1,"64":1,"67":1,"68":1,"69":1,"71":1,"73":1,"74":2,"80":1,"82":2,"83":1,"89":2,"90":1,"91":1,"92":1,"95":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1},"2":{"38":1,"60":3,"61":3,"62":4,"63":3,"64":4,"67":3,"68":3,"69":3,"71":3,"73":3,"74":6,"75":2,"80":4,"82":5,"83":3,"89":5,"90":3,"91":1,"92":1,"93":6,"95":1,"112":1}}],["library",{"2":{"60":2,"62":2,"63":1,"66":1,"67":2,"68":1,"69":1,"70":1,"71":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["list",{"2":{"34":8,"155":10}}],["litedoc",{"2":{"34":2,"37":1}}],["`np",{"2":{"127":1}}],["`none`",{"2":{"74":1,"93":1}}],["`str`",{"2":{"116":1,"117":1}}],["`plane3`",{"2":{"79":1,"80":1,"81":1,"82":1,"84":1,"85":1,"87":1,"93":1,"94":1}}],["`point3`",{"2":{"36":1,"59":1,"62":1,"63":1,"64":1,"65":1,"70":1,"73":2,"74":1,"81":1,"83":1,"84":1,"87":1,"88":3,"90":1,"93":1,"99":1,"102":2,"103":1,"104":1,"107":2,"133":2,"135":2,"138":2,"139":2}}],["`onesinglevarfunc`",{"2":{"66":3}}],["`onevarfunc`",{"2":{"32":3}}],["`realnumber`",{"2":{"65":1,"111":1}}],["`tuple`",{"2":{"66":1}}],["`typeerror`",{"2":{"62":1,"80":1,"81":1,"93":1}}],["`threesinglevarsfunc`",{"2":{"36":1}}],["`anyangle`",{"2":{"61":1,"80":1,"122":1}}],["`bool`",{"2":{"60":1,"67":1,"68":1,"69":1,"70":1,"71":1,"75":1,"79":1,"85":1,"94":1,"99":1,"103":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1,"134":1}}],["`float`",{"2":{"60":1,"62":1,"67":1,"78":4,"81":1,"98":3,"99":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"144":1}}],["`line3`",{"2":{"60":1,"61":1,"62":1,"63":1,"64":1,"67":1,"68":1,"69":1,"71":1,"73":1,"74":2,"75":1,"80":1,"82":1,"83":1,"89":2,"90":1,"93":2}}],["`valueerror`",{"2":{"63":2,"82":1,"83":1}}],["`var`",{"2":{"37":1}}],["`vector3`",{"2":{"59":1,"86":1,"87":1,"102":1,"104":2,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"133":2,"134":1,"138":2,"142":2,"144":1,"146":1}}],["```",{"2":{"37":1}}],["```python",{"2":{"37":1}}],["`multivarsfunc`",{"2":{"34":1,"37":1}}],["无效变量类型",{"2":{"34":2}}],["偏导函数",{"2":{"34":2}}],["偏移量",{"2":{"34":2,"36":2}}],["高阶偏导数值",{"2":{"34":1}}],["高阶偏导",{"2":{"34":2}}],["可愛くてごめん",{"2":{"157":1}}],["可直接从mbcp",{"2":{"38":1}}],["可参考",{"2":{"37":1}}],["可参考函数式编程",{"2":{"37":1}}],["可为整数",{"2":{"34":2}}],["可导入",{"2":{"0":1}}],["因此该函数的稳定性有待提升",{"2":{"34":2}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"34":2}}],["目标点",{"2":{"33":2}}],["warning",{"2":{"34":2}}],["慎用",{"2":{"34":2}}],["num",{"2":{"155":5}}],["numpy",{"2":{"127":2}}],["numpy数组",{"2":{"127":2}}],["number=epsilon",{"2":{"34":1}}],["number",{"0":{"34":1,"41":1},"2":{"43":1}}],["ndarray`",{"2":{"127":1}}],["ndarray",{"0":{"127":1},"2":{"127":3}}],["neg",{"0":{"116":1,"117":1},"2":{"116":4,"117":4,"146":1}}],["negative",{"0":{"9":1},"2":{"9":1}}],["ne",{"0":{"114":1},"2":{"114":1}}],["np",{"0":{"127":2},"2":{"82":9,"127":4,"155":9}}],["n",{"2":{"80":2,"82":1}}],["n⋅d|n|⋅|d|",{"2":{"80":1}}],["n2",{"2":{"80":2,"82":1}}],["n1",{"2":{"80":2,"82":1}}],["n1⋅n2|n1|⋅|n2|",{"2":{"80":1}}],["no",{"2":{"82":1}}],["normal",{"0":{"86":1,"87":2},"2":{"80":5,"82":4,"83":1,"84":2,"85":2,"86":1,"87":7,"88":3,"89":1,"90":1,"93":3}}],["normalize",{"0":{"126":1},"2":{"72":1,"126":1}}],["none",{"0":{"74":1,"91":1,"92":1},"2":{"74":4,"91":1,"92":1,"93":4}}],["not",{"2":{"62":1,"63":4,"74":1,"114":1,"116":1,"117":1}}],["nabla",{"2":{"36":1}}],["n元函数",{"2":{"34":2}}],["参数方程",{"2":{"66":2}}],["参数t",{"2":{"65":2}}],["参数",{"2":{"33":2,"34":1,"37":2}}],["|v2|",{"2":{"122":1}}],["|v1|",{"2":{"122":1}}],["|d|",{"2":{"80":1}}],["|n|",{"2":{"80":1}}],["|n2|",{"2":{"80":1}}],["|n1|",{"2":{"80":1}}],["|",{"0":{"33":1,"34":1,"62":1,"74":2,"80":1,"81":1,"91":1,"92":1,"142":2},"2":{"33":1,"34":1,"40":1,"41":1,"44":1,"47":1,"50":1,"53":1,"56":1,"62":3,"74":6,"80":3,"81":3,"91":1,"92":1,"93":6,"102":2,"133":4,"138":4,"142":4}}],["曲线方程",{"2":{"32":2,"38":1}}],["z轴单位向量",{"2":{"150":1}}],["z轴分量",{"2":{"120":2}}],["zero",{"0":{"147":1},"2":{"89":1,"125":1}}],["z=0",{"2":{"82":1}}],["z系数",{"2":{"78":2}}],["zhihu",{"2":{"37":1}}],["zhuanlan",{"2":{"37":1}}],["z0",{"2":{"36":2}}],["zip",{"2":{"33":1}}],["z函数",{"2":{"32":2}}],["z",{"0":{"32":1,"98":1,"120":1,"150":1},"2":{"32":5,"33":4,"36":11,"66":2,"72":4,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"120":5,"121":2,"123":10,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["y轴单位向量",{"2":{"149":1}}],["y轴分量",{"2":{"120":2}}],["y=0",{"2":{"82":1}}],["y系数",{"2":{"78":2}}],["y0",{"2":{"36":2}}],["y函数",{"2":{"32":2}}],["y",{"0":{"32":1,"98":1,"115":1,"120":1,"149":1},"2":{"32":5,"33":4,"36":11,"66":2,"72":4,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"115":4,"120":5,"121":2,"123":10,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["x轴单位向量",{"2":{"148":1}}],["x轴分量",{"2":{"120":2}}],["x3c",{"2":{"99":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x26",{"2":{"93":1,"123":6}}],["x−x0m=y−y0n=z−z0p",{"2":{"82":1}}],["x=x0+dty=y0+dtz=z0+dt或",{"2":{"82":1}}],["x系数",{"2":{"78":2}}],["x0",{"2":{"36":2}}],["x函数",{"2":{"32":2}}],["x",{"0":{"32":1,"98":1,"109":1,"115":1,"116":1,"117":1,"120":1,"148":1},"2":{"32":5,"33":4,"36":11,"66":2,"72":2,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"109":4,"112":2,"115":4,"116":5,"117":8,"120":5,"121":2,"123":12,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["约等于判定误差",{"2":{"29":1}}],["精度误差",{"2":{"28":1}}],["06",{"0":{"67":1},"2":{"67":1}}],["001",{"2":{"29":1}}],["0001",{"2":{"28":1}}],["0",{"0":{"115":2},"2":{"27":1,"28":1,"29":1,"33":3,"36":6,"62":2,"71":1,"72":8,"78":2,"79":3,"81":2,"82":15,"83":1,"93":1,"115":1,"116":2,"117":4,"147":3,"148":2,"149":2,"150":2,"155":2}}],["欧拉常数",{"2":{"27":1}}],["5772156649015329",{"2":{"27":1}}],["5",{"2":{"26":1,"81":1}}],["黄金分割比",{"2":{"26":1}}],["デフォルト",{"2":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"147":1,"148":1,"149":1,"150":1}}],["π",{"2":{"24":1}}],["to",{"2":{"159":1}}],["times",{"2":{"82":1,"123":2}}],["tip",{"2":{"36":2,"37":2,"80":4,"82":2,"122":2,"123":2}}],["the",{"2":{"83":2,"159":1}}],["theta",{"2":{"80":2,"122":1,"155":3}}],["three",{"0":{"88":1},"2":{"88":1}}],["threevarsfunc",{"0":{"53":1}}],["threearraysfunc",{"0":{"52":1},"2":{"53":1}}],["threesinglevarsfunc",{"0":{"36":1,"51":1},"2":{"36":3,"53":1}}],["two",{"0":{"73":1,"89":1},"2":{"73":1,"89":1}}],["twovarsfunc",{"0":{"50":1}}],["twoarraysfunc",{"0":{"49":1},"2":{"50":1}}],["twosinglevarsfunc",{"0":{"48":1},"2":{"50":1}}],["typeerror",{"2":{"62":3,"63":1,"80":3,"81":3,"93":3,"113":1,"133":1,"138":1,"139":1,"142":1}}],["typevar",{"2":{"42":1,"43":1}}],["typealias",{"2":{"40":1,"41":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1}}],["type",{"0":{"113":1},"2":{"34":1,"62":1,"80":2,"81":2,"93":2,"112":2,"113":4,"133":2,"138":2,"139":2,"142":2}}],["typing",{"0":{"39":1},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1},"2":{"32":3,"34":1,"36":1,"37":2,"65":1,"66":1,"111":1}}],["tuple",{"0":{"33":1,"34":1,"66":1},"2":{"33":2,"34":2,"66":3}}],["t",{"0":{"33":1,"65":1},"2":{"33":10,"65":4,"66":6,"83":4}}],["truediv",{"2":{"20":1,"21":1,"22":1,"145":1}}],["tan",{"0":{"12":1},"2":{"12":2,"13":1}}],["operand",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["only",{"0":{"116":1,"117":1},"2":{"116":4,"117":4}}],["on",{"0":{"70":1},"2":{"70":1}}],["one",{"2":{"157":1}}],["onearrayfunc",{"0":{"46":1},"2":{"47":1}}],["onesinglevarfunc",{"0":{"45":1,"66":3},"2":{"47":1,"66":7}}],["onevarfunc",{"0":{"32":3,"37":1,"47":1},"2":{"32":9,"37":1}}],["or",{"2":{"74":1,"83":1}}],["org",{"2":{"60":2,"62":2,"63":1,"66":1,"67":2,"68":1,"69":1,"70":1,"71":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["order",{"2":{"34":2}}],["overload",{"2":{"19":1,"20":2,"21":1,"90":1,"91":2,"92":1,"99":1,"100":2,"101":1,"130":1,"131":2,"132":1,"135":1,"136":2,"137":1,"139":1,"140":2,"141":1}}],["other",{"0":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"60":1,"61":1,"62":1,"63":1,"67":1,"68":1,"69":1,"71":1,"74":1,"75":1,"79":1,"80":1,"81":1,"82":1,"83":1,"85":1,"91":1,"92":1,"93":1,"94":1,"95":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"112":1,"113":1,"114":1,"121":1,"122":1,"123":1,"124":1,"125":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1},"2":{"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":4,"60":5,"61":4,"62":13,"63":9,"67":4,"68":4,"69":5,"71":5,"74":7,"75":5,"79":15,"80":9,"81":9,"82":17,"83":11,"85":4,"91":1,"92":1,"93":10,"94":4,"95":2,"99":6,"100":1,"101":1,"102":6,"103":6,"104":6,"112":9,"113":2,"114":2,"121":6,"122":5,"123":9,"124":4,"125":4,"131":1,"132":1,"133":12,"134":6,"135":6,"136":1,"137":1,"138":12,"139":8,"140":1,"141":1,"142":12,"143":2,"144":6,"145":4}}],["ep",{"2":{"157":1}}],["epsilon",{"0":{"28":1,"34":2,"36":2,"60":1,"67":1,"99":1,"115":1,"121":1,"124":1},"2":{"34":7,"36":12,"60":5,"67":4,"99":6,"115":4,"121":6,"124":4}}],["error",{"0":{"113":1},"2":{"112":2,"113":1}}],["end",{"2":{"82":1,"123":1}}],["exceptions",{"2":{"62":1,"63":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["examples",{"2":{"37":1}}],["exp",{"2":{"25":1}}],["elif",{"2":{"34":1,"62":3,"74":1,"79":2,"80":1,"81":1,"82":2,"93":1,"112":1,"116":1,"117":1,"133":1,"138":1,"142":1}}],["else",{"2":{"4":1,"33":1,"34":1,"62":2,"74":1,"79":1,"80":1,"81":1,"93":1,"112":2,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1}}],["e",{"0":{"25":1},"2":{"25":1}}],["equations",{"0":{"66":1},"2":{"66":1,"83":1}}],["equation",{"0":{"30":1},"1":{"31":1,"32":1,"33":1,"34":1}}],["eq",{"0":{"17":1,"75":1,"94":1,"103":1,"112":1,"134":1},"2":{"17":1,"75":1,"94":1,"103":1,"112":1,"114":1,"134":1}}],["+1",{"2":{"117":2}}],["+=",{"2":{"34":1}}],["+",{"0":{"16":1,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1,"135":1},"2":{"16":1,"26":1,"36":3,"37":4,"63":1,"65":1,"66":3,"78":6,"81":5,"82":3,"83":5,"102":7,"107":3,"116":3,"117":3,"128":2,"133":11,"135":5,"144":2,"155":1}}],["1e",{"0":{"67":1}}],["1",{"2":{"13":1,"14":1,"15":1,"25":1,"26":1,"33":1,"37":2,"82":1,"89":1,"117":6,"148":1,"149":1,"150":1,"155":4}}],["180",{"2":{"4":1,"7":1}}],["正割值",{"2":{"14":4}}],["正切值",{"2":{"12":4}}],["正弦值",{"2":{"10":4}}],["余割值",{"2":{"15":4}}],["余切值",{"2":{"13":4}}],["余弦值",{"2":{"11":4}}],["余角",{"2":{"5":4}}],["最大值",{"2":{"109":2}}],["最大负角度",{"2":{"9":2}}],["最大负角",{"2":{"9":2}}],["最小值",{"2":{"109":2}}],["最小正角度",{"2":{"8":2}}],["最小正角",{"2":{"8":2}}],["弧度",{"2":{"7":2}}],["角度",{"2":{"7":2}}],["角度或弧度值",{"2":{"4":2}}],["补角",{"2":{"6":4}}],["sphere",{"0":{"155":1},"2":{"155":1}}],["stop",{"2":{"157":1}}],["staticmethod",{"2":{"154":1,"155":1}}],["stable",{"2":{"127":1}}],["str",{"0":{"116":1,"117":1},"2":{"116":3,"117":3}}],["stdtypes",{"2":{"66":1}}],["s",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["solve",{"2":{"82":3}}],["sign",{"0":{"116":1,"117":1},"2":{"116":1,"117":1}}],["simplify",{"0":{"72":1},"2":{"72":1}}],["singlevar",{"0":{"42":1},"2":{"42":1,"44":1,"45":2,"48":3,"51":4,"54":1}}],["sin",{"0":{"10":1},"2":{"10":2,"15":1,"155":3}}],["sqrt",{"2":{"26":1,"128":1,"155":1}}],["sub",{"2":{"18":1,"104":1,"136":1,"137":1,"138":1}}],["supplementary",{"0":{"6":1},"2":{"6":1}}],["segment",{"0":{"105":1},"1":{"106":1,"107":1}}],["segment3",{"0":{"106":1},"1":{"107":1},"2":{"38":1}}],["sec",{"0":{"14":1},"2":{"14":1}}],["self",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":3,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":3,"32":4,"33":7,"59":3,"60":4,"61":2,"62":13,"63":8,"64":3,"65":3,"66":7,"67":2,"68":2,"69":4,"70":3,"71":3,"72":8,"74":6,"75":4,"78":5,"79":16,"80":4,"81":8,"82":15,"83":9,"84":2,"85":2,"86":4,"91":1,"92":1,"93":5,"94":2,"95":2,"98":4,"99":4,"100":1,"101":1,"102":4,"103":4,"104":4,"107":15,"111":2,"112":9,"113":2,"114":2,"120":4,"121":4,"122":3,"123":7,"124":2,"125":2,"126":5,"127":4,"128":4,"129":3,"130":2,"131":1,"132":1,"133":7,"134":4,"135":4,"136":1,"137":1,"138":7,"139":4,"140":1,"141":1,"142":7,"143":2,"144":4,"145":4,"146":4}}],["255万个粒子",{"2":{"157":1}}],["2",{"2":{"5":1,"8":1,"9":1,"26":1,"34":1,"36":3,"37":2,"63":1,"81":3,"82":1,"107":3,"128":3,"155":2}}],["rmul",{"2":{"143":1}}],["rsub",{"2":{"139":1}}],["right",{"2":{"36":1}}],["reference",{"0":{"159":1},"2":{"127":1}}],["realnumber",{"0":{"40":1,"65":1,"111":1,"141":1,"143":1,"144":1,"145":1},"2":{"41":1,"65":3,"111":3,"141":1,"143":1,"144":1,"145":1}}],["result",{"2":{"34":4}}],["return",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"22":2,"33":2,"34":4,"36":1,"37":4,"60":1,"61":1,"62":5,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":3,"75":1,"79":4,"80":2,"81":2,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":4,"94":1,"95":1,"99":1,"102":1,"103":1,"104":1,"109":1,"112":2,"114":1,"115":1,"116":3,"117":3,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"130":1,"133":2,"134":1,"135":1,"138":2,"139":1,"142":2,"143":1,"144":1,"145":1,"146":1,"155":1}}],["returns",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"33":1,"34":2,"36":1,"37":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":1,"75":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"99":1,"102":1,"103":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"155":1}}],["range",{"2":{"155":2}}],["rand",{"0":{"95":1},"2":{"95":1}}],["radius",{"0":{"155":1},"2":{"155":7}}],["radian=true",{"2":{"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"80":1,"122":1}}],["radian",{"0":{"4":1},"2":{"4":6,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":2,"17":2,"18":2,"19":1,"22":3}}],["radd",{"2":{"135":1}}],["raise",{"0":{"113":1},"2":{"34":1,"62":1,"63":2,"80":1,"81":1,"82":1,"83":1,"93":1,"112":2,"113":2,"133":1,"138":1,"139":1,"142":1}}],["raises",{"2":{"34":1,"62":1,"63":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["ratio",{"0":{"26":1}}],[">",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":5,"36":3,"37":6,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":1,"75":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"102":2,"104":3,"109":1,"115":1,"116":2,"117":5,"121":1,"122":1,"123":2,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"133":2,"135":2,"136":1,"137":1,"138":2,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["戻り値",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"33":1,"34":1,"36":1,"37":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":1,"75":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"99":1,"102":1,"103":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"155":1}}],["geometricmodels",{"0":{"154":1},"1":{"155":1}}],["generated",{"2":{"127":1}}],["get",{"0":{"34":1,"65":1,"66":1},"2":{"34":2,"65":1,"66":1,"83":1,"89":1}}],["gradient",{"0":{"36":1},"2":{"36":1}}],["gamma",{"0":{"27":1}}],["golden",{"0":{"26":1}}],["gt",{"0":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":1,"36":1,"37":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":1,"75":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"102":2,"104":2,"117":3,"123":1,"133":2,"135":1,"138":2,"139":1}}],["githubで表示",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["can",{"2":{"157":1}}],["cases",{"2":{"82":2}}],["cal",{"0":{"36":1,"61":1,"62":1,"63":1,"64":1,"80":1,"81":1,"82":1,"83":1,"84":1,"122":1},"2":{"36":1,"61":2,"62":1,"63":1,"64":1,"74":1,"80":2,"81":1,"82":1,"83":1,"84":1,"93":2,"95":1,"122":1}}],["callable",{"2":{"45":1,"46":1,"48":1,"49":1,"51":1,"52":1,"54":1,"55":1}}],["call",{"0":{"33":1},"2":{"33":1}}],["cdot",{"2":{"80":4,"122":2,"123":6}}],["cz",{"2":{"78":2}}],["clamp",{"0":{"109":1},"2":{"109":1,"155":1}}],["classmethod",{"2":{"72":1,"73":1,"86":1,"87":2,"88":2,"89":2,"90":1}}],["class",{"0":{"2":1,"3":1,"31":1,"58":1,"77":1,"97":1,"106":1,"110":1,"119":1,"154":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1},"2":{"36":1,"59":2,"60":1,"61":2,"62":2,"63":2,"64":2,"65":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":3,"74":3,"75":1,"79":1,"80":3,"81":2,"82":2,"83":2,"84":2,"85":1,"86":1,"87":3,"88":1,"89":1,"90":2,"93":4,"94":1,"99":1,"102":3,"103":1,"104":3,"107":2,"121":1,"122":2,"123":2,"124":1,"125":1,"129":1,"133":4,"134":1,"135":2,"138":4,"139":2,"142":2,"144":1,"146":1}}],["cls",{"0":{"73":1,"87":1,"88":1,"89":1,"90":1},"2":{"73":2,"87":2,"88":2,"89":2,"90":2}}],["cross",{"0":{"123":1},"2":{"62":4,"63":3,"64":1,"71":1,"82":1,"88":1,"89":1,"123":1,"124":1,"125":1}}],["c",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":6,"83":2,"86":1,"87":3}}],["curried",{"2":{"37":6}}],["currying",{"2":{"37":2}}],["curry",{"0":{"37":1},"2":{"37":3}}],["curveequation",{"0":{"31":1},"1":{"32":1,"33":1},"2":{"38":1}}],["csc",{"0":{"15":1},"2":{"15":1}}],["coincident",{"2":{"83":1}}],["collinear",{"0":{"69":1},"2":{"69":1,"74":1}}],["coplanar",{"0":{"71":1},"2":{"62":1,"63":2,"71":1,"74":1}}],["complex",{"2":{"41":1}}],["complementary",{"0":{"5":1},"2":{"5":1,"80":1}}],["com",{"2":{"37":1}}],["constants",{"2":{"74":1,"93":1}}],["const",{"0":{"23":1},"1":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1}}],["cot",{"0":{"13":1},"2":{"13":1}}],["cos",{"0":{"11":1},"2":{"11":2,"14":1,"155":2}}],["all",{"2":{"99":1,"112":1,"121":1}}],["acos",{"2":{"80":1,"122":1}}],["axis",{"0":{"148":1,"149":1,"150":1}}],["ax",{"2":{"78":2}}],["abs",{"0":{"130":1},"2":{"62":1,"81":1,"99":3,"112":1,"115":1,"117":1,"121":3,"130":1}}],["array",{"0":{"127":1},"2":{"82":6,"127":2,"155":6}}],["arrayvar",{"0":{"43":1},"2":{"43":1,"44":1,"46":2,"49":3,"52":4,"55":1}}],["arccos",{"2":{"80":2,"122":1,"155":1}}],["area",{"2":{"155":2}}],["are",{"2":{"63":2,"82":1,"83":1}}],["args2",{"2":{"37":2}}],["args",{"0":{"37":1},"2":{"4":1,"32":1,"33":1,"34":14,"36":1,"37":5,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"155":1}}],["a",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["aaa",{"2":{"35":1}}],["approx",{"0":{"29":1,"60":2,"67":1,"79":1,"99":2,"110":1,"115":2,"121":2,"124":2},"1":{"111":1,"112":1,"113":1,"114":1},"2":{"17":1,"60":3,"67":2,"79":10,"94":1,"99":1,"103":3,"112":4,"115":1,"121":1,"124":1,"125":1,"134":3}}],["add",{"2":{"16":1,"37":8,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1}}],["and",{"0":{"74":1,"87":1,"90":1,"91":1,"92":1,"93":1},"2":{"60":1,"63":2,"69":1,"74":1,"75":1,"79":6,"82":4,"83":1,"84":1,"87":1,"88":1,"89":1,"90":2,"91":1,"92":1,"93":2,"103":2,"113":1,"133":1,"134":2,"138":1,"139":1,"142":1}}],["anyangle",{"0":{"3":1,"5":1,"6":1,"8":1,"9":1,"16":2,"18":2,"19":1,"20":1,"21":1,"61":1,"80":1,"122":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1},"2":{"5":2,"6":2,"8":2,"9":2,"16":3,"18":3,"19":2,"20":1,"21":1,"22":2,"38":1,"61":3,"80":4,"122":4}}],["angle",{"0":{"1":1,"2":1,"3":1,"61":1,"80":1,"122":1},"1":{"2":1,"3":1,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":2},"2":{"61":3,"80":3,"122":2}}],["または",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["ソースコード",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["默认为否",{"2":{"4":2}}],["引数",{"2":{"4":1,"32":1,"33":1,"34":1,"36":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"155":1}}],["任意角度",{"2":{"4":2,"38":1}}],["説明",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"147":1,"148":1,"149":1,"150":1,"155":1}}],["from",{"0":{"73":1,"87":1,"88":1,"89":1,"90":1},"2":{"73":1,"84":1,"87":1,"88":2,"89":2,"90":2,"104":1,"157":1}}],["frac",{"2":{"36":3,"80":2,"82":3,"122":1}}],["f",{"2":{"36":4,"80":1,"81":1,"93":1,"113":1,"117":3,"133":1,"138":1,"139":1,"142":1}}],["format",{"0":{"117":1},"2":{"117":1}}],["for",{"2":{"33":1,"34":1,"93":1,"133":1,"138":1,"139":1,"142":1,"155":2}}],["functions",{"2":{"60":2,"62":1,"67":2,"68":1,"69":1,"70":1,"71":1,"75":1,"78":1,"79":1,"81":1,"85":1,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["function",{"0":{"35":1},"1":{"36":1,"37":1}}],["func",{"0":{"32":3,"34":3,"36":2,"37":2,"109":1,"115":1,"116":1,"117":1},"2":{"32":15,"33":6,"34":16,"36":9,"37":6}}],["false",{"0":{"4":1,"116":1,"117":1},"2":{"79":1}}],["float=0",{"2":{"115":1}}],["float=1e",{"2":{"67":1}}],["float=approx",{"2":{"60":1,"99":1,"115":1,"121":1,"124":1}}],["float=epsilon",{"2":{"36":1}}],["float",{"0":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"36":1,"60":1,"62":1,"67":1,"78":4,"81":1,"98":3,"99":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"155":2},"2":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"40":1,"60":2,"62":3,"67":2,"78":9,"81":3,"98":7,"99":2,"109":9,"112":2,"115":5,"116":3,"117":3,"120":7,"121":2,"124":2,"128":3,"142":4,"144":2,"155":2}}],["==",{"2":{"33":1,"62":1,"71":1,"72":3,"83":1,"89":1,"93":1}}],["=",{"0":{"4":1,"16":1,"18":1,"19":1,"20":1,"21":1,"34":1,"36":1,"60":1,"67":1,"99":1,"100":1,"101":1,"104":1,"115":2,"116":1,"117":1,"121":1,"124":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":2,"32":3,"34":5,"36":5,"37":2,"59":2,"72":3,"73":1,"78":6,"79":6,"80":2,"82":23,"83":2,"87":2,"88":3,"89":3,"98":3,"107":5,"111":1,"120":3,"122":1,"123":2,"126":4,"155":7}}],["improve",{"2":{"159":1}}],["import",{"2":{"104":1}}],["i",{"2":{"123":1,"155":4,"157":1}}],["invalid",{"2":{"34":1}}],["intersect",{"2":{"63":2}}],["intersection",{"0":{"63":1,"82":1,"83":1},"2":{"63":1,"74":1,"82":2,"83":1,"93":2,"95":1}}],["int",{"0":{"34":2,"142":1},"2":{"34":3,"37":8,"40":1,"112":2,"142":2,"155":1}}],["in",{"2":{"33":1,"34":1,"155":2}}],["init",{"0":{"4":1,"32":1,"59":1,"78":1,"98":1,"107":1,"111":1,"120":1},"2":{"4":1,"32":1,"59":1,"78":1,"98":1,"107":1,"111":1,"120":1}}],["if",{"2":{"4":1,"22":1,"33":1,"34":1,"62":2,"63":2,"72":3,"74":1,"79":1,"80":1,"81":1,"82":2,"83":1,"89":1,"93":3,"112":3,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1,"157":1}}],["isinstance",{"2":{"22":1,"34":2,"62":2,"80":2,"81":2,"93":2,"112":4,"133":2,"138":2,"139":1,"142":2}}],["is",{"0":{"4":1,"67":1,"68":1,"69":1,"70":1,"71":1,"85":1,"124":1,"125":1},"2":{"4":4,"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"60":2,"62":2,"63":2,"67":2,"68":2,"69":3,"70":2,"71":1,"74":3,"75":2,"80":1,"82":1,"85":2,"93":1,"122":1,"124":1,"125":1}}],["预设",{"2":{"0":1}}],["phi",{"2":{"155":5}}],["p3",{"0":{"88":1},"2":{"88":4}}],["p2",{"0":{"73":1,"88":1,"107":1},"2":{"73":4,"75":2,"88":4,"107":9}}],["p1",{"0":{"73":1,"88":1,"107":1},"2":{"73":5,"75":2,"88":6,"107":9}}],["perpendicular",{"0":{"64":1},"2":{"64":1}}],["parametric",{"0":{"66":1},"2":{"66":1,"83":1}}],["parallel",{"0":{"67":1,"68":1,"84":1,"85":1,"124":1,"125":1},"2":{"60":2,"62":1,"63":2,"67":2,"68":2,"69":2,"70":1,"74":1,"75":2,"82":2,"83":1,"84":1,"85":2,"93":1,"124":1,"125":1}}],["partial",{"0":{"34":1},"2":{"34":6,"36":6}}],["particle",{"0":{"151":1},"2":{"0":1}}],["planes",{"2":{"82":1}}],["plane",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"93":1,"94":1}}],["plane3",{"0":{"77":1,"79":1,"80":1,"81":1,"82":1,"84":2,"85":1,"87":1,"88":1,"89":1,"90":1,"92":1},"1":{"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"38":1,"79":3,"80":4,"81":4,"82":3,"84":5,"85":3,"87":3,"88":1,"89":1,"90":1,"92":1,"93":4,"94":2,"112":1}}],["plus",{"2":{"34":3}}],["p",{"0":{"36":1},"2":{"36":21,"37":1,"82":1,"102":10,"104":8,"133":4,"135":4,"138":4,"139":4}}],["points",{"0":{"73":1,"88":1},"2":{"73":1,"88":1}}],["point",{"0":{"59":1,"64":1,"65":1,"70":2,"84":1,"87":2,"90":2,"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"36":1,"59":6,"60":2,"62":6,"63":4,"64":7,"65":3,"66":3,"69":2,"70":7,"71":2,"72":3,"73":2,"74":1,"75":2,"81":1,"83":4,"84":6,"87":8,"88":2,"89":6,"90":7,"93":1,"99":1,"102":2,"103":1,"104":1,"107":2,"133":2,"135":2,"138":2,"139":2}}],["point3",{"0":{"33":2,"36":1,"59":1,"62":1,"63":1,"64":1,"65":1,"70":1,"73":2,"74":1,"81":1,"83":2,"84":1,"87":1,"88":3,"90":1,"91":1,"95":1,"97":1,"99":1,"100":1,"101":2,"104":1,"107":2,"132":2,"135":2,"137":2,"139":1},"1":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"33":4,"36":3,"38":1,"59":3,"62":4,"63":3,"64":3,"65":3,"70":3,"73":6,"74":3,"81":4,"82":1,"83":5,"84":3,"87":3,"88":7,"90":3,"91":1,"93":3,"95":2,"99":3,"100":1,"101":2,"102":5,"103":2,"104":3,"107":7,"112":1,"132":2,"133":6,"135":7,"137":2,"138":6,"139":7,"155":3}}],["positive",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["python",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"60":2,"62":2,"63":1,"66":1,"67":2,"68":1,"69":1,"70":1,"71":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":2,"94":1,"98":1,"99":2,"100":1,"101":1,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":2,"129":1,"131":1,"132":1,"134":1,"136":1,"137":1,"140":1,"141":1,"142":1,"144":1,"155":1}}],["pythondef",{"2":{"4":1,"16":1,"17":1,"18":1,"19":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":2,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"93":1,"94":1,"95":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"130":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["property",{"2":{"4":1,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":1,"85":1,"86":1,"126":1,"127":2,"128":2,"129":1}}],["presets",{"0":{"152":1,"153":1},"1":{"154":1,"155":1},"2":{"0":1}}],["pi",{"0":{"24":1},"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"24":1,"155":2}}],["粒子生成工具",{"2":{"0":1}}],["mc特效红石音乐",{"2":{"157":1}}],["model",{"0":{"153":1},"1":{"154":1,"155":1}}],["midpoint",{"2":{"107":1}}],["minecraft",{"2":{"157":1}}],["min",{"0":{"109":1},"2":{"109":5}}],["minus",{"2":{"34":3}}],["minimum",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["m",{"2":{"82":1}}],["multiarraysfunc",{"0":{"55":1},"2":{"56":1}}],["multisinglevarsfunc",{"0":{"54":1},"2":{"56":1}}],["multivarsfunc",{"0":{"34":2,"37":1,"56":1},"2":{"34":4,"37":3}}],["mul",{"2":{"19":1,"140":1,"141":1,"142":1,"143":1}}],["matmul",{"2":{"144":1}}],["math导入使用",{"2":{"38":1}}],["math",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":2,"57":1,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"55":2,"56":2,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"32":3,"34":1,"36":1,"37":2,"65":1,"66":1,"80":1,"111":1,"122":1,"128":1}}],["max",{"0":{"109":1},"2":{"109":5}}],["maximum",{"0":{"9":1},"2":{"9":1}}],["method",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["mp",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":2,"57":1,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"55":2,"56":2,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"32":3,"34":1,"36":1,"37":2,"38":1,"65":1,"66":1,"111":1}}],["mbcp",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"57":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1},"2":{"0":3}}],["提供了一些工具",{"2":{"0":1}}],["モジュール",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"57":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexja.NAYqQakD.js b/assets/chunks/@localSearchIndexja.NAYqQakD.js new file mode 100644 index 0000000..c6d670a --- /dev/null +++ b/assets/chunks/@localSearchIndexja.NAYqQakD.js @@ -0,0 +1 @@ +const t='{"documentCount":160,"nextId":160,"documentIds":{"0":"/ja/api/#モジュール-mbcp","1":"/ja/api/mp_math/angle.html#モジュール-mbcp-mp-math-angle","2":"/ja/api/mp_math/angle.html#class-angle","3":"/ja/api/mp_math/angle.html#class-anyangle-angle","4":"/ja/api/mp_math/angle.html#method-init-self-value-float-is-radian-bool-false","5":"/ja/api/mp_math/angle.html#method-complementary-self-anyangle","6":"/ja/api/mp_math/angle.html#method-supplementary-self-anyangle","7":"/ja/api/mp_math/angle.html#method-degree-self-float","8":"/ja/api/mp_math/angle.html#method-minimum-positive-self-anyangle","9":"/ja/api/mp_math/angle.html#method-maximum-negative-self-anyangle","10":"/ja/api/mp_math/angle.html#method-sin-self-float","11":"/ja/api/mp_math/angle.html#method-cos-self-float","12":"/ja/api/mp_math/angle.html#method-tan-self-float","13":"/ja/api/mp_math/angle.html#method-cot-self-float","14":"/ja/api/mp_math/angle.html#method-sec-self-float","15":"/ja/api/mp_math/angle.html#method-csc-self-float","16":"/ja/api/mp_math/angle.html#method-self-other-anyangle-anyangle","17":"/ja/api/mp_math/angle.html#method-eq-self-other","18":"/ja/api/mp_math/angle.html#method-self-other-anyangle-anyangle-1","19":"/ja/api/mp_math/angle.html#method-self-other-float-anyangle","20":"/ja/api/mp_math/angle.html#method-self-other-float-anyangle-1","21":"/ja/api/mp_math/angle.html#method-self-other-anyangle-float","22":"/ja/api/mp_math/angle.html#method-self-other","23":"/ja/api/mp_math/const.html#モジュール-mbcp-mp-math-const","24":"/ja/api/mp_math/const.html#var-pi","25":"/ja/api/mp_math/const.html#var-e","26":"/ja/api/mp_math/const.html#var-golden-ratio","27":"/ja/api/mp_math/const.html#var-gamma","28":"/ja/api/mp_math/const.html#var-epsilon","29":"/ja/api/mp_math/const.html#var-approx","30":"/ja/api/mp_math/equation.html#モジュール-mbcp-mp-math-equation","31":"/ja/api/mp_math/equation.html#class-curveequation","32":"/ja/api/mp_math/equation.html#method-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","33":"/ja/api/mp_math/equation.html#method-call-self-t-var-point3-tuple-point3","34":"/ja/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","35":"/ja/api/mp_math/function.html#モジュール-mbcp-mp-math-function","36":"/ja/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","37":"/ja/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","38":"/ja/api/mp_math/#モジュール-mbcp-mp-math","39":"/ja/api/mp_math/line.html#モジュール-mbcp-mp-math-line","40":"/ja/api/mp_math/line.html#class-line3","41":"/ja/api/mp_math/line.html#method-init-self-point-point3-direction-vector3","42":"/ja/api/mp_math/line.html#method-approx-self-other-line3-epsilon-float-approx-bool","43":"/ja/api/mp_math/line.html#method-cal-angle-self-other-line3-anyangle","44":"/ja/api/mp_math/line.html#method-cal-distance-self-other-line3-point3-float","45":"/ja/api/mp_math/line.html#method-cal-intersection-self-other-line3-point3","46":"/ja/api/mp_math/line.html#method-cal-perpendicular-self-point-point3-line3","47":"/ja/api/mp_math/line.html#method-get-point-self-t-realnumber-point3","48":"/ja/api/mp_math/line.html#method-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","49":"/ja/api/mp_math/line.html#method-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","50":"/ja/api/mp_math/line.html#method-is-parallel-self-other-line3-bool","51":"/ja/api/mp_math/line.html#method-is-collinear-self-other-line3-bool","52":"/ja/api/mp_math/line.html#method-is-point-on-self-point-point3-bool","53":"/ja/api/mp_math/line.html#method-is-coplanar-self-other-line3-bool","54":"/ja/api/mp_math/line.html#method-simplify-self","55":"/ja/api/mp_math/line.html#method-from-two-points-cls-p1-point3-p2-point3-line3","56":"/ja/api/mp_math/line.html#method-and-self-other-line3-line3-point3-none","57":"/ja/api/mp_math/line.html#method-eq-self-other-bool","58":"/ja/api/mp_math/mp_math_typing.html#モジュール-mbcp-mp-math-mp-math-typing","59":"/ja/api/mp_math/mp_math_typing.html#var-realnumber","60":"/ja/api/mp_math/mp_math_typing.html#var-number","61":"/ja/api/mp_math/mp_math_typing.html#var-singlevar","62":"/ja/api/mp_math/mp_math_typing.html#var-arrayvar","63":"/ja/api/mp_math/mp_math_typing.html#var-var","64":"/ja/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","65":"/ja/api/mp_math/mp_math_typing.html#var-onearrayfunc","66":"/ja/api/mp_math/mp_math_typing.html#var-onevarfunc","67":"/ja/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","68":"/ja/api/mp_math/mp_math_typing.html#var-twoarraysfunc","69":"/ja/api/mp_math/mp_math_typing.html#var-twovarsfunc","70":"/ja/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","71":"/ja/api/mp_math/mp_math_typing.html#var-threearraysfunc","72":"/ja/api/mp_math/mp_math_typing.html#var-threevarsfunc","73":"/ja/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","74":"/ja/api/mp_math/mp_math_typing.html#var-multiarraysfunc","75":"/ja/api/mp_math/mp_math_typing.html#var-multivarsfunc","76":"/ja/api/mp_math/plane.html#モジュール-mbcp-mp-math-plane","77":"/ja/api/mp_math/plane.html#class-plane3","78":"/ja/api/mp_math/plane.html#method-init-self-a-float-b-float-c-float-d-float","79":"/ja/api/mp_math/plane.html#method-approx-self-other-plane3-bool","80":"/ja/api/mp_math/plane.html#method-cal-angle-self-other-line3-plane3-anyangle","81":"/ja/api/mp_math/plane.html#method-cal-distance-self-other-plane3-point3-float","82":"/ja/api/mp_math/plane.html#method-cal-intersection-line3-self-other-plane3-line3","83":"/ja/api/mp_math/plane.html#method-cal-intersection-point3-self-other-line3-point3","84":"/ja/api/mp_math/plane.html#method-cal-parallel-plane3-self-point-point3-plane3","85":"/ja/api/mp_math/plane.html#method-is-parallel-self-other-plane3-bool","86":"/ja/api/mp_math/plane.html#method-normal-self-vector3","87":"/ja/api/mp_math/plane.html#method-from-point-and-normal-cls-point-point3-normal-vector3-plane3","88":"/ja/api/mp_math/plane.html#method-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","89":"/ja/api/mp_math/plane.html#method-from-two-lines-cls-l1-line3-l2-line3-plane3","90":"/ja/api/mp_math/plane.html#method-from-point-and-line-cls-point-point3-line-line3-plane3","91":"/ja/api/mp_math/plane.html#method-and-self-other-line3-point3-none","92":"/ja/api/mp_math/plane.html#method-and-self-other-plane3-line3-none","93":"/ja/api/mp_math/plane.html#method-and-self-other","94":"/ja/api/mp_math/plane.html#method-eq-self-other-bool","95":"/ja/api/mp_math/plane.html#method-rand-self-other-line3-point3","96":"/ja/api/mp_math/point.html#モジュール-mbcp-mp-math-point","97":"/ja/api/mp_math/point.html#class-point3","98":"/ja/api/mp_math/point.html#method-init-self-x-float-y-float-z-float","99":"/ja/api/mp_math/point.html#method-approx-self-other-point3-epsilon-float-approx-bool","100":"/ja/api/mp_math/point.html#method-self-other-vector3-point3","101":"/ja/api/mp_math/point.html#method-self-other-point3-point3","102":"/ja/api/mp_math/point.html#method-self-other","103":"/ja/api/mp_math/point.html#method-eq-self-other","104":"/ja/api/mp_math/point.html#method-self-other-point3-vector3","105":"/ja/api/mp_math/segment.html#モジュール-mbcp-mp-math-segment","106":"/ja/api/mp_math/segment.html#class-segment3","107":"/ja/api/mp_math/segment.html#method-init-self-p1-point3-p2-point3","108":"/ja/api/mp_math/utils.html#モジュール-mbcp-mp-math-utils","109":"/ja/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","110":"/ja/api/mp_math/utils.html#class-approx","111":"/ja/api/mp_math/utils.html#method-init-self-value-realnumber","112":"/ja/api/mp_math/utils.html#method-eq-self-other","113":"/ja/api/mp_math/utils.html#method-raise-type-error-self-other","114":"/ja/api/mp_math/utils.html#method-ne-self-other","115":"/ja/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","116":"/ja/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","117":"/ja/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","118":"/ja/api/mp_math/vector.html#モジュール-mbcp-mp-math-vector","119":"/ja/api/mp_math/vector.html#class-vector3","120":"/ja/api/mp_math/vector.html#method-init-self-x-float-y-float-z-float","121":"/ja/api/mp_math/vector.html#method-approx-self-other-vector3-epsilon-float-approx-bool","122":"/ja/api/mp_math/vector.html#method-cal-angle-self-other-vector3-anyangle","123":"/ja/api/mp_math/vector.html#method-cross-self-other-vector3-vector3","124":"/ja/api/mp_math/vector.html#method-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","125":"/ja/api/mp_math/vector.html#method-is-parallel-self-other-vector3-bool","126":"/ja/api/mp_math/vector.html#method-normalize-self","127":"/ja/api/mp_math/vector.html#method-np-array-self-np-ndarray","128":"/ja/api/mp_math/vector.html#method-length-self-float","129":"/ja/api/mp_math/vector.html#method-unit-self-vector3","130":"/ja/api/mp_math/vector.html#method-abs-self","131":"/ja/api/mp_math/vector.html#method-self-other-vector3-vector3","132":"/ja/api/mp_math/vector.html#method-self-other-point3-point3","133":"/ja/api/mp_math/vector.html#method-self-other","134":"/ja/api/mp_math/vector.html#method-eq-self-other","135":"/ja/api/mp_math/vector.html#method-self-other-point3-point3-1","136":"/ja/api/mp_math/vector.html#method-self-other-vector3-vector3-1","137":"/ja/api/mp_math/vector.html#method-self-other-point3-point3-2","138":"/ja/api/mp_math/vector.html#method-self-other-1","139":"/ja/api/mp_math/vector.html#method-self-other-point3","140":"/ja/api/mp_math/vector.html#method-self-other-vector3-vector3-2","141":"/ja/api/mp_math/vector.html#method-self-other-realnumber-vector3","142":"/ja/api/mp_math/vector.html#method-self-other-int-float-vector3-vector3","143":"/ja/api/mp_math/vector.html#method-self-other-realnumber-vector3-1","144":"/ja/api/mp_math/vector.html#method-self-other-vector3-realnumber","145":"/ja/api/mp_math/vector.html#method-self-other-realnumber-vector3-2","146":"/ja/api/mp_math/vector.html#method-self-vector3","147":"/ja/api/mp_math/vector.html#var-zero-vector3","148":"/ja/api/mp_math/vector.html#var-x-axis","149":"/ja/api/mp_math/vector.html#var-y-axis","150":"/ja/api/mp_math/vector.html#var-z-axis","151":"/ja/api/particle/#モジュール-mbcp-particle","152":"/ja/api/presets/#モジュール-mbcp-presets","153":"/ja/api/presets/model/#モジュール-mbcp-presets-model","154":"/ja/api/presets/model/#class-geometricmodels","155":"/ja/api/presets/model/#method-sphere-radius-float-density-float","156":"/ja/demo/best-practice.html#ベストプラクティス","157":"/ja/demo/best-practice.html#作品","158":"/ja/guide/#开始不了一点","159":"/ja/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,12],"1":[5,1,2],"2":[2,5,1],"3":[4,5,1],"4":[11,9,24],"5":[5,9,23],"6":[5,9,22],"7":[5,9,19],"8":[6,9,20],"9":[6,9,22],"10":[5,9,17],"11":[5,9,17],"12":[5,9,17],"13":[5,9,19],"14":[5,9,19],"15":[5,9,19],"16":[7,9,15],"17":[5,9,11],"18":[6,9,14],"19":[7,9,16],"20":[7,9,13],"21":[7,9,13],"22":[3,9,15],"23":[5,1,2],"24":[2,5,7],"25":[2,5,8],"26":[3,5,10],"27":[2,5,6],"28":[2,5,6],"29":[2,5,6],"30":[5,1,2],"31":[2,5,1],"32":[9,7,19],"33":[10,7,33],"34":[14,5,60],"35":[5,1,2],"36":[13,5,45],"37":[7,5,40],"38":[4,1,20],"39":[5,1,2],"40":[2,5,1],"41":[8,7,18],"42":[11,7,27],"43":[8,7,20],"44":[10,7,42],"45":[8,7,40],"46":[8,7,21],"47":[8,7,24],"48":[9,7,25],"49":[14,7,26],"50":[8,7,20],"51":[8,7,23],"52":[8,7,21],"53":[8,7,26],"54":[4,7,27],"55":[10,7,27],"56":[9,7,34],"57":[6,7,28],"58":[5,1,2],"59":[2,5,9],"60":[2,5,9],"61":[2,5,7],"62":[2,5,8],"63":[2,5,9],"64":[2,5,8],"65":[2,5,8],"66":[2,5,9],"67":[2,5,8],"68":[2,5,8],"69":[2,5,9],"70":[2,5,8],"71":[2,5,8],"72":[2,5,9],"73":[2,5,8],"74":[2,5,8],"75":[2,5,9],"76":[5,1,2],"77":[2,5,1],"78":[9,7,25],"79":[7,7,30],"80":[10,7,55],"81":[10,7,44],"82":[9,7,64],"83":[9,7,52],"84":[9,7,23],"85":[8,7,21],"86":[5,7,20],"87":[10,7,34],"88":[11,7,34],"89":[10,7,38],"90":[10,7,28],"91":[9,7,15],"92":[9,7,15],"93":[5,7,47],"94":[6,7,19],"95":[7,7,15],"96":[5,1,2],"97":[2,5,1],"98":[8,7,16],"99":[11,7,29],"100":[8,7,13],"101":[7,7,12],"102":[4,7,24],"103":[5,7,22],"104":[7,7,28],"105":[5,1,2],"106":[2,5,1],"107":[7,7,27],"108":[5,1,2],"109":[7,5,20],"110":[2,5,1],"111":[6,7,14],"112":[5,7,31],"113":[7,7,15],"114":[5,7,11],"115":[11,5,28],"116":[11,5,30],"117":[12,5,36],"118":[5,1,3],"119":[2,5,1],"120":[8,7,18],"121":[11,7,28],"122":[8,7,28],"123":[6,7,33],"124":[13,7,27],"125":[8,7,23],"126":[4,7,17],"127":[6,7,18],"128":[5,7,23],"129":[5,7,17],"130":[4,7,10],"131":[7,7,12],"132":[7,7,12],"133":[4,7,37],"134":[5,7,22],"135":[7,7,25],"136":[6,7,12],"137":[6,7,12],"138":[3,7,36],"139":[4,7,35],"140":[6,7,12],"141":[7,7,13],"142":[9,7,39],"143":[7,7,13],"144":[7,7,23],"145":[7,7,15],"146":[5,7,17],"147":[3,5,7],"148":[3,5,8],"149":[3,5,8],"150":[3,5,8],"151":[3,1,2],"152":[3,1,2],"153":[4,1,2],"154":[2,4,2],"155":[6,6,46],"156":[1,1,1],"157":[1,1,25],"158":[1,1,2],"159":[1,1,7]},"averageFieldLength":[5.7437499999999995,5.924999999999998,17.88750000000001],"storedFields":{"0":{"title":"モジュール mbcp","titles":[]},"1":{"title":"モジュール mbcp.mp_math.angle","titles":[]},"2":{"title":"class Angle","titles":["モジュール mbcp.mp_math.angle"]},"3":{"title":"class AnyAngle(Angle)","titles":["モジュール mbcp.mp_math.angle"]},"4":{"title":"method __init__(self, value: float, is_radian: bool = False)","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"5":{"title":"method complementary(self) -> AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"method supplementary(self) -> AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"method degree(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"method minimum_positive(self) -> AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"method maximum_negative(self) -> AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"method sin(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"method cos(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"method tan(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"method cot(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"method sec(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"method csc(self) -> float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"method self + other: AnyAngle => AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"method __eq__(self, other)","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"method self - other: AnyAngle => AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"method self * other: float => AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"method self / other: float => AnyAngle","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"method self / other: AnyAngle => float","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"method self / other","titles":["モジュール mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"モジュール mbcp.mp_math.const","titles":[]},"24":{"title":"var PI","titles":["モジュール mbcp.mp_math.const"]},"25":{"title":"var E","titles":["モジュール mbcp.mp_math.const"]},"26":{"title":"var GOLDEN_RATIO","titles":["モジュール mbcp.mp_math.const"]},"27":{"title":"var GAMMA","titles":["モジュール mbcp.mp_math.const"]},"28":{"title":"var EPSILON","titles":["モジュール mbcp.mp_math.const"]},"29":{"title":"var APPROX","titles":["モジュール mbcp.mp_math.const"]},"30":{"title":"モジュール mbcp.mp_math.equation","titles":[]},"31":{"title":"class CurveEquation","titles":["モジュール mbcp.mp_math.equation"]},"32":{"title":"method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["モジュール mbcp.mp_math.equation","class CurveEquation"]},"33":{"title":"method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["モジュール mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["モジュール mbcp.mp_math.equation"]},"35":{"title":"モジュール mbcp.mp_math.function","titles":[]},"36":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["モジュール mbcp.mp_math.function"]},"37":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["モジュール mbcp.mp_math.function"]},"38":{"title":"モジュール mbcp.mp_math","titles":[]},"39":{"title":"モジュール mbcp.mp_math.line","titles":[]},"40":{"title":"class Line3","titles":["モジュール mbcp.mp_math.line"]},"41":{"title":"method __init__(self, point: Point3, direction: Vector3)","titles":["モジュール mbcp.mp_math.line","class Line3"]},"42":{"title":"method approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"43":{"title":"method cal_angle(self, other: Line3) -> AnyAngle","titles":["モジュール mbcp.mp_math.line","class Line3"]},"44":{"title":"method cal_distance(self, other: Line3 | Point3) -> float","titles":["モジュール mbcp.mp_math.line","class Line3"]},"45":{"title":"method cal_intersection(self, other: Line3) -> Point3","titles":["モジュール mbcp.mp_math.line","class Line3"]},"46":{"title":"method cal_perpendicular(self, point: Point3) -> Line3","titles":["モジュール mbcp.mp_math.line","class Line3"]},"47":{"title":"method get_point(self, t: RealNumber) -> Point3","titles":["モジュール mbcp.mp_math.line","class Line3"]},"48":{"title":"method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["モジュール mbcp.mp_math.line","class Line3"]},"49":{"title":"method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"50":{"title":"method is_parallel(self, other: Line3) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"51":{"title":"method is_collinear(self, other: Line3) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"52":{"title":"method is_point_on(self, point: Point3) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"53":{"title":"method is_coplanar(self, other: Line3) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"54":{"title":"method simplify(self)","titles":["モジュール mbcp.mp_math.line","class Line3"]},"55":{"title":"method from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["モジュール mbcp.mp_math.line","class Line3"]},"56":{"title":"method __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["モジュール mbcp.mp_math.line","class Line3"]},"57":{"title":"method __eq__(self, other) -> bool","titles":["モジュール mbcp.mp_math.line","class Line3"]},"58":{"title":"モジュール mbcp.mp_math.mp_math_typing","titles":[]},"59":{"title":"var RealNumber","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"60":{"title":"var Number","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"61":{"title":"var SingleVar","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"62":{"title":"var ArrayVar","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"63":{"title":"var Var","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"64":{"title":"var OneSingleVarFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"65":{"title":"var OneArrayFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"66":{"title":"var OneVarFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"67":{"title":"var TwoSingleVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"68":{"title":"var TwoArraysFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"69":{"title":"var TwoVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"70":{"title":"var ThreeSingleVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"71":{"title":"var ThreeArraysFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"72":{"title":"var ThreeVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"73":{"title":"var MultiSingleVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"74":{"title":"var MultiArraysFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"75":{"title":"var MultiVarsFunc","titles":["モジュール mbcp.mp_math.mp_math_typing"]},"76":{"title":"モジュール mbcp.mp_math.plane","titles":[]},"77":{"title":"class Plane3","titles":["モジュール mbcp.mp_math.plane"]},"78":{"title":"method __init__(self, a: float, b: float, c: float, d: float)","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"79":{"title":"method approx(self, other: Plane3) -> bool","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"80":{"title":"method cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"81":{"title":"method cal_distance(self, other: Plane3 | Point3) -> float","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"82":{"title":"method cal_intersection_line3(self, other: Plane3) -> Line3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"83":{"title":"method cal_intersection_point3(self, other: Line3) -> Point3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"84":{"title":"method cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"85":{"title":"method is_parallel(self, other: Plane3) -> bool","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"86":{"title":"method normal(self) -> Vector3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"87":{"title":"method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"88":{"title":"method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"89":{"title":"method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"90":{"title":"method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"91":{"title":"method __and__(self, other: Line3) -> Point3 | None","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"92":{"title":"method __and__(self, other: Plane3) -> Line3 | None","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"93":{"title":"method __and__(self, other)","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"94":{"title":"method __eq__(self, other) -> bool","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"95":{"title":"method __rand__(self, other: Line3) -> Point3","titles":["モジュール mbcp.mp_math.plane","class Plane3"]},"96":{"title":"モジュール mbcp.mp_math.point","titles":[]},"97":{"title":"class Point3","titles":["モジュール mbcp.mp_math.point"]},"98":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["モジュール mbcp.mp_math.point","class Point3"]},"99":{"title":"method approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["モジュール mbcp.mp_math.point","class Point3"]},"100":{"title":"method self + other: Vector3 => Point3","titles":["モジュール mbcp.mp_math.point","class Point3"]},"101":{"title":"method self + other: Point3 => Point3","titles":["モジュール mbcp.mp_math.point","class Point3"]},"102":{"title":"method self + other","titles":["モジュール mbcp.mp_math.point","class Point3"]},"103":{"title":"method __eq__(self, other)","titles":["モジュール mbcp.mp_math.point","class Point3"]},"104":{"title":"method self - other: Point3 => Vector3","titles":["モジュール mbcp.mp_math.point","class Point3"]},"105":{"title":"モジュール mbcp.mp_math.segment","titles":[]},"106":{"title":"class Segment3","titles":["モジュール mbcp.mp_math.segment"]},"107":{"title":"method __init__(self, p1: Point3, p2: Point3)","titles":["モジュール mbcp.mp_math.segment","class Segment3"]},"108":{"title":"モジュール mbcp.mp_math.utils","titles":[]},"109":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["モジュール mbcp.mp_math.utils"]},"110":{"title":"class Approx","titles":["モジュール mbcp.mp_math.utils"]},"111":{"title":"method __init__(self, value: RealNumber)","titles":["モジュール mbcp.mp_math.utils","class Approx"]},"112":{"title":"method __eq__(self, other)","titles":["モジュール mbcp.mp_math.utils","class Approx"]},"113":{"title":"method raise_type_error(self, other)","titles":["モジュール mbcp.mp_math.utils","class Approx"]},"114":{"title":"method __ne__(self, other)","titles":["モジュール mbcp.mp_math.utils","class Approx"]},"115":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["モジュール mbcp.mp_math.utils"]},"116":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["モジュール mbcp.mp_math.utils"]},"117":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["モジュール mbcp.mp_math.utils"]},"118":{"title":"モジュール mbcp.mp_math.vector","titles":[]},"119":{"title":"class Vector3","titles":["モジュール mbcp.mp_math.vector"]},"120":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"121":{"title":"method approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"122":{"title":"method cal_angle(self, other: Vector3) -> AnyAngle","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"123":{"title":"method cross(self, other: Vector3) -> Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"124":{"title":"method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"125":{"title":"method is_parallel(self, other: Vector3) -> bool","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"126":{"title":"method normalize(self)","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"127":{"title":"method np_array(self) -> np.ndarray","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"128":{"title":"method length(self) -> float","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"129":{"title":"method unit(self) -> Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"130":{"title":"method __abs__(self)","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"131":{"title":"method self + other: Vector3 => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"132":{"title":"method self + other: Point3 => Point3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"133":{"title":"method self + other","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"134":{"title":"method __eq__(self, other)","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"135":{"title":"method self + other: Point3 => Point3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"136":{"title":"method self - other: Vector3 => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"137":{"title":"method self - other: Point3 => Point3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"138":{"title":"method self - other","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"139":{"title":"method self - other: Point3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"140":{"title":"method self * other: Vector3 => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"141":{"title":"method self * other: RealNumber => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"142":{"title":"method self * other: int | float | Vector3 => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"143":{"title":"method self * other: RealNumber => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"144":{"title":"method self @ other: Vector3 => RealNumber","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"145":{"title":"method self / other: RealNumber => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"146":{"title":"method - self => Vector3","titles":["モジュール mbcp.mp_math.vector","class Vector3"]},"147":{"title":"var zero_vector3","titles":["モジュール mbcp.mp_math.vector"]},"148":{"title":"var x_axis","titles":["モジュール mbcp.mp_math.vector"]},"149":{"title":"var y_axis","titles":["モジュール mbcp.mp_math.vector"]},"150":{"title":"var z_axis","titles":["モジュール mbcp.mp_math.vector"]},"151":{"title":"モジュール mbcp.particle","titles":[]},"152":{"title":"モジュール mbcp.presets","titles":[]},"153":{"title":"モジュール mbcp.presets.model","titles":[]},"154":{"title":"class GeometricModels","titles":["モジュール mbcp.presets.model"]},"155":{"title":"method sphere(radius: float, density: float)","titles":["モジュール mbcp.presets.model","class GeometricModels"]},"156":{"title":"ベストプラクティス","titles":[]},"157":{"title":"作品","titles":["ベストプラクティス"]},"158":{"title":"开始不了一点","titles":[]},"159":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["∫12x111",{"2":{"158":1}}],["开始不了一点",{"0":{"158":1}}],["红石音乐",{"2":{"157":1}}],["这么可爱真是抱歉",{"2":{"157":1}}],["这玩意不太稳定",{"2":{"34":1}}],["轻涟",{"2":{"157":1}}],["芙宁娜pv曲",{"2":{"157":1}}],["有点甜~",{"2":{"157":1}}],["有关函数柯里化",{"2":{"37":1}}],["星穹铁道",{"2":{"157":1}}],["崩坏",{"2":{"157":1}}],["使一颗心免于哀伤",{"2":{"157":1}}],["总有一条蜿蜒在童话镇里",{"2":{"157":1}}],["童话镇~",{"2":{"157":1}}],["特效红石音乐",{"2":{"157":2}}],["作品",{"0":{"157":1}}],["ベストプラクティス",{"0":{"156":1},"1":{"157":1}}],["4",{"2":{"155":1}}],["球体上的点集",{"2":{"155":1}}],["生成球体上的点集",{"2":{"155":1}}],["几何模型点集",{"2":{"153":1}}],["零向量",{"2":{"147":1}}],["负向量",{"2":{"146":1}}],["取负",{"2":{"146":1}}],["取两平面的交集",{"2":{"93":1}}],["非点乘",{"2":{"142":1}}],["别去点那边实现了",{"2":{"135":1}}],["单位向量",{"2":{"129":1}}],["单变量",{"2":{"61":1}}],["模",{"2":{"128":1}}],["将向量归一化",{"2":{"126":1}}],["转换为行列式形式",{"2":{"123":1}}],["叉乘使用cross",{"2":{"142":1}}],["叉乘结果",{"2":{"123":1}}],["叉乘运算法则为",{"2":{"123":1}}],["叉乘",{"2":{"123":1}}],["向量的模",{"2":{"128":1}}],["向量积",{"2":{"123":1}}],["向量夹角计算公式",{"2":{"122":1}}],["以及一些常用的向量",{"2":{"118":1}}],["格式化符号数",{"2":{"117":1}}],["quot",{"2":{"116":2,"117":4}}],["符号",{"2":{"116":1,"117":1}}],["获取该向量的单位向量",{"2":{"129":1}}],["获取数的符号",{"2":{"116":1}}],["获取直线的参数方程",{"2":{"48":1}}],["获取直线上的点",{"2":{"47":1}}],["用于判断是否近似于0",{"2":{"115":1}}],["用于近似比较对象",{"2":{"111":1}}],["或包装一个实数",{"2":{"115":1}}],["或整数元组",{"2":{"34":1}}],["限定在区间内的值",{"2":{"109":1}}],["值",{"2":{"109":1}}],["区间限定函数",{"2":{"109":1}}],["us",{"2":{"159":1}}],["unit",{"0":{"129":1},"2":{"129":1}}],["unsupported",{"2":{"44":1,"80":1,"81":1,"93":1,"113":1,"133":1,"138":1,"139":1,"142":1}}],["utils",{"0":{"108":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1}}],["中心点",{"2":{"107":1}}],["中实现",{"2":{"104":1}}],["长度",{"2":{"107":1}}],["线段的另一个端点",{"2":{"107":1}}],["线段的一个端点",{"2":{"107":1}}],["新的向量或点",{"2":{"133":1}}],["新的向量",{"2":{"104":1,"138":1}}],["新的点",{"2":{"102":1,"135":1,"139":1}}],["已在",{"2":{"104":1}}],["已知一个函数f",{"2":{"36":1}}],["坐标",{"2":{"98":3}}],["笛卡尔坐标系中的点",{"2":{"98":1}}],["人话",{"2":{"93":1}}],["法向量",{"2":{"86":1,"87":1}}],["help",{"2":{"159":1}}],["heart",{"2":{"157":1}}],["have",{"2":{"82":1}}],["high",{"2":{"34":2}}],["并代入两平面方程求出合适的点",{"2":{"82":1}}],["并对向量单位化",{"2":{"54":1}}],["依次假设x=0",{"2":{"82":1}}],["寻找直线上的一点",{"2":{"82":1}}],["求两平面的法向量的叉乘得到方向向量",{"2":{"82":1}}],["求n元函数一阶偏导函数",{"2":{"34":1}}],["为直线的方向向量",{"2":{"80":1}}],["为平面的法向量",{"2":{"80":1}}],["分别为两个平面的法向量",{"2":{"80":1}}],["和",{"2":{"80":1}}],["其中",{"2":{"80":2}}],["θ=arccos⁡",{"2":{"80":2,"122":1}}],["k",{"2":{"79":12}}],["常数项",{"2":{"78":1}}],["常量",{"2":{"24":1}}],["平面上一点",{"2":{"87":1,"90":1}}],["平面的法向量",{"2":{"86":1}}],["平面",{"2":{"84":1,"87":1,"88":1,"89":1,"90":1}}],["平面与直线平行或重合",{"2":{"83":1}}],["平面与直线夹角计算公式",{"2":{"80":1}}],["平面平行且无交线",{"2":{"82":1}}],["平面间夹角计算公式",{"2":{"80":1}}],["平面方程",{"2":{"78":1}}],["平行线返回none",{"2":{"56":1}}],["多元函数",{"2":{"75":1}}],["多元数组函数",{"2":{"74":1}}],["多元单变量函数",{"2":{"73":1}}],["二元函数",{"2":{"69":1}}],["二元数组函数",{"2":{"68":1}}],["二元单变量函数",{"2":{"67":1}}],["一元函数",{"2":{"66":1}}],["一元数组函数",{"2":{"65":1}}],["一元单变量函数",{"2":{"64":1}}],["一阶偏导",{"2":{"34":1}}],["变量",{"2":{"63":1}}],["变量位置",{"2":{"34":1}}],["数组运算结果",{"2":{"142":1}}],["数组运算",{"2":{"142":1}}],["数组变量",{"2":{"62":1}}],["数2",{"2":{"115":1}}],["数1",{"2":{"115":1}}],["数",{"2":{"60":1,"116":1,"117":1}}],["数学工具",{"2":{"0":1}}],["タイプ",{"2":{"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1}}],["实数",{"2":{"59":1,"111":1}}],["∧",{"2":{"57":1}}],["交线",{"2":{"82":1,"93":1}}],["交线返回交点",{"2":{"56":1}}],["交集",{"2":{"56":1,"93":1}}],["交点",{"2":{"45":1,"83":1}}],["重合线返回自身",{"2":{"56":1}}],["由点和直线构造平面",{"2":{"90":1}}],["由点和法向量构造平面",{"2":{"87":1}}],["由两直线构造平面",{"2":{"89":1}}],["由两点构造直线",{"2":{"55":1}}],["由三点构造平面",{"2":{"88":1}}],["由一个点和一个方向向量确定",{"2":{"41":1}}],["工厂函数",{"2":{"55":1,"87":1,"88":1,"89":1,"90":1}}],["处理",{"2":{"54":1}}],["处的梯度向量为",{"2":{"36":1}}],["化",{"2":{"54":1}}],["按照可行性一次对x",{"2":{"54":1}}],["不返回值",{"2":{"54":1,"126":1}}],["不支持的类型",{"2":{"44":1,"80":1,"81":1,"93":1}}],["自体归一化",{"2":{"126":1}}],["自体简化",{"2":{"54":1}}],["自然对数的底",{"2":{"25":1}}],["等价相等",{"2":{"54":1}}],["简化直线方程",{"2":{"54":1}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"53":1}}],["两角的和为180°",{"2":{"6":1}}],["两角的和为90°",{"2":{"5":1}}],["充要条件",{"2":{"53":1}}],["判断两个向量是否相等",{"2":{"134":1}}],["判断两个向量是否平行",{"2":{"125":1}}],["判断两个向量是否近似平行",{"2":{"124":1}}],["判断两个向量是否近似相等",{"2":{"121":1}}],["判断两个数是否近似相等",{"2":{"115":1}}],["判断两个点是否相等",{"2":{"103":1}}],["判断两个点是否近似相等",{"2":{"99":1}}],["判断两个平面是否等价",{"2":{"94":1}}],["判断两个平面是否平行",{"2":{"85":1}}],["判断两个平面是否近似相等",{"2":{"79":1}}],["判断两条直线是否等价",{"2":{"57":1}}],["判断两条直线是否共面",{"2":{"53":1}}],["判断两条直线是否共线",{"2":{"51":1}}],["判断两条直线是否平行",{"2":{"50":1}}],["判断两条直线是否近似平行",{"2":{"49":1}}],["判断两条直线是否近似相等",{"2":{"42":1}}],["判断点是否在直线上",{"2":{"52":1}}],["另一个向量或数",{"2":{"142":1}}],["另一个向量或点",{"2":{"133":1,"138":1}}],["另一个向量",{"2":{"121":1,"122":1,"123":1,"124":1,"125":1,"134":1,"144":1}}],["另一个点或向量",{"2":{"102":1}}],["另一个点",{"2":{"99":1,"103":1,"104":1,"135":1,"139":1}}],["另一个平面或点",{"2":{"81":1}}],["另一个平面或直线",{"2":{"80":1,"93":1}}],["另一个平面",{"2":{"79":1,"82":1,"85":1,"94":1}}],["另一",{"2":{"50":1,"51":1,"53":1}}],["另一条直线或点",{"2":{"44":1}}],["另一条直线",{"2":{"42":1,"43":1,"45":1,"49":1,"56":1,"57":1}}],["则同一个t对应的点不同",{"2":{"47":1}}],["则其在点",{"2":{"36":1}}],["但起始点和方向向量不同",{"2":{"47":1}}],["同一条直线",{"2":{"47":1}}],["垂线",{"2":{"46":1}}],["指定点",{"2":{"46":1,"84":1}}],["直线最终可用参数方程或点向式表示",{"2":{"82":1}}],["直线",{"2":{"55":1,"83":1,"89":2,"90":1}}],["直线不共面",{"2":{"45":1}}],["直线平行",{"2":{"45":1}}],["直线上的一点",{"2":{"41":1}}],["距离",{"2":{"44":1,"81":1}}],["夹角",{"2":{"43":1,"80":1,"122":1}}],["是否只返回负数的符号",{"2":{"116":1,"117":1}}],["是否相等",{"2":{"103":1,"134":1}}],["是否等价",{"2":{"57":1,"94":1}}],["是否共面",{"2":{"53":1}}],["是否共线",{"2":{"51":1}}],["是否在直线上",{"2":{"52":1}}],["是否平行",{"2":{"50":1,"85":1,"125":1}}],["是否近似平行",{"2":{"49":1,"124":1}}],["是否近似相等",{"2":{"42":1,"79":1,"99":1,"115":1,"121":1}}],["是否为弧度",{"2":{"4":1}}],["误差",{"2":{"42":1,"49":1,"99":1,"115":1,"121":1,"124":1}}],["方向向量",{"2":{"41":1,"107":1}}],["三元数组函数",{"2":{"71":1}}],["三元单变量函数",{"2":{"70":1}}],["三元函数",{"2":{"36":1,"72":1}}],["三维空间中的线段",{"2":{"107":1}}],["三维空间中的直线",{"2":{"41":1}}],["三维向量",{"2":{"38":1}}],["三维线段",{"2":{"38":1}}],["三维点",{"2":{"38":1}}],["三维平面",{"2":{"38":1}}],["三维直线",{"2":{"38":1}}],["导入的类有",{"2":{"38":1}}],["本包定义了一些常用的导入",{"2":{"38":1}}],["本模块塞了一些预设",{"2":{"152":1}}],["本模块用于内部类型提示",{"2":{"58":1}}],["本模块定义了粒子生成相关的工具",{"2":{"151":1}}],["本模块定义了3维向量的类vector3",{"2":{"118":1}}],["本模块定义了一些常用的工具函数",{"2":{"108":1}}],["本模块定义了一些常用的常量",{"2":{"23":1}}],["本模块定义了三维空间中点的类",{"2":{"96":1}}],["本模块定义了三维空间中的线段类",{"2":{"105":1}}],["本模块定义了三维空间中的平面类",{"2":{"76":1}}],["本模块定义了三维空间中的直线类",{"2":{"39":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"30":1}}],["本模块定义了角度相关的类",{"2":{"1":1}}],["本模块是主模块",{"2":{"0":1}}],["6",{"2":{"37":1}}],["3维向量",{"2":{"120":1}}],["3",{"2":{"37":1}}],["3vf",{"0":{"36":1},"2":{"36":1}}],["breaking",{"2":{"157":1}}],["by",{"2":{"78":1}}],["bound=iterable",{"2":{"62":1}}],["bound=number",{"2":{"61":1}}],["bool=false",{"2":{"4":1,"116":1,"117":1}}],["bool",{"0":{"4":1,"42":1,"49":1,"50":1,"51":1,"52":1,"53":1,"57":1,"79":1,"85":1,"94":1,"99":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1},"2":{"42":2,"49":2,"50":2,"51":2,"52":2,"53":2,"57":2,"79":2,"85":2,"94":2,"99":2,"103":1,"115":2,"116":1,"117":1,"121":2,"124":2,"125":2,"134":1}}],["b",{"0":{"78":1},"2":{"37":2,"78":4,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["例",{"2":{"37":1}}],["例外",{"2":{"34":1,"44":1,"45":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["柯里化后的函数",{"2":{"37":1}}],["柯理化",{"2":{"37":1}}],["函数",{"2":{"37":1}}],["对多参数函数进行柯里化",{"2":{"37":1}}],["d=n1×n2",{"2":{"82":1}}],["d",{"0":{"78":1},"2":{"78":5,"79":6,"80":1,"81":1,"82":6,"83":1,"87":2}}],["documentation",{"2":{"159":1}}],["do",{"2":{"45":2}}],["distance",{"0":{"44":1,"81":1},"2":{"44":1,"81":1}}],["direction",{"0":{"41":1},"2":{"41":4,"42":1,"43":2,"44":8,"45":6,"46":1,"47":1,"48":3,"49":2,"50":2,"51":1,"52":1,"53":2,"54":4,"55":2,"57":3,"80":1,"82":2,"83":4,"89":1,"90":1,"93":1,"107":2}}],["dz",{"2":{"36":2}}],["dy",{"2":{"36":2}}],["dx",{"2":{"36":2}}],["density",{"0":{"155":1},"2":{"155":3}}],["derivative",{"0":{"34":1},"2":{"34":6}}],["degree",{"0":{"7":1},"2":{"7":1}}],["def",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"34":2,"37":1,"55":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"155":1}}],["梯度",{"2":{"36":1}}],["点乘结果",{"2":{"144":1}}],["点乘",{"2":{"144":1}}],["点乘使用",{"2":{"142":1}}],["点3",{"2":{"88":1}}],["点法式构造",{"2":{"87":1}}],["点2",{"2":{"55":1,"88":1}}],["点1",{"2":{"55":1,"88":1}}],["点",{"2":{"36":1,"47":1,"52":1}}],["∂f∂z",{"2":{"36":1}}],["∂f∂y",{"2":{"36":1}}],["∂f∂x",{"2":{"36":1}}],["∇f",{"2":{"36":1}}],["计算平行于该平面且过指定点的平面",{"2":{"84":1}}],["计算平面与直线的交点",{"2":{"83":1}}],["计算平面与平面或点之间的距离",{"2":{"81":1}}],["计算平面与平面之间的夹角",{"2":{"80":1}}],["计算两个向量之间的夹角",{"2":{"122":1}}],["计算两平面交线的一般步骤",{"2":{"82":1}}],["计算两平面的交线",{"2":{"82":1}}],["计算两条直线点集合的交集",{"2":{"56":1}}],["计算两条直线的交点",{"2":{"45":1}}],["计算直线经过指定点p的垂线",{"2":{"46":1}}],["计算直线和直线或点之间的距离",{"2":{"44":1}}],["计算直线和直线之间的夹角",{"2":{"43":1}}],["计算三元函数在某点的梯度向量",{"2":{"36":1}}],["计算曲线上的点",{"2":{"33":1}}],["v3",{"2":{"123":1}}],["vector",{"0":{"118":1},"1":{"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"104":1}}],["vector3",{"0":{"36":1,"41":1,"86":1,"87":1,"100":1,"104":1,"119":1,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"131":2,"136":2,"140":2,"141":1,"142":2,"143":1,"144":1,"145":1,"146":1,"147":1},"1":{"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"36":2,"38":1,"41":2,"86":3,"87":2,"89":1,"100":1,"102":1,"104":5,"112":2,"121":2,"122":2,"123":5,"124":2,"125":3,"129":2,"131":2,"133":5,"134":1,"136":2,"138":5,"139":1,"140":2,"141":1,"142":8,"143":1,"144":2,"145":2,"146":3,"147":2,"148":2,"149":2,"150":2}}],["v2",{"2":{"57":1,"88":2,"89":4,"123":1}}],["v1x⋅v2y−v1y⋅v2x",{"2":{"123":1}}],["v1z⋅v2x−v1x⋅v2z",{"2":{"123":1}}],["v1y⋅v2z−v1z⋅v2y",{"2":{"123":1}}],["v1×v2=|ijkv1xv1yv1zv2xv2yv2z|",{"2":{"123":1}}],["v1×v2=",{"2":{"123":1}}],["v1⋅v2|v1|⋅|v2|",{"2":{"122":1}}],["v1",{"2":{"57":2,"88":2,"89":2,"123":1}}],["v",{"2":{"34":2,"102":1,"104":2,"133":4,"135":1,"138":4,"139":1}}],["var",{"0":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"33":1,"34":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":2,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1},"2":{"33":1,"34":12,"37":4}}],["valueerror",{"2":{"34":2,"45":4,"82":2,"83":2}}],["value",{"0":{"4":1,"111":1},"2":{"4":4,"111":4,"112":6,"113":1}}],["l2",{"0":{"89":1},"2":{"89":4}}],["l1",{"0":{"89":1},"2":{"89":6}}],["lambda",{"2":{"48":3}}],["linalg",{"2":{"82":3}}],["lines",{"0":{"89":1},"2":{"45":2,"89":1}}],["line",{"0":{"39":1,"90":2},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"83":1,"90":4}}],["line3",{"0":{"40":1,"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"80":1,"82":2,"83":1,"89":2,"90":1,"91":1,"92":1,"95":1},"1":{"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"38":1,"42":2,"43":2,"44":3,"45":2,"46":3,"49":2,"50":2,"51":2,"53":2,"55":2,"56":4,"57":1,"80":3,"82":4,"83":2,"89":4,"90":2,"91":1,"92":1,"93":4,"95":1,"112":1}}],["list",{"2":{"34":8,"155":9}}],["length",{"0":{"128":1},"2":{"44":5,"45":1,"80":2,"107":2,"122":2,"124":1,"126":5,"128":1,"129":1,"130":1}}],["len",{"2":{"33":1}}],["无效变量类型",{"2":{"34":1}}],["偏导函数",{"2":{"34":1}}],["偏移量",{"2":{"34":1,"36":1}}],["高阶偏导",{"2":{"34":1}}],["可愛くてごめん",{"2":{"157":1}}],["可直接从mbcp",{"2":{"38":1}}],["可参考函数式编程",{"2":{"37":1}}],["可为整数",{"2":{"34":1}}],["可导入",{"2":{"0":1}}],["因此该函数的稳定性有待提升",{"2":{"34":1}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"34":1}}],["目标点",{"2":{"33":1}}],["warning",{"2":{"34":1}}],["慎用",{"2":{"34":1}}],["num",{"2":{"155":5}}],["numpy数组",{"2":{"127":1}}],["number=epsilon",{"2":{"34":1}}],["number",{"0":{"34":1,"60":1},"2":{"62":1}}],["ndarray",{"0":{"127":1},"2":{"127":2}}],["neg",{"0":{"116":1,"117":1},"2":{"116":3,"117":3,"146":1}}],["negative",{"0":{"9":1},"2":{"9":1}}],["ne",{"0":{"114":1},"2":{"114":1}}],["np",{"0":{"127":2},"2":{"82":9,"127":4,"155":9}}],["n",{"2":{"80":1}}],["n⋅d|n|⋅|d|",{"2":{"80":1}}],["n2",{"2":{"80":1}}],["n1",{"2":{"80":1}}],["n1⋅n2|n1|⋅|n2|",{"2":{"80":1}}],["no",{"2":{"82":1}}],["normal",{"0":{"86":1,"87":2},"2":{"80":5,"82":4,"83":1,"84":2,"85":2,"86":1,"87":6,"88":3,"89":1,"90":1,"93":3}}],["normalize",{"0":{"126":1},"2":{"54":1,"126":1}}],["none",{"0":{"56":1,"91":1,"92":1},"2":{"56":3,"91":1,"92":1,"93":3}}],["not",{"2":{"44":1,"45":4,"56":1,"114":1,"116":1,"117":1}}],["n元函数",{"2":{"34":1}}],["参数方程",{"2":{"48":1}}],["参数t",{"2":{"47":1}}],["参数",{"2":{"33":1,"37":1}}],["|",{"0":{"33":1,"34":1,"44":1,"56":2,"80":1,"81":1,"91":1,"92":1,"142":2},"2":{"33":1,"34":1,"44":2,"56":4,"59":1,"60":1,"63":1,"66":1,"69":1,"72":1,"75":1,"80":2,"81":2,"91":1,"92":1,"93":3,"102":1,"133":2,"138":2,"142":3}}],["曲线方程",{"2":{"32":1,"38":1}}],["z轴单位向量",{"2":{"150":1}}],["z轴分量",{"2":{"120":1}}],["zero",{"0":{"147":1},"2":{"89":1,"125":1}}],["z=0",{"2":{"82":1}}],["z系数",{"2":{"78":1}}],["z0",{"2":{"36":2}}],["zip",{"2":{"33":1}}],["z函数",{"2":{"32":1}}],["z",{"0":{"32":1,"98":1,"120":1,"150":1},"2":{"32":4,"33":4,"36":7,"48":2,"54":3,"81":1,"82":4,"83":4,"87":2,"98":5,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"120":4,"121":2,"123":4,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["y轴单位向量",{"2":{"149":1}}],["y轴分量",{"2":{"120":1}}],["y=0",{"2":{"82":1}}],["y系数",{"2":{"78":1}}],["y0",{"2":{"36":2}}],["y函数",{"2":{"32":1}}],["y",{"0":{"32":1,"98":1,"115":1,"120":1,"149":1},"2":{"32":4,"33":4,"36":7,"48":2,"54":3,"81":1,"82":4,"83":4,"87":2,"98":5,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"115":3,"120":4,"121":2,"123":4,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["x轴单位向量",{"2":{"148":1}}],["x轴分量",{"2":{"120":1}}],["x3c",{"2":{"99":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x26",{"2":{"93":1}}],["x−x0m=y−y0n=z−z0p",{"2":{"82":1}}],["x=x0+dty=y0+dtz=z0+dt或",{"2":{"82":1}}],["x系数",{"2":{"78":1}}],["x0",{"2":{"36":2}}],["x函数",{"2":{"32":1}}],["x",{"0":{"32":1,"98":1,"109":1,"115":1,"116":1,"117":1,"120":1,"148":1},"2":{"32":4,"33":4,"36":7,"48":2,"54":2,"81":1,"82":4,"83":4,"87":2,"98":5,"99":2,"102":2,"103":2,"104":2,"107":2,"109":3,"112":2,"115":3,"116":4,"117":7,"120":4,"121":2,"123":5,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["约等于判定误差",{"2":{"29":1}}],["精度误差",{"2":{"28":1}}],["06",{"0":{"49":1},"2":{"49":1}}],["001",{"2":{"29":1}}],["0001",{"2":{"28":1}}],["0",{"0":{"115":2},"2":{"27":1,"28":1,"29":1,"33":3,"44":2,"53":1,"54":7,"78":1,"79":3,"81":2,"82":9,"83":1,"93":1,"115":1,"116":2,"117":3,"147":3,"148":2,"149":2,"150":2,"155":2}}],["欧拉常数",{"2":{"27":1}}],["5772156649015329",{"2":{"27":1}}],["5",{"2":{"26":1,"81":1}}],["黄金分割比",{"2":{"26":1}}],["デフォルト",{"2":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1}}],["π",{"2":{"24":1}}],["to",{"2":{"159":1}}],["theta",{"2":{"155":3}}],["the",{"2":{"83":2,"159":1}}],["three",{"0":{"88":1},"2":{"88":1}}],["threevarsfunc",{"0":{"72":1}}],["threearraysfunc",{"0":{"71":1},"2":{"72":1}}],["threesinglevarsfunc",{"0":{"36":1,"70":1},"2":{"36":2,"72":1}}],["typing",{"0":{"58":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["typevar",{"2":{"61":1,"62":1}}],["typealias",{"2":{"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["typeerror",{"2":{"44":2,"80":2,"81":2,"93":2,"113":1,"133":1,"138":1,"139":1,"142":1}}],["type",{"0":{"113":1},"2":{"34":1,"44":1,"80":2,"81":2,"93":2,"112":2,"113":4,"133":2,"138":2,"139":2,"142":2}}],["twovarsfunc",{"0":{"69":1}}],["twoarraysfunc",{"0":{"68":1},"2":{"69":1}}],["twosinglevarsfunc",{"0":{"67":1},"2":{"69":1}}],["two",{"0":{"55":1,"89":1},"2":{"55":1,"89":1}}],["tip",{"2":{"36":1,"37":1,"80":2,"82":1,"122":1,"123":1}}],["tuple",{"0":{"33":1,"34":1,"48":1},"2":{"33":2,"34":2,"48":2}}],["t",{"0":{"33":1,"47":1},"2":{"33":9,"47":3,"48":6,"83":4}}],["truediv",{"2":{"20":1,"21":1,"22":1,"145":1}}],["tan",{"0":{"12":1},"2":{"12":2,"13":1}}],["operand",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["or",{"2":{"56":1,"83":1}}],["order",{"2":{"34":2}}],["only",{"0":{"116":1,"117":1},"2":{"116":3,"117":3}}],["on",{"0":{"52":1},"2":{"52":1}}],["one",{"2":{"157":1}}],["onearrayfunc",{"0":{"65":1},"2":{"66":1}}],["onesinglevarfunc",{"0":{"48":3,"64":1},"2":{"48":6,"66":1}}],["onevarfunc",{"0":{"32":3,"37":1,"66":1},"2":{"32":6,"37":1}}],["overload",{"2":{"19":1,"20":2,"21":1,"90":1,"91":2,"92":1,"99":1,"100":2,"101":1,"130":1,"131":2,"132":1,"135":1,"136":2,"137":1,"139":1,"140":2,"141":1}}],["other",{"0":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"42":1,"43":1,"44":1,"45":1,"49":1,"50":1,"51":1,"53":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"85":1,"91":1,"92":1,"93":1,"94":1,"95":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"112":1,"113":1,"114":1,"121":1,"122":1,"123":1,"124":1,"125":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1},"2":{"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":4,"42":4,"43":3,"44":12,"45":8,"49":3,"50":3,"51":4,"53":4,"56":6,"57":4,"79":14,"80":8,"81":8,"82":16,"83":10,"85":3,"91":1,"92":1,"93":9,"94":3,"95":2,"99":5,"100":1,"101":1,"102":5,"103":5,"104":5,"112":9,"113":2,"114":2,"121":5,"122":4,"123":8,"124":3,"125":3,"131":1,"132":1,"133":11,"134":5,"135":5,"136":1,"137":1,"138":11,"139":7,"140":1,"141":1,"142":11,"143":2,"144":5,"145":4}}],["ep",{"2":{"157":1}}],["epsilon",{"0":{"28":1,"34":2,"36":2,"42":1,"49":1,"99":1,"115":1,"121":1,"124":1},"2":{"34":6,"36":11,"42":4,"49":3,"99":5,"115":3,"121":5,"124":3}}],["error",{"0":{"113":1},"2":{"112":2,"113":1}}],["elif",{"2":{"34":1,"44":3,"56":1,"79":2,"80":1,"81":1,"82":2,"93":1,"112":1,"116":1,"117":1,"133":1,"138":1,"142":1}}],["else",{"2":{"4":1,"33":1,"34":1,"44":2,"56":1,"79":1,"80":1,"81":1,"93":1,"112":2,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1}}],["exp",{"2":{"25":1}}],["e",{"0":{"25":1},"2":{"25":1}}],["equations",{"0":{"48":1},"2":{"48":1,"83":1}}],["equation",{"0":{"30":1},"1":{"31":1,"32":1,"33":1,"34":1}}],["eq",{"0":{"17":1,"57":1,"94":1,"103":1,"112":1,"134":1},"2":{"17":1,"57":1,"94":1,"103":1,"112":1,"114":1,"134":1}}],["all",{"2":{"99":1,"112":1,"121":1}}],["acos",{"2":{"80":1,"122":1}}],["axis",{"0":{"148":1,"149":1,"150":1}}],["ax",{"2":{"78":1}}],["arccos",{"2":{"155":1}}],["array",{"0":{"127":1},"2":{"82":6,"127":2,"155":6}}],["arrayvar",{"0":{"62":1},"2":{"62":1,"63":1,"65":2,"68":3,"71":4,"74":1}}],["area",{"2":{"155":2}}],["are",{"2":{"45":2,"82":1,"83":1}}],["args2",{"2":{"37":2}}],["args",{"0":{"37":1},"2":{"34":11,"37":3}}],["abs",{"0":{"130":1},"2":{"44":1,"81":1,"99":3,"112":1,"115":1,"117":1,"121":3,"130":1}}],["a",{"0":{"78":1},"2":{"37":2,"78":4,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["aaa",{"2":{"35":1}}],["approx",{"0":{"29":1,"42":2,"49":1,"79":1,"99":2,"110":1,"115":2,"121":2,"124":2},"1":{"111":1,"112":1,"113":1,"114":1},"2":{"17":1,"42":3,"49":2,"79":10,"94":1,"99":1,"103":3,"112":4,"115":1,"121":1,"124":1,"125":1,"134":3}}],["add",{"2":{"16":1,"37":4,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1}}],["and",{"0":{"56":1,"87":1,"90":1,"91":1,"92":1,"93":1},"2":{"42":1,"45":2,"51":1,"56":1,"57":1,"79":6,"82":4,"83":1,"84":1,"87":1,"88":1,"89":1,"90":2,"91":1,"92":1,"93":2,"103":2,"113":1,"133":1,"134":2,"138":1,"139":1,"142":1}}],["anyangle",{"0":{"3":1,"5":1,"6":1,"8":1,"9":1,"16":2,"18":2,"19":1,"20":1,"21":1,"43":1,"80":1,"122":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1},"2":{"5":2,"6":2,"8":2,"9":2,"16":3,"18":3,"19":2,"20":1,"21":1,"22":2,"38":1,"43":2,"80":3,"122":3}}],["angle",{"0":{"1":1,"2":1,"3":1,"43":1,"80":1,"122":1},"1":{"2":1,"3":1,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":2},"2":{"43":2,"80":2,"122":1}}],["+1",{"2":{"117":1}}],["+=",{"2":{"34":1}}],["+",{"0":{"16":1,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1,"135":1},"2":{"16":1,"26":1,"36":3,"37":2,"45":1,"47":1,"48":3,"78":3,"81":5,"83":5,"102":5,"107":3,"116":2,"117":2,"128":2,"133":9,"135":4,"144":2,"155":1}}],["1e",{"0":{"49":1}}],["1",{"2":{"13":1,"14":1,"15":1,"25":1,"26":1,"33":1,"37":1,"89":1,"117":3,"148":1,"149":1,"150":1,"155":4}}],["180",{"2":{"4":1,"7":1}}],["正割值",{"2":{"14":2}}],["正切值",{"2":{"12":2}}],["正弦值",{"2":{"10":2}}],["余割值",{"2":{"15":2}}],["余切值",{"2":{"13":2}}],["余弦值",{"2":{"11":2}}],["余角",{"2":{"5":2}}],["最大值",{"2":{"109":1}}],["最大负角度",{"2":{"9":1}}],["最大负角",{"2":{"9":1}}],["最小值",{"2":{"109":1}}],["最小正角度",{"2":{"8":1}}],["最小正角",{"2":{"8":1}}],["弧度",{"2":{"7":1}}],["角度",{"2":{"7":1}}],["角度或弧度值",{"2":{"4":1}}],["补角",{"2":{"6":2}}],["sphere",{"0":{"155":1},"2":{"155":1}}],["stop",{"2":{"157":1}}],["staticmethod",{"2":{"154":1,"155":1}}],["str",{"0":{"116":1,"117":1},"2":{"116":2,"117":2}}],["s",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["solve",{"2":{"82":3}}],["sign",{"0":{"116":1,"117":1},"2":{"116":1,"117":1}}],["simplify",{"0":{"54":1},"2":{"54":1}}],["singlevar",{"0":{"61":1},"2":{"61":1,"63":1,"64":2,"67":3,"70":4,"73":1}}],["sin",{"0":{"10":1},"2":{"10":2,"15":1,"155":3}}],["sqrt",{"2":{"26":1,"128":1,"155":1}}],["sub",{"2":{"18":1,"104":1,"136":1,"137":1,"138":1}}],["supplementary",{"0":{"6":1},"2":{"6":1}}],["segment",{"0":{"105":1},"1":{"106":1,"107":1}}],["segment3",{"0":{"106":1},"1":{"107":1},"2":{"38":1}}],["sec",{"0":{"14":1},"2":{"14":1}}],["self",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":3,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":3,"32":4,"33":7,"41":3,"42":4,"43":2,"44":13,"45":8,"46":3,"47":3,"48":7,"49":2,"50":2,"51":4,"52":3,"53":3,"54":8,"56":6,"57":4,"78":5,"79":16,"80":4,"81":8,"82":15,"83":9,"84":2,"85":2,"86":4,"91":1,"92":1,"93":5,"94":2,"95":2,"98":4,"99":4,"100":1,"101":1,"102":4,"103":4,"104":4,"107":15,"111":2,"112":9,"113":2,"114":2,"120":4,"121":4,"122":3,"123":7,"124":2,"125":2,"126":5,"127":4,"128":4,"129":3,"130":2,"131":1,"132":1,"133":7,"134":4,"135":4,"136":1,"137":1,"138":7,"139":4,"140":1,"141":1,"142":7,"143":2,"144":4,"145":4,"146":4}}],["255万个粒子",{"2":{"157":1}}],["2",{"2":{"5":1,"8":1,"9":1,"26":1,"34":1,"36":3,"37":1,"45":1,"81":3,"107":3,"128":3,"155":2}}],["rmul",{"2":{"143":1}}],["rsub",{"2":{"139":1}}],["reference",{"0":{"159":1}}],["realnumber",{"0":{"47":1,"59":1,"111":1,"141":1,"143":1,"144":1,"145":1},"2":{"47":2,"60":1,"111":2,"141":1,"143":1,"144":1,"145":1}}],["result",{"2":{"34":4}}],["return",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"22":2,"33":2,"34":4,"36":1,"37":3,"42":1,"43":1,"44":5,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":3,"57":1,"79":4,"80":2,"81":2,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":4,"94":1,"95":1,"99":1,"102":1,"103":1,"104":1,"109":1,"112":2,"114":1,"115":1,"116":3,"117":3,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"130":1,"133":2,"134":1,"135":1,"138":2,"139":1,"142":2,"143":1,"144":1,"145":1,"146":1,"155":1}}],["range",{"2":{"155":2}}],["rand",{"0":{"95":1},"2":{"95":1}}],["radius",{"0":{"155":1},"2":{"155":6}}],["radian=true",{"2":{"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"80":1,"122":1}}],["radian",{"0":{"4":1},"2":{"4":5,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":2,"17":2,"18":2,"19":1,"22":3}}],["radd",{"2":{"135":1}}],["raise",{"0":{"113":1},"2":{"34":1,"44":1,"45":2,"80":1,"81":1,"82":1,"83":1,"93":1,"112":2,"113":2,"133":1,"138":1,"139":1,"142":1}}],["ratio",{"0":{"26":1}}],[">",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":3,"36":1,"37":3,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"104":1,"109":1,"115":1,"116":2,"117":2,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["戻り値",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"33":1,"34":1,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"99":1,"102":1,"103":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"155":1}}],["geometricmodels",{"0":{"154":1},"1":{"155":1}}],["get",{"0":{"34":1,"47":1,"48":1},"2":{"34":2,"47":1,"48":1,"83":1,"89":1}}],["gradient",{"0":{"36":1},"2":{"36":1}}],["gamma",{"0":{"27":1}}],["golden",{"0":{"26":1}}],["gt",{"0":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":1,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"102":2,"104":2,"117":3,"123":1,"133":2,"135":1,"138":2,"139":1}}],["githubで表示",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["can",{"2":{"157":1}}],["cal",{"0":{"36":1,"43":1,"44":1,"45":1,"46":1,"80":1,"81":1,"82":1,"83":1,"84":1,"122":1},"2":{"36":1,"43":2,"44":1,"45":1,"46":1,"56":1,"80":2,"81":1,"82":1,"83":1,"84":1,"93":2,"95":1,"122":1}}],["callable",{"2":{"64":1,"65":1,"67":1,"68":1,"70":1,"71":1,"73":1,"74":1}}],["call",{"0":{"33":1},"2":{"33":1}}],["cz",{"2":{"78":1}}],["clamp",{"0":{"109":1},"2":{"109":1,"155":1}}],["classmethod",{"2":{"54":1,"55":1,"86":1,"87":2,"88":2,"89":2,"90":1}}],["class",{"0":{"2":1,"3":1,"31":1,"40":1,"77":1,"97":1,"106":1,"110":1,"119":1,"154":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["cls",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":2,"87":2,"88":2,"89":2,"90":2}}],["cross",{"0":{"123":1},"2":{"44":4,"45":3,"46":1,"53":1,"82":1,"88":1,"89":1,"123":1,"124":1,"125":1}}],["c",{"0":{"78":1},"2":{"37":2,"78":4,"79":7,"81":2,"82":6,"83":2,"86":1,"87":3}}],["curried",{"2":{"37":4}}],["currying",{"2":{"37":1}}],["curry",{"0":{"37":1},"2":{"37":2}}],["curveequation",{"0":{"31":1},"1":{"32":1,"33":1},"2":{"38":1}}],["csc",{"0":{"15":1},"2":{"15":1}}],["coincident",{"2":{"83":1}}],["complex",{"2":{"60":1}}],["complementary",{"0":{"5":1},"2":{"5":1,"80":1}}],["collinear",{"0":{"51":1},"2":{"51":1,"56":1}}],["coplanar",{"0":{"53":1},"2":{"44":1,"45":2,"53":1,"56":1}}],["const",{"0":{"23":1},"1":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1}}],["cot",{"0":{"13":1},"2":{"13":1}}],["cos",{"0":{"11":1},"2":{"11":2,"14":1,"155":2}}],["または",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["ソースコード",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["默认为否",{"2":{"4":1}}],["引数",{"2":{"4":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"155":1}}],["任意角度",{"2":{"4":1,"38":1}}],["説明",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"147":1,"148":1,"149":1,"150":1,"155":1}}],["f",{"2":{"80":1,"81":1,"93":1,"113":1,"117":3,"133":1,"138":1,"139":1,"142":1}}],["from",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":1,"84":1,"87":1,"88":2,"89":2,"90":2,"104":1,"157":1}}],["format",{"0":{"117":1},"2":{"117":1}}],["for",{"2":{"33":1,"34":1,"93":1,"133":1,"138":1,"139":1,"142":1,"155":2}}],["function",{"0":{"35":1},"1":{"36":1,"37":1}}],["func",{"0":{"32":3,"34":3,"36":2,"37":2,"109":1,"115":1,"116":1,"117":1},"2":{"32":12,"33":6,"34":15,"36":8,"37":5}}],["false",{"0":{"4":1,"116":1,"117":1},"2":{"79":1}}],["float=0",{"2":{"115":1}}],["float=1e",{"2":{"49":1}}],["float=approx",{"2":{"42":1,"99":1,"115":1,"121":1,"124":1}}],["float=epsilon",{"2":{"36":1}}],["float",{"0":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"36":1,"42":1,"44":1,"49":1,"78":4,"81":1,"98":3,"99":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"155":2},"2":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"42":1,"44":2,"49":1,"59":1,"78":8,"81":2,"98":6,"99":1,"109":8,"112":2,"115":4,"116":2,"117":2,"120":6,"121":1,"124":1,"128":2,"142":3,"144":1,"155":2}}],["==",{"2":{"33":1,"44":1,"53":1,"54":3,"83":1,"89":1,"93":1}}],["=",{"0":{"4":1,"16":1,"18":1,"19":1,"20":1,"21":1,"34":1,"36":1,"42":1,"49":1,"99":1,"100":1,"101":1,"104":1,"115":2,"116":1,"117":1,"121":1,"124":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":2,"32":3,"34":5,"36":4,"37":1,"41":2,"54":3,"55":1,"78":5,"79":6,"82":17,"83":2,"87":2,"88":3,"89":3,"98":3,"107":5,"111":1,"120":3,"126":4,"155":7}}],["improve",{"2":{"159":1}}],["import",{"2":{"104":1}}],["i",{"2":{"155":4,"157":1}}],["invalid",{"2":{"34":1}}],["intersect",{"2":{"45":2}}],["intersection",{"0":{"45":1,"82":1,"83":1},"2":{"45":1,"56":1,"82":2,"83":1,"93":2,"95":1}}],["int",{"0":{"34":2,"142":1},"2":{"34":3,"37":4,"59":1,"112":2,"142":2,"155":1}}],["in",{"2":{"33":1,"34":1,"155":2}}],["init",{"0":{"4":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1},"2":{"4":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1}}],["if",{"2":{"4":1,"22":1,"33":1,"34":1,"44":2,"45":2,"54":3,"56":1,"79":1,"80":1,"81":1,"82":2,"83":1,"89":1,"93":3,"112":3,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1,"157":1}}],["isinstance",{"2":{"22":1,"34":2,"44":2,"80":2,"81":2,"93":2,"112":4,"133":2,"138":2,"139":1,"142":2}}],["is",{"0":{"4":1,"49":1,"50":1,"51":1,"52":1,"53":1,"85":1,"124":1,"125":1},"2":{"4":3,"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"42":2,"44":2,"45":2,"49":2,"50":2,"51":3,"52":2,"53":1,"56":3,"57":2,"80":1,"82":1,"85":2,"93":1,"122":1,"124":1,"125":1}}],["预设",{"2":{"0":1}}],["phi",{"2":{"155":5}}],["p3",{"0":{"88":1},"2":{"88":3}}],["p2",{"0":{"55":1,"88":1,"107":1},"2":{"55":3,"57":1,"88":3,"107":8}}],["p1",{"0":{"55":1,"88":1,"107":1},"2":{"55":4,"57":1,"88":5,"107":8}}],["perpendicular",{"0":{"46":1},"2":{"46":1}}],["parametric",{"0":{"48":1},"2":{"48":1,"83":1}}],["parallel",{"0":{"49":1,"50":1,"84":1,"85":1,"124":1,"125":1},"2":{"42":2,"44":1,"45":2,"49":2,"50":2,"51":2,"52":1,"56":1,"57":2,"82":2,"83":1,"84":1,"85":2,"93":1,"124":1,"125":1}}],["partial",{"0":{"34":1},"2":{"34":6}}],["particle",{"0":{"151":1},"2":{"0":1}}],["planes",{"2":{"82":1}}],["plane",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"83":1}}],["plane3",{"0":{"77":1,"79":1,"80":1,"81":1,"82":1,"84":2,"85":1,"87":1,"88":1,"89":1,"90":1,"92":1},"1":{"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"38":1,"79":2,"80":3,"81":3,"82":2,"84":4,"85":2,"87":2,"88":1,"89":1,"90":1,"92":1,"93":3,"94":1,"112":1}}],["plus",{"2":{"34":3}}],["p",{"0":{"36":1},"2":{"36":20,"102":5,"104":4,"133":2,"135":2,"138":2,"139":2}}],["points",{"0":{"55":1,"88":1},"2":{"55":1,"88":1}}],["point",{"0":{"41":1,"46":1,"47":1,"52":2,"84":1,"87":2,"90":2,"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"41":4,"42":2,"44":5,"45":3,"46":5,"47":2,"48":3,"51":2,"52":5,"53":2,"54":3,"57":2,"83":3,"84":4,"87":6,"88":1,"89":6,"90":5}}],["point3",{"0":{"33":2,"36":1,"41":1,"44":1,"45":1,"46":1,"47":1,"52":1,"55":2,"56":1,"81":1,"83":2,"84":1,"87":1,"88":3,"90":1,"91":1,"95":1,"97":1,"99":1,"100":1,"101":2,"104":1,"107":2,"132":2,"135":2,"137":2,"139":1},"1":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"33":4,"36":2,"38":1,"41":2,"44":3,"45":2,"46":2,"47":2,"52":2,"55":4,"56":2,"81":3,"82":1,"83":4,"84":2,"87":2,"88":6,"90":2,"91":1,"93":2,"95":2,"99":2,"100":1,"101":2,"102":3,"103":1,"104":2,"107":5,"112":1,"132":2,"133":4,"135":5,"137":2,"138":4,"139":5,"155":2}}],["positive",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["python",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"55":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"155":1}}],["pythondef",{"2":{"4":1,"16":1,"17":1,"18":1,"19":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":2,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"93":1,"94":1,"95":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"130":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["property",{"2":{"4":1,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":1,"85":1,"86":1,"126":1,"127":2,"128":2,"129":1}}],["presets",{"0":{"152":1,"153":1},"1":{"154":1,"155":1},"2":{"0":1}}],["pi",{"0":{"24":1},"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"24":1,"155":2}}],["粒子生成工具",{"2":{"0":1}}],["mc特效红石音乐",{"2":{"157":1}}],["model",{"0":{"153":1},"1":{"154":1,"155":1}}],["midpoint",{"2":{"107":1}}],["minecraft",{"2":{"157":1}}],["min",{"0":{"109":1},"2":{"109":4}}],["minus",{"2":{"34":3}}],["minimum",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["multiarraysfunc",{"0":{"74":1},"2":{"75":1}}],["multisinglevarsfunc",{"0":{"73":1},"2":{"75":1}}],["multivarsfunc",{"0":{"34":2,"37":1,"75":1},"2":{"34":3,"37":2}}],["mul",{"2":{"19":1,"140":1,"141":1,"142":1,"143":1}}],["matmul",{"2":{"144":1}}],["math导入使用",{"2":{"38":1}}],["math",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"80":1,"122":1,"128":1}}],["max",{"0":{"109":1},"2":{"109":4}}],["maximum",{"0":{"9":1},"2":{"9":1}}],["method",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["mp",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"38":1}}],["mbcp",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1},"2":{"0":3}}],["提供了一些工具",{"2":{"0":1}}],["モジュール",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexroot.C2iqEqiL.js b/assets/chunks/@localSearchIndexroot.C2iqEqiL.js deleted file mode 100644 index e336745..0000000 --- a/assets/chunks/@localSearchIndexroot.C2iqEqiL.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":163,"nextId":163,"documentIds":{"0":"/api/#模块-mbcp","1":"/api/mp_math/angle.html#模块-mbcp-mp-math-angle","2":"/api/mp_math/angle.html#class-angle","3":"/api/mp_math/angle.html#class-anyangle-angle","4":"/api/mp_math/angle.html#method-init-self-value-float-is-radian-bool-false","5":"/api/mp_math/angle.html#method-complementary-self-anyangle","6":"/api/mp_math/angle.html#method-supplementary-self-anyangle","7":"/api/mp_math/angle.html#method-degree-self-float","8":"/api/mp_math/angle.html#method-minimum-positive-self-anyangle","9":"/api/mp_math/angle.html#method-maximum-negative-self-anyangle","10":"/api/mp_math/angle.html#method-sin-self-float","11":"/api/mp_math/angle.html#method-cos-self-float","12":"/api/mp_math/angle.html#method-tan-self-float","13":"/api/mp_math/angle.html#method-cot-self-float","14":"/api/mp_math/angle.html#method-sec-self-float","15":"/api/mp_math/angle.html#method-csc-self-float","16":"/api/mp_math/angle.html#method-self-other-anyangle-anyangle","17":"/api/mp_math/angle.html#method-eq-self-other","18":"/api/mp_math/angle.html#method-self-other-anyangle-anyangle-1","19":"/api/mp_math/angle.html#method-self-other-float-anyangle","20":"/api/mp_math/angle.html#method-self-other-float-anyangle-1","21":"/api/mp_math/angle.html#method-self-other-anyangle-float","22":"/api/mp_math/angle.html#method-self-other","23":"/api/mp_math/const.html#模块-mbcp-mp-math-const","24":"/api/mp_math/const.html#var-pi","25":"/api/mp_math/const.html#var-e","26":"/api/mp_math/const.html#var-golden-ratio","27":"/api/mp_math/const.html#var-gamma","28":"/api/mp_math/const.html#var-epsilon","29":"/api/mp_math/const.html#var-approx","30":"/api/mp_math/equation.html#模块-mbcp-mp-math-equation","31":"/api/mp_math/equation.html#class-curveequation","32":"/api/mp_math/equation.html#method-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","33":"/api/mp_math/equation.html#method-call-self-t-var-point3-tuple-point3","34":"/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","35":"/api/mp_math/function.html#模块-mbcp-mp-math-function","36":"/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","37":"/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","38":"/api/mp_math/#模块-mbcp-mp-math","39":"/api/mp_math/line.html#模块-mbcp-mp-math-line","40":"/api/mp_math/line.html#class-line3","41":"/api/mp_math/line.html#method-init-self-point-point3-direction-vector3","42":"/api/mp_math/line.html#method-approx-self-other-line3-epsilon-float-approx-bool","43":"/api/mp_math/line.html#method-cal-angle-self-other-line3-anyangle","44":"/api/mp_math/line.html#method-cal-distance-self-other-line3-point3-float","45":"/api/mp_math/line.html#method-cal-intersection-self-other-line3-point3","46":"/api/mp_math/line.html#method-cal-perpendicular-self-point-point3-line3","47":"/api/mp_math/line.html#method-get-point-self-t-realnumber-point3","48":"/api/mp_math/line.html#method-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","49":"/api/mp_math/line.html#method-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","50":"/api/mp_math/line.html#method-is-parallel-self-other-line3-bool","51":"/api/mp_math/line.html#method-is-collinear-self-other-line3-bool","52":"/api/mp_math/line.html#method-is-point-on-self-point-point3-bool","53":"/api/mp_math/line.html#method-is-coplanar-self-other-line3-bool","54":"/api/mp_math/line.html#method-simplify-self","55":"/api/mp_math/line.html#method-from-two-points-cls-p1-point3-p2-point3-line3","56":"/api/mp_math/line.html#method-and-self-other-line3-line3-point3-none","57":"/api/mp_math/line.html#method-eq-self-other-bool","58":"/api/mp_math/mp_math_typing.html#模块-mbcp-mp-math-mp-math-typing","59":"/api/mp_math/mp_math_typing.html#var-realnumber","60":"/api/mp_math/mp_math_typing.html#var-number","61":"/api/mp_math/mp_math_typing.html#var-singlevar","62":"/api/mp_math/mp_math_typing.html#var-arrayvar","63":"/api/mp_math/mp_math_typing.html#var-var","64":"/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","65":"/api/mp_math/mp_math_typing.html#var-onearrayfunc","66":"/api/mp_math/mp_math_typing.html#var-onevarfunc","67":"/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","68":"/api/mp_math/mp_math_typing.html#var-twoarraysfunc","69":"/api/mp_math/mp_math_typing.html#var-twovarsfunc","70":"/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","71":"/api/mp_math/mp_math_typing.html#var-threearraysfunc","72":"/api/mp_math/mp_math_typing.html#var-threevarsfunc","73":"/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","74":"/api/mp_math/mp_math_typing.html#var-multiarraysfunc","75":"/api/mp_math/mp_math_typing.html#var-multivarsfunc","76":"/api/mp_math/plane.html#模块-mbcp-mp-math-plane","77":"/api/mp_math/plane.html#class-plane3","78":"/api/mp_math/plane.html#method-init-self-a-float-b-float-c-float-d-float","79":"/api/mp_math/plane.html#method-approx-self-other-plane3-bool","80":"/api/mp_math/plane.html#method-cal-angle-self-other-line3-plane3-anyangle","81":"/api/mp_math/plane.html#method-cal-distance-self-other-plane3-point3-float","82":"/api/mp_math/plane.html#method-cal-intersection-line3-self-other-plane3-line3","83":"/api/mp_math/plane.html#method-cal-intersection-point3-self-other-line3-point3","84":"/api/mp_math/plane.html#method-cal-parallel-plane3-self-point-point3-plane3","85":"/api/mp_math/plane.html#method-is-parallel-self-other-plane3-bool","86":"/api/mp_math/plane.html#method-normal-self-vector3","87":"/api/mp_math/plane.html#method-from-point-and-normal-cls-point-point3-normal-vector3-plane3","88":"/api/mp_math/plane.html#method-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","89":"/api/mp_math/plane.html#method-from-two-lines-cls-l1-line3-l2-line3-plane3","90":"/api/mp_math/plane.html#method-from-point-and-line-cls-point-point3-line-line3-plane3","91":"/api/mp_math/plane.html#method-and-self-other-line3-point3-none","92":"/api/mp_math/plane.html#method-and-self-other-plane3-line3-none","93":"/api/mp_math/plane.html#method-and-self-other","94":"/api/mp_math/plane.html#method-eq-self-other-bool","95":"/api/mp_math/plane.html#method-rand-self-other-line3-point3","96":"/api/mp_math/point.html#模块-mbcp-mp-math-point","97":"/api/mp_math/point.html#class-point3","98":"/api/mp_math/point.html#method-init-self-x-float-y-float-z-float","99":"/api/mp_math/point.html#method-approx-self-other-point3-epsilon-float-approx-bool","100":"/api/mp_math/point.html#method-self-other-vector3-point3","101":"/api/mp_math/point.html#method-self-other-point3-point3","102":"/api/mp_math/point.html#method-self-other","103":"/api/mp_math/point.html#method-eq-self-other","104":"/api/mp_math/point.html#method-self-other-point3-vector3","105":"/api/mp_math/segment.html#模块-mbcp-mp-math-segment","106":"/api/mp_math/segment.html#class-segment3","107":"/api/mp_math/segment.html#method-init-self-p1-point3-p2-point3","108":"/api/mp_math/utils.html#模块-mbcp-mp-math-utils","109":"/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","110":"/api/mp_math/utils.html#class-approx","111":"/api/mp_math/utils.html#method-init-self-value-realnumber","112":"/api/mp_math/utils.html#method-eq-self-other","113":"/api/mp_math/utils.html#method-raise-type-error-self-other","114":"/api/mp_math/utils.html#method-ne-self-other","115":"/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","116":"/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","117":"/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","118":"/api/mp_math/vector.html#模块-mbcp-mp-math-vector","119":"/api/mp_math/vector.html#class-vector3","120":"/api/mp_math/vector.html#method-init-self-x-float-y-float-z-float","121":"/api/mp_math/vector.html#method-approx-self-other-vector3-epsilon-float-approx-bool","122":"/api/mp_math/vector.html#method-cal-angle-self-other-vector3-anyangle","123":"/api/mp_math/vector.html#method-cross-self-other-vector3-vector3","124":"/api/mp_math/vector.html#method-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","125":"/api/mp_math/vector.html#method-is-parallel-self-other-vector3-bool","126":"/api/mp_math/vector.html#method-normalize-self","127":"/api/mp_math/vector.html#method-np-array-self-np-ndarray","128":"/api/mp_math/vector.html#method-length-self-float","129":"/api/mp_math/vector.html#method-unit-self-vector3","130":"/api/mp_math/vector.html#method-abs-self","131":"/api/mp_math/vector.html#method-self-other-vector3-vector3","132":"/api/mp_math/vector.html#method-self-other-point3-point3","133":"/api/mp_math/vector.html#method-self-other","134":"/api/mp_math/vector.html#method-eq-self-other","135":"/api/mp_math/vector.html#method-self-other-point3-point3-1","136":"/api/mp_math/vector.html#method-self-other-vector3-vector3-1","137":"/api/mp_math/vector.html#method-self-other-point3-point3-2","138":"/api/mp_math/vector.html#method-self-other-1","139":"/api/mp_math/vector.html#method-self-other-point3","140":"/api/mp_math/vector.html#method-self-other-vector3-vector3-2","141":"/api/mp_math/vector.html#method-self-other-realnumber-vector3","142":"/api/mp_math/vector.html#method-self-other-int-float-vector3-vector3","143":"/api/mp_math/vector.html#method-self-other-realnumber-vector3-1","144":"/api/mp_math/vector.html#method-self-other-vector3-realnumber","145":"/api/mp_math/vector.html#method-self-other-realnumber-vector3-2","146":"/api/mp_math/vector.html#method-self-vector3","147":"/api/mp_math/vector.html#var-zero-vector3","148":"/api/mp_math/vector.html#var-x-axis","149":"/api/mp_math/vector.html#var-y-axis","150":"/api/mp_math/vector.html#var-z-axis","151":"/api/particle/#模块-mbcp-particle","152":"/api/presets/#模块-mbcp-presets","153":"/api/presets/model/#模块-mbcp-presets-model","154":"/api/presets/model/#class-geometricmodels","155":"/api/presets/model/#method-sphere-radius-float-density-float","156":"/demo/best-practice.html#最佳实践","157":"/demo/best-practice.html#作品","158":"/demo/#demo","159":"/guide/#快速开始","160":"/guide/#安装","161":"/refer/7-differential-euqtion/#微分方程","162":"/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,12],"1":[5,1,2],"2":[2,5,1],"3":[4,5,1],"4":[11,9,25],"5":[5,9,24],"6":[5,9,23],"7":[5,9,20],"8":[6,9,21],"9":[6,9,23],"10":[5,9,18],"11":[5,9,18],"12":[5,9,18],"13":[5,9,20],"14":[5,9,20],"15":[5,9,20],"16":[7,9,15],"17":[5,9,11],"18":[6,9,14],"19":[7,9,16],"20":[7,9,13],"21":[7,9,13],"22":[3,9,15],"23":[5,1,2],"24":[2,5,7],"25":[2,5,8],"26":[3,5,10],"27":[2,5,6],"28":[2,5,6],"29":[2,5,6],"30":[5,1,2],"31":[2,5,1],"32":[9,7,26],"33":[10,7,34],"34":[14,5,73],"35":[5,1,2],"36":[13,5,69],"37":[7,5,62],"38":[4,1,20],"39":[5,1,2],"40":[2,5,1],"41":[8,7,25],"42":[11,7,43],"43":[8,7,28],"44":[10,7,63],"45":[8,7,60],"46":[8,7,29],"47":[8,7,35],"48":[9,7,42],"49":[14,7,43],"50":[8,7,36],"51":[8,7,39],"52":[8,7,36],"53":[8,7,42],"54":[4,7,27],"55":[10,7,36],"56":[9,7,52],"57":[6,7,44],"58":[5,1,2],"59":[2,5,9],"60":[2,5,9],"61":[2,5,7],"62":[2,5,8],"63":[2,5,9],"64":[2,5,8],"65":[2,5,8],"66":[2,5,9],"67":[2,5,8],"68":[2,5,8],"69":[2,5,9],"70":[2,5,8],"71":[2,5,8],"72":[2,5,9],"73":[2,5,8],"74":[2,5,8],"75":[2,5,9],"76":[5,1,2],"77":[2,5,1],"78":[9,7,36],"79":[7,7,45],"80":[10,7,92],"81":[10,7,66],"82":[9,7,102],"83":[9,7,69],"84":[9,7,30],"85":[8,7,37],"86":[5,7,25],"87":[10,7,45],"88":[11,7,39],"89":[10,7,44],"90":[10,7,35],"91":[9,7,15],"92":[9,7,15],"93":[5,7,70],"94":[6,7,35],"95":[7,7,15],"96":[5,1,2],"97":[2,5,1],"98":[8,7,26],"99":[11,7,45],"100":[8,7,13],"101":[7,7,12],"102":[4,7,34],"103":[5,7,37],"104":[7,7,36],"105":[5,1,2],"106":[2,5,1],"107":[7,7,32],"108":[5,1,2],"109":[7,5,31],"110":[2,5,1],"111":[6,7,20],"112":[5,7,31],"113":[7,7,15],"114":[5,7,11],"115":[11,5,40],"116":[11,5,43],"117":[12,5,49],"118":[5,1,3],"119":[2,5,1],"120":[8,7,29],"121":[11,7,44],"122":[8,7,46],"123":[6,7,50],"124":[13,7,43],"125":[8,7,37],"126":[4,7,17],"127":[6,7,31],"128":[5,7,33],"129":[5,7,21],"130":[4,7,10],"131":[7,7,12],"132":[7,7,12],"133":[4,7,46],"134":[5,7,37],"135":[7,7,31],"136":[6,7,12],"137":[6,7,12],"138":[3,7,45],"139":[4,7,42],"140":[6,7,12],"141":[7,7,13],"142":[9,7,55],"143":[7,7,13],"144":[7,7,38],"145":[7,7,15],"146":[5,7,21],"147":[3,5,7],"148":[3,5,8],"149":[3,5,8],"150":[3,5,8],"151":[3,1,2],"152":[3,1,2],"153":[4,1,2],"154":[2,4,2],"155":[6,6,48],"156":[1,1,1],"157":[1,1,25],"158":[1,1,1],"159":[1,1,6],"160":[1,1,4],"161":[1,1,1],"162":[1,1,7]},"averageFieldLength":[5.65644171779141,5.834355828220857,22.938650306748468],"storedFields":{"0":{"title":"模块 mbcp","titles":[]},"1":{"title":"模块 mbcp.mp_math.angle","titles":[]},"2":{"title":"class Angle","titles":["模块 mbcp.mp_math.angle"]},"3":{"title":"class AnyAngle(Angle)","titles":["模块 mbcp.mp_math.angle"]},"4":{"title":"method __init__(self, value: float, is_radian: bool = False)","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"5":{"title":"method complementary(self) -> AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"method supplementary(self) -> AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"method degree(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"method minimum_positive(self) -> AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"method maximum_negative(self) -> AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"method sin(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"method cos(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"method tan(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"method cot(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"method sec(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"method csc(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"method self + other: AnyAngle => AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"method __eq__(self, other)","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"method self - other: AnyAngle => AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"method self * other: float => AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"method self / other: float => AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"method self / other: AnyAngle => float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"method self / other","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"模块 mbcp.mp_math.const","titles":[]},"24":{"title":"var PI","titles":["模块 mbcp.mp_math.const"]},"25":{"title":"var E","titles":["模块 mbcp.mp_math.const"]},"26":{"title":"var GOLDEN_RATIO","titles":["模块 mbcp.mp_math.const"]},"27":{"title":"var GAMMA","titles":["模块 mbcp.mp_math.const"]},"28":{"title":"var EPSILON","titles":["模块 mbcp.mp_math.const"]},"29":{"title":"var APPROX","titles":["模块 mbcp.mp_math.const"]},"30":{"title":"模块 mbcp.mp_math.equation","titles":[]},"31":{"title":"class CurveEquation","titles":["模块 mbcp.mp_math.equation"]},"32":{"title":"method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["模块 mbcp.mp_math.equation","class CurveEquation"]},"33":{"title":"method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["模块 mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["模块 mbcp.mp_math.equation"]},"35":{"title":"模块 mbcp.mp_math.function","titles":[]},"36":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["模块 mbcp.mp_math.function"]},"37":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["模块 mbcp.mp_math.function"]},"38":{"title":"模块 mbcp.mp_math","titles":[]},"39":{"title":"模块 mbcp.mp_math.line","titles":[]},"40":{"title":"class Line3","titles":["模块 mbcp.mp_math.line"]},"41":{"title":"method __init__(self, point: Point3, direction: Vector3)","titles":["模块 mbcp.mp_math.line","class Line3"]},"42":{"title":"method approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"43":{"title":"method cal_angle(self, other: Line3) -> AnyAngle","titles":["模块 mbcp.mp_math.line","class Line3"]},"44":{"title":"method cal_distance(self, other: Line3 | Point3) -> float","titles":["模块 mbcp.mp_math.line","class Line3"]},"45":{"title":"method cal_intersection(self, other: Line3) -> Point3","titles":["模块 mbcp.mp_math.line","class Line3"]},"46":{"title":"method cal_perpendicular(self, point: Point3) -> Line3","titles":["模块 mbcp.mp_math.line","class Line3"]},"47":{"title":"method get_point(self, t: RealNumber) -> Point3","titles":["模块 mbcp.mp_math.line","class Line3"]},"48":{"title":"method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["模块 mbcp.mp_math.line","class Line3"]},"49":{"title":"method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"50":{"title":"method is_parallel(self, other: Line3) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"51":{"title":"method is_collinear(self, other: Line3) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"52":{"title":"method is_point_on(self, point: Point3) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"53":{"title":"method is_coplanar(self, other: Line3) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"54":{"title":"method simplify(self)","titles":["模块 mbcp.mp_math.line","class Line3"]},"55":{"title":"method from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["模块 mbcp.mp_math.line","class Line3"]},"56":{"title":"method __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["模块 mbcp.mp_math.line","class Line3"]},"57":{"title":"method __eq__(self, other) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"58":{"title":"模块 mbcp.mp_math.mp_math_typing","titles":[]},"59":{"title":"var RealNumber","titles":["模块 mbcp.mp_math.mp_math_typing"]},"60":{"title":"var Number","titles":["模块 mbcp.mp_math.mp_math_typing"]},"61":{"title":"var SingleVar","titles":["模块 mbcp.mp_math.mp_math_typing"]},"62":{"title":"var ArrayVar","titles":["模块 mbcp.mp_math.mp_math_typing"]},"63":{"title":"var Var","titles":["模块 mbcp.mp_math.mp_math_typing"]},"64":{"title":"var OneSingleVarFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"65":{"title":"var OneArrayFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"66":{"title":"var OneVarFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"67":{"title":"var TwoSingleVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"68":{"title":"var TwoArraysFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"69":{"title":"var TwoVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"70":{"title":"var ThreeSingleVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"71":{"title":"var ThreeArraysFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"72":{"title":"var ThreeVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"73":{"title":"var MultiSingleVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"74":{"title":"var MultiArraysFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"75":{"title":"var MultiVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"76":{"title":"模块 mbcp.mp_math.plane","titles":[]},"77":{"title":"class Plane3","titles":["模块 mbcp.mp_math.plane"]},"78":{"title":"method __init__(self, a: float, b: float, c: float, d: float)","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"79":{"title":"method approx(self, other: Plane3) -> bool","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"80":{"title":"method cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"81":{"title":"method cal_distance(self, other: Plane3 | Point3) -> float","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"82":{"title":"method cal_intersection_line3(self, other: Plane3) -> Line3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"83":{"title":"method cal_intersection_point3(self, other: Line3) -> Point3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"84":{"title":"method cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"85":{"title":"method is_parallel(self, other: Plane3) -> bool","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"86":{"title":"method normal(self) -> Vector3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"87":{"title":"method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"88":{"title":"method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"89":{"title":"method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"90":{"title":"method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"91":{"title":"method __and__(self, other: Line3) -> Point3 | None","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"92":{"title":"method __and__(self, other: Plane3) -> Line3 | None","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"93":{"title":"method __and__(self, other)","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"94":{"title":"method __eq__(self, other) -> bool","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"95":{"title":"method __rand__(self, other: Line3) -> Point3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"96":{"title":"模块 mbcp.mp_math.point","titles":[]},"97":{"title":"class Point3","titles":["模块 mbcp.mp_math.point"]},"98":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["模块 mbcp.mp_math.point","class Point3"]},"99":{"title":"method approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["模块 mbcp.mp_math.point","class Point3"]},"100":{"title":"method self + other: Vector3 => Point3","titles":["模块 mbcp.mp_math.point","class Point3"]},"101":{"title":"method self + other: Point3 => Point3","titles":["模块 mbcp.mp_math.point","class Point3"]},"102":{"title":"method self + other","titles":["模块 mbcp.mp_math.point","class Point3"]},"103":{"title":"method __eq__(self, other)","titles":["模块 mbcp.mp_math.point","class Point3"]},"104":{"title":"method self - other: Point3 => Vector3","titles":["模块 mbcp.mp_math.point","class Point3"]},"105":{"title":"模块 mbcp.mp_math.segment","titles":[]},"106":{"title":"class Segment3","titles":["模块 mbcp.mp_math.segment"]},"107":{"title":"method __init__(self, p1: Point3, p2: Point3)","titles":["模块 mbcp.mp_math.segment","class Segment3"]},"108":{"title":"模块 mbcp.mp_math.utils","titles":[]},"109":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["模块 mbcp.mp_math.utils"]},"110":{"title":"class Approx","titles":["模块 mbcp.mp_math.utils"]},"111":{"title":"method __init__(self, value: RealNumber)","titles":["模块 mbcp.mp_math.utils","class Approx"]},"112":{"title":"method __eq__(self, other)","titles":["模块 mbcp.mp_math.utils","class Approx"]},"113":{"title":"method raise_type_error(self, other)","titles":["模块 mbcp.mp_math.utils","class Approx"]},"114":{"title":"method __ne__(self, other)","titles":["模块 mbcp.mp_math.utils","class Approx"]},"115":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["模块 mbcp.mp_math.utils"]},"116":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["模块 mbcp.mp_math.utils"]},"117":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["模块 mbcp.mp_math.utils"]},"118":{"title":"模块 mbcp.mp_math.vector","titles":[]},"119":{"title":"class Vector3","titles":["模块 mbcp.mp_math.vector"]},"120":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"121":{"title":"method approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"122":{"title":"method cal_angle(self, other: Vector3) -> AnyAngle","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"123":{"title":"method cross(self, other: Vector3) -> Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"124":{"title":"method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"125":{"title":"method is_parallel(self, other: Vector3) -> bool","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"126":{"title":"method normalize(self)","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"127":{"title":"method np_array(self) -> np.ndarray","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"128":{"title":"method length(self) -> float","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"129":{"title":"method unit(self) -> Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"130":{"title":"method __abs__(self)","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"131":{"title":"method self + other: Vector3 => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"132":{"title":"method self + other: Point3 => Point3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"133":{"title":"method self + other","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"134":{"title":"method __eq__(self, other)","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"135":{"title":"method self + other: Point3 => Point3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"136":{"title":"method self - other: Vector3 => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"137":{"title":"method self - other: Point3 => Point3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"138":{"title":"method self - other","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"139":{"title":"method self - other: Point3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"140":{"title":"method self * other: Vector3 => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"141":{"title":"method self * other: RealNumber => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"142":{"title":"method self * other: int | float | Vector3 => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"143":{"title":"method self * other: RealNumber => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"144":{"title":"method self @ other: Vector3 => RealNumber","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"145":{"title":"method self / other: RealNumber => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"146":{"title":"method - self => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"147":{"title":"var zero_vector3","titles":["模块 mbcp.mp_math.vector"]},"148":{"title":"var x_axis","titles":["模块 mbcp.mp_math.vector"]},"149":{"title":"var y_axis","titles":["模块 mbcp.mp_math.vector"]},"150":{"title":"var z_axis","titles":["模块 mbcp.mp_math.vector"]},"151":{"title":"模块 mbcp.particle","titles":[]},"152":{"title":"模块 mbcp.presets","titles":[]},"153":{"title":"模块 mbcp.presets.model","titles":[]},"154":{"title":"class GeometricModels","titles":["模块 mbcp.presets.model"]},"155":{"title":"method sphere(radius: float, density: float)","titles":["模块 mbcp.presets.model","class GeometricModels"]},"156":{"title":"最佳实践","titles":[]},"157":{"title":"作品","titles":["最佳实践"]},"158":{"title":"demo","titles":[]},"159":{"title":"快速开始","titles":[]},"160":{"title":"安装","titles":["快速开始"]},"161":{"title":"微分方程","titles":[]},"162":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["微分方程",{"0":{"161":1}}],["安装",{"0":{"160":1}}],["兼容性优先",{"2":{"159":1}}],["把你项目所使用的python换成pypy",{"2":{"159":1}}],["建议",{"2":{"159":1}}],["快速开始",{"0":{"159":1},"1":{"160":1}}],["红石音乐",{"2":{"157":1}}],["这样可以提高性能",{"2":{"159":1}}],["这么可爱真是抱歉",{"2":{"157":1}}],["这玩意不太稳定",{"2":{"34":2}}],["轻涟",{"2":{"157":1}}],["芙宁娜pv曲",{"2":{"157":1}}],["有点甜~",{"2":{"157":1}}],["有关函数柯里化",{"2":{"37":2}}],["星穹铁道",{"2":{"157":1}}],["崩坏",{"2":{"157":1}}],["使一颗心免于哀伤",{"2":{"157":1}}],["总有一条蜿蜒在童话镇里",{"2":{"157":1}}],["童话镇~",{"2":{"157":1}}],["特效红石音乐",{"2":{"157":2}}],["作品",{"0":{"157":1}}],["4",{"2":{"155":1}}],["球体上的点集",{"2":{"155":2}}],["生成球体上的点集",{"2":{"155":2}}],["几何模型点集",{"2":{"153":1}}],["零向量",{"2":{"147":1}}],["负向量",{"2":{"146":2}}],["取负",{"2":{"146":2}}],["取两平面的交集",{"2":{"93":2}}],["非点乘",{"2":{"142":2}}],["别去点那边实现了",{"2":{"135":2}}],["单位向量",{"2":{"129":2}}],["单变量",{"2":{"61":1}}],["模",{"2":{"128":2}}],["模块",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1}}],["将向量归一化",{"2":{"126":2}}],["j",{"2":{"123":1}}],["转换为行列式形式",{"2":{"123":2}}],["叉乘使用cross",{"2":{"142":2}}],["叉乘结果",{"2":{"123":2}}],["叉乘运算法则为",{"2":{"123":2}}],["叉乘",{"2":{"123":2}}],["向量的模",{"2":{"128":2}}],["向量积",{"2":{"123":2}}],["向量夹角计算公式",{"2":{"122":2}}],["以及一些常用的向量",{"2":{"118":1}}],["格式化符号数",{"2":{"117":2}}],["quot",{"2":{"116":2,"117":4}}],["符号",{"2":{"116":2,"117":2}}],["获取该向量的单位向量",{"2":{"129":2}}],["获取数的符号",{"2":{"116":2}}],["获取直线的参数方程",{"2":{"48":2}}],["获取直线上的点",{"2":{"47":2}}],["用于判断是否近似于0",{"2":{"115":2}}],["用于近似比较对象",{"2":{"111":2}}],["限定在区间内的值",{"2":{"109":2}}],["值",{"2":{"109":2}}],["区间限定函数",{"2":{"109":2}}],["us",{"2":{"162":1}}],["unit",{"0":{"129":1},"2":{"129":1}}],["unsupported",{"2":{"44":1,"80":1,"81":1,"93":1,"113":1,"133":1,"138":1,"139":1,"142":1}}],["utils",{"0":{"108":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1}}],["中心点",{"2":{"107":1}}],["中实现",{"2":{"104":2}}],["长度",{"2":{"107":1}}],["线段的另一个端点",{"2":{"107":2}}],["线段的一个端点",{"2":{"107":2}}],["新的向量或点",{"2":{"133":2}}],["新的向量",{"2":{"104":2,"138":2}}],["新的点",{"2":{"102":2,"135":2,"139":2}}],["已在",{"2":{"104":2}}],["已知一个函数$f",{"2":{"36":1}}],["已知一个函数f",{"2":{"36":1}}],["坐标",{"2":{"98":6}}],["笛卡尔坐标系中的点",{"2":{"98":2}}],["人话",{"2":{"93":2}}],["法向量",{"2":{"86":2,"87":2}}],["依次假设$x=0$",{"2":{"82":1}}],["依次假设x=0",{"2":{"82":1}}],["并代入两平面方程求出合适的点",{"2":{"82":2}}],["并对向量单位化",{"2":{"54":2}}],["寻找直线上的一点",{"2":{"82":2}}],["为直线的方向向量",{"2":{"80":2}}],["为平面的法向量",{"2":{"80":2}}],["分别为两个平面的法向量",{"2":{"80":2}}],["和",{"2":{"80":2}}],["其中",{"2":{"80":4}}],["θ=arccos⁡",{"2":{"80":2,"122":1}}],["k",{"2":{"79":12,"123":1}}],["常数项",{"2":{"78":2}}],["常量",{"2":{"24":1}}],["平面上一点",{"2":{"87":2,"90":2}}],["平面的法向量",{"2":{"86":2}}],["平面",{"2":{"84":2,"87":2,"88":2,"89":2,"90":2}}],["平面与直线平行或重合",{"2":{"83":2}}],["平面与直线夹角计算公式",{"2":{"80":2}}],["平面平行且无交线",{"2":{"82":2}}],["平面间夹角计算公式",{"2":{"80":2}}],["平面方程",{"2":{"78":2}}],["平行线返回none",{"2":{"56":2}}],["多元函数",{"2":{"75":1}}],["多元数组函数",{"2":{"74":1}}],["多元单变量函数",{"2":{"73":1}}],["二元函数",{"2":{"69":1}}],["二元数组函数",{"2":{"68":1}}],["二元单变量函数",{"2":{"67":1}}],["一元函数",{"2":{"66":1}}],["一元数组函数",{"2":{"65":1}}],["一元单变量函数",{"2":{"64":1}}],["一阶偏导",{"2":{"34":2}}],["变量",{"2":{"63":1}}],["变量位置",{"2":{"34":2}}],["数组运算结果",{"2":{"142":2}}],["数组运算",{"2":{"142":2}}],["数组变量",{"2":{"62":1}}],["数2",{"2":{"115":2}}],["数1",{"2":{"115":2}}],["数",{"2":{"60":1,"116":2,"117":2}}],["数学工具",{"2":{"0":1}}],["类型",{"2":{"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1}}],["实数",{"2":{"59":1,"111":2}}],["∧",{"2":{"57":2}}],["交线",{"2":{"82":2,"93":2}}],["交线返回交点",{"2":{"56":2}}],["交集",{"2":{"56":2,"93":2}}],["交点",{"2":{"45":2,"83":2}}],["重合线返回自身",{"2":{"56":2}}],["由点和直线构造平面",{"2":{"90":2}}],["由点和法向量构造平面",{"2":{"87":2}}],["由两直线构造平面",{"2":{"89":2}}],["由两点构造直线",{"2":{"55":2}}],["由三点构造平面",{"2":{"88":2}}],["由一个点和一个方向向量确定",{"2":{"41":2}}],["工厂函数",{"2":{"55":2,"87":2,"88":2,"89":2,"90":2}}],["处理",{"2":{"54":2}}],["处的梯度向量为",{"2":{"36":1}}],["化",{"2":{"54":2}}],["按照可行性一次对x",{"2":{"54":2}}],["不返回值",{"2":{"54":2,"126":2}}],["不支持的类型",{"2":{"44":2,"80":2,"81":2,"93":2}}],["自体归一化",{"2":{"126":2}}],["自体简化",{"2":{"54":2}}],["自然对数的底",{"2":{"25":1}}],["等价相等",{"2":{"54":2}}],["简化直线方程",{"2":{"54":2}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"53":2}}],["两角的和为180°",{"2":{"6":2}}],["两角的和为90°",{"2":{"5":2}}],["充要条件",{"2":{"53":2}}],["判断两个向量是否相等",{"2":{"134":2}}],["判断两个向量是否平行",{"2":{"125":2}}],["判断两个向量是否近似平行",{"2":{"124":2}}],["判断两个向量是否近似相等",{"2":{"121":2}}],["判断两个数是否近似相等",{"2":{"115":2}}],["判断两个点是否相等",{"2":{"103":2}}],["判断两个点是否近似相等",{"2":{"99":2}}],["判断两个平面是否等价",{"2":{"94":2}}],["判断两个平面是否平行",{"2":{"85":2}}],["判断两个平面是否近似相等",{"2":{"79":2}}],["判断两条直线是否等价",{"2":{"57":2}}],["判断两条直线是否共面",{"2":{"53":2}}],["判断两条直线是否共线",{"2":{"51":2}}],["判断两条直线是否平行",{"2":{"50":2}}],["判断两条直线是否近似平行",{"2":{"49":2}}],["判断两条直线是否近似相等",{"2":{"42":2}}],["判断点是否在直线上",{"2":{"52":2}}],["另一个向量或数",{"2":{"142":2}}],["另一个向量或点",{"2":{"133":2,"138":2}}],["另一个向量",{"2":{"121":2,"122":2,"123":2,"124":2,"125":2,"134":2,"144":2}}],["另一个点或向量",{"2":{"102":2}}],["另一个点",{"2":{"99":2,"103":2,"104":2,"135":2,"139":2}}],["另一个平面或点",{"2":{"81":2}}],["另一个平面或直线",{"2":{"80":2,"93":2}}],["另一个平面",{"2":{"79":2,"82":2,"85":2,"94":2}}],["另一",{"2":{"50":2,"51":2,"53":2}}],["另一条直线或点",{"2":{"44":2}}],["另一条直线",{"2":{"42":2,"43":2,"45":2,"49":2,"56":2,"57":2}}],["则同一个t对应的点不同",{"2":{"47":2}}],["则其在点$",{"2":{"36":1}}],["则其在点",{"2":{"36":1}}],["但起始点和方向向量不同",{"2":{"47":2}}],["同一条直线",{"2":{"47":2}}],["垂线",{"2":{"46":2}}],["指定点",{"2":{"46":2,"84":2}}],["直线最终可用参数方程或点向式表示",{"2":{"82":2}}],["直线",{"2":{"55":2,"83":2,"89":4,"90":2}}],["直线不共面",{"2":{"45":2}}],["直线平行",{"2":{"45":2}}],["直线上的一点",{"2":{"41":2}}],["距离",{"2":{"44":2,"81":2}}],["夹角",{"2":{"43":2,"80":2,"122":2}}],["是否只返回负数的符号",{"2":{"116":2,"117":2}}],["是否相等",{"2":{"103":2,"134":2}}],["是否等价",{"2":{"57":2,"94":2}}],["是否共面",{"2":{"53":2}}],["是否共线",{"2":{"51":2}}],["是否在直线上",{"2":{"52":2}}],["是否平行",{"2":{"50":2,"85":2,"125":2}}],["是否近似平行",{"2":{"49":2,"124":2}}],["是否近似相等",{"2":{"42":2,"79":2,"99":2,"115":2,"121":2}}],["是否为弧度",{"2":{"4":2}}],["误差",{"2":{"42":2,"49":2,"99":2,"115":2,"121":2,"124":2}}],["方向向量",{"2":{"41":2,"107":1}}],["三元数组函数",{"2":{"71":1}}],["三元单变量函数",{"2":{"70":1}}],["三元函数",{"2":{"36":2,"72":1}}],["三维空间中的线段",{"2":{"107":2}}],["三维空间中的直线",{"2":{"41":2}}],["三维向量",{"2":{"38":1}}],["三维线段",{"2":{"38":1}}],["三维点",{"2":{"38":1}}],["三维平面",{"2":{"38":1}}],["三维直线",{"2":{"38":1}}],["导入的类有",{"2":{"38":1}}],["本包定义了一些常用的导入",{"2":{"38":1}}],["本模块塞了一些预设",{"2":{"152":1}}],["本模块用于内部类型提示",{"2":{"58":1}}],["本模块定义了粒子生成相关的工具",{"2":{"151":1}}],["本模块定义了3维向量的类vector3",{"2":{"118":1}}],["本模块定义了一些常用的工具函数",{"2":{"108":1}}],["本模块定义了一些常用的常量",{"2":{"23":1}}],["本模块定义了三维空间中点的类",{"2":{"96":1}}],["本模块定义了三维空间中的线段类",{"2":{"105":1}}],["本模块定义了三维空间中的平面类",{"2":{"76":1}}],["本模块定义了三维空间中的直线类",{"2":{"39":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"30":1}}],["本模块定义了角度相关的类",{"2":{"1":1}}],["本模块是主模块",{"2":{"0":1}}],["help",{"2":{"162":1}}],["heart",{"2":{"157":1}}],["have",{"2":{"82":1}}],["html",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["https",{"2":{"37":1,"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["high",{"2":{"34":2}}],["hide",{"2":{"34":2,"37":1}}],["6",{"2":{"37":2}}],["3维向量",{"2":{"120":2}}],["3a",{"2":{"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"57":1,"78":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["355859667",{"2":{"37":1}}],["3",{"2":{"37":2,"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["3vf",{"0":{"36":1},"2":{"36":1}}],["breaking",{"2":{"157":1}}],["begin",{"2":{"82":1,"123":1}}],["by",{"2":{"78":2}}],["bound=iterable",{"2":{"62":1}}],["bound=number",{"2":{"61":1}}],["bool=false",{"2":{"4":1,"116":1,"117":1}}],["bool",{"0":{"4":1,"42":1,"49":1,"50":1,"51":1,"52":1,"53":1,"57":1,"79":1,"85":1,"94":1,"99":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1},"2":{"42":3,"49":3,"50":3,"51":3,"52":3,"53":3,"57":3,"79":3,"85":3,"94":3,"99":3,"103":2,"115":3,"116":2,"117":2,"121":3,"124":3,"125":3,"134":2}}],["b",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["示例",{"2":{"37":1}}],["柯里化后的函数",{"2":{"37":2}}],["柯理化",{"2":{"37":2}}],["函数式编程",{"2":{"37":1}}],["函数",{"2":{"37":2}}],["对多参数函数进行柯里化",{"2":{"37":2}}],["dt",{"2":{"82":3}}],["d=n1×n2",{"2":{"82":1}}],["d",{"0":{"78":1},"2":{"78":7,"79":6,"80":2,"81":1,"82":7,"83":1,"87":2}}],["documentation",{"2":{"162":1}}],["doc",{"2":{"127":1}}],["docs",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["do",{"2":{"45":2}}],["distance",{"0":{"44":1,"81":1},"2":{"44":1,"81":1}}],["direction",{"0":{"41":1},"2":{"41":5,"42":1,"43":2,"44":8,"45":6,"46":1,"47":1,"48":3,"49":2,"50":2,"51":1,"52":1,"53":2,"54":4,"55":2,"57":3,"80":1,"82":2,"83":4,"89":1,"90":1,"93":1,"107":2}}],["dz",{"2":{"36":2}}],["dy",{"2":{"36":2}}],["dx",{"2":{"36":2}}],["demo",{"0":{"158":1}}],["density",{"0":{"155":1},"2":{"155":4}}],["derivative",{"0":{"34":1},"2":{"34":6}}],["degree",{"0":{"7":1},"2":{"7":1}}],["def",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"34":2,"37":2,"55":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"155":1}}],["$z=0$",{"2":{"82":1}}],["$y=0$",{"2":{"82":1}}],["$d$",{"2":{"80":1}}],["$n$",{"2":{"80":1}}],["$n2$",{"2":{"80":1}}],["$n1$",{"2":{"80":1}}],["$$",{"2":{"80":4,"82":6,"122":2,"123":4}}],["$处的梯度向量为",{"2":{"36":1}}],["$",{"2":{"36":3}}],["梯度",{"2":{"36":2}}],["点乘结果",{"2":{"144":2}}],["点乘",{"2":{"144":2}}],["点乘使用",{"2":{"142":2}}],["点3",{"2":{"88":2}}],["点法式构造",{"2":{"87":2}}],["点2",{"2":{"55":2,"88":2}}],["点1",{"2":{"55":2,"88":2}}],["点",{"2":{"36":2,"47":2,"52":2}}],["∂f∂z",{"2":{"36":1}}],["∂f∂y",{"2":{"36":1}}],["∂f∂x",{"2":{"36":1}}],["∇f",{"2":{"36":1}}],["计算平行于该平面且过指定点的平面",{"2":{"84":2}}],["计算平面与直线的交点",{"2":{"83":2}}],["计算平面与平面或点之间的距离",{"2":{"81":2}}],["计算平面与平面之间的夹角",{"2":{"80":2}}],["计算两个向量之间的夹角",{"2":{"122":2}}],["计算两平面交线的一般步骤",{"2":{"82":2}}],["计算两平面的交线",{"2":{"82":2}}],["计算两条直线点集合的交集",{"2":{"56":2}}],["计算两条直线的交点",{"2":{"45":2}}],["计算直线经过指定点p的垂线",{"2":{"46":2}}],["计算直线和直线或点之间的距离",{"2":{"44":2}}],["计算直线和直线之间的夹角",{"2":{"43":2}}],["计算三元函数在某点的梯度向量",{"2":{"36":2}}],["计算曲线上的点",{"2":{"33":2}}],["vmatrix",{"2":{"123":2}}],["v3",{"2":{"123":2}}],["v2",{"2":{"57":2,"88":2,"89":4,"122":1,"123":13}}],["v1x⋅v2y−v1y⋅v2x",{"2":{"123":1}}],["v1z⋅v2x−v1x⋅v2z",{"2":{"123":1}}],["v1y⋅v2z−v1z⋅v2y",{"2":{"123":1}}],["v1×v2=|ijkv1xv1yv1zv2xv2yv2z|",{"2":{"123":1}}],["v1×v2=",{"2":{"123":1}}],["v1⋅v2|v1|⋅|v2|",{"2":{"122":1}}],["v1",{"2":{"57":4,"88":2,"89":2,"122":1,"123":13}}],["vector",{"0":{"118":1},"1":{"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"41":1,"86":1,"87":1,"102":1,"104":3,"142":1}}],["vector3",{"0":{"36":1,"41":1,"86":1,"87":1,"100":1,"104":1,"119":1,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"131":2,"136":2,"140":2,"141":1,"142":2,"143":1,"144":1,"145":1,"146":1,"147":1},"1":{"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"36":2,"38":1,"41":3,"86":4,"87":3,"89":1,"100":1,"102":2,"104":7,"112":2,"121":3,"122":3,"123":7,"124":3,"125":4,"129":3,"131":2,"133":7,"134":2,"136":2,"138":7,"139":1,"140":2,"141":1,"142":9,"143":1,"144":3,"145":2,"146":4,"147":2,"148":2,"149":2,"150":2}}],["v",{"2":{"34":2,"102":2,"104":4,"133":8,"135":2,"138":8,"139":2}}],["var",{"0":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"33":1,"34":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":2,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1},"2":{"32":3,"33":1,"34":14,"36":1,"37":7,"47":1,"48":1}}],["valueerror",{"2":{"34":3,"45":4,"82":3,"83":3}}],["value",{"0":{"4":1,"111":1},"2":{"4":5,"111":5,"112":6,"113":1}}],["求两平面的法向量的叉乘得到方向向量",{"2":{"82":2}}],["求高阶偏导函数",{"2":{"34":1}}],["求n元函数一阶偏导函数",{"2":{"34":2}}],["l2",{"0":{"89":1},"2":{"89":5}}],["l1",{"0":{"89":1},"2":{"89":7}}],["lambda",{"2":{"48":3}}],["left",{"2":{"36":1}}],["length",{"0":{"128":1},"2":{"44":5,"45":1,"80":2,"107":2,"122":2,"124":1,"126":5,"128":1,"129":1,"130":1}}],["len",{"2":{"33":1}}],["linalg",{"2":{"82":3}}],["lines",{"0":{"89":1},"2":{"45":2,"89":1}}],["line",{"0":{"39":1,"90":2},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"57":1,"80":1,"82":1,"83":2,"89":1,"90":6,"93":2}}],["line3",{"0":{"40":1,"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"80":1,"82":2,"83":1,"89":2,"90":1,"91":1,"92":1,"95":1},"1":{"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"38":1,"42":3,"43":3,"44":4,"45":3,"46":4,"49":3,"50":3,"51":3,"53":3,"55":3,"56":6,"57":2,"80":4,"82":5,"83":3,"89":5,"90":3,"91":1,"92":1,"93":6,"95":1,"112":1}}],["library",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["list",{"2":{"34":8,"155":10}}],["litedoc",{"2":{"34":2,"37":1}}],["`np",{"2":{"127":1}}],["`none`",{"2":{"56":1,"93":1}}],["`str`",{"2":{"116":1,"117":1}}],["`plane3`",{"2":{"79":1,"80":1,"81":1,"82":1,"84":1,"85":1,"87":1,"93":1,"94":1}}],["`point3`",{"2":{"36":1,"41":1,"44":1,"45":1,"46":1,"47":1,"52":1,"55":2,"56":1,"81":1,"83":1,"84":1,"87":1,"88":3,"90":1,"93":1,"99":1,"102":2,"103":1,"104":1,"107":2,"133":2,"135":2,"138":2,"139":2}}],["`onesinglevarfunc`",{"2":{"48":3}}],["`onevarfunc`",{"2":{"32":3}}],["`realnumber`",{"2":{"47":1,"111":1}}],["`tuple`",{"2":{"48":1}}],["`typeerror`",{"2":{"44":1,"80":1,"81":1,"93":1}}],["`threesinglevarsfunc`",{"2":{"36":1}}],["`anyangle`",{"2":{"43":1,"80":1,"122":1}}],["`bool`",{"2":{"42":1,"49":1,"50":1,"51":1,"52":1,"53":1,"57":1,"79":1,"85":1,"94":1,"99":1,"103":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1,"134":1}}],["`float`",{"2":{"42":1,"44":1,"49":1,"78":4,"81":1,"98":3,"99":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"144":1}}],["`line3`",{"2":{"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"57":1,"80":1,"82":1,"83":1,"89":2,"90":1,"93":2}}],["`valueerror`",{"2":{"45":2,"82":1,"83":1}}],["`var`",{"2":{"37":1}}],["`vector3`",{"2":{"41":1,"86":1,"87":1,"102":1,"104":2,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"133":2,"134":1,"138":2,"142":2,"144":1,"146":1}}],["```",{"2":{"37":1}}],["```python",{"2":{"37":1}}],["`multivarsfunc`",{"2":{"34":1,"37":1}}],["无效变量类型",{"2":{"34":2}}],["引发",{"2":{"34":1,"44":1,"45":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["偏导函数",{"2":{"34":2}}],["偏移量",{"2":{"34":2,"36":2}}],["高阶偏导数值",{"2":{"34":1}}],["高阶偏导",{"2":{"34":2}}],["可愛くてごめん",{"2":{"157":1}}],["可直接从mbcp",{"2":{"38":1}}],["可参考",{"2":{"37":1}}],["可参考函数式编程",{"2":{"37":1}}],["可为整数",{"2":{"34":2}}],["可导入",{"2":{"0":1}}],["因此该函数的稳定性有待提升",{"2":{"34":2}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"34":2}}],["目标点",{"2":{"33":2}}],["warning",{"2":{"34":2}}],["慎用",{"2":{"34":2}}],["num",{"2":{"155":5}}],["numpy",{"2":{"127":2}}],["numpy数组",{"2":{"127":2}}],["number=epsilon",{"2":{"34":1}}],["number",{"0":{"34":1,"60":1},"2":{"62":1}}],["ndarray`",{"2":{"127":1}}],["ndarray",{"0":{"127":1},"2":{"127":3}}],["neg",{"0":{"116":1,"117":1},"2":{"116":4,"117":4,"146":1}}],["negative",{"0":{"9":1},"2":{"9":1}}],["ne",{"0":{"114":1},"2":{"114":1}}],["np",{"0":{"127":2},"2":{"82":9,"127":4,"155":9}}],["n",{"2":{"80":2,"82":1}}],["n⋅d|n|⋅|d|",{"2":{"80":1}}],["n2",{"2":{"80":2,"82":1}}],["n1",{"2":{"80":2,"82":1}}],["n1⋅n2|n1|⋅|n2|",{"2":{"80":1}}],["no",{"2":{"82":1}}],["normal",{"0":{"86":1,"87":2},"2":{"80":5,"82":4,"83":1,"84":2,"85":2,"86":1,"87":7,"88":3,"89":1,"90":1,"93":3}}],["normalize",{"0":{"126":1},"2":{"54":1,"126":1}}],["none",{"0":{"56":1,"91":1,"92":1},"2":{"56":4,"91":1,"92":1,"93":4}}],["not",{"2":{"44":1,"45":4,"56":1,"114":1,"116":1,"117":1}}],["nabla",{"2":{"36":1}}],["n元函数",{"2":{"34":2}}],["|v2|",{"2":{"122":1}}],["|v1|",{"2":{"122":1}}],["|d|",{"2":{"80":1}}],["|n|",{"2":{"80":1}}],["|n2|",{"2":{"80":1}}],["|n1|",{"2":{"80":1}}],["|",{"0":{"33":1,"34":1,"44":1,"56":2,"80":1,"81":1,"91":1,"92":1,"142":2},"2":{"33":1,"34":1,"44":3,"56":6,"59":1,"60":1,"63":1,"66":1,"69":1,"72":1,"75":1,"80":3,"81":3,"91":1,"92":1,"93":6,"102":2,"133":4,"138":4,"142":4}}],["曲线方程",{"2":{"32":2,"38":1}}],["z轴单位向量",{"2":{"150":1}}],["z轴分量",{"2":{"120":2}}],["zero",{"0":{"147":1},"2":{"89":1,"125":1}}],["z=0",{"2":{"82":1}}],["z系数",{"2":{"78":2}}],["zhihu",{"2":{"37":1}}],["zhuanlan",{"2":{"37":1}}],["z0",{"2":{"36":2}}],["zip",{"2":{"33":1}}],["z函数",{"2":{"32":2}}],["z",{"0":{"32":1,"98":1,"120":1,"150":1},"2":{"32":5,"33":4,"36":11,"48":2,"54":4,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"120":5,"121":2,"123":10,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["y轴单位向量",{"2":{"149":1}}],["y轴分量",{"2":{"120":2}}],["y=0",{"2":{"82":1}}],["y系数",{"2":{"78":2}}],["y0",{"2":{"36":2}}],["y函数",{"2":{"32":2}}],["y",{"0":{"32":1,"98":1,"115":1,"120":1,"149":1},"2":{"32":5,"33":4,"36":11,"48":2,"54":4,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"115":4,"120":5,"121":2,"123":10,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["x轴单位向量",{"2":{"148":1}}],["x轴分量",{"2":{"120":2}}],["x3c",{"2":{"99":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x26",{"2":{"93":1,"123":6}}],["x−x0m=y−y0n=z−z0p",{"2":{"82":1}}],["x=x0+dty=y0+dtz=z0+dt或",{"2":{"82":1}}],["x系数",{"2":{"78":2}}],["x0",{"2":{"36":2}}],["x函数",{"2":{"32":2}}],["x",{"0":{"32":1,"98":1,"109":1,"115":1,"116":1,"117":1,"120":1,"148":1},"2":{"32":5,"33":4,"36":11,"48":2,"54":2,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"109":4,"112":2,"115":4,"116":5,"117":8,"120":5,"121":2,"123":12,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["约等于判定误差",{"2":{"29":1}}],["精度误差",{"2":{"28":1}}],["06",{"0":{"49":1},"2":{"49":1}}],["001",{"2":{"29":1}}],["0001",{"2":{"28":1}}],["0",{"0":{"115":2},"2":{"27":1,"28":1,"29":1,"33":3,"36":6,"44":2,"53":1,"54":8,"78":2,"79":3,"81":2,"82":15,"83":1,"93":1,"115":1,"116":2,"117":4,"147":3,"148":2,"149":2,"150":2,"155":2}}],["欧拉常数",{"2":{"27":1}}],["5772156649015329",{"2":{"27":1}}],["5",{"2":{"26":1,"81":1}}],["黄金分割比",{"2":{"26":1}}],["geometricmodels",{"0":{"154":1},"1":{"155":1}}],["generated",{"2":{"127":1}}],["get",{"0":{"34":1,"47":1,"48":1},"2":{"34":2,"47":1,"48":1,"83":1,"89":1}}],["gradient",{"0":{"36":1},"2":{"36":1}}],["gamma",{"0":{"27":1}}],["golden",{"0":{"26":1}}],["gt",{"0":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":1,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"102":2,"104":2,"117":3,"123":1,"133":2,"135":1,"138":2,"139":1}}],["默认值",{"2":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1}}],["默认为否",{"2":{"4":2}}],["π",{"2":{"24":1}}],["to",{"2":{"162":1}}],["times",{"2":{"82":1,"123":2}}],["tip",{"2":{"36":2,"37":2,"80":4,"82":2,"122":2,"123":2,"159":1}}],["the",{"2":{"83":2,"162":1}}],["theta",{"2":{"80":2,"122":1,"155":3}}],["three",{"0":{"88":1},"2":{"88":1}}],["threevarsfunc",{"0":{"72":1}}],["threearraysfunc",{"0":{"71":1},"2":{"72":1}}],["threesinglevarsfunc",{"0":{"36":1,"70":1},"2":{"36":3,"72":1}}],["twovarsfunc",{"0":{"69":1}}],["twoarraysfunc",{"0":{"68":1},"2":{"69":1}}],["twosinglevarsfunc",{"0":{"67":1},"2":{"69":1}}],["two",{"0":{"55":1,"89":1},"2":{"55":1,"89":1}}],["typevar",{"2":{"61":1,"62":1}}],["typealias",{"2":{"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["typeerror",{"2":{"44":3,"45":1,"80":3,"81":3,"93":3,"113":1,"133":1,"138":1,"139":1,"142":1}}],["type",{"0":{"113":1},"2":{"34":1,"44":1,"80":2,"81":2,"93":2,"112":2,"113":4,"133":2,"138":2,"139":2,"142":2}}],["typing",{"0":{"58":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1},"2":{"32":3,"34":1,"36":1,"37":2,"47":1,"48":1,"111":1}}],["tuple",{"0":{"33":1,"34":1,"48":1},"2":{"33":2,"34":2,"48":3}}],["t",{"0":{"33":1,"47":1},"2":{"33":10,"47":4,"48":6,"83":4}}],["truediv",{"2":{"20":1,"21":1,"22":1,"145":1}}],["tan",{"0":{"12":1},"2":{"12":2,"13":1}}],["operand",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["only",{"0":{"116":1,"117":1},"2":{"116":4,"117":4}}],["on",{"0":{"52":1},"2":{"52":1}}],["one",{"2":{"157":1}}],["onearrayfunc",{"0":{"65":1},"2":{"66":1}}],["onesinglevarfunc",{"0":{"48":3,"64":1},"2":{"48":7,"66":1}}],["onevarfunc",{"0":{"32":3,"37":1,"66":1},"2":{"32":9,"37":1}}],["or",{"2":{"56":1,"83":1}}],["org",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["order",{"2":{"34":2}}],["overload",{"2":{"19":1,"20":2,"21":1,"90":1,"91":2,"92":1,"99":1,"100":2,"101":1,"130":1,"131":2,"132":1,"135":1,"136":2,"137":1,"139":1,"140":2,"141":1}}],["other",{"0":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"42":1,"43":1,"44":1,"45":1,"49":1,"50":1,"51":1,"53":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"85":1,"91":1,"92":1,"93":1,"94":1,"95":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"112":1,"113":1,"114":1,"121":1,"122":1,"123":1,"124":1,"125":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1},"2":{"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":4,"42":5,"43":4,"44":13,"45":9,"49":4,"50":4,"51":5,"53":5,"56":7,"57":5,"79":15,"80":9,"81":9,"82":17,"83":11,"85":4,"91":1,"92":1,"93":10,"94":4,"95":2,"99":6,"100":1,"101":1,"102":6,"103":6,"104":6,"112":9,"113":2,"114":2,"121":6,"122":5,"123":9,"124":4,"125":4,"131":1,"132":1,"133":12,"134":6,"135":6,"136":1,"137":1,"138":12,"139":8,"140":1,"141":1,"142":12,"143":2,"144":6,"145":4}}],["ep",{"2":{"157":1}}],["epsilon",{"0":{"28":1,"34":2,"36":2,"42":1,"49":1,"99":1,"115":1,"121":1,"124":1},"2":{"34":7,"36":12,"42":5,"49":4,"99":6,"115":4,"121":6,"124":4}}],["error",{"0":{"113":1},"2":{"112":2,"113":1}}],["end",{"2":{"82":1,"123":1}}],["exceptions",{"2":{"44":1,"45":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["examples",{"2":{"37":1}}],["exp",{"2":{"25":1}}],["elif",{"2":{"34":1,"44":3,"56":1,"79":2,"80":1,"81":1,"82":2,"93":1,"112":1,"116":1,"117":1,"133":1,"138":1,"142":1}}],["else",{"2":{"4":1,"33":1,"34":1,"44":2,"56":1,"79":1,"80":1,"81":1,"93":1,"112":2,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1}}],["e",{"0":{"25":1},"2":{"25":1}}],["equations",{"0":{"48":1},"2":{"48":1,"83":1}}],["equation",{"0":{"30":1},"1":{"31":1,"32":1,"33":1,"34":1}}],["eq",{"0":{"17":1,"57":1,"94":1,"103":1,"112":1,"134":1},"2":{"17":1,"57":1,"94":1,"103":1,"112":1,"114":1,"134":1}}],["+1",{"2":{"117":2}}],["+=",{"2":{"34":1}}],["+",{"0":{"16":1,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1,"135":1},"2":{"16":1,"26":1,"36":3,"37":4,"45":1,"47":1,"48":3,"78":6,"81":5,"82":3,"83":5,"102":7,"107":3,"116":3,"117":3,"128":2,"133":11,"135":5,"144":2,"155":1}}],["1e",{"0":{"49":1}}],["1",{"2":{"13":1,"14":1,"15":1,"25":1,"26":1,"33":1,"37":2,"82":1,"89":1,"117":6,"148":1,"149":1,"150":1,"155":4}}],["180",{"2":{"4":1,"7":1}}],["正割值",{"2":{"14":4}}],["正切值",{"2":{"12":4}}],["正弦值",{"2":{"10":4}}],["余割值",{"2":{"15":4}}],["余切值",{"2":{"13":4}}],["余弦值",{"2":{"11":4}}],["余角",{"2":{"5":4}}],["最佳实践",{"0":{"156":1},"1":{"157":1}}],["最大值",{"2":{"109":2}}],["最大负角度",{"2":{"9":2}}],["最大负角",{"2":{"9":2}}],["最小值",{"2":{"109":2}}],["最小正角度",{"2":{"8":2}}],["最小正角",{"2":{"8":2}}],["弧度",{"2":{"7":2}}],["角度",{"2":{"7":2}}],["角度或弧度值",{"2":{"4":2}}],["补角",{"2":{"6":4}}],["shellpip",{"2":{"160":1}}],["sphere",{"0":{"155":1},"2":{"155":1}}],["stop",{"2":{"157":1}}],["staticmethod",{"2":{"154":1,"155":1}}],["stable",{"2":{"127":1}}],["str",{"0":{"116":1,"117":1},"2":{"116":3,"117":3}}],["stdtypes",{"2":{"48":1}}],["s",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["solve",{"2":{"82":3}}],["sign",{"0":{"116":1,"117":1},"2":{"116":1,"117":1}}],["simplify",{"0":{"54":1},"2":{"54":1}}],["singlevar",{"0":{"61":1},"2":{"61":1,"63":1,"64":2,"67":3,"70":4,"73":1}}],["sin",{"0":{"10":1},"2":{"10":2,"15":1,"155":3}}],["sqrt",{"2":{"26":1,"128":1,"155":1}}],["sub",{"2":{"18":1,"104":1,"136":1,"137":1,"138":1}}],["supplementary",{"0":{"6":1},"2":{"6":1}}],["segment",{"0":{"105":1},"1":{"106":1,"107":1}}],["segment3",{"0":{"106":1},"1":{"107":1},"2":{"38":1}}],["sec",{"0":{"14":1},"2":{"14":1}}],["self",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":3,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":3,"32":4,"33":7,"41":3,"42":4,"43":2,"44":13,"45":8,"46":3,"47":3,"48":7,"49":2,"50":2,"51":4,"52":3,"53":3,"54":8,"56":6,"57":4,"78":5,"79":16,"80":4,"81":8,"82":15,"83":9,"84":2,"85":2,"86":4,"91":1,"92":1,"93":5,"94":2,"95":2,"98":4,"99":4,"100":1,"101":1,"102":4,"103":4,"104":4,"107":15,"111":2,"112":9,"113":2,"114":2,"120":4,"121":4,"122":3,"123":7,"124":2,"125":2,"126":5,"127":4,"128":4,"129":3,"130":2,"131":1,"132":1,"133":7,"134":4,"135":4,"136":1,"137":1,"138":7,"139":4,"140":1,"141":1,"142":7,"143":2,"144":4,"145":4,"146":4}}],["255万个粒子",{"2":{"157":1}}],["2",{"2":{"5":1,"8":1,"9":1,"26":1,"34":1,"36":3,"37":2,"45":1,"81":3,"82":1,"107":3,"128":3,"155":2}}],["rmul",{"2":{"143":1}}],["rsub",{"2":{"139":1}}],["right",{"2":{"36":1}}],["reference",{"0":{"162":1},"2":{"127":1}}],["realnumber",{"0":{"47":1,"59":1,"111":1,"141":1,"143":1,"144":1,"145":1},"2":{"47":3,"60":1,"111":3,"141":1,"143":1,"144":1,"145":1}}],["result",{"2":{"34":4}}],["return",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"22":2,"33":2,"34":4,"36":1,"37":4,"42":1,"43":1,"44":5,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":3,"57":1,"79":4,"80":2,"81":2,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":4,"94":1,"95":1,"99":1,"102":1,"103":1,"104":1,"109":1,"112":2,"114":1,"115":1,"116":3,"117":3,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"130":1,"133":2,"134":1,"135":1,"138":2,"139":1,"142":2,"143":1,"144":1,"145":1,"146":1,"155":1}}],["returns",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"33":1,"34":2,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"99":1,"102":1,"103":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"155":1}}],["range",{"2":{"155":2}}],["rand",{"0":{"95":1},"2":{"95":1}}],["radius",{"0":{"155":1},"2":{"155":7}}],["radian=true",{"2":{"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"80":1,"122":1}}],["radian",{"0":{"4":1},"2":{"4":6,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":2,"17":2,"18":2,"19":1,"22":3}}],["radd",{"2":{"135":1}}],["raise",{"0":{"113":1},"2":{"34":1,"44":1,"45":2,"80":1,"81":1,"82":1,"83":1,"93":1,"112":2,"113":2,"133":1,"138":1,"139":1,"142":1}}],["raises",{"2":{"34":1,"44":1,"45":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["ratio",{"0":{"26":1}}],[">",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":5,"36":3,"37":6,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"102":2,"104":3,"109":1,"115":1,"116":2,"117":5,"121":1,"122":1,"123":2,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"133":2,"135":2,"136":1,"137":1,"138":2,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["返回numpy数组",{"2":{"127":1}}],["返回",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"33":1,"34":1,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"99":1,"102":1,"103":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"155":1}}],["can",{"2":{"157":1}}],["cases",{"2":{"82":2}}],["cal",{"0":{"36":1,"43":1,"44":1,"45":1,"46":1,"80":1,"81":1,"82":1,"83":1,"84":1,"122":1},"2":{"36":1,"43":2,"44":1,"45":1,"46":1,"56":1,"80":2,"81":1,"82":1,"83":1,"84":1,"93":2,"95":1,"122":1}}],["callable",{"2":{"64":1,"65":1,"67":1,"68":1,"70":1,"71":1,"73":1,"74":1}}],["call",{"0":{"33":1},"2":{"33":1}}],["cdot",{"2":{"80":4,"122":2,"123":6}}],["cz",{"2":{"78":2}}],["clamp",{"0":{"109":1},"2":{"109":1,"155":1}}],["classmethod",{"2":{"54":1,"55":1,"86":1,"87":2,"88":2,"89":2,"90":1}}],["class",{"0":{"2":1,"3":1,"31":1,"40":1,"77":1,"97":1,"106":1,"110":1,"119":1,"154":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1},"2":{"36":1,"41":2,"42":1,"43":2,"44":2,"45":2,"46":2,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":3,"56":3,"57":1,"79":1,"80":3,"81":2,"82":2,"83":2,"84":2,"85":1,"86":1,"87":3,"88":1,"89":1,"90":2,"93":4,"94":1,"99":1,"102":3,"103":1,"104":3,"107":2,"121":1,"122":2,"123":2,"124":1,"125":1,"129":1,"133":4,"134":1,"135":2,"138":4,"139":2,"142":2,"144":1,"146":1}}],["cls",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":2,"87":2,"88":2,"89":2,"90":2}}],["cross",{"0":{"123":1},"2":{"44":4,"45":3,"46":1,"53":1,"82":1,"88":1,"89":1,"123":1,"124":1,"125":1}}],["c",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":6,"83":2,"86":1,"87":3}}],["curried",{"2":{"37":6}}],["currying",{"2":{"37":2}}],["curry",{"0":{"37":1},"2":{"37":3}}],["curveequation",{"0":{"31":1},"1":{"32":1,"33":1},"2":{"38":1}}],["csc",{"0":{"15":1},"2":{"15":1}}],["coincident",{"2":{"83":1}}],["collinear",{"0":{"51":1},"2":{"51":1,"56":1}}],["coplanar",{"0":{"53":1},"2":{"44":1,"45":2,"53":1,"56":1}}],["complex",{"2":{"60":1}}],["complementary",{"0":{"5":1},"2":{"5":1,"80":1}}],["com",{"2":{"37":1}}],["constants",{"2":{"56":1,"93":1}}],["const",{"0":{"23":1},"1":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1}}],["cot",{"0":{"13":1},"2":{"13":1}}],["cos",{"0":{"11":1},"2":{"11":2,"14":1,"155":2}}],["all",{"2":{"99":1,"112":1,"121":1}}],["acos",{"2":{"80":1,"122":1}}],["axis",{"0":{"148":1,"149":1,"150":1}}],["ax",{"2":{"78":2}}],["array",{"0":{"127":1},"2":{"82":6,"127":2,"155":6}}],["arrayvar",{"0":{"62":1},"2":{"62":1,"63":1,"65":2,"68":3,"71":4,"74":1}}],["arccos",{"2":{"80":2,"122":1,"155":1}}],["area",{"2":{"155":2}}],["are",{"2":{"45":2,"82":1,"83":1}}],["args2",{"2":{"37":2}}],["args",{"0":{"37":1},"2":{"4":1,"32":1,"33":1,"34":14,"36":1,"37":5,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"155":1}}],["abs",{"0":{"130":1},"2":{"44":1,"81":1,"99":3,"112":1,"115":1,"117":1,"121":3,"130":1}}],["a",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["aaa",{"2":{"35":1}}],["approx",{"0":{"29":1,"42":2,"49":1,"79":1,"99":2,"110":1,"115":2,"121":2,"124":2},"1":{"111":1,"112":1,"113":1,"114":1},"2":{"17":1,"42":3,"49":2,"79":10,"94":1,"99":1,"103":3,"112":4,"115":1,"121":1,"124":1,"125":1,"134":3}}],["add",{"2":{"16":1,"37":8,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1}}],["and",{"0":{"56":1,"87":1,"90":1,"91":1,"92":1,"93":1},"2":{"42":1,"45":2,"51":1,"56":1,"57":1,"79":6,"82":4,"83":1,"84":1,"87":1,"88":1,"89":1,"90":2,"91":1,"92":1,"93":2,"103":2,"113":1,"133":1,"134":2,"138":1,"139":1,"142":1}}],["anyangle",{"0":{"3":1,"5":1,"6":1,"8":1,"9":1,"16":2,"18":2,"19":1,"20":1,"21":1,"43":1,"80":1,"122":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1},"2":{"5":2,"6":2,"8":2,"9":2,"16":3,"18":3,"19":2,"20":1,"21":1,"22":2,"38":1,"43":3,"80":4,"122":4}}],["angle",{"0":{"1":1,"2":1,"3":1,"43":1,"80":1,"122":1},"1":{"2":1,"3":1,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":2},"2":{"43":3,"80":3,"122":2}}],["在github上查看",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["或包装一个实数",{"2":{"115":2}}],["或整数元组",{"2":{"34":2}}],["或",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":2,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["源代码",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["参数方程",{"2":{"48":2}}],["参数t",{"2":{"47":2}}],["参数",{"2":{"4":1,"32":1,"33":3,"34":2,"36":1,"37":3,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"155":1}}],["任意角度",{"2":{"4":2,"38":1}}],["说明",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"147":1,"148":1,"149":1,"150":1,"155":1}}],["from",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":1,"84":1,"87":1,"88":2,"89":2,"90":2,"104":1,"157":1}}],["frac",{"2":{"36":3,"80":2,"82":3,"122":1}}],["f",{"2":{"36":4,"80":1,"81":1,"93":1,"113":1,"117":3,"133":1,"138":1,"139":1,"142":1}}],["format",{"0":{"117":1},"2":{"117":1}}],["for",{"2":{"33":1,"34":1,"93":1,"133":1,"138":1,"139":1,"142":1,"155":2}}],["functions",{"2":{"42":2,"44":1,"49":2,"50":1,"51":1,"52":1,"53":1,"57":1,"78":1,"79":1,"81":1,"85":1,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["function",{"0":{"35":1},"1":{"36":1,"37":1}}],["func",{"0":{"32":3,"34":3,"36":2,"37":2,"109":1,"115":1,"116":1,"117":1},"2":{"32":15,"33":6,"34":16,"36":9,"37":6}}],["false",{"0":{"4":1,"116":1,"117":1},"2":{"79":1}}],["float=0",{"2":{"115":1}}],["float=1e",{"2":{"49":1}}],["float=approx",{"2":{"42":1,"99":1,"115":1,"121":1,"124":1}}],["float=epsilon",{"2":{"36":1}}],["float",{"0":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"36":1,"42":1,"44":1,"49":1,"78":4,"81":1,"98":3,"99":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"155":2},"2":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"42":2,"44":3,"49":2,"59":1,"78":9,"81":3,"98":7,"99":2,"109":9,"112":2,"115":5,"116":3,"117":3,"120":7,"121":2,"124":2,"128":3,"142":4,"144":2,"155":2}}],["==",{"2":{"33":1,"44":1,"53":1,"54":3,"83":1,"89":1,"93":1}}],["=",{"0":{"4":1,"16":1,"18":1,"19":1,"20":1,"21":1,"34":1,"36":1,"42":1,"49":1,"99":1,"100":1,"101":1,"104":1,"115":2,"116":1,"117":1,"121":1,"124":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":2,"32":3,"34":5,"36":5,"37":2,"41":2,"54":3,"55":1,"78":6,"79":6,"80":2,"82":23,"83":2,"87":2,"88":3,"89":3,"98":3,"107":5,"111":1,"120":3,"122":1,"123":2,"126":4,"155":7}}],["improve",{"2":{"162":1}}],["import",{"2":{"104":1}}],["i",{"2":{"123":1,"155":4,"157":1}}],["install",{"2":{"160":1}}],["invalid",{"2":{"34":1}}],["intersect",{"2":{"45":2}}],["intersection",{"0":{"45":1,"82":1,"83":1},"2":{"45":1,"56":1,"82":2,"83":1,"93":2,"95":1}}],["int",{"0":{"34":2,"142":1},"2":{"34":3,"37":8,"59":1,"112":2,"142":2,"155":1}}],["in",{"2":{"33":1,"34":1,"155":2}}],["init",{"0":{"4":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1},"2":{"4":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1}}],["if",{"2":{"4":1,"22":1,"33":1,"34":1,"44":2,"45":2,"54":3,"56":1,"79":1,"80":1,"81":1,"82":2,"83":1,"89":1,"93":3,"112":3,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1,"157":1}}],["isinstance",{"2":{"22":1,"34":2,"44":2,"80":2,"81":2,"93":2,"112":4,"133":2,"138":2,"139":1,"142":2}}],["is",{"0":{"4":1,"49":1,"50":1,"51":1,"52":1,"53":1,"85":1,"124":1,"125":1},"2":{"4":4,"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"42":2,"44":2,"45":2,"49":2,"50":2,"51":3,"52":2,"53":1,"56":3,"57":2,"80":1,"82":1,"85":2,"93":1,"122":1,"124":1,"125":1}}],["预设",{"2":{"0":1}}],["phi",{"2":{"155":5}}],["p3",{"0":{"88":1},"2":{"88":4}}],["p2",{"0":{"55":1,"88":1,"107":1},"2":{"55":4,"57":2,"88":4,"107":9}}],["p1",{"0":{"55":1,"88":1,"107":1},"2":{"55":5,"57":2,"88":6,"107":9}}],["perpendicular",{"0":{"46":1},"2":{"46":1}}],["parametric",{"0":{"48":1},"2":{"48":1,"83":1}}],["parallel",{"0":{"49":1,"50":1,"84":1,"85":1,"124":1,"125":1},"2":{"42":2,"44":1,"45":2,"49":2,"50":2,"51":2,"52":1,"56":1,"57":2,"82":2,"83":1,"84":1,"85":2,"93":1,"124":1,"125":1}}],["partial",{"0":{"34":1},"2":{"34":6,"36":6}}],["particle",{"0":{"151":1},"2":{"0":1}}],["planes",{"2":{"82":1}}],["plane",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"93":1,"94":1}}],["plane3",{"0":{"77":1,"79":1,"80":1,"81":1,"82":1,"84":2,"85":1,"87":1,"88":1,"89":1,"90":1,"92":1},"1":{"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"38":1,"79":3,"80":4,"81":4,"82":3,"84":5,"85":3,"87":3,"88":1,"89":1,"90":1,"92":1,"93":4,"94":2,"112":1}}],["plus",{"2":{"34":3}}],["p",{"0":{"36":1},"2":{"36":21,"37":1,"82":1,"102":10,"104":8,"133":4,"135":4,"138":4,"139":4}}],["points",{"0":{"55":1,"88":1},"2":{"55":1,"88":1}}],["point",{"0":{"41":1,"46":1,"47":1,"52":2,"84":1,"87":2,"90":2,"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"36":1,"41":6,"42":2,"44":6,"45":4,"46":7,"47":3,"48":3,"51":2,"52":7,"53":2,"54":3,"55":2,"56":1,"57":2,"81":1,"83":4,"84":6,"87":8,"88":2,"89":6,"90":7,"93":1,"99":1,"102":2,"103":1,"104":1,"107":2,"133":2,"135":2,"138":2,"139":2}}],["point3",{"0":{"33":2,"36":1,"41":1,"44":1,"45":1,"46":1,"47":1,"52":1,"55":2,"56":1,"81":1,"83":2,"84":1,"87":1,"88":3,"90":1,"91":1,"95":1,"97":1,"99":1,"100":1,"101":2,"104":1,"107":2,"132":2,"135":2,"137":2,"139":1},"1":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"33":4,"36":3,"38":1,"41":3,"44":4,"45":3,"46":3,"47":3,"52":3,"55":6,"56":3,"81":4,"82":1,"83":5,"84":3,"87":3,"88":7,"90":3,"91":1,"93":3,"95":2,"99":3,"100":1,"101":2,"102":5,"103":2,"104":3,"107":7,"112":1,"132":2,"133":6,"135":7,"137":2,"138":6,"139":7,"155":3}}],["positive",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["python",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":2,"94":1,"98":1,"99":2,"100":1,"101":1,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":2,"129":1,"131":1,"132":1,"134":1,"136":1,"137":1,"140":1,"141":1,"142":1,"144":1,"155":1}}],["pythondef",{"2":{"4":1,"16":1,"17":1,"18":1,"19":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":2,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"93":1,"94":1,"95":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"130":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["property",{"2":{"4":1,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":1,"85":1,"86":1,"126":1,"127":2,"128":2,"129":1}}],["presets",{"0":{"152":1,"153":1},"1":{"154":1,"155":1},"2":{"0":1}}],["pi",{"0":{"24":1},"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"24":1,"155":2}}],["粒子生成工具",{"2":{"0":1}}],["mc特效红石音乐",{"2":{"157":1}}],["model",{"0":{"153":1},"1":{"154":1,"155":1}}],["midpoint",{"2":{"107":1}}],["minecraft",{"2":{"157":1}}],["min",{"0":{"109":1},"2":{"109":5}}],["minus",{"2":{"34":3}}],["minimum",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["m",{"2":{"82":1}}],["multiarraysfunc",{"0":{"74":1},"2":{"75":1}}],["multisinglevarsfunc",{"0":{"73":1},"2":{"75":1}}],["multivarsfunc",{"0":{"34":2,"37":1,"75":1},"2":{"34":4,"37":3}}],["mul",{"2":{"19":1,"140":1,"141":1,"142":1,"143":1}}],["matmul",{"2":{"144":1}}],["math导入使用",{"2":{"38":1}}],["math",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"32":3,"34":1,"36":1,"37":2,"47":1,"48":1,"80":1,"111":1,"122":1,"128":1}}],["max",{"0":{"109":1},"2":{"109":5}}],["maximum",{"0":{"9":1},"2":{"9":1}}],["method",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["mp",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"32":3,"34":1,"36":1,"37":2,"38":1,"47":1,"48":1,"111":1}}],["mbcp",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1},"2":{"0":3,"160":1}}],["提供了一些工具",{"2":{"0":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexroot.DH9jnGhe.js b/assets/chunks/@localSearchIndexroot.DH9jnGhe.js new file mode 100644 index 0000000..c5d420a --- /dev/null +++ b/assets/chunks/@localSearchIndexroot.DH9jnGhe.js @@ -0,0 +1 @@ +const t='{"documentCount":163,"nextId":163,"documentIds":{"0":"/api/#模块-mbcp","1":"/api/mp_math/angle.html#模块-mbcp-mp-math-angle","2":"/api/mp_math/angle.html#class-angle","3":"/api/mp_math/angle.html#class-anyangle-angle","4":"/api/mp_math/angle.html#method-init-self-value-float-is-radian-bool-false","5":"/api/mp_math/angle.html#method-complementary-self-anyangle","6":"/api/mp_math/angle.html#method-supplementary-self-anyangle","7":"/api/mp_math/angle.html#method-degree-self-float","8":"/api/mp_math/angle.html#method-minimum-positive-self-anyangle","9":"/api/mp_math/angle.html#method-maximum-negative-self-anyangle","10":"/api/mp_math/angle.html#method-sin-self-float","11":"/api/mp_math/angle.html#method-cos-self-float","12":"/api/mp_math/angle.html#method-tan-self-float","13":"/api/mp_math/angle.html#method-cot-self-float","14":"/api/mp_math/angle.html#method-sec-self-float","15":"/api/mp_math/angle.html#method-csc-self-float","16":"/api/mp_math/angle.html#method-self-other-anyangle-anyangle","17":"/api/mp_math/angle.html#method-eq-self-other","18":"/api/mp_math/angle.html#method-self-other-anyangle-anyangle-1","19":"/api/mp_math/angle.html#method-self-other-float-anyangle","20":"/api/mp_math/angle.html#method-self-other-float-anyangle-1","21":"/api/mp_math/angle.html#method-self-other-anyangle-float","22":"/api/mp_math/angle.html#method-self-other","23":"/api/mp_math/const.html#模块-mbcp-mp-math-const","24":"/api/mp_math/const.html#var-pi","25":"/api/mp_math/const.html#var-e","26":"/api/mp_math/const.html#var-golden-ratio","27":"/api/mp_math/const.html#var-gamma","28":"/api/mp_math/const.html#var-epsilon","29":"/api/mp_math/const.html#var-approx","30":"/api/mp_math/equation.html#模块-mbcp-mp-math-equation","31":"/api/mp_math/equation.html#class-curveequation","32":"/api/mp_math/equation.html#method-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","33":"/api/mp_math/equation.html#method-call-self-t-var-point3-tuple-point3","34":"/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","35":"/api/mp_math/function.html#模块-mbcp-mp-math-function","36":"/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","37":"/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","38":"/api/mp_math/#模块-mbcp-mp-math","39":"/api/mp_math/line.html#模块-mbcp-mp-math-line","40":"/api/mp_math/line.html#class-line3","41":"/api/mp_math/line.html#method-init-self-point-point3-direction-vector3","42":"/api/mp_math/line.html#method-approx-self-other-line3-epsilon-float-approx-bool","43":"/api/mp_math/line.html#method-cal-angle-self-other-line3-anyangle","44":"/api/mp_math/line.html#method-cal-distance-self-other-line3-point3-float","45":"/api/mp_math/line.html#method-cal-intersection-self-other-line3-point3","46":"/api/mp_math/line.html#method-cal-perpendicular-self-point-point3-line3","47":"/api/mp_math/line.html#method-get-point-self-t-realnumber-point3","48":"/api/mp_math/line.html#method-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","49":"/api/mp_math/line.html#method-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","50":"/api/mp_math/line.html#method-is-parallel-self-other-line3-bool","51":"/api/mp_math/line.html#method-is-collinear-self-other-line3-bool","52":"/api/mp_math/line.html#method-is-point-on-self-point-point3-bool","53":"/api/mp_math/line.html#method-is-coplanar-self-other-line3-bool","54":"/api/mp_math/line.html#method-simplify-self","55":"/api/mp_math/line.html#method-from-two-points-cls-p1-point3-p2-point3-line3","56":"/api/mp_math/line.html#method-and-self-other-line3-line3-point3-none","57":"/api/mp_math/line.html#method-eq-self-other-bool","58":"/api/mp_math/mp_math_typing.html#模块-mbcp-mp-math-mp-math-typing","59":"/api/mp_math/mp_math_typing.html#var-realnumber","60":"/api/mp_math/mp_math_typing.html#var-number","61":"/api/mp_math/mp_math_typing.html#var-singlevar","62":"/api/mp_math/mp_math_typing.html#var-arrayvar","63":"/api/mp_math/mp_math_typing.html#var-var","64":"/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","65":"/api/mp_math/mp_math_typing.html#var-onearrayfunc","66":"/api/mp_math/mp_math_typing.html#var-onevarfunc","67":"/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","68":"/api/mp_math/mp_math_typing.html#var-twoarraysfunc","69":"/api/mp_math/mp_math_typing.html#var-twovarsfunc","70":"/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","71":"/api/mp_math/mp_math_typing.html#var-threearraysfunc","72":"/api/mp_math/mp_math_typing.html#var-threevarsfunc","73":"/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","74":"/api/mp_math/mp_math_typing.html#var-multiarraysfunc","75":"/api/mp_math/mp_math_typing.html#var-multivarsfunc","76":"/api/mp_math/plane.html#模块-mbcp-mp-math-plane","77":"/api/mp_math/plane.html#class-plane3","78":"/api/mp_math/plane.html#method-init-self-a-float-b-float-c-float-d-float","79":"/api/mp_math/plane.html#method-approx-self-other-plane3-bool","80":"/api/mp_math/plane.html#method-cal-angle-self-other-line3-plane3-anyangle","81":"/api/mp_math/plane.html#method-cal-distance-self-other-plane3-point3-float","82":"/api/mp_math/plane.html#method-cal-intersection-line3-self-other-plane3-line3","83":"/api/mp_math/plane.html#method-cal-intersection-point3-self-other-line3-point3","84":"/api/mp_math/plane.html#method-cal-parallel-plane3-self-point-point3-plane3","85":"/api/mp_math/plane.html#method-is-parallel-self-other-plane3-bool","86":"/api/mp_math/plane.html#method-normal-self-vector3","87":"/api/mp_math/plane.html#method-from-point-and-normal-cls-point-point3-normal-vector3-plane3","88":"/api/mp_math/plane.html#method-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","89":"/api/mp_math/plane.html#method-from-two-lines-cls-l1-line3-l2-line3-plane3","90":"/api/mp_math/plane.html#method-from-point-and-line-cls-point-point3-line-line3-plane3","91":"/api/mp_math/plane.html#method-and-self-other-line3-point3-none","92":"/api/mp_math/plane.html#method-and-self-other-plane3-line3-none","93":"/api/mp_math/plane.html#method-and-self-other","94":"/api/mp_math/plane.html#method-eq-self-other-bool","95":"/api/mp_math/plane.html#method-rand-self-other-line3-point3","96":"/api/mp_math/point.html#模块-mbcp-mp-math-point","97":"/api/mp_math/point.html#class-point3","98":"/api/mp_math/point.html#method-init-self-x-float-y-float-z-float","99":"/api/mp_math/point.html#method-approx-self-other-point3-epsilon-float-approx-bool","100":"/api/mp_math/point.html#method-self-other-vector3-point3","101":"/api/mp_math/point.html#method-self-other-point3-point3","102":"/api/mp_math/point.html#method-self-other","103":"/api/mp_math/point.html#method-eq-self-other","104":"/api/mp_math/point.html#method-self-other-point3-vector3","105":"/api/mp_math/segment.html#模块-mbcp-mp-math-segment","106":"/api/mp_math/segment.html#class-segment3","107":"/api/mp_math/segment.html#method-init-self-p1-point3-p2-point3","108":"/api/mp_math/utils.html#模块-mbcp-mp-math-utils","109":"/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","110":"/api/mp_math/utils.html#class-approx","111":"/api/mp_math/utils.html#method-init-self-value-realnumber","112":"/api/mp_math/utils.html#method-eq-self-other","113":"/api/mp_math/utils.html#method-raise-type-error-self-other","114":"/api/mp_math/utils.html#method-ne-self-other","115":"/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","116":"/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","117":"/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","118":"/api/mp_math/vector.html#模块-mbcp-mp-math-vector","119":"/api/mp_math/vector.html#class-vector3","120":"/api/mp_math/vector.html#method-init-self-x-float-y-float-z-float","121":"/api/mp_math/vector.html#method-approx-self-other-vector3-epsilon-float-approx-bool","122":"/api/mp_math/vector.html#method-cal-angle-self-other-vector3-anyangle","123":"/api/mp_math/vector.html#method-cross-self-other-vector3-vector3","124":"/api/mp_math/vector.html#method-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","125":"/api/mp_math/vector.html#method-is-parallel-self-other-vector3-bool","126":"/api/mp_math/vector.html#method-normalize-self","127":"/api/mp_math/vector.html#method-np-array-self-np-ndarray","128":"/api/mp_math/vector.html#method-length-self-float","129":"/api/mp_math/vector.html#method-unit-self-vector3","130":"/api/mp_math/vector.html#method-abs-self","131":"/api/mp_math/vector.html#method-self-other-vector3-vector3","132":"/api/mp_math/vector.html#method-self-other-point3-point3","133":"/api/mp_math/vector.html#method-self-other","134":"/api/mp_math/vector.html#method-eq-self-other","135":"/api/mp_math/vector.html#method-self-other-point3-point3-1","136":"/api/mp_math/vector.html#method-self-other-vector3-vector3-1","137":"/api/mp_math/vector.html#method-self-other-point3-point3-2","138":"/api/mp_math/vector.html#method-self-other-1","139":"/api/mp_math/vector.html#method-self-other-point3","140":"/api/mp_math/vector.html#method-self-other-vector3-vector3-2","141":"/api/mp_math/vector.html#method-self-other-realnumber-vector3","142":"/api/mp_math/vector.html#method-self-other-int-float-vector3-vector3","143":"/api/mp_math/vector.html#method-self-other-realnumber-vector3-1","144":"/api/mp_math/vector.html#method-self-other-vector3-realnumber","145":"/api/mp_math/vector.html#method-self-other-realnumber-vector3-2","146":"/api/mp_math/vector.html#method-self-vector3","147":"/api/mp_math/vector.html#var-zero-vector3","148":"/api/mp_math/vector.html#var-x-axis","149":"/api/mp_math/vector.html#var-y-axis","150":"/api/mp_math/vector.html#var-z-axis","151":"/api/particle/#模块-mbcp-particle","152":"/api/presets/#模块-mbcp-presets","153":"/demo/best-practice.html#最佳实践","154":"/demo/best-practice.html#作品","155":"/api/presets/model/#模块-mbcp-presets-model","156":"/api/presets/model/#class-geometricmodels","157":"/api/presets/model/#method-sphere-radius-float-density-float","158":"/demo/#demo","159":"/guide/#快速开始","160":"/guide/#安装","161":"/refer/7-differential-euqtion/#微分方程","162":"/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,12],"1":[5,1,2],"2":[2,5,1],"3":[4,5,1],"4":[11,9,24],"5":[5,9,23],"6":[5,9,22],"7":[5,9,19],"8":[6,9,20],"9":[6,9,22],"10":[5,9,17],"11":[5,9,17],"12":[5,9,17],"13":[5,9,19],"14":[5,9,19],"15":[5,9,19],"16":[7,9,15],"17":[5,9,11],"18":[6,9,14],"19":[7,9,16],"20":[7,9,13],"21":[7,9,13],"22":[3,9,15],"23":[5,1,2],"24":[2,5,7],"25":[2,5,8],"26":[3,5,10],"27":[2,5,6],"28":[2,5,6],"29":[2,5,6],"30":[5,1,2],"31":[2,5,1],"32":[9,7,19],"33":[10,7,32],"34":[14,5,60],"35":[5,1,2],"36":[13,5,45],"37":[7,5,39],"38":[4,1,20],"39":[5,1,2],"40":[2,5,1],"41":[8,7,18],"42":[11,7,27],"43":[8,7,20],"44":[10,7,42],"45":[8,7,40],"46":[8,7,21],"47":[8,7,24],"48":[9,7,25],"49":[14,7,26],"50":[8,7,20],"51":[8,7,23],"52":[8,7,21],"53":[8,7,26],"54":[4,7,27],"55":[10,7,27],"56":[9,7,34],"57":[6,7,28],"58":[5,1,2],"59":[2,5,9],"60":[2,5,9],"61":[2,5,7],"62":[2,5,8],"63":[2,5,9],"64":[2,5,8],"65":[2,5,8],"66":[2,5,9],"67":[2,5,8],"68":[2,5,8],"69":[2,5,9],"70":[2,5,8],"71":[2,5,8],"72":[2,5,9],"73":[2,5,8],"74":[2,5,8],"75":[2,5,9],"76":[5,1,2],"77":[2,5,1],"78":[9,7,25],"79":[7,7,30],"80":[10,7,55],"81":[10,7,44],"82":[9,7,64],"83":[9,7,52],"84":[9,7,23],"85":[8,7,21],"86":[5,7,20],"87":[10,7,34],"88":[11,7,34],"89":[10,7,38],"90":[10,7,28],"91":[9,7,15],"92":[9,7,15],"93":[5,7,47],"94":[6,7,19],"95":[7,7,15],"96":[5,1,2],"97":[2,5,1],"98":[8,7,16],"99":[11,7,29],"100":[8,7,13],"101":[7,7,12],"102":[4,7,24],"103":[5,7,22],"104":[7,7,28],"105":[5,1,2],"106":[2,5,1],"107":[7,7,27],"108":[5,1,2],"109":[7,5,20],"110":[2,5,1],"111":[6,7,14],"112":[5,7,31],"113":[7,7,15],"114":[5,7,11],"115":[11,5,28],"116":[11,5,30],"117":[12,5,36],"118":[5,1,3],"119":[2,5,1],"120":[8,7,18],"121":[11,7,28],"122":[8,7,28],"123":[6,7,33],"124":[13,7,27],"125":[8,7,23],"126":[4,7,17],"127":[6,7,18],"128":[5,7,23],"129":[5,7,17],"130":[4,7,10],"131":[7,7,12],"132":[7,7,12],"133":[4,7,37],"134":[5,7,22],"135":[7,7,25],"136":[6,7,12],"137":[6,7,12],"138":[3,7,36],"139":[4,7,35],"140":[6,7,12],"141":[7,7,13],"142":[9,7,39],"143":[7,7,13],"144":[7,7,23],"145":[7,7,15],"146":[5,7,17],"147":[3,5,7],"148":[3,5,8],"149":[3,5,8],"150":[3,5,8],"151":[3,1,2],"152":[3,1,2],"153":[1,1,1],"154":[1,1,25],"155":[4,1,2],"156":[2,4,2],"157":[6,6,46],"158":[1,1,1],"159":[1,1,6],"160":[1,1,4],"161":[1,1,1],"162":[1,1,7]},"averageFieldLength":[5.656441717791411,5.834355828220857,17.607361963190193],"storedFields":{"0":{"title":"模块 mbcp","titles":[]},"1":{"title":"模块 mbcp.mp_math.angle","titles":[]},"2":{"title":"class Angle","titles":["模块 mbcp.mp_math.angle"]},"3":{"title":"class AnyAngle(Angle)","titles":["模块 mbcp.mp_math.angle"]},"4":{"title":"method __init__(self, value: float, is_radian: bool = False)","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"5":{"title":"method complementary(self) -> AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"method supplementary(self) -> AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"method degree(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"method minimum_positive(self) -> AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"method maximum_negative(self) -> AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"method sin(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"method cos(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"method tan(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"method cot(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"method sec(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"method csc(self) -> float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"method self + other: AnyAngle => AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"method __eq__(self, other)","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"method self - other: AnyAngle => AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"method self * other: float => AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"method self / other: float => AnyAngle","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"method self / other: AnyAngle => float","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"method self / other","titles":["模块 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"模块 mbcp.mp_math.const","titles":[]},"24":{"title":"var PI","titles":["模块 mbcp.mp_math.const"]},"25":{"title":"var E","titles":["模块 mbcp.mp_math.const"]},"26":{"title":"var GOLDEN_RATIO","titles":["模块 mbcp.mp_math.const"]},"27":{"title":"var GAMMA","titles":["模块 mbcp.mp_math.const"]},"28":{"title":"var EPSILON","titles":["模块 mbcp.mp_math.const"]},"29":{"title":"var APPROX","titles":["模块 mbcp.mp_math.const"]},"30":{"title":"模块 mbcp.mp_math.equation","titles":[]},"31":{"title":"class CurveEquation","titles":["模块 mbcp.mp_math.equation"]},"32":{"title":"method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["模块 mbcp.mp_math.equation","class CurveEquation"]},"33":{"title":"method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["模块 mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["模块 mbcp.mp_math.equation"]},"35":{"title":"模块 mbcp.mp_math.function","titles":[]},"36":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["模块 mbcp.mp_math.function"]},"37":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["模块 mbcp.mp_math.function"]},"38":{"title":"模块 mbcp.mp_math","titles":[]},"39":{"title":"模块 mbcp.mp_math.line","titles":[]},"40":{"title":"class Line3","titles":["模块 mbcp.mp_math.line"]},"41":{"title":"method __init__(self, point: Point3, direction: Vector3)","titles":["模块 mbcp.mp_math.line","class Line3"]},"42":{"title":"method approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"43":{"title":"method cal_angle(self, other: Line3) -> AnyAngle","titles":["模块 mbcp.mp_math.line","class Line3"]},"44":{"title":"method cal_distance(self, other: Line3 | Point3) -> float","titles":["模块 mbcp.mp_math.line","class Line3"]},"45":{"title":"method cal_intersection(self, other: Line3) -> Point3","titles":["模块 mbcp.mp_math.line","class Line3"]},"46":{"title":"method cal_perpendicular(self, point: Point3) -> Line3","titles":["模块 mbcp.mp_math.line","class Line3"]},"47":{"title":"method get_point(self, t: RealNumber) -> Point3","titles":["模块 mbcp.mp_math.line","class Line3"]},"48":{"title":"method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["模块 mbcp.mp_math.line","class Line3"]},"49":{"title":"method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"50":{"title":"method is_parallel(self, other: Line3) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"51":{"title":"method is_collinear(self, other: Line3) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"52":{"title":"method is_point_on(self, point: Point3) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"53":{"title":"method is_coplanar(self, other: Line3) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"54":{"title":"method simplify(self)","titles":["模块 mbcp.mp_math.line","class Line3"]},"55":{"title":"method from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["模块 mbcp.mp_math.line","class Line3"]},"56":{"title":"method __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["模块 mbcp.mp_math.line","class Line3"]},"57":{"title":"method __eq__(self, other) -> bool","titles":["模块 mbcp.mp_math.line","class Line3"]},"58":{"title":"模块 mbcp.mp_math.mp_math_typing","titles":[]},"59":{"title":"var RealNumber","titles":["模块 mbcp.mp_math.mp_math_typing"]},"60":{"title":"var Number","titles":["模块 mbcp.mp_math.mp_math_typing"]},"61":{"title":"var SingleVar","titles":["模块 mbcp.mp_math.mp_math_typing"]},"62":{"title":"var ArrayVar","titles":["模块 mbcp.mp_math.mp_math_typing"]},"63":{"title":"var Var","titles":["模块 mbcp.mp_math.mp_math_typing"]},"64":{"title":"var OneSingleVarFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"65":{"title":"var OneArrayFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"66":{"title":"var OneVarFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"67":{"title":"var TwoSingleVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"68":{"title":"var TwoArraysFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"69":{"title":"var TwoVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"70":{"title":"var ThreeSingleVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"71":{"title":"var ThreeArraysFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"72":{"title":"var ThreeVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"73":{"title":"var MultiSingleVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"74":{"title":"var MultiArraysFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"75":{"title":"var MultiVarsFunc","titles":["模块 mbcp.mp_math.mp_math_typing"]},"76":{"title":"模块 mbcp.mp_math.plane","titles":[]},"77":{"title":"class Plane3","titles":["模块 mbcp.mp_math.plane"]},"78":{"title":"method __init__(self, a: float, b: float, c: float, d: float)","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"79":{"title":"method approx(self, other: Plane3) -> bool","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"80":{"title":"method cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"81":{"title":"method cal_distance(self, other: Plane3 | Point3) -> float","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"82":{"title":"method cal_intersection_line3(self, other: Plane3) -> Line3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"83":{"title":"method cal_intersection_point3(self, other: Line3) -> Point3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"84":{"title":"method cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"85":{"title":"method is_parallel(self, other: Plane3) -> bool","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"86":{"title":"method normal(self) -> Vector3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"87":{"title":"method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"88":{"title":"method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"89":{"title":"method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"90":{"title":"method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"91":{"title":"method __and__(self, other: Line3) -> Point3 | None","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"92":{"title":"method __and__(self, other: Plane3) -> Line3 | None","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"93":{"title":"method __and__(self, other)","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"94":{"title":"method __eq__(self, other) -> bool","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"95":{"title":"method __rand__(self, other: Line3) -> Point3","titles":["模块 mbcp.mp_math.plane","class Plane3"]},"96":{"title":"模块 mbcp.mp_math.point","titles":[]},"97":{"title":"class Point3","titles":["模块 mbcp.mp_math.point"]},"98":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["模块 mbcp.mp_math.point","class Point3"]},"99":{"title":"method approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["模块 mbcp.mp_math.point","class Point3"]},"100":{"title":"method self + other: Vector3 => Point3","titles":["模块 mbcp.mp_math.point","class Point3"]},"101":{"title":"method self + other: Point3 => Point3","titles":["模块 mbcp.mp_math.point","class Point3"]},"102":{"title":"method self + other","titles":["模块 mbcp.mp_math.point","class Point3"]},"103":{"title":"method __eq__(self, other)","titles":["模块 mbcp.mp_math.point","class Point3"]},"104":{"title":"method self - other: Point3 => Vector3","titles":["模块 mbcp.mp_math.point","class Point3"]},"105":{"title":"模块 mbcp.mp_math.segment","titles":[]},"106":{"title":"class Segment3","titles":["模块 mbcp.mp_math.segment"]},"107":{"title":"method __init__(self, p1: Point3, p2: Point3)","titles":["模块 mbcp.mp_math.segment","class Segment3"]},"108":{"title":"模块 mbcp.mp_math.utils","titles":[]},"109":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["模块 mbcp.mp_math.utils"]},"110":{"title":"class Approx","titles":["模块 mbcp.mp_math.utils"]},"111":{"title":"method __init__(self, value: RealNumber)","titles":["模块 mbcp.mp_math.utils","class Approx"]},"112":{"title":"method __eq__(self, other)","titles":["模块 mbcp.mp_math.utils","class Approx"]},"113":{"title":"method raise_type_error(self, other)","titles":["模块 mbcp.mp_math.utils","class Approx"]},"114":{"title":"method __ne__(self, other)","titles":["模块 mbcp.mp_math.utils","class Approx"]},"115":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["模块 mbcp.mp_math.utils"]},"116":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["模块 mbcp.mp_math.utils"]},"117":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["模块 mbcp.mp_math.utils"]},"118":{"title":"模块 mbcp.mp_math.vector","titles":[]},"119":{"title":"class Vector3","titles":["模块 mbcp.mp_math.vector"]},"120":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"121":{"title":"method approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"122":{"title":"method cal_angle(self, other: Vector3) -> AnyAngle","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"123":{"title":"method cross(self, other: Vector3) -> Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"124":{"title":"method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"125":{"title":"method is_parallel(self, other: Vector3) -> bool","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"126":{"title":"method normalize(self)","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"127":{"title":"method np_array(self) -> np.ndarray","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"128":{"title":"method length(self) -> float","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"129":{"title":"method unit(self) -> Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"130":{"title":"method __abs__(self)","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"131":{"title":"method self + other: Vector3 => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"132":{"title":"method self + other: Point3 => Point3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"133":{"title":"method self + other","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"134":{"title":"method __eq__(self, other)","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"135":{"title":"method self + other: Point3 => Point3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"136":{"title":"method self - other: Vector3 => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"137":{"title":"method self - other: Point3 => Point3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"138":{"title":"method self - other","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"139":{"title":"method self - other: Point3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"140":{"title":"method self * other: Vector3 => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"141":{"title":"method self * other: RealNumber => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"142":{"title":"method self * other: int | float | Vector3 => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"143":{"title":"method self * other: RealNumber => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"144":{"title":"method self @ other: Vector3 => RealNumber","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"145":{"title":"method self / other: RealNumber => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"146":{"title":"method - self => Vector3","titles":["模块 mbcp.mp_math.vector","class Vector3"]},"147":{"title":"var zero_vector3","titles":["模块 mbcp.mp_math.vector"]},"148":{"title":"var x_axis","titles":["模块 mbcp.mp_math.vector"]},"149":{"title":"var y_axis","titles":["模块 mbcp.mp_math.vector"]},"150":{"title":"var z_axis","titles":["模块 mbcp.mp_math.vector"]},"151":{"title":"模块 mbcp.particle","titles":[]},"152":{"title":"模块 mbcp.presets","titles":[]},"153":{"title":"最佳实践","titles":[]},"154":{"title":"作品","titles":["最佳实践"]},"155":{"title":"模块 mbcp.presets.model","titles":[]},"156":{"title":"class GeometricModels","titles":["模块 mbcp.presets.model"]},"157":{"title":"method sphere(radius: float, density: float)","titles":["模块 mbcp.presets.model","class GeometricModels"]},"158":{"title":"demo","titles":[]},"159":{"title":"快速开始","titles":[]},"160":{"title":"安装","titles":["快速开始"]},"161":{"title":"微分方程","titles":[]},"162":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["微分方程",{"0":{"161":1}}],["安装",{"0":{"160":1}}],["兼容性优先",{"2":{"159":1}}],["把你项目所使用的python换成pypy",{"2":{"159":1}}],["建议",{"2":{"159":1}}],["快速开始",{"0":{"159":1},"1":{"160":1}}],["4",{"2":{"157":1}}],["球体上的点集",{"2":{"157":1}}],["生成球体上的点集",{"2":{"157":1}}],["几何模型点集",{"2":{"155":1}}],["红石音乐",{"2":{"154":1}}],["这样可以提高性能",{"2":{"159":1}}],["这么可爱真是抱歉",{"2":{"154":1}}],["这玩意不太稳定",{"2":{"34":1}}],["轻涟",{"2":{"154":1}}],["芙宁娜pv曲",{"2":{"154":1}}],["有点甜~",{"2":{"154":1}}],["有关函数柯里化",{"2":{"37":1}}],["星穹铁道",{"2":{"154":1}}],["崩坏",{"2":{"154":1}}],["使一颗心免于哀伤",{"2":{"154":1}}],["总有一条蜿蜒在童话镇里",{"2":{"154":1}}],["童话镇~",{"2":{"154":1}}],["特效红石音乐",{"2":{"154":2}}],["作品",{"0":{"154":1}}],["零向量",{"2":{"147":1}}],["负向量",{"2":{"146":1}}],["取负",{"2":{"146":1}}],["取两平面的交集",{"2":{"93":1}}],["非点乘",{"2":{"142":1}}],["别去点那边实现了",{"2":{"135":1}}],["单位向量",{"2":{"129":1}}],["单变量",{"2":{"61":1}}],["模",{"2":{"128":1}}],["模块",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"155":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"156":1,"157":1}}],["将向量归一化",{"2":{"126":1}}],["转换为行列式形式",{"2":{"123":1}}],["叉乘使用cross",{"2":{"142":1}}],["叉乘结果",{"2":{"123":1}}],["叉乘运算法则为",{"2":{"123":1}}],["叉乘",{"2":{"123":1}}],["向量的模",{"2":{"128":1}}],["向量积",{"2":{"123":1}}],["向量夹角计算公式",{"2":{"122":1}}],["以及一些常用的向量",{"2":{"118":1}}],["格式化符号数",{"2":{"117":1}}],["quot",{"2":{"116":2,"117":4}}],["符号",{"2":{"116":1,"117":1}}],["获取该向量的单位向量",{"2":{"129":1}}],["获取数的符号",{"2":{"116":1}}],["获取直线的参数方程",{"2":{"48":1}}],["获取直线上的点",{"2":{"47":1}}],["用于判断是否近似于0",{"2":{"115":1}}],["用于近似比较对象",{"2":{"111":1}}],["限定在区间内的值",{"2":{"109":1}}],["值",{"2":{"109":1}}],["区间限定函数",{"2":{"109":1}}],["us",{"2":{"162":1}}],["unit",{"0":{"129":1},"2":{"129":1}}],["unsupported",{"2":{"44":1,"80":1,"81":1,"93":1,"113":1,"133":1,"138":1,"139":1,"142":1}}],["utils",{"0":{"108":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1}}],["中心点",{"2":{"107":1}}],["中实现",{"2":{"104":1}}],["长度",{"2":{"107":1}}],["线段的另一个端点",{"2":{"107":1}}],["线段的一个端点",{"2":{"107":1}}],["新的向量或点",{"2":{"133":1}}],["新的向量",{"2":{"104":1,"138":1}}],["新的点",{"2":{"102":1,"135":1,"139":1}}],["已在",{"2":{"104":1}}],["已知一个函数f",{"2":{"36":1}}],["坐标",{"2":{"98":3}}],["笛卡尔坐标系中的点",{"2":{"98":1}}],["人话",{"2":{"93":1}}],["法向量",{"2":{"86":1,"87":1}}],["help",{"2":{"162":1}}],["heart",{"2":{"154":1}}],["have",{"2":{"82":1}}],["high",{"2":{"34":2}}],["并代入两平面方程求出合适的点",{"2":{"82":1}}],["并对向量单位化",{"2":{"54":1}}],["依次假设x=0",{"2":{"82":1}}],["寻找直线上的一点",{"2":{"82":1}}],["求两平面的法向量的叉乘得到方向向量",{"2":{"82":1}}],["求n元函数一阶偏导函数",{"2":{"34":1}}],["为直线的方向向量",{"2":{"80":1}}],["为平面的法向量",{"2":{"80":1}}],["分别为两个平面的法向量",{"2":{"80":1}}],["和",{"2":{"80":1}}],["其中",{"2":{"80":2}}],["θ=arccos⁡",{"2":{"80":2,"122":1}}],["k",{"2":{"79":12}}],["常数项",{"2":{"78":1}}],["常量",{"2":{"24":1}}],["平面上一点",{"2":{"87":1,"90":1}}],["平面的法向量",{"2":{"86":1}}],["平面",{"2":{"84":1,"87":1,"88":1,"89":1,"90":1}}],["平面与直线平行或重合",{"2":{"83":1}}],["平面与直线夹角计算公式",{"2":{"80":1}}],["平面平行且无交线",{"2":{"82":1}}],["平面间夹角计算公式",{"2":{"80":1}}],["平面方程",{"2":{"78":1}}],["平行线返回none",{"2":{"56":1}}],["多元函数",{"2":{"75":1}}],["多元数组函数",{"2":{"74":1}}],["多元单变量函数",{"2":{"73":1}}],["二元函数",{"2":{"69":1}}],["二元数组函数",{"2":{"68":1}}],["二元单变量函数",{"2":{"67":1}}],["一元函数",{"2":{"66":1}}],["一元数组函数",{"2":{"65":1}}],["一元单变量函数",{"2":{"64":1}}],["一阶偏导",{"2":{"34":1}}],["变量",{"2":{"63":1}}],["变量位置",{"2":{"34":1}}],["数组运算结果",{"2":{"142":1}}],["数组运算",{"2":{"142":1}}],["数组变量",{"2":{"62":1}}],["数2",{"2":{"115":1}}],["数1",{"2":{"115":1}}],["数",{"2":{"60":1,"116":1,"117":1}}],["数学工具",{"2":{"0":1}}],["类型",{"2":{"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1}}],["实数",{"2":{"59":1,"111":1}}],["∧",{"2":{"57":1}}],["交线",{"2":{"82":1,"93":1}}],["交线返回交点",{"2":{"56":1}}],["交集",{"2":{"56":1,"93":1}}],["交点",{"2":{"45":1,"83":1}}],["重合线返回自身",{"2":{"56":1}}],["由点和直线构造平面",{"2":{"90":1}}],["由点和法向量构造平面",{"2":{"87":1}}],["由两直线构造平面",{"2":{"89":1}}],["由两点构造直线",{"2":{"55":1}}],["由三点构造平面",{"2":{"88":1}}],["由一个点和一个方向向量确定",{"2":{"41":1}}],["工厂函数",{"2":{"55":1,"87":1,"88":1,"89":1,"90":1}}],["处理",{"2":{"54":1}}],["处的梯度向量为",{"2":{"36":1}}],["化",{"2":{"54":1}}],["按照可行性一次对x",{"2":{"54":1}}],["不返回值",{"2":{"54":1,"126":1}}],["不支持的类型",{"2":{"44":1,"80":1,"81":1,"93":1}}],["自体归一化",{"2":{"126":1}}],["自体简化",{"2":{"54":1}}],["自然对数的底",{"2":{"25":1}}],["等价相等",{"2":{"54":1}}],["简化直线方程",{"2":{"54":1}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"53":1}}],["两角的和为180°",{"2":{"6":1}}],["两角的和为90°",{"2":{"5":1}}],["充要条件",{"2":{"53":1}}],["判断两个向量是否相等",{"2":{"134":1}}],["判断两个向量是否平行",{"2":{"125":1}}],["判断两个向量是否近似平行",{"2":{"124":1}}],["判断两个向量是否近似相等",{"2":{"121":1}}],["判断两个数是否近似相等",{"2":{"115":1}}],["判断两个点是否相等",{"2":{"103":1}}],["判断两个点是否近似相等",{"2":{"99":1}}],["判断两个平面是否等价",{"2":{"94":1}}],["判断两个平面是否平行",{"2":{"85":1}}],["判断两个平面是否近似相等",{"2":{"79":1}}],["判断两条直线是否等价",{"2":{"57":1}}],["判断两条直线是否共面",{"2":{"53":1}}],["判断两条直线是否共线",{"2":{"51":1}}],["判断两条直线是否平行",{"2":{"50":1}}],["判断两条直线是否近似平行",{"2":{"49":1}}],["判断两条直线是否近似相等",{"2":{"42":1}}],["判断点是否在直线上",{"2":{"52":1}}],["另一个向量或数",{"2":{"142":1}}],["另一个向量或点",{"2":{"133":1,"138":1}}],["另一个向量",{"2":{"121":1,"122":1,"123":1,"124":1,"125":1,"134":1,"144":1}}],["另一个点或向量",{"2":{"102":1}}],["另一个点",{"2":{"99":1,"103":1,"104":1,"135":1,"139":1}}],["另一个平面或点",{"2":{"81":1}}],["另一个平面或直线",{"2":{"80":1,"93":1}}],["另一个平面",{"2":{"79":1,"82":1,"85":1,"94":1}}],["另一",{"2":{"50":1,"51":1,"53":1}}],["另一条直线或点",{"2":{"44":1}}],["另一条直线",{"2":{"42":1,"43":1,"45":1,"49":1,"56":1,"57":1}}],["则同一个t对应的点不同",{"2":{"47":1}}],["则其在点",{"2":{"36":1}}],["但起始点和方向向量不同",{"2":{"47":1}}],["同一条直线",{"2":{"47":1}}],["垂线",{"2":{"46":1}}],["指定点",{"2":{"46":1,"84":1}}],["直线最终可用参数方程或点向式表示",{"2":{"82":1}}],["直线",{"2":{"55":1,"83":1,"89":2,"90":1}}],["直线不共面",{"2":{"45":1}}],["直线平行",{"2":{"45":1}}],["直线上的一点",{"2":{"41":1}}],["距离",{"2":{"44":1,"81":1}}],["夹角",{"2":{"43":1,"80":1,"122":1}}],["是否只返回负数的符号",{"2":{"116":1,"117":1}}],["是否相等",{"2":{"103":1,"134":1}}],["是否等价",{"2":{"57":1,"94":1}}],["是否共面",{"2":{"53":1}}],["是否共线",{"2":{"51":1}}],["是否在直线上",{"2":{"52":1}}],["是否平行",{"2":{"50":1,"85":1,"125":1}}],["是否近似平行",{"2":{"49":1,"124":1}}],["是否近似相等",{"2":{"42":1,"79":1,"99":1,"115":1,"121":1}}],["是否为弧度",{"2":{"4":1}}],["误差",{"2":{"42":1,"49":1,"99":1,"115":1,"121":1,"124":1}}],["方向向量",{"2":{"41":1,"107":1}}],["三元数组函数",{"2":{"71":1}}],["三元单变量函数",{"2":{"70":1}}],["三元函数",{"2":{"36":1,"72":1}}],["三维空间中的线段",{"2":{"107":1}}],["三维空间中的直线",{"2":{"41":1}}],["三维向量",{"2":{"38":1}}],["三维线段",{"2":{"38":1}}],["三维点",{"2":{"38":1}}],["三维平面",{"2":{"38":1}}],["三维直线",{"2":{"38":1}}],["导入的类有",{"2":{"38":1}}],["本包定义了一些常用的导入",{"2":{"38":1}}],["本模块塞了一些预设",{"2":{"152":1}}],["本模块用于内部类型提示",{"2":{"58":1}}],["本模块定义了粒子生成相关的工具",{"2":{"151":1}}],["本模块定义了3维向量的类vector3",{"2":{"118":1}}],["本模块定义了一些常用的工具函数",{"2":{"108":1}}],["本模块定义了一些常用的常量",{"2":{"23":1}}],["本模块定义了三维空间中点的类",{"2":{"96":1}}],["本模块定义了三维空间中的线段类",{"2":{"105":1}}],["本模块定义了三维空间中的平面类",{"2":{"76":1}}],["本模块定义了三维空间中的直线类",{"2":{"39":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"30":1}}],["本模块定义了角度相关的类",{"2":{"1":1}}],["本模块是主模块",{"2":{"0":1}}],["6",{"2":{"37":1}}],["3维向量",{"2":{"120":1}}],["3",{"2":{"37":1}}],["3vf",{"0":{"36":1},"2":{"36":1}}],["breaking",{"2":{"154":1}}],["by",{"2":{"78":1}}],["bound=iterable",{"2":{"62":1}}],["bound=number",{"2":{"61":1}}],["bool=false",{"2":{"4":1,"116":1,"117":1}}],["bool",{"0":{"4":1,"42":1,"49":1,"50":1,"51":1,"52":1,"53":1,"57":1,"79":1,"85":1,"94":1,"99":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1},"2":{"42":2,"49":2,"50":2,"51":2,"52":2,"53":2,"57":2,"79":2,"85":2,"94":2,"99":2,"103":1,"115":2,"116":1,"117":1,"121":2,"124":2,"125":2,"134":1}}],["b",{"0":{"78":1},"2":{"37":2,"78":4,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["示例",{"2":{"37":1}}],["柯里化后的函数",{"2":{"37":1}}],["柯理化",{"2":{"37":1}}],["函数",{"2":{"37":1}}],["对多参数函数进行柯里化",{"2":{"37":1}}],["d=n1×n2",{"2":{"82":1}}],["d",{"0":{"78":1},"2":{"78":5,"79":6,"80":1,"81":1,"82":6,"83":1,"87":2}}],["documentation",{"2":{"162":1}}],["do",{"2":{"45":2}}],["distance",{"0":{"44":1,"81":1},"2":{"44":1,"81":1}}],["direction",{"0":{"41":1},"2":{"41":4,"42":1,"43":2,"44":8,"45":6,"46":1,"47":1,"48":3,"49":2,"50":2,"51":1,"52":1,"53":2,"54":4,"55":2,"57":3,"80":1,"82":2,"83":4,"89":1,"90":1,"93":1,"107":2}}],["dz",{"2":{"36":2}}],["dy",{"2":{"36":2}}],["dx",{"2":{"36":2}}],["demo",{"0":{"158":1}}],["density",{"0":{"157":1},"2":{"157":3}}],["derivative",{"0":{"34":1},"2":{"34":6}}],["degree",{"0":{"7":1},"2":{"7":1}}],["def",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"34":2,"37":1,"55":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"157":1}}],["梯度",{"2":{"36":1}}],["点乘结果",{"2":{"144":1}}],["点乘",{"2":{"144":1}}],["点乘使用",{"2":{"142":1}}],["点3",{"2":{"88":1}}],["点法式构造",{"2":{"87":1}}],["点2",{"2":{"55":1,"88":1}}],["点1",{"2":{"55":1,"88":1}}],["点",{"2":{"36":1,"47":1,"52":1}}],["∂f∂z",{"2":{"36":1}}],["∂f∂y",{"2":{"36":1}}],["∂f∂x",{"2":{"36":1}}],["∇f",{"2":{"36":1}}],["计算平行于该平面且过指定点的平面",{"2":{"84":1}}],["计算平面与直线的交点",{"2":{"83":1}}],["计算平面与平面或点之间的距离",{"2":{"81":1}}],["计算平面与平面之间的夹角",{"2":{"80":1}}],["计算两个向量之间的夹角",{"2":{"122":1}}],["计算两平面交线的一般步骤",{"2":{"82":1}}],["计算两平面的交线",{"2":{"82":1}}],["计算两条直线点集合的交集",{"2":{"56":1}}],["计算两条直线的交点",{"2":{"45":1}}],["计算直线经过指定点p的垂线",{"2":{"46":1}}],["计算直线和直线或点之间的距离",{"2":{"44":1}}],["计算直线和直线之间的夹角",{"2":{"43":1}}],["计算三元函数在某点的梯度向量",{"2":{"36":1}}],["计算曲线上的点",{"2":{"33":1}}],["v3",{"2":{"123":1}}],["vector",{"0":{"118":1},"1":{"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"104":1}}],["vector3",{"0":{"36":1,"41":1,"86":1,"87":1,"100":1,"104":1,"119":1,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"131":2,"136":2,"140":2,"141":1,"142":2,"143":1,"144":1,"145":1,"146":1,"147":1},"1":{"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"36":2,"38":1,"41":2,"86":3,"87":2,"89":1,"100":1,"102":1,"104":5,"112":2,"121":2,"122":2,"123":5,"124":2,"125":3,"129":2,"131":2,"133":5,"134":1,"136":2,"138":5,"139":1,"140":2,"141":1,"142":8,"143":1,"144":2,"145":2,"146":3,"147":2,"148":2,"149":2,"150":2}}],["v2",{"2":{"57":1,"88":2,"89":4,"123":1}}],["v1x⋅v2y−v1y⋅v2x",{"2":{"123":1}}],["v1z⋅v2x−v1x⋅v2z",{"2":{"123":1}}],["v1y⋅v2z−v1z⋅v2y",{"2":{"123":1}}],["v1×v2=|ijkv1xv1yv1zv2xv2yv2z|",{"2":{"123":1}}],["v1×v2=",{"2":{"123":1}}],["v1⋅v2|v1|⋅|v2|",{"2":{"122":1}}],["v1",{"2":{"57":2,"88":2,"89":2,"123":1}}],["v",{"2":{"34":2,"102":1,"104":2,"133":4,"135":1,"138":4,"139":1}}],["var",{"0":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"33":1,"34":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":2,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1},"2":{"33":1,"34":12,"37":4}}],["valueerror",{"2":{"34":2,"45":4,"82":2,"83":2}}],["value",{"0":{"4":1,"111":1},"2":{"4":4,"111":4,"112":6,"113":1}}],["l2",{"0":{"89":1},"2":{"89":4}}],["l1",{"0":{"89":1},"2":{"89":6}}],["lambda",{"2":{"48":3}}],["linalg",{"2":{"82":3}}],["lines",{"0":{"89":1},"2":{"45":2,"89":1}}],["line",{"0":{"39":1,"90":2},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"83":1,"90":4}}],["line3",{"0":{"40":1,"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"80":1,"82":2,"83":1,"89":2,"90":1,"91":1,"92":1,"95":1},"1":{"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"38":1,"42":2,"43":2,"44":3,"45":2,"46":3,"49":2,"50":2,"51":2,"53":2,"55":2,"56":4,"57":1,"80":3,"82":4,"83":2,"89":4,"90":2,"91":1,"92":1,"93":4,"95":1,"112":1}}],["list",{"2":{"34":8,"157":9}}],["length",{"0":{"128":1},"2":{"44":5,"45":1,"80":2,"107":2,"122":2,"124":1,"126":5,"128":1,"129":1,"130":1}}],["len",{"2":{"33":1}}],["无效变量类型",{"2":{"34":1}}],["引发",{"2":{"34":1,"44":1,"45":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["偏导函数",{"2":{"34":1}}],["偏移量",{"2":{"34":1,"36":1}}],["高阶偏导",{"2":{"34":1}}],["可愛くてごめん",{"2":{"154":1}}],["可直接从mbcp",{"2":{"38":1}}],["可参考函数式编程",{"2":{"37":1}}],["可为整数",{"2":{"34":1}}],["可导入",{"2":{"0":1}}],["因此该函数的稳定性有待提升",{"2":{"34":1}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"34":1}}],["目标点",{"2":{"33":1}}],["warning",{"2":{"34":1}}],["慎用",{"2":{"34":1}}],["num",{"2":{"157":5}}],["numpy数组",{"2":{"127":1}}],["number=epsilon",{"2":{"34":1}}],["number",{"0":{"34":1,"60":1},"2":{"62":1}}],["ndarray",{"0":{"127":1},"2":{"127":2}}],["neg",{"0":{"116":1,"117":1},"2":{"116":3,"117":3,"146":1}}],["negative",{"0":{"9":1},"2":{"9":1}}],["ne",{"0":{"114":1},"2":{"114":1}}],["np",{"0":{"127":2},"2":{"82":9,"127":4,"157":9}}],["n",{"2":{"80":1}}],["n⋅d|n|⋅|d|",{"2":{"80":1}}],["n2",{"2":{"80":1}}],["n1",{"2":{"80":1}}],["n1⋅n2|n1|⋅|n2|",{"2":{"80":1}}],["no",{"2":{"82":1}}],["normal",{"0":{"86":1,"87":2},"2":{"80":5,"82":4,"83":1,"84":2,"85":2,"86":1,"87":6,"88":3,"89":1,"90":1,"93":3}}],["normalize",{"0":{"126":1},"2":{"54":1,"126":1}}],["none",{"0":{"56":1,"91":1,"92":1},"2":{"56":3,"91":1,"92":1,"93":3}}],["not",{"2":{"44":1,"45":4,"56":1,"114":1,"116":1,"117":1}}],["n元函数",{"2":{"34":1}}],["|",{"0":{"33":1,"34":1,"44":1,"56":2,"80":1,"81":1,"91":1,"92":1,"142":2},"2":{"33":1,"34":1,"44":2,"56":4,"59":1,"60":1,"63":1,"66":1,"69":1,"72":1,"75":1,"80":2,"81":2,"91":1,"92":1,"93":3,"102":1,"133":2,"138":2,"142":3}}],["曲线方程",{"2":{"32":1,"38":1}}],["z轴单位向量",{"2":{"150":1}}],["z轴分量",{"2":{"120":1}}],["zero",{"0":{"147":1},"2":{"89":1,"125":1}}],["z=0",{"2":{"82":1}}],["z系数",{"2":{"78":1}}],["z0",{"2":{"36":2}}],["zip",{"2":{"33":1}}],["z函数",{"2":{"32":1}}],["z",{"0":{"32":1,"98":1,"120":1,"150":1},"2":{"32":4,"33":4,"36":7,"48":2,"54":3,"81":1,"82":4,"83":4,"87":2,"98":5,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"120":4,"121":2,"123":4,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"157":2}}],["y轴单位向量",{"2":{"149":1}}],["y轴分量",{"2":{"120":1}}],["y=0",{"2":{"82":1}}],["y系数",{"2":{"78":1}}],["y0",{"2":{"36":2}}],["y函数",{"2":{"32":1}}],["y",{"0":{"32":1,"98":1,"115":1,"120":1,"149":1},"2":{"32":4,"33":4,"36":7,"48":2,"54":3,"81":1,"82":4,"83":4,"87":2,"98":5,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"115":3,"120":4,"121":2,"123":4,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"157":2}}],["x轴单位向量",{"2":{"148":1}}],["x轴分量",{"2":{"120":1}}],["x3c",{"2":{"99":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x26",{"2":{"93":1}}],["x−x0m=y−y0n=z−z0p",{"2":{"82":1}}],["x=x0+dty=y0+dtz=z0+dt或",{"2":{"82":1}}],["x系数",{"2":{"78":1}}],["x0",{"2":{"36":2}}],["x函数",{"2":{"32":1}}],["x",{"0":{"32":1,"98":1,"109":1,"115":1,"116":1,"117":1,"120":1,"148":1},"2":{"32":4,"33":4,"36":7,"48":2,"54":2,"81":1,"82":4,"83":4,"87":2,"98":5,"99":2,"102":2,"103":2,"104":2,"107":2,"109":3,"112":2,"115":3,"116":4,"117":7,"120":4,"121":2,"123":5,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"157":2}}],["约等于判定误差",{"2":{"29":1}}],["精度误差",{"2":{"28":1}}],["06",{"0":{"49":1},"2":{"49":1}}],["001",{"2":{"29":1}}],["0001",{"2":{"28":1}}],["0",{"0":{"115":2},"2":{"27":1,"28":1,"29":1,"33":3,"44":2,"53":1,"54":7,"78":1,"79":3,"81":2,"82":9,"83":1,"93":1,"115":1,"116":2,"117":3,"147":3,"148":2,"149":2,"150":2,"157":2}}],["欧拉常数",{"2":{"27":1}}],["5772156649015329",{"2":{"27":1}}],["5",{"2":{"26":1,"81":1}}],["黄金分割比",{"2":{"26":1}}],["geometricmodels",{"0":{"156":1},"1":{"157":1}}],["get",{"0":{"34":1,"47":1,"48":1},"2":{"34":2,"47":1,"48":1,"83":1,"89":1}}],["gradient",{"0":{"36":1},"2":{"36":1}}],["gamma",{"0":{"27":1}}],["golden",{"0":{"26":1}}],["gt",{"0":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":1,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"102":2,"104":2,"117":3,"123":1,"133":2,"135":1,"138":2,"139":1}}],["默认值",{"2":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1}}],["默认为否",{"2":{"4":1}}],["π",{"2":{"24":1}}],["to",{"2":{"162":1}}],["theta",{"2":{"157":3}}],["the",{"2":{"83":2,"162":1}}],["three",{"0":{"88":1},"2":{"88":1}}],["threevarsfunc",{"0":{"72":1}}],["threearraysfunc",{"0":{"71":1},"2":{"72":1}}],["threesinglevarsfunc",{"0":{"36":1,"70":1},"2":{"36":2,"72":1}}],["typing",{"0":{"58":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["typevar",{"2":{"61":1,"62":1}}],["typealias",{"2":{"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["typeerror",{"2":{"44":2,"80":2,"81":2,"93":2,"113":1,"133":1,"138":1,"139":1,"142":1}}],["type",{"0":{"113":1},"2":{"34":1,"44":1,"80":2,"81":2,"93":2,"112":2,"113":4,"133":2,"138":2,"139":2,"142":2}}],["twovarsfunc",{"0":{"69":1}}],["twoarraysfunc",{"0":{"68":1},"2":{"69":1}}],["twosinglevarsfunc",{"0":{"67":1},"2":{"69":1}}],["two",{"0":{"55":1,"89":1},"2":{"55":1,"89":1}}],["tip",{"2":{"36":1,"37":1,"80":2,"82":1,"122":1,"123":1,"159":1}}],["tuple",{"0":{"33":1,"34":1,"48":1},"2":{"33":2,"34":2,"48":2}}],["t",{"0":{"33":1,"47":1},"2":{"33":9,"47":3,"48":6,"83":4}}],["truediv",{"2":{"20":1,"21":1,"22":1,"145":1}}],["tan",{"0":{"12":1},"2":{"12":2,"13":1}}],["operand",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["or",{"2":{"56":1,"83":1}}],["order",{"2":{"34":2}}],["only",{"0":{"116":1,"117":1},"2":{"116":3,"117":3}}],["on",{"0":{"52":1},"2":{"52":1}}],["one",{"2":{"154":1}}],["onearrayfunc",{"0":{"65":1},"2":{"66":1}}],["onesinglevarfunc",{"0":{"48":3,"64":1},"2":{"48":6,"66":1}}],["onevarfunc",{"0":{"32":3,"37":1,"66":1},"2":{"32":6,"37":1}}],["overload",{"2":{"19":1,"20":2,"21":1,"90":1,"91":2,"92":1,"99":1,"100":2,"101":1,"130":1,"131":2,"132":1,"135":1,"136":2,"137":1,"139":1,"140":2,"141":1}}],["other",{"0":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"42":1,"43":1,"44":1,"45":1,"49":1,"50":1,"51":1,"53":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"85":1,"91":1,"92":1,"93":1,"94":1,"95":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"112":1,"113":1,"114":1,"121":1,"122":1,"123":1,"124":1,"125":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1},"2":{"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":4,"42":4,"43":3,"44":12,"45":8,"49":3,"50":3,"51":4,"53":4,"56":6,"57":4,"79":14,"80":8,"81":8,"82":16,"83":10,"85":3,"91":1,"92":1,"93":9,"94":3,"95":2,"99":5,"100":1,"101":1,"102":5,"103":5,"104":5,"112":9,"113":2,"114":2,"121":5,"122":4,"123":8,"124":3,"125":3,"131":1,"132":1,"133":11,"134":5,"135":5,"136":1,"137":1,"138":11,"139":7,"140":1,"141":1,"142":11,"143":2,"144":5,"145":4}}],["ep",{"2":{"154":1}}],["epsilon",{"0":{"28":1,"34":2,"36":2,"42":1,"49":1,"99":1,"115":1,"121":1,"124":1},"2":{"34":6,"36":11,"42":4,"49":3,"99":5,"115":3,"121":5,"124":3}}],["error",{"0":{"113":1},"2":{"112":2,"113":1}}],["elif",{"2":{"34":1,"44":3,"56":1,"79":2,"80":1,"81":1,"82":2,"93":1,"112":1,"116":1,"117":1,"133":1,"138":1,"142":1}}],["else",{"2":{"4":1,"33":1,"34":1,"44":2,"56":1,"79":1,"80":1,"81":1,"93":1,"112":2,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1}}],["exp",{"2":{"25":1}}],["e",{"0":{"25":1},"2":{"25":1}}],["equations",{"0":{"48":1},"2":{"48":1,"83":1}}],["equation",{"0":{"30":1},"1":{"31":1,"32":1,"33":1,"34":1}}],["eq",{"0":{"17":1,"57":1,"94":1,"103":1,"112":1,"134":1},"2":{"17":1,"57":1,"94":1,"103":1,"112":1,"114":1,"134":1}}],["all",{"2":{"99":1,"112":1,"121":1}}],["acos",{"2":{"80":1,"122":1}}],["axis",{"0":{"148":1,"149":1,"150":1}}],["ax",{"2":{"78":1}}],["arccos",{"2":{"157":1}}],["array",{"0":{"127":1},"2":{"82":6,"127":2,"157":6}}],["arrayvar",{"0":{"62":1},"2":{"62":1,"63":1,"65":2,"68":3,"71":4,"74":1}}],["area",{"2":{"157":2}}],["are",{"2":{"45":2,"82":1,"83":1}}],["args2",{"2":{"37":2}}],["args",{"0":{"37":1},"2":{"34":11,"37":3}}],["abs",{"0":{"130":1},"2":{"44":1,"81":1,"99":3,"112":1,"115":1,"117":1,"121":3,"130":1}}],["a",{"0":{"78":1},"2":{"37":2,"78":4,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["aaa",{"2":{"35":1}}],["approx",{"0":{"29":1,"42":2,"49":1,"79":1,"99":2,"110":1,"115":2,"121":2,"124":2},"1":{"111":1,"112":1,"113":1,"114":1},"2":{"17":1,"42":3,"49":2,"79":10,"94":1,"99":1,"103":3,"112":4,"115":1,"121":1,"124":1,"125":1,"134":3}}],["add",{"2":{"16":1,"37":4,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1}}],["and",{"0":{"56":1,"87":1,"90":1,"91":1,"92":1,"93":1},"2":{"42":1,"45":2,"51":1,"56":1,"57":1,"79":6,"82":4,"83":1,"84":1,"87":1,"88":1,"89":1,"90":2,"91":1,"92":1,"93":2,"103":2,"113":1,"133":1,"134":2,"138":1,"139":1,"142":1}}],["anyangle",{"0":{"3":1,"5":1,"6":1,"8":1,"9":1,"16":2,"18":2,"19":1,"20":1,"21":1,"43":1,"80":1,"122":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1},"2":{"5":2,"6":2,"8":2,"9":2,"16":3,"18":3,"19":2,"20":1,"21":1,"22":2,"38":1,"43":2,"80":3,"122":3}}],["angle",{"0":{"1":1,"2":1,"3":1,"43":1,"80":1,"122":1},"1":{"2":1,"3":1,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":2},"2":{"43":2,"80":2,"122":1}}],["+1",{"2":{"117":1}}],["+=",{"2":{"34":1}}],["+",{"0":{"16":1,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1,"135":1},"2":{"16":1,"26":1,"36":3,"37":2,"45":1,"47":1,"48":3,"78":3,"81":5,"83":5,"102":5,"107":3,"116":2,"117":2,"128":2,"133":9,"135":4,"144":2,"157":1}}],["1e",{"0":{"49":1}}],["1",{"2":{"13":1,"14":1,"15":1,"25":1,"26":1,"33":1,"37":1,"89":1,"117":3,"148":1,"149":1,"150":1,"157":4}}],["180",{"2":{"4":1,"7":1}}],["正割值",{"2":{"14":2}}],["正切值",{"2":{"12":2}}],["正弦值",{"2":{"10":2}}],["余割值",{"2":{"15":2}}],["余切值",{"2":{"13":2}}],["余弦值",{"2":{"11":2}}],["余角",{"2":{"5":2}}],["最佳实践",{"0":{"153":1},"1":{"154":1}}],["最大值",{"2":{"109":1}}],["最大负角度",{"2":{"9":1}}],["最大负角",{"2":{"9":1}}],["最小值",{"2":{"109":1}}],["最小正角度",{"2":{"8":1}}],["最小正角",{"2":{"8":1}}],["弧度",{"2":{"7":1}}],["角度",{"2":{"7":1}}],["角度或弧度值",{"2":{"4":1}}],["补角",{"2":{"6":2}}],["shellpip",{"2":{"160":1}}],["sphere",{"0":{"157":1},"2":{"157":1}}],["staticmethod",{"2":{"156":1,"157":1}}],["stop",{"2":{"154":1}}],["str",{"0":{"116":1,"117":1},"2":{"116":2,"117":2}}],["s",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["solve",{"2":{"82":3}}],["sign",{"0":{"116":1,"117":1},"2":{"116":1,"117":1}}],["simplify",{"0":{"54":1},"2":{"54":1}}],["singlevar",{"0":{"61":1},"2":{"61":1,"63":1,"64":2,"67":3,"70":4,"73":1}}],["sin",{"0":{"10":1},"2":{"10":2,"15":1,"157":3}}],["sqrt",{"2":{"26":1,"128":1,"157":1}}],["sub",{"2":{"18":1,"104":1,"136":1,"137":1,"138":1}}],["supplementary",{"0":{"6":1},"2":{"6":1}}],["segment",{"0":{"105":1},"1":{"106":1,"107":1}}],["segment3",{"0":{"106":1},"1":{"107":1},"2":{"38":1}}],["sec",{"0":{"14":1},"2":{"14":1}}],["self",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":3,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":3,"32":4,"33":7,"41":3,"42":4,"43":2,"44":13,"45":8,"46":3,"47":3,"48":7,"49":2,"50":2,"51":4,"52":3,"53":3,"54":8,"56":6,"57":4,"78":5,"79":16,"80":4,"81":8,"82":15,"83":9,"84":2,"85":2,"86":4,"91":1,"92":1,"93":5,"94":2,"95":2,"98":4,"99":4,"100":1,"101":1,"102":4,"103":4,"104":4,"107":15,"111":2,"112":9,"113":2,"114":2,"120":4,"121":4,"122":3,"123":7,"124":2,"125":2,"126":5,"127":4,"128":4,"129":3,"130":2,"131":1,"132":1,"133":7,"134":4,"135":4,"136":1,"137":1,"138":7,"139":4,"140":1,"141":1,"142":7,"143":2,"144":4,"145":4,"146":4}}],["255万个粒子",{"2":{"154":1}}],["2",{"2":{"5":1,"8":1,"9":1,"26":1,"34":1,"36":3,"37":1,"45":1,"81":3,"107":3,"128":3,"157":2}}],["rmul",{"2":{"143":1}}],["rsub",{"2":{"139":1}}],["reference",{"0":{"162":1}}],["realnumber",{"0":{"47":1,"59":1,"111":1,"141":1,"143":1,"144":1,"145":1},"2":{"47":2,"60":1,"111":2,"141":1,"143":1,"144":1,"145":1}}],["result",{"2":{"34":4}}],["return",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"22":2,"33":2,"34":4,"36":1,"37":3,"42":1,"43":1,"44":5,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":3,"57":1,"79":4,"80":2,"81":2,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":4,"94":1,"95":1,"99":1,"102":1,"103":1,"104":1,"109":1,"112":2,"114":1,"115":1,"116":3,"117":3,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"130":1,"133":2,"134":1,"135":1,"138":2,"139":1,"142":2,"143":1,"144":1,"145":1,"146":1,"157":1}}],["range",{"2":{"157":2}}],["rand",{"0":{"95":1},"2":{"95":1}}],["radius",{"0":{"157":1},"2":{"157":6}}],["radian=true",{"2":{"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"80":1,"122":1}}],["radian",{"0":{"4":1},"2":{"4":5,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":2,"17":2,"18":2,"19":1,"22":3}}],["radd",{"2":{"135":1}}],["raise",{"0":{"113":1},"2":{"34":1,"44":1,"45":2,"80":1,"81":1,"82":1,"83":1,"93":1,"112":2,"113":2,"133":1,"138":1,"139":1,"142":1}}],["ratio",{"0":{"26":1}}],[">",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":3,"36":1,"37":3,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"104":1,"109":1,"115":1,"116":2,"117":2,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["返回",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"33":1,"34":1,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"99":1,"102":1,"103":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"157":1}}],["can",{"2":{"154":1}}],["cal",{"0":{"36":1,"43":1,"44":1,"45":1,"46":1,"80":1,"81":1,"82":1,"83":1,"84":1,"122":1},"2":{"36":1,"43":2,"44":1,"45":1,"46":1,"56":1,"80":2,"81":1,"82":1,"83":1,"84":1,"93":2,"95":1,"122":1}}],["callable",{"2":{"64":1,"65":1,"67":1,"68":1,"70":1,"71":1,"73":1,"74":1}}],["call",{"0":{"33":1},"2":{"33":1}}],["cz",{"2":{"78":1}}],["clamp",{"0":{"109":1},"2":{"109":1,"157":1}}],["classmethod",{"2":{"54":1,"55":1,"86":1,"87":2,"88":2,"89":2,"90":1}}],["class",{"0":{"2":1,"3":1,"31":1,"40":1,"77":1,"97":1,"106":1,"110":1,"119":1,"156":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"157":1}}],["cls",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":2,"87":2,"88":2,"89":2,"90":2}}],["cross",{"0":{"123":1},"2":{"44":4,"45":3,"46":1,"53":1,"82":1,"88":1,"89":1,"123":1,"124":1,"125":1}}],["c",{"0":{"78":1},"2":{"37":2,"78":4,"79":7,"81":2,"82":6,"83":2,"86":1,"87":3}}],["curried",{"2":{"37":4}}],["currying",{"2":{"37":1}}],["curry",{"0":{"37":1},"2":{"37":2}}],["curveequation",{"0":{"31":1},"1":{"32":1,"33":1},"2":{"38":1}}],["csc",{"0":{"15":1},"2":{"15":1}}],["coincident",{"2":{"83":1}}],["complex",{"2":{"60":1}}],["complementary",{"0":{"5":1},"2":{"5":1,"80":1}}],["collinear",{"0":{"51":1},"2":{"51":1,"56":1}}],["coplanar",{"0":{"53":1},"2":{"44":1,"45":2,"53":1,"56":1}}],["const",{"0":{"23":1},"1":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1}}],["cot",{"0":{"13":1},"2":{"13":1}}],["cos",{"0":{"11":1},"2":{"11":2,"14":1,"157":2}}],["在github上查看",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"157":1}}],["或包装一个实数",{"2":{"115":1}}],["或整数元组",{"2":{"34":1}}],["或",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"157":1}}],["源代码",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"157":1}}],["参数方程",{"2":{"48":1}}],["参数t",{"2":{"47":1}}],["参数",{"2":{"4":1,"32":1,"33":2,"34":1,"36":1,"37":2,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"157":1}}],["任意角度",{"2":{"4":1,"38":1}}],["说明",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"147":1,"148":1,"149":1,"150":1,"157":1}}],["f",{"2":{"80":1,"81":1,"93":1,"113":1,"117":3,"133":1,"138":1,"139":1,"142":1}}],["from",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":1,"84":1,"87":1,"88":2,"89":2,"90":2,"104":1,"154":1}}],["format",{"0":{"117":1},"2":{"117":1}}],["for",{"2":{"33":1,"34":1,"93":1,"133":1,"138":1,"139":1,"142":1,"157":2}}],["function",{"0":{"35":1},"1":{"36":1,"37":1}}],["func",{"0":{"32":3,"34":3,"36":2,"37":2,"109":1,"115":1,"116":1,"117":1},"2":{"32":12,"33":6,"34":15,"36":8,"37":5}}],["false",{"0":{"4":1,"116":1,"117":1},"2":{"79":1}}],["float=0",{"2":{"115":1}}],["float=1e",{"2":{"49":1}}],["float=approx",{"2":{"42":1,"99":1,"115":1,"121":1,"124":1}}],["float=epsilon",{"2":{"36":1}}],["float",{"0":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"36":1,"42":1,"44":1,"49":1,"78":4,"81":1,"98":3,"99":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"157":2},"2":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"42":1,"44":2,"49":1,"59":1,"78":8,"81":2,"98":6,"99":1,"109":8,"112":2,"115":4,"116":2,"117":2,"120":6,"121":1,"124":1,"128":2,"142":3,"144":1,"157":2}}],["==",{"2":{"33":1,"44":1,"53":1,"54":3,"83":1,"89":1,"93":1}}],["=",{"0":{"4":1,"16":1,"18":1,"19":1,"20":1,"21":1,"34":1,"36":1,"42":1,"49":1,"99":1,"100":1,"101":1,"104":1,"115":2,"116":1,"117":1,"121":1,"124":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":2,"32":3,"34":5,"36":4,"37":1,"41":2,"54":3,"55":1,"78":5,"79":6,"82":17,"83":2,"87":2,"88":3,"89":3,"98":3,"107":5,"111":1,"120":3,"126":4,"157":7}}],["improve",{"2":{"162":1}}],["import",{"2":{"104":1}}],["i",{"2":{"154":1,"157":4}}],["install",{"2":{"160":1}}],["invalid",{"2":{"34":1}}],["intersect",{"2":{"45":2}}],["intersection",{"0":{"45":1,"82":1,"83":1},"2":{"45":1,"56":1,"82":2,"83":1,"93":2,"95":1}}],["int",{"0":{"34":2,"142":1},"2":{"34":3,"37":4,"59":1,"112":2,"142":2,"157":1}}],["in",{"2":{"33":1,"34":1,"157":2}}],["init",{"0":{"4":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1},"2":{"4":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1}}],["if",{"2":{"4":1,"22":1,"33":1,"34":1,"44":2,"45":2,"54":3,"56":1,"79":1,"80":1,"81":1,"82":2,"83":1,"89":1,"93":3,"112":3,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1,"154":1}}],["isinstance",{"2":{"22":1,"34":2,"44":2,"80":2,"81":2,"93":2,"112":4,"133":2,"138":2,"139":1,"142":2}}],["is",{"0":{"4":1,"49":1,"50":1,"51":1,"52":1,"53":1,"85":1,"124":1,"125":1},"2":{"4":3,"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"42":2,"44":2,"45":2,"49":2,"50":2,"51":3,"52":2,"53":1,"56":3,"57":2,"80":1,"82":1,"85":2,"93":1,"122":1,"124":1,"125":1}}],["预设",{"2":{"0":1}}],["phi",{"2":{"157":5}}],["p3",{"0":{"88":1},"2":{"88":3}}],["p2",{"0":{"55":1,"88":1,"107":1},"2":{"55":3,"57":1,"88":3,"107":8}}],["p1",{"0":{"55":1,"88":1,"107":1},"2":{"55":4,"57":1,"88":5,"107":8}}],["perpendicular",{"0":{"46":1},"2":{"46":1}}],["parametric",{"0":{"48":1},"2":{"48":1,"83":1}}],["parallel",{"0":{"49":1,"50":1,"84":1,"85":1,"124":1,"125":1},"2":{"42":2,"44":1,"45":2,"49":2,"50":2,"51":2,"52":1,"56":1,"57":2,"82":2,"83":1,"84":1,"85":2,"93":1,"124":1,"125":1}}],["partial",{"0":{"34":1},"2":{"34":6}}],["particle",{"0":{"151":1},"2":{"0":1}}],["planes",{"2":{"82":1}}],["plane",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"83":1}}],["plane3",{"0":{"77":1,"79":1,"80":1,"81":1,"82":1,"84":2,"85":1,"87":1,"88":1,"89":1,"90":1,"92":1},"1":{"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"38":1,"79":2,"80":3,"81":3,"82":2,"84":4,"85":2,"87":2,"88":1,"89":1,"90":1,"92":1,"93":3,"94":1,"112":1}}],["plus",{"2":{"34":3}}],["p",{"0":{"36":1},"2":{"36":20,"102":5,"104":4,"133":2,"135":2,"138":2,"139":2}}],["points",{"0":{"55":1,"88":1},"2":{"55":1,"88":1}}],["point",{"0":{"41":1,"46":1,"47":1,"52":2,"84":1,"87":2,"90":2,"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"41":4,"42":2,"44":5,"45":3,"46":5,"47":2,"48":3,"51":2,"52":5,"53":2,"54":3,"57":2,"83":3,"84":4,"87":6,"88":1,"89":6,"90":5}}],["point3",{"0":{"33":2,"36":1,"41":1,"44":1,"45":1,"46":1,"47":1,"52":1,"55":2,"56":1,"81":1,"83":2,"84":1,"87":1,"88":3,"90":1,"91":1,"95":1,"97":1,"99":1,"100":1,"101":2,"104":1,"107":2,"132":2,"135":2,"137":2,"139":1},"1":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"33":4,"36":2,"38":1,"41":2,"44":3,"45":2,"46":2,"47":2,"52":2,"55":4,"56":2,"81":3,"82":1,"83":4,"84":2,"87":2,"88":6,"90":2,"91":1,"93":2,"95":2,"99":2,"100":1,"101":2,"102":3,"103":1,"104":2,"107":5,"112":1,"132":2,"133":4,"135":5,"137":2,"138":4,"139":5,"157":2}}],["positive",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["python",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"55":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"157":1}}],["pythondef",{"2":{"4":1,"16":1,"17":1,"18":1,"19":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":2,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"93":1,"94":1,"95":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"130":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["property",{"2":{"4":1,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":1,"85":1,"86":1,"126":1,"127":2,"128":2,"129":1}}],["presets",{"0":{"152":1,"155":1},"1":{"156":1,"157":1},"2":{"0":1}}],["pi",{"0":{"24":1},"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"24":1,"157":2}}],["粒子生成工具",{"2":{"0":1}}],["model",{"0":{"155":1},"1":{"156":1,"157":1}}],["mc特效红石音乐",{"2":{"154":1}}],["midpoint",{"2":{"107":1}}],["minecraft",{"2":{"154":1}}],["min",{"0":{"109":1},"2":{"109":4}}],["minus",{"2":{"34":3}}],["minimum",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["multiarraysfunc",{"0":{"74":1},"2":{"75":1}}],["multisinglevarsfunc",{"0":{"73":1},"2":{"75":1}}],["multivarsfunc",{"0":{"34":2,"37":1,"75":1},"2":{"34":3,"37":2}}],["mul",{"2":{"19":1,"140":1,"141":1,"142":1,"143":1}}],["matmul",{"2":{"144":1}}],["math导入使用",{"2":{"38":1}}],["math",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"80":1,"122":1,"128":1}}],["max",{"0":{"109":1},"2":{"109":4}}],["maximum",{"0":{"9":1},"2":{"9":1}}],["method",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"157":1}}],["mp",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"38":1}}],["mbcp",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"155":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"156":1,"157":1},"2":{"0":3,"160":1}}],["提供了一些工具",{"2":{"0":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexzht.BMfCbOB2.js b/assets/chunks/@localSearchIndexzht.BMfCbOB2.js deleted file mode 100644 index aac5cc9..0000000 --- a/assets/chunks/@localSearchIndexzht.BMfCbOB2.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":160,"nextId":160,"documentIds":{"0":"/zht/api/#模組-mbcp","1":"/zht/api/mp_math/angle.html#模組-mbcp-mp-math-angle","2":"/zht/api/mp_math/angle.html#class-angle","3":"/zht/api/mp_math/angle.html#class-anyangle-angle","4":"/zht/api/mp_math/angle.html#method-init-self-value-float-is-radian-bool-false","5":"/zht/api/mp_math/angle.html#method-complementary-self-anyangle","6":"/zht/api/mp_math/angle.html#method-supplementary-self-anyangle","7":"/zht/api/mp_math/angle.html#method-degree-self-float","8":"/zht/api/mp_math/angle.html#method-minimum-positive-self-anyangle","9":"/zht/api/mp_math/angle.html#method-maximum-negative-self-anyangle","10":"/zht/api/mp_math/angle.html#method-sin-self-float","11":"/zht/api/mp_math/angle.html#method-cos-self-float","12":"/zht/api/mp_math/angle.html#method-tan-self-float","13":"/zht/api/mp_math/angle.html#method-cot-self-float","14":"/zht/api/mp_math/angle.html#method-sec-self-float","15":"/zht/api/mp_math/angle.html#method-csc-self-float","16":"/zht/api/mp_math/angle.html#method-self-other-anyangle-anyangle","17":"/zht/api/mp_math/angle.html#method-eq-self-other","18":"/zht/api/mp_math/angle.html#method-self-other-anyangle-anyangle-1","19":"/zht/api/mp_math/angle.html#method-self-other-float-anyangle","20":"/zht/api/mp_math/angle.html#method-self-other-float-anyangle-1","21":"/zht/api/mp_math/angle.html#method-self-other-anyangle-float","22":"/zht/api/mp_math/angle.html#method-self-other","23":"/zht/api/mp_math/const.html#模組-mbcp-mp-math-const","24":"/zht/api/mp_math/const.html#var-pi","25":"/zht/api/mp_math/const.html#var-e","26":"/zht/api/mp_math/const.html#var-golden-ratio","27":"/zht/api/mp_math/const.html#var-gamma","28":"/zht/api/mp_math/const.html#var-epsilon","29":"/zht/api/mp_math/const.html#var-approx","30":"/zht/api/mp_math/equation.html#模組-mbcp-mp-math-equation","31":"/zht/api/mp_math/equation.html#class-curveequation","32":"/zht/api/mp_math/equation.html#method-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","33":"/zht/api/mp_math/equation.html#method-call-self-t-var-point3-tuple-point3","34":"/zht/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","35":"/zht/api/mp_math/function.html#模組-mbcp-mp-math-function","36":"/zht/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","37":"/zht/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","38":"/zht/api/mp_math/#模組-mbcp-mp-math","39":"/zht/api/mp_math/line.html#模組-mbcp-mp-math-line","40":"/zht/api/mp_math/line.html#class-line3","41":"/zht/api/mp_math/line.html#method-init-self-point-point3-direction-vector3","42":"/zht/api/mp_math/line.html#method-approx-self-other-line3-epsilon-float-approx-bool","43":"/zht/api/mp_math/line.html#method-cal-angle-self-other-line3-anyangle","44":"/zht/api/mp_math/line.html#method-cal-distance-self-other-line3-point3-float","45":"/zht/api/mp_math/line.html#method-cal-intersection-self-other-line3-point3","46":"/zht/api/mp_math/line.html#method-cal-perpendicular-self-point-point3-line3","47":"/zht/api/mp_math/line.html#method-get-point-self-t-realnumber-point3","48":"/zht/api/mp_math/line.html#method-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","49":"/zht/api/mp_math/line.html#method-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","50":"/zht/api/mp_math/line.html#method-is-parallel-self-other-line3-bool","51":"/zht/api/mp_math/line.html#method-is-collinear-self-other-line3-bool","52":"/zht/api/mp_math/line.html#method-is-point-on-self-point-point3-bool","53":"/zht/api/mp_math/line.html#method-is-coplanar-self-other-line3-bool","54":"/zht/api/mp_math/line.html#method-simplify-self","55":"/zht/api/mp_math/line.html#method-from-two-points-cls-p1-point3-p2-point3-line3","56":"/zht/api/mp_math/line.html#method-and-self-other-line3-line3-point3-none","57":"/zht/api/mp_math/line.html#method-eq-self-other-bool","58":"/zht/api/mp_math/mp_math_typing.html#模組-mbcp-mp-math-mp-math-typing","59":"/zht/api/mp_math/mp_math_typing.html#var-realnumber","60":"/zht/api/mp_math/mp_math_typing.html#var-number","61":"/zht/api/mp_math/mp_math_typing.html#var-singlevar","62":"/zht/api/mp_math/mp_math_typing.html#var-arrayvar","63":"/zht/api/mp_math/mp_math_typing.html#var-var","64":"/zht/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","65":"/zht/api/mp_math/mp_math_typing.html#var-onearrayfunc","66":"/zht/api/mp_math/mp_math_typing.html#var-onevarfunc","67":"/zht/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","68":"/zht/api/mp_math/mp_math_typing.html#var-twoarraysfunc","69":"/zht/api/mp_math/mp_math_typing.html#var-twovarsfunc","70":"/zht/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","71":"/zht/api/mp_math/mp_math_typing.html#var-threearraysfunc","72":"/zht/api/mp_math/mp_math_typing.html#var-threevarsfunc","73":"/zht/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","74":"/zht/api/mp_math/mp_math_typing.html#var-multiarraysfunc","75":"/zht/api/mp_math/mp_math_typing.html#var-multivarsfunc","76":"/zht/api/mp_math/plane.html#模組-mbcp-mp-math-plane","77":"/zht/api/mp_math/plane.html#class-plane3","78":"/zht/api/mp_math/plane.html#method-init-self-a-float-b-float-c-float-d-float","79":"/zht/api/mp_math/plane.html#method-approx-self-other-plane3-bool","80":"/zht/api/mp_math/plane.html#method-cal-angle-self-other-line3-plane3-anyangle","81":"/zht/api/mp_math/plane.html#method-cal-distance-self-other-plane3-point3-float","82":"/zht/api/mp_math/plane.html#method-cal-intersection-line3-self-other-plane3-line3","83":"/zht/api/mp_math/plane.html#method-cal-intersection-point3-self-other-line3-point3","84":"/zht/api/mp_math/plane.html#method-cal-parallel-plane3-self-point-point3-plane3","85":"/zht/api/mp_math/plane.html#method-is-parallel-self-other-plane3-bool","86":"/zht/api/mp_math/plane.html#method-normal-self-vector3","87":"/zht/api/mp_math/plane.html#method-from-point-and-normal-cls-point-point3-normal-vector3-plane3","88":"/zht/api/mp_math/plane.html#method-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","89":"/zht/api/mp_math/plane.html#method-from-two-lines-cls-l1-line3-l2-line3-plane3","90":"/zht/api/mp_math/plane.html#method-from-point-and-line-cls-point-point3-line-line3-plane3","91":"/zht/api/mp_math/plane.html#method-and-self-other-line3-point3-none","92":"/zht/api/mp_math/plane.html#method-and-self-other-plane3-line3-none","93":"/zht/api/mp_math/plane.html#method-and-self-other","94":"/zht/api/mp_math/plane.html#method-eq-self-other-bool","95":"/zht/api/mp_math/plane.html#method-rand-self-other-line3-point3","96":"/zht/api/mp_math/point.html#模組-mbcp-mp-math-point","97":"/zht/api/mp_math/point.html#class-point3","98":"/zht/api/mp_math/point.html#method-init-self-x-float-y-float-z-float","99":"/zht/api/mp_math/point.html#method-approx-self-other-point3-epsilon-float-approx-bool","100":"/zht/api/mp_math/point.html#method-self-other-vector3-point3","101":"/zht/api/mp_math/point.html#method-self-other-point3-point3","102":"/zht/api/mp_math/point.html#method-self-other","103":"/zht/api/mp_math/point.html#method-eq-self-other","104":"/zht/api/mp_math/point.html#method-self-other-point3-vector3","105":"/zht/api/mp_math/segment.html#模組-mbcp-mp-math-segment","106":"/zht/api/mp_math/segment.html#class-segment3","107":"/zht/api/mp_math/segment.html#method-init-self-p1-point3-p2-point3","108":"/zht/api/mp_math/utils.html#模組-mbcp-mp-math-utils","109":"/zht/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","110":"/zht/api/mp_math/utils.html#class-approx","111":"/zht/api/mp_math/utils.html#method-init-self-value-realnumber","112":"/zht/api/mp_math/utils.html#method-eq-self-other","113":"/zht/api/mp_math/utils.html#method-raise-type-error-self-other","114":"/zht/api/mp_math/utils.html#method-ne-self-other","115":"/zht/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","116":"/zht/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","117":"/zht/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","118":"/zht/api/mp_math/vector.html#模組-mbcp-mp-math-vector","119":"/zht/api/mp_math/vector.html#class-vector3","120":"/zht/api/mp_math/vector.html#method-init-self-x-float-y-float-z-float","121":"/zht/api/mp_math/vector.html#method-approx-self-other-vector3-epsilon-float-approx-bool","122":"/zht/api/mp_math/vector.html#method-cal-angle-self-other-vector3-anyangle","123":"/zht/api/mp_math/vector.html#method-cross-self-other-vector3-vector3","124":"/zht/api/mp_math/vector.html#method-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","125":"/zht/api/mp_math/vector.html#method-is-parallel-self-other-vector3-bool","126":"/zht/api/mp_math/vector.html#method-normalize-self","127":"/zht/api/mp_math/vector.html#method-np-array-self-np-ndarray","128":"/zht/api/mp_math/vector.html#method-length-self-float","129":"/zht/api/mp_math/vector.html#method-unit-self-vector3","130":"/zht/api/mp_math/vector.html#method-abs-self","131":"/zht/api/mp_math/vector.html#method-self-other-vector3-vector3","132":"/zht/api/mp_math/vector.html#method-self-other-point3-point3","133":"/zht/api/mp_math/vector.html#method-self-other","134":"/zht/api/mp_math/vector.html#method-eq-self-other","135":"/zht/api/mp_math/vector.html#method-self-other-point3-point3-1","136":"/zht/api/mp_math/vector.html#method-self-other-vector3-vector3-1","137":"/zht/api/mp_math/vector.html#method-self-other-point3-point3-2","138":"/zht/api/mp_math/vector.html#method-self-other-1","139":"/zht/api/mp_math/vector.html#method-self-other-point3","140":"/zht/api/mp_math/vector.html#method-self-other-vector3-vector3-2","141":"/zht/api/mp_math/vector.html#method-self-other-realnumber-vector3","142":"/zht/api/mp_math/vector.html#method-self-other-int-float-vector3-vector3","143":"/zht/api/mp_math/vector.html#method-self-other-realnumber-vector3-1","144":"/zht/api/mp_math/vector.html#method-self-other-vector3-realnumber","145":"/zht/api/mp_math/vector.html#method-self-other-realnumber-vector3-2","146":"/zht/api/mp_math/vector.html#method-self-vector3","147":"/zht/api/mp_math/vector.html#var-zero-vector3","148":"/zht/api/mp_math/vector.html#var-x-axis","149":"/zht/api/mp_math/vector.html#var-y-axis","150":"/zht/api/mp_math/vector.html#var-z-axis","151":"/zht/api/particle/#模組-mbcp-particle","152":"/zht/api/presets/#模組-mbcp-presets","153":"/zht/api/presets/model/#模組-mbcp-presets-model","154":"/zht/api/presets/model/#class-geometricmodels","155":"/zht/api/presets/model/#method-sphere-radius-float-density-float","156":"/zht/demo/best-practice.html#最佳實踐","157":"/zht/demo/best-practice.html#作品","158":"/zht/guide/#开始不了一点","159":"/zht/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,12],"1":[5,1,2],"2":[2,5,1],"3":[4,5,1],"4":[11,9,25],"5":[5,9,24],"6":[5,9,23],"7":[5,9,20],"8":[6,9,21],"9":[6,9,23],"10":[5,9,18],"11":[5,9,18],"12":[5,9,18],"13":[5,9,20],"14":[5,9,20],"15":[5,9,20],"16":[7,9,15],"17":[5,9,11],"18":[6,9,14],"19":[7,9,16],"20":[7,9,13],"21":[7,9,13],"22":[3,9,15],"23":[5,1,2],"24":[2,5,7],"25":[2,5,8],"26":[3,5,10],"27":[2,5,6],"28":[2,5,6],"29":[2,5,6],"30":[5,1,2],"31":[2,5,1],"32":[9,7,26],"33":[10,7,35],"34":[14,5,74],"35":[5,1,2],"36":[13,5,69],"37":[7,5,63],"38":[4,1,20],"39":[5,1,2],"40":[2,5,1],"41":[8,7,25],"42":[11,7,43],"43":[8,7,28],"44":[10,7,63],"45":[8,7,60],"46":[8,7,29],"47":[8,7,35],"48":[9,7,42],"49":[14,7,43],"50":[8,7,36],"51":[8,7,39],"52":[8,7,36],"53":[8,7,42],"54":[4,7,27],"55":[10,7,36],"56":[9,7,52],"57":[6,7,44],"58":[5,1,2],"59":[2,5,9],"60":[2,5,9],"61":[2,5,7],"62":[2,5,8],"63":[2,5,9],"64":[2,5,8],"65":[2,5,8],"66":[2,5,9],"67":[2,5,8],"68":[2,5,8],"69":[2,5,9],"70":[2,5,8],"71":[2,5,8],"72":[2,5,9],"73":[2,5,8],"74":[2,5,8],"75":[2,5,9],"76":[5,1,2],"77":[2,5,1],"78":[9,7,36],"79":[7,7,45],"80":[10,7,92],"81":[10,7,66],"82":[9,7,102],"83":[9,7,69],"84":[9,7,30],"85":[8,7,37],"86":[5,7,25],"87":[10,7,45],"88":[11,7,39],"89":[10,7,44],"90":[10,7,35],"91":[9,7,15],"92":[9,7,15],"93":[5,7,70],"94":[6,7,35],"95":[7,7,15],"96":[5,1,2],"97":[2,5,1],"98":[8,7,26],"99":[11,7,45],"100":[8,7,13],"101":[7,7,12],"102":[4,7,34],"103":[5,7,37],"104":[7,7,36],"105":[5,1,2],"106":[2,5,1],"107":[7,7,32],"108":[5,1,2],"109":[7,5,31],"110":[2,5,1],"111":[6,7,20],"112":[5,7,31],"113":[7,7,15],"114":[5,7,11],"115":[11,5,40],"116":[11,5,43],"117":[12,5,49],"118":[5,1,3],"119":[2,5,1],"120":[8,7,29],"121":[11,7,44],"122":[8,7,46],"123":[6,7,50],"124":[13,7,43],"125":[8,7,37],"126":[4,7,17],"127":[6,7,31],"128":[5,7,33],"129":[5,7,21],"130":[4,7,10],"131":[7,7,12],"132":[7,7,12],"133":[4,7,46],"134":[5,7,37],"135":[7,7,31],"136":[6,7,12],"137":[6,7,12],"138":[3,7,45],"139":[4,7,42],"140":[6,7,12],"141":[7,7,13],"142":[9,7,55],"143":[7,7,13],"144":[7,7,38],"145":[7,7,15],"146":[5,7,21],"147":[3,5,7],"148":[3,5,8],"149":[3,5,8],"150":[3,5,8],"151":[3,1,2],"152":[3,1,2],"153":[4,1,2],"154":[2,4,2],"155":[6,6,48],"156":[1,1,1],"157":[1,1,25],"158":[1,1,2],"159":[1,1,7]},"averageFieldLength":[5.7437499999999995,5.924999999999998,23.325000000000003],"storedFields":{"0":{"title":"模組 mbcp","titles":[]},"1":{"title":"模組 mbcp.mp_math.angle","titles":[]},"2":{"title":"class Angle","titles":["模組 mbcp.mp_math.angle"]},"3":{"title":"class AnyAngle(Angle)","titles":["模組 mbcp.mp_math.angle"]},"4":{"title":"method __init__(self, value: float, is_radian: bool = False)","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"5":{"title":"method complementary(self) -> AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"method supplementary(self) -> AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"method degree(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"method minimum_positive(self) -> AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"method maximum_negative(self) -> AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"method sin(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"method cos(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"method tan(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"method cot(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"method sec(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"method csc(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"method self + other: AnyAngle => AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"method __eq__(self, other)","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"method self - other: AnyAngle => AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"method self * other: float => AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"method self / other: float => AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"method self / other: AnyAngle => float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"method self / other","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"模組 mbcp.mp_math.const","titles":[]},"24":{"title":"var PI","titles":["模組 mbcp.mp_math.const"]},"25":{"title":"var E","titles":["模組 mbcp.mp_math.const"]},"26":{"title":"var GOLDEN_RATIO","titles":["模組 mbcp.mp_math.const"]},"27":{"title":"var GAMMA","titles":["模組 mbcp.mp_math.const"]},"28":{"title":"var EPSILON","titles":["模組 mbcp.mp_math.const"]},"29":{"title":"var APPROX","titles":["模組 mbcp.mp_math.const"]},"30":{"title":"模組 mbcp.mp_math.equation","titles":[]},"31":{"title":"class CurveEquation","titles":["模組 mbcp.mp_math.equation"]},"32":{"title":"method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["模組 mbcp.mp_math.equation","class CurveEquation"]},"33":{"title":"method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["模組 mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["模組 mbcp.mp_math.equation"]},"35":{"title":"模組 mbcp.mp_math.function","titles":[]},"36":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["模組 mbcp.mp_math.function"]},"37":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["模組 mbcp.mp_math.function"]},"38":{"title":"模組 mbcp.mp_math","titles":[]},"39":{"title":"模組 mbcp.mp_math.line","titles":[]},"40":{"title":"class Line3","titles":["模組 mbcp.mp_math.line"]},"41":{"title":"method __init__(self, point: Point3, direction: Vector3)","titles":["模組 mbcp.mp_math.line","class Line3"]},"42":{"title":"method approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"43":{"title":"method cal_angle(self, other: Line3) -> AnyAngle","titles":["模組 mbcp.mp_math.line","class Line3"]},"44":{"title":"method cal_distance(self, other: Line3 | Point3) -> float","titles":["模組 mbcp.mp_math.line","class Line3"]},"45":{"title":"method cal_intersection(self, other: Line3) -> Point3","titles":["模組 mbcp.mp_math.line","class Line3"]},"46":{"title":"method cal_perpendicular(self, point: Point3) -> Line3","titles":["模組 mbcp.mp_math.line","class Line3"]},"47":{"title":"method get_point(self, t: RealNumber) -> Point3","titles":["模組 mbcp.mp_math.line","class Line3"]},"48":{"title":"method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["模組 mbcp.mp_math.line","class Line3"]},"49":{"title":"method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"50":{"title":"method is_parallel(self, other: Line3) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"51":{"title":"method is_collinear(self, other: Line3) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"52":{"title":"method is_point_on(self, point: Point3) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"53":{"title":"method is_coplanar(self, other: Line3) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"54":{"title":"method simplify(self)","titles":["模組 mbcp.mp_math.line","class Line3"]},"55":{"title":"method from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["模組 mbcp.mp_math.line","class Line3"]},"56":{"title":"method __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["模組 mbcp.mp_math.line","class Line3"]},"57":{"title":"method __eq__(self, other) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"58":{"title":"模組 mbcp.mp_math.mp_math_typing","titles":[]},"59":{"title":"var RealNumber","titles":["模組 mbcp.mp_math.mp_math_typing"]},"60":{"title":"var Number","titles":["模組 mbcp.mp_math.mp_math_typing"]},"61":{"title":"var SingleVar","titles":["模組 mbcp.mp_math.mp_math_typing"]},"62":{"title":"var ArrayVar","titles":["模組 mbcp.mp_math.mp_math_typing"]},"63":{"title":"var Var","titles":["模組 mbcp.mp_math.mp_math_typing"]},"64":{"title":"var OneSingleVarFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"65":{"title":"var OneArrayFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"66":{"title":"var OneVarFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"67":{"title":"var TwoSingleVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"68":{"title":"var TwoArraysFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"69":{"title":"var TwoVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"70":{"title":"var ThreeSingleVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"71":{"title":"var ThreeArraysFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"72":{"title":"var ThreeVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"73":{"title":"var MultiSingleVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"74":{"title":"var MultiArraysFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"75":{"title":"var MultiVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"76":{"title":"模組 mbcp.mp_math.plane","titles":[]},"77":{"title":"class Plane3","titles":["模組 mbcp.mp_math.plane"]},"78":{"title":"method __init__(self, a: float, b: float, c: float, d: float)","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"79":{"title":"method approx(self, other: Plane3) -> bool","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"80":{"title":"method cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"81":{"title":"method cal_distance(self, other: Plane3 | Point3) -> float","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"82":{"title":"method cal_intersection_line3(self, other: Plane3) -> Line3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"83":{"title":"method cal_intersection_point3(self, other: Line3) -> Point3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"84":{"title":"method cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"85":{"title":"method is_parallel(self, other: Plane3) -> bool","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"86":{"title":"method normal(self) -> Vector3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"87":{"title":"method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"88":{"title":"method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"89":{"title":"method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"90":{"title":"method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"91":{"title":"method __and__(self, other: Line3) -> Point3 | None","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"92":{"title":"method __and__(self, other: Plane3) -> Line3 | None","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"93":{"title":"method __and__(self, other)","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"94":{"title":"method __eq__(self, other) -> bool","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"95":{"title":"method __rand__(self, other: Line3) -> Point3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"96":{"title":"模組 mbcp.mp_math.point","titles":[]},"97":{"title":"class Point3","titles":["模組 mbcp.mp_math.point"]},"98":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["模組 mbcp.mp_math.point","class Point3"]},"99":{"title":"method approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["模組 mbcp.mp_math.point","class Point3"]},"100":{"title":"method self + other: Vector3 => Point3","titles":["模組 mbcp.mp_math.point","class Point3"]},"101":{"title":"method self + other: Point3 => Point3","titles":["模組 mbcp.mp_math.point","class Point3"]},"102":{"title":"method self + other","titles":["模組 mbcp.mp_math.point","class Point3"]},"103":{"title":"method __eq__(self, other)","titles":["模組 mbcp.mp_math.point","class Point3"]},"104":{"title":"method self - other: Point3 => Vector3","titles":["模組 mbcp.mp_math.point","class Point3"]},"105":{"title":"模組 mbcp.mp_math.segment","titles":[]},"106":{"title":"class Segment3","titles":["模組 mbcp.mp_math.segment"]},"107":{"title":"method __init__(self, p1: Point3, p2: Point3)","titles":["模組 mbcp.mp_math.segment","class Segment3"]},"108":{"title":"模組 mbcp.mp_math.utils","titles":[]},"109":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["模組 mbcp.mp_math.utils"]},"110":{"title":"class Approx","titles":["模組 mbcp.mp_math.utils"]},"111":{"title":"method __init__(self, value: RealNumber)","titles":["模組 mbcp.mp_math.utils","class Approx"]},"112":{"title":"method __eq__(self, other)","titles":["模組 mbcp.mp_math.utils","class Approx"]},"113":{"title":"method raise_type_error(self, other)","titles":["模組 mbcp.mp_math.utils","class Approx"]},"114":{"title":"method __ne__(self, other)","titles":["模組 mbcp.mp_math.utils","class Approx"]},"115":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["模組 mbcp.mp_math.utils"]},"116":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["模組 mbcp.mp_math.utils"]},"117":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["模組 mbcp.mp_math.utils"]},"118":{"title":"模組 mbcp.mp_math.vector","titles":[]},"119":{"title":"class Vector3","titles":["模組 mbcp.mp_math.vector"]},"120":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"121":{"title":"method approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"122":{"title":"method cal_angle(self, other: Vector3) -> AnyAngle","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"123":{"title":"method cross(self, other: Vector3) -> Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"124":{"title":"method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"125":{"title":"method is_parallel(self, other: Vector3) -> bool","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"126":{"title":"method normalize(self)","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"127":{"title":"method np_array(self) -> np.ndarray","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"128":{"title":"method length(self) -> float","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"129":{"title":"method unit(self) -> Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"130":{"title":"method __abs__(self)","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"131":{"title":"method self + other: Vector3 => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"132":{"title":"method self + other: Point3 => Point3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"133":{"title":"method self + other","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"134":{"title":"method __eq__(self, other)","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"135":{"title":"method self + other: Point3 => Point3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"136":{"title":"method self - other: Vector3 => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"137":{"title":"method self - other: Point3 => Point3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"138":{"title":"method self - other","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"139":{"title":"method self - other: Point3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"140":{"title":"method self * other: Vector3 => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"141":{"title":"method self * other: RealNumber => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"142":{"title":"method self * other: int | float | Vector3 => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"143":{"title":"method self * other: RealNumber => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"144":{"title":"method self @ other: Vector3 => RealNumber","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"145":{"title":"method self / other: RealNumber => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"146":{"title":"method - self => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"147":{"title":"var zero_vector3","titles":["模組 mbcp.mp_math.vector"]},"148":{"title":"var x_axis","titles":["模組 mbcp.mp_math.vector"]},"149":{"title":"var y_axis","titles":["模組 mbcp.mp_math.vector"]},"150":{"title":"var z_axis","titles":["模組 mbcp.mp_math.vector"]},"151":{"title":"模組 mbcp.particle","titles":[]},"152":{"title":"模組 mbcp.presets","titles":[]},"153":{"title":"模組 mbcp.presets.model","titles":[]},"154":{"title":"class GeometricModels","titles":["模組 mbcp.presets.model"]},"155":{"title":"method sphere(radius: float, density: float)","titles":["模組 mbcp.presets.model","class GeometricModels"]},"156":{"title":"最佳實踐","titles":[]},"157":{"title":"作品","titles":["最佳實踐"]},"158":{"title":"开始不了一点","titles":[]},"159":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["∫12x111",{"2":{"158":1}}],["开始不了一点",{"0":{"158":1}}],["红石音乐",{"2":{"157":1}}],["这么可爱真是抱歉",{"2":{"157":1}}],["这玩意不太稳定",{"2":{"34":2}}],["轻涟",{"2":{"157":1}}],["芙宁娜pv曲",{"2":{"157":1}}],["有点甜~",{"2":{"157":1}}],["有关函数柯里化",{"2":{"37":2}}],["星穹铁道",{"2":{"157":1}}],["崩坏",{"2":{"157":1}}],["使一颗心免于哀伤",{"2":{"157":1}}],["总有一条蜿蜒在童话镇里",{"2":{"157":1}}],["童话镇~",{"2":{"157":1}}],["特效红石音乐",{"2":{"157":2}}],["作品",{"0":{"157":1}}],["4",{"2":{"155":1}}],["球体上的点集",{"2":{"155":2}}],["生成球体上的点集",{"2":{"155":2}}],["几何模型点集",{"2":{"153":1}}],["零向量",{"2":{"147":1}}],["负向量",{"2":{"146":2}}],["取负",{"2":{"146":2}}],["取两平面的交集",{"2":{"93":2}}],["非点乘",{"2":{"142":2}}],["别去点那边实现了",{"2":{"135":2}}],["单位向量",{"2":{"129":2}}],["单变量",{"2":{"61":1}}],["模",{"2":{"128":2}}],["模組",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1}}],["将向量归一化",{"2":{"126":2}}],["j",{"2":{"123":1}}],["转换为行列式形式",{"2":{"123":2}}],["叉乘使用cross",{"2":{"142":2}}],["叉乘结果",{"2":{"123":2}}],["叉乘运算法则为",{"2":{"123":2}}],["叉乘",{"2":{"123":2}}],["向量的模",{"2":{"128":2}}],["向量积",{"2":{"123":2}}],["向量夹角计算公式",{"2":{"122":2}}],["以及一些常用的向量",{"2":{"118":1}}],["格式化符号数",{"2":{"117":2}}],["quot",{"2":{"116":2,"117":4}}],["符号",{"2":{"116":2,"117":2}}],["获取该向量的单位向量",{"2":{"129":2}}],["获取数的符号",{"2":{"116":2}}],["获取直线的参数方程",{"2":{"48":2}}],["获取直线上的点",{"2":{"47":2}}],["用于判断是否近似于0",{"2":{"115":2}}],["用于近似比较对象",{"2":{"111":2}}],["限定在区间内的值",{"2":{"109":2}}],["值",{"2":{"109":2}}],["区间限定函数",{"2":{"109":2}}],["us",{"2":{"159":1}}],["unit",{"0":{"129":1},"2":{"129":1}}],["unsupported",{"2":{"44":1,"80":1,"81":1,"93":1,"113":1,"133":1,"138":1,"139":1,"142":1}}],["utils",{"0":{"108":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1}}],["中心点",{"2":{"107":1}}],["中实现",{"2":{"104":2}}],["长度",{"2":{"107":1}}],["线段的另一个端点",{"2":{"107":2}}],["线段的一个端点",{"2":{"107":2}}],["新的向量或点",{"2":{"133":2}}],["新的向量",{"2":{"104":2,"138":2}}],["新的点",{"2":{"102":2,"135":2,"139":2}}],["已在",{"2":{"104":2}}],["已知一个函数$f",{"2":{"36":1}}],["已知一个函数f",{"2":{"36":1}}],["坐标",{"2":{"98":6}}],["笛卡尔坐标系中的点",{"2":{"98":2}}],["人话",{"2":{"93":2}}],["法向量",{"2":{"86":2,"87":2}}],["依次假设$x=0$",{"2":{"82":1}}],["依次假设x=0",{"2":{"82":1}}],["并代入两平面方程求出合适的点",{"2":{"82":2}}],["并对向量单位化",{"2":{"54":2}}],["寻找直线上的一点",{"2":{"82":2}}],["为直线的方向向量",{"2":{"80":2}}],["为平面的法向量",{"2":{"80":2}}],["分别为两个平面的法向量",{"2":{"80":2}}],["和",{"2":{"80":2}}],["其中",{"2":{"80":4}}],["θ=arccos⁡",{"2":{"80":2,"122":1}}],["k",{"2":{"79":12,"123":1}}],["常数项",{"2":{"78":2}}],["常量",{"2":{"24":1}}],["平面上一点",{"2":{"87":2,"90":2}}],["平面的法向量",{"2":{"86":2}}],["平面",{"2":{"84":2,"87":2,"88":2,"89":2,"90":2}}],["平面与直线平行或重合",{"2":{"83":2}}],["平面与直线夹角计算公式",{"2":{"80":2}}],["平面平行且无交线",{"2":{"82":2}}],["平面间夹角计算公式",{"2":{"80":2}}],["平面方程",{"2":{"78":2}}],["平行线返回none",{"2":{"56":2}}],["多元函数",{"2":{"75":1}}],["多元数组函数",{"2":{"74":1}}],["多元单变量函数",{"2":{"73":1}}],["二元函数",{"2":{"69":1}}],["二元数组函数",{"2":{"68":1}}],["二元单变量函数",{"2":{"67":1}}],["一元函数",{"2":{"66":1}}],["一元数组函数",{"2":{"65":1}}],["一元单变量函数",{"2":{"64":1}}],["一阶偏导",{"2":{"34":2}}],["变量",{"2":{"63":1}}],["变量位置",{"2":{"34":2}}],["数组运算结果",{"2":{"142":2}}],["数组运算",{"2":{"142":2}}],["数组变量",{"2":{"62":1}}],["数2",{"2":{"115":2}}],["数1",{"2":{"115":2}}],["数",{"2":{"60":1,"116":2,"117":2}}],["数学工具",{"2":{"0":1}}],["類型",{"2":{"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1}}],["实数",{"2":{"59":1,"111":2}}],["∧",{"2":{"57":2}}],["交线",{"2":{"82":2,"93":2}}],["交线返回交点",{"2":{"56":2}}],["交集",{"2":{"56":2,"93":2}}],["交点",{"2":{"45":2,"83":2}}],["重合线返回自身",{"2":{"56":2}}],["由点和直线构造平面",{"2":{"90":2}}],["由点和法向量构造平面",{"2":{"87":2}}],["由两直线构造平面",{"2":{"89":2}}],["由两点构造直线",{"2":{"55":2}}],["由三点构造平面",{"2":{"88":2}}],["由一个点和一个方向向量确定",{"2":{"41":2}}],["工厂函数",{"2":{"55":2,"87":2,"88":2,"89":2,"90":2}}],["处理",{"2":{"54":2}}],["处的梯度向量为",{"2":{"36":1}}],["化",{"2":{"54":2}}],["按照可行性一次对x",{"2":{"54":2}}],["不返回值",{"2":{"54":2,"126":2}}],["不支持的类型",{"2":{"44":2,"80":2,"81":2,"93":2}}],["自体归一化",{"2":{"126":2}}],["自体简化",{"2":{"54":2}}],["自然对数的底",{"2":{"25":1}}],["等价相等",{"2":{"54":2}}],["简化直线方程",{"2":{"54":2}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"53":2}}],["两角的和为180°",{"2":{"6":2}}],["两角的和为90°",{"2":{"5":2}}],["充要条件",{"2":{"53":2}}],["判断两个向量是否相等",{"2":{"134":2}}],["判断两个向量是否平行",{"2":{"125":2}}],["判断两个向量是否近似平行",{"2":{"124":2}}],["判断两个向量是否近似相等",{"2":{"121":2}}],["判断两个数是否近似相等",{"2":{"115":2}}],["判断两个点是否相等",{"2":{"103":2}}],["判断两个点是否近似相等",{"2":{"99":2}}],["判断两个平面是否等价",{"2":{"94":2}}],["判断两个平面是否平行",{"2":{"85":2}}],["判断两个平面是否近似相等",{"2":{"79":2}}],["判断两条直线是否等价",{"2":{"57":2}}],["判断两条直线是否共面",{"2":{"53":2}}],["判断两条直线是否共线",{"2":{"51":2}}],["判断两条直线是否平行",{"2":{"50":2}}],["判断两条直线是否近似平行",{"2":{"49":2}}],["判断两条直线是否近似相等",{"2":{"42":2}}],["判断点是否在直线上",{"2":{"52":2}}],["另一个向量或数",{"2":{"142":2}}],["另一个向量或点",{"2":{"133":2,"138":2}}],["另一个向量",{"2":{"121":2,"122":2,"123":2,"124":2,"125":2,"134":2,"144":2}}],["另一个点或向量",{"2":{"102":2}}],["另一个点",{"2":{"99":2,"103":2,"104":2,"135":2,"139":2}}],["另一个平面或点",{"2":{"81":2}}],["另一个平面或直线",{"2":{"80":2,"93":2}}],["另一个平面",{"2":{"79":2,"82":2,"85":2,"94":2}}],["另一",{"2":{"50":2,"51":2,"53":2}}],["另一条直线或点",{"2":{"44":2}}],["另一条直线",{"2":{"42":2,"43":2,"45":2,"49":2,"56":2,"57":2}}],["则同一个t对应的点不同",{"2":{"47":2}}],["则其在点$",{"2":{"36":1}}],["则其在点",{"2":{"36":1}}],["但起始点和方向向量不同",{"2":{"47":2}}],["同一条直线",{"2":{"47":2}}],["垂线",{"2":{"46":2}}],["指定点",{"2":{"46":2,"84":2}}],["直线最终可用参数方程或点向式表示",{"2":{"82":2}}],["直线",{"2":{"55":2,"83":2,"89":4,"90":2}}],["直线不共面",{"2":{"45":2}}],["直线平行",{"2":{"45":2}}],["直线上的一点",{"2":{"41":2}}],["距离",{"2":{"44":2,"81":2}}],["夹角",{"2":{"43":2,"80":2,"122":2}}],["是否只返回负数的符号",{"2":{"116":2,"117":2}}],["是否相等",{"2":{"103":2,"134":2}}],["是否等价",{"2":{"57":2,"94":2}}],["是否共面",{"2":{"53":2}}],["是否共线",{"2":{"51":2}}],["是否在直线上",{"2":{"52":2}}],["是否平行",{"2":{"50":2,"85":2,"125":2}}],["是否近似平行",{"2":{"49":2,"124":2}}],["是否近似相等",{"2":{"42":2,"79":2,"99":2,"115":2,"121":2}}],["是否为弧度",{"2":{"4":2}}],["误差",{"2":{"42":2,"49":2,"99":2,"115":2,"121":2,"124":2}}],["方向向量",{"2":{"41":2,"107":1}}],["三元数组函数",{"2":{"71":1}}],["三元单变量函数",{"2":{"70":1}}],["三元函数",{"2":{"36":2,"72":1}}],["三维空间中的线段",{"2":{"107":2}}],["三维空间中的直线",{"2":{"41":2}}],["三维向量",{"2":{"38":1}}],["三维线段",{"2":{"38":1}}],["三维点",{"2":{"38":1}}],["三维平面",{"2":{"38":1}}],["三维直线",{"2":{"38":1}}],["导入的类有",{"2":{"38":1}}],["本包定义了一些常用的导入",{"2":{"38":1}}],["本模块塞了一些预设",{"2":{"152":1}}],["本模块用于内部类型提示",{"2":{"58":1}}],["本模块定义了粒子生成相关的工具",{"2":{"151":1}}],["本模块定义了3维向量的类vector3",{"2":{"118":1}}],["本模块定义了一些常用的工具函数",{"2":{"108":1}}],["本模块定义了一些常用的常量",{"2":{"23":1}}],["本模块定义了三维空间中点的类",{"2":{"96":1}}],["本模块定义了三维空间中的线段类",{"2":{"105":1}}],["本模块定义了三维空间中的平面类",{"2":{"76":1}}],["本模块定义了三维空间中的直线类",{"2":{"39":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"30":1}}],["本模块定义了角度相关的类",{"2":{"1":1}}],["本模块是主模块",{"2":{"0":1}}],["help",{"2":{"159":1}}],["heart",{"2":{"157":1}}],["have",{"2":{"82":1}}],["html",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["https",{"2":{"37":1,"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["high",{"2":{"34":2}}],["hide",{"2":{"34":2,"37":1}}],["6",{"2":{"37":2}}],["3维向量",{"2":{"120":2}}],["3a",{"2":{"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"57":1,"78":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["355859667",{"2":{"37":1}}],["3",{"2":{"37":2,"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["3vf",{"0":{"36":1},"2":{"36":1}}],["breaking",{"2":{"157":1}}],["begin",{"2":{"82":1,"123":1}}],["by",{"2":{"78":2}}],["bound=iterable",{"2":{"62":1}}],["bound=number",{"2":{"61":1}}],["bool=false",{"2":{"4":1,"116":1,"117":1}}],["bool",{"0":{"4":1,"42":1,"49":1,"50":1,"51":1,"52":1,"53":1,"57":1,"79":1,"85":1,"94":1,"99":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1},"2":{"42":3,"49":3,"50":3,"51":3,"52":3,"53":3,"57":3,"79":3,"85":3,"94":3,"99":3,"103":2,"115":3,"116":2,"117":2,"121":3,"124":3,"125":3,"134":2}}],["b",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["範例",{"2":{"37":1}}],["柯里化后的函数",{"2":{"37":2}}],["柯理化",{"2":{"37":2}}],["函数式编程",{"2":{"37":1}}],["函数",{"2":{"37":2}}],["对多参数函数进行柯里化",{"2":{"37":2}}],["dt",{"2":{"82":3}}],["d=n1×n2",{"2":{"82":1}}],["d",{"0":{"78":1},"2":{"78":7,"79":6,"80":2,"81":1,"82":7,"83":1,"87":2}}],["documentation",{"2":{"159":1}}],["doc",{"2":{"127":1}}],["docs",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["do",{"2":{"45":2}}],["distance",{"0":{"44":1,"81":1},"2":{"44":1,"81":1}}],["direction",{"0":{"41":1},"2":{"41":5,"42":1,"43":2,"44":8,"45":6,"46":1,"47":1,"48":3,"49":2,"50":2,"51":1,"52":1,"53":2,"54":4,"55":2,"57":3,"80":1,"82":2,"83":4,"89":1,"90":1,"93":1,"107":2}}],["dz",{"2":{"36":2}}],["dy",{"2":{"36":2}}],["dx",{"2":{"36":2}}],["density",{"0":{"155":1},"2":{"155":4}}],["derivative",{"0":{"34":1},"2":{"34":6}}],["degree",{"0":{"7":1},"2":{"7":1}}],["def",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"34":2,"37":2,"55":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"155":1}}],["$z=0$",{"2":{"82":1}}],["$y=0$",{"2":{"82":1}}],["$d$",{"2":{"80":1}}],["$n$",{"2":{"80":1}}],["$n2$",{"2":{"80":1}}],["$n1$",{"2":{"80":1}}],["$$",{"2":{"80":4,"82":6,"122":2,"123":4}}],["$处的梯度向量为",{"2":{"36":1}}],["$",{"2":{"36":3}}],["梯度",{"2":{"36":2}}],["点乘结果",{"2":{"144":2}}],["点乘",{"2":{"144":2}}],["点乘使用",{"2":{"142":2}}],["点3",{"2":{"88":2}}],["点法式构造",{"2":{"87":2}}],["点2",{"2":{"55":2,"88":2}}],["点1",{"2":{"55":2,"88":2}}],["点",{"2":{"36":2,"47":2,"52":2}}],["∂f∂z",{"2":{"36":1}}],["∂f∂y",{"2":{"36":1}}],["∂f∂x",{"2":{"36":1}}],["∇f",{"2":{"36":1}}],["计算平行于该平面且过指定点的平面",{"2":{"84":2}}],["计算平面与直线的交点",{"2":{"83":2}}],["计算平面与平面或点之间的距离",{"2":{"81":2}}],["计算平面与平面之间的夹角",{"2":{"80":2}}],["计算两个向量之间的夹角",{"2":{"122":2}}],["计算两平面交线的一般步骤",{"2":{"82":2}}],["计算两平面的交线",{"2":{"82":2}}],["计算两条直线点集合的交集",{"2":{"56":2}}],["计算两条直线的交点",{"2":{"45":2}}],["计算直线经过指定点p的垂线",{"2":{"46":2}}],["计算直线和直线或点之间的距离",{"2":{"44":2}}],["计算直线和直线之间的夹角",{"2":{"43":2}}],["计算三元函数在某点的梯度向量",{"2":{"36":2}}],["计算曲线上的点",{"2":{"33":2}}],["vmatrix",{"2":{"123":2}}],["v3",{"2":{"123":2}}],["v2",{"2":{"57":2,"88":2,"89":4,"122":1,"123":13}}],["v1x⋅v2y−v1y⋅v2x",{"2":{"123":1}}],["v1z⋅v2x−v1x⋅v2z",{"2":{"123":1}}],["v1y⋅v2z−v1z⋅v2y",{"2":{"123":1}}],["v1×v2=|ijkv1xv1yv1zv2xv2yv2z|",{"2":{"123":1}}],["v1×v2=",{"2":{"123":1}}],["v1⋅v2|v1|⋅|v2|",{"2":{"122":1}}],["v1",{"2":{"57":4,"88":2,"89":2,"122":1,"123":13}}],["vector",{"0":{"118":1},"1":{"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"41":1,"86":1,"87":1,"102":1,"104":3,"142":1}}],["vector3",{"0":{"36":1,"41":1,"86":1,"87":1,"100":1,"104":1,"119":1,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"131":2,"136":2,"140":2,"141":1,"142":2,"143":1,"144":1,"145":1,"146":1,"147":1},"1":{"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"36":2,"38":1,"41":3,"86":4,"87":3,"89":1,"100":1,"102":2,"104":7,"112":2,"121":3,"122":3,"123":7,"124":3,"125":4,"129":3,"131":2,"133":7,"134":2,"136":2,"138":7,"139":1,"140":2,"141":1,"142":9,"143":1,"144":3,"145":2,"146":4,"147":2,"148":2,"149":2,"150":2}}],["v",{"2":{"34":2,"102":2,"104":4,"133":8,"135":2,"138":8,"139":2}}],["var",{"0":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"33":1,"34":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":2,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1},"2":{"32":3,"33":1,"34":14,"36":1,"37":7,"47":1,"48":1}}],["valueerror",{"2":{"34":3,"45":4,"82":3,"83":3}}],["value",{"0":{"4":1,"111":1},"2":{"4":5,"111":5,"112":6,"113":1}}],["求两平面的法向量的叉乘得到方向向量",{"2":{"82":2}}],["求高阶偏导函数",{"2":{"34":1}}],["求n元函数一阶偏导函数",{"2":{"34":2}}],["l2",{"0":{"89":1},"2":{"89":5}}],["l1",{"0":{"89":1},"2":{"89":7}}],["lambda",{"2":{"48":3}}],["left",{"2":{"36":1}}],["length",{"0":{"128":1},"2":{"44":5,"45":1,"80":2,"107":2,"122":2,"124":1,"126":5,"128":1,"129":1,"130":1}}],["len",{"2":{"33":1}}],["linalg",{"2":{"82":3}}],["lines",{"0":{"89":1},"2":{"45":2,"89":1}}],["line",{"0":{"39":1,"90":2},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"57":1,"80":1,"82":1,"83":2,"89":1,"90":6,"93":2}}],["line3",{"0":{"40":1,"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"80":1,"82":2,"83":1,"89":2,"90":1,"91":1,"92":1,"95":1},"1":{"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"38":1,"42":3,"43":3,"44":4,"45":3,"46":4,"49":3,"50":3,"51":3,"53":3,"55":3,"56":6,"57":2,"80":4,"82":5,"83":3,"89":5,"90":3,"91":1,"92":1,"93":6,"95":1,"112":1}}],["library",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["list",{"2":{"34":8,"155":10}}],["litedoc",{"2":{"34":2,"37":1}}],["`np",{"2":{"127":1}}],["`none`",{"2":{"56":1,"93":1}}],["`str`",{"2":{"116":1,"117":1}}],["`plane3`",{"2":{"79":1,"80":1,"81":1,"82":1,"84":1,"85":1,"87":1,"93":1,"94":1}}],["`point3`",{"2":{"36":1,"41":1,"44":1,"45":1,"46":1,"47":1,"52":1,"55":2,"56":1,"81":1,"83":1,"84":1,"87":1,"88":3,"90":1,"93":1,"99":1,"102":2,"103":1,"104":1,"107":2,"133":2,"135":2,"138":2,"139":2}}],["`onesinglevarfunc`",{"2":{"48":3}}],["`onevarfunc`",{"2":{"32":3}}],["`realnumber`",{"2":{"47":1,"111":1}}],["`tuple`",{"2":{"48":1}}],["`typeerror`",{"2":{"44":1,"80":1,"81":1,"93":1}}],["`threesinglevarsfunc`",{"2":{"36":1}}],["`anyangle`",{"2":{"43":1,"80":1,"122":1}}],["`bool`",{"2":{"42":1,"49":1,"50":1,"51":1,"52":1,"53":1,"57":1,"79":1,"85":1,"94":1,"99":1,"103":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1,"134":1}}],["`float`",{"2":{"42":1,"44":1,"49":1,"78":4,"81":1,"98":3,"99":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"144":1}}],["`line3`",{"2":{"42":1,"43":1,"44":1,"45":1,"46":1,"49":1,"50":1,"51":1,"53":1,"55":1,"56":2,"57":1,"80":1,"82":1,"83":1,"89":2,"90":1,"93":2}}],["`valueerror`",{"2":{"45":2,"82":1,"83":1}}],["`var`",{"2":{"37":1}}],["`vector3`",{"2":{"41":1,"86":1,"87":1,"102":1,"104":2,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"133":2,"134":1,"138":2,"142":2,"144":1,"146":1}}],["```",{"2":{"37":1}}],["```python",{"2":{"37":1}}],["`multivarsfunc`",{"2":{"34":1,"37":1}}],["无效变量类型",{"2":{"34":2}}],["抛出",{"2":{"34":1,"44":1,"45":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["偏导函数",{"2":{"34":2}}],["偏移量",{"2":{"34":2,"36":2}}],["高阶偏导数值",{"2":{"34":1}}],["高阶偏导",{"2":{"34":2}}],["可愛くてごめん",{"2":{"157":1}}],["可直接从mbcp",{"2":{"38":1}}],["可参考",{"2":{"37":1}}],["可参考函数式编程",{"2":{"37":1}}],["可为整数",{"2":{"34":2}}],["可导入",{"2":{"0":1}}],["因此该函数的稳定性有待提升",{"2":{"34":2}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"34":2}}],["目标点",{"2":{"33":2}}],["warning",{"2":{"34":2}}],["慎用",{"2":{"34":2}}],["num",{"2":{"155":5}}],["numpy",{"2":{"127":2}}],["numpy数组",{"2":{"127":2}}],["number=epsilon",{"2":{"34":1}}],["number",{"0":{"34":1,"60":1},"2":{"62":1}}],["ndarray`",{"2":{"127":1}}],["ndarray",{"0":{"127":1},"2":{"127":3}}],["neg",{"0":{"116":1,"117":1},"2":{"116":4,"117":4,"146":1}}],["negative",{"0":{"9":1},"2":{"9":1}}],["ne",{"0":{"114":1},"2":{"114":1}}],["np",{"0":{"127":2},"2":{"82":9,"127":4,"155":9}}],["n",{"2":{"80":2,"82":1}}],["n⋅d|n|⋅|d|",{"2":{"80":1}}],["n2",{"2":{"80":2,"82":1}}],["n1",{"2":{"80":2,"82":1}}],["n1⋅n2|n1|⋅|n2|",{"2":{"80":1}}],["no",{"2":{"82":1}}],["normal",{"0":{"86":1,"87":2},"2":{"80":5,"82":4,"83":1,"84":2,"85":2,"86":1,"87":7,"88":3,"89":1,"90":1,"93":3}}],["normalize",{"0":{"126":1},"2":{"54":1,"126":1}}],["none",{"0":{"56":1,"91":1,"92":1},"2":{"56":4,"91":1,"92":1,"93":4}}],["not",{"2":{"44":1,"45":4,"56":1,"114":1,"116":1,"117":1}}],["nabla",{"2":{"36":1}}],["n元函数",{"2":{"34":2}}],["参数方程",{"2":{"48":2}}],["参数t",{"2":{"47":2}}],["参数",{"2":{"33":2,"34":1,"37":2}}],["|v2|",{"2":{"122":1}}],["|v1|",{"2":{"122":1}}],["|d|",{"2":{"80":1}}],["|n|",{"2":{"80":1}}],["|n2|",{"2":{"80":1}}],["|n1|",{"2":{"80":1}}],["|",{"0":{"33":1,"34":1,"44":1,"56":2,"80":1,"81":1,"91":1,"92":1,"142":2},"2":{"33":1,"34":1,"44":3,"56":6,"59":1,"60":1,"63":1,"66":1,"69":1,"72":1,"75":1,"80":3,"81":3,"91":1,"92":1,"93":6,"102":2,"133":4,"138":4,"142":4}}],["曲线方程",{"2":{"32":2,"38":1}}],["z轴单位向量",{"2":{"150":1}}],["z轴分量",{"2":{"120":2}}],["zero",{"0":{"147":1},"2":{"89":1,"125":1}}],["z=0",{"2":{"82":1}}],["z系数",{"2":{"78":2}}],["zhihu",{"2":{"37":1}}],["zhuanlan",{"2":{"37":1}}],["z0",{"2":{"36":2}}],["zip",{"2":{"33":1}}],["z函数",{"2":{"32":2}}],["z",{"0":{"32":1,"98":1,"120":1,"150":1},"2":{"32":5,"33":4,"36":11,"48":2,"54":4,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"120":5,"121":2,"123":10,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["y轴单位向量",{"2":{"149":1}}],["y轴分量",{"2":{"120":2}}],["y=0",{"2":{"82":1}}],["y系数",{"2":{"78":2}}],["y0",{"2":{"36":2}}],["y函数",{"2":{"32":2}}],["y",{"0":{"32":1,"98":1,"115":1,"120":1,"149":1},"2":{"32":5,"33":4,"36":11,"48":2,"54":4,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"115":4,"120":5,"121":2,"123":10,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["x轴单位向量",{"2":{"148":1}}],["x轴分量",{"2":{"120":2}}],["x3c",{"2":{"99":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x26",{"2":{"93":1,"123":6}}],["x−x0m=y−y0n=z−z0p",{"2":{"82":1}}],["x=x0+dty=y0+dtz=z0+dt或",{"2":{"82":1}}],["x系数",{"2":{"78":2}}],["x0",{"2":{"36":2}}],["x函数",{"2":{"32":2}}],["x",{"0":{"32":1,"98":1,"109":1,"115":1,"116":1,"117":1,"120":1,"148":1},"2":{"32":5,"33":4,"36":11,"48":2,"54":2,"81":1,"82":8,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"109":4,"112":2,"115":4,"116":5,"117":8,"120":5,"121":2,"123":12,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["约等于判定误差",{"2":{"29":1}}],["精度误差",{"2":{"28":1}}],["06",{"0":{"49":1},"2":{"49":1}}],["001",{"2":{"29":1}}],["0001",{"2":{"28":1}}],["0",{"0":{"115":2},"2":{"27":1,"28":1,"29":1,"33":3,"36":6,"44":2,"53":1,"54":8,"78":2,"79":3,"81":2,"82":15,"83":1,"93":1,"115":1,"116":2,"117":4,"147":3,"148":2,"149":2,"150":2,"155":2}}],["欧拉常数",{"2":{"27":1}}],["5772156649015329",{"2":{"27":1}}],["5",{"2":{"26":1,"81":1}}],["黄金分割比",{"2":{"26":1}}],["geometricmodels",{"0":{"154":1},"1":{"155":1}}],["generated",{"2":{"127":1}}],["get",{"0":{"34":1,"47":1,"48":1},"2":{"34":2,"47":1,"48":1,"83":1,"89":1}}],["gradient",{"0":{"36":1},"2":{"36":1}}],["gamma",{"0":{"27":1}}],["golden",{"0":{"26":1}}],["gt",{"0":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":1,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"102":2,"104":2,"117":3,"123":1,"133":2,"135":1,"138":2,"139":1}}],["默認值",{"2":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"147":1,"148":1,"149":1,"150":1}}],["默认为否",{"2":{"4":2}}],["π",{"2":{"24":1}}],["to",{"2":{"159":1}}],["times",{"2":{"82":1,"123":2}}],["tip",{"2":{"36":2,"37":2,"80":4,"82":2,"122":2,"123":2}}],["the",{"2":{"83":2,"159":1}}],["theta",{"2":{"80":2,"122":1,"155":3}}],["three",{"0":{"88":1},"2":{"88":1}}],["threevarsfunc",{"0":{"72":1}}],["threearraysfunc",{"0":{"71":1},"2":{"72":1}}],["threesinglevarsfunc",{"0":{"36":1,"70":1},"2":{"36":3,"72":1}}],["twovarsfunc",{"0":{"69":1}}],["twoarraysfunc",{"0":{"68":1},"2":{"69":1}}],["twosinglevarsfunc",{"0":{"67":1},"2":{"69":1}}],["two",{"0":{"55":1,"89":1},"2":{"55":1,"89":1}}],["typevar",{"2":{"61":1,"62":1}}],["typealias",{"2":{"59":1,"60":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["typeerror",{"2":{"44":3,"45":1,"80":3,"81":3,"93":3,"113":1,"133":1,"138":1,"139":1,"142":1}}],["type",{"0":{"113":1},"2":{"34":1,"44":1,"80":2,"81":2,"93":2,"112":2,"113":4,"133":2,"138":2,"139":2,"142":2}}],["typing",{"0":{"58":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1},"2":{"32":3,"34":1,"36":1,"37":2,"47":1,"48":1,"111":1}}],["tuple",{"0":{"33":1,"34":1,"48":1},"2":{"33":2,"34":2,"48":3}}],["t",{"0":{"33":1,"47":1},"2":{"33":10,"47":4,"48":6,"83":4}}],["truediv",{"2":{"20":1,"21":1,"22":1,"145":1}}],["tan",{"0":{"12":1},"2":{"12":2,"13":1}}],["operand",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["only",{"0":{"116":1,"117":1},"2":{"116":4,"117":4}}],["on",{"0":{"52":1},"2":{"52":1}}],["one",{"2":{"157":1}}],["onearrayfunc",{"0":{"65":1},"2":{"66":1}}],["onesinglevarfunc",{"0":{"48":3,"64":1},"2":{"48":7,"66":1}}],["onevarfunc",{"0":{"32":3,"37":1,"66":1},"2":{"32":9,"37":1}}],["or",{"2":{"56":1,"83":1}}],["org",{"2":{"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"93":2,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":1,"134":1,"142":1,"144":1}}],["order",{"2":{"34":2}}],["overload",{"2":{"19":1,"20":2,"21":1,"90":1,"91":2,"92":1,"99":1,"100":2,"101":1,"130":1,"131":2,"132":1,"135":1,"136":2,"137":1,"139":1,"140":2,"141":1}}],["other",{"0":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"42":1,"43":1,"44":1,"45":1,"49":1,"50":1,"51":1,"53":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"85":1,"91":1,"92":1,"93":1,"94":1,"95":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"112":1,"113":1,"114":1,"121":1,"122":1,"123":1,"124":1,"125":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1},"2":{"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":4,"42":5,"43":4,"44":13,"45":9,"49":4,"50":4,"51":5,"53":5,"56":7,"57":5,"79":15,"80":9,"81":9,"82":17,"83":11,"85":4,"91":1,"92":1,"93":10,"94":4,"95":2,"99":6,"100":1,"101":1,"102":6,"103":6,"104":6,"112":9,"113":2,"114":2,"121":6,"122":5,"123":9,"124":4,"125":4,"131":1,"132":1,"133":12,"134":6,"135":6,"136":1,"137":1,"138":12,"139":8,"140":1,"141":1,"142":12,"143":2,"144":6,"145":4}}],["ep",{"2":{"157":1}}],["epsilon",{"0":{"28":1,"34":2,"36":2,"42":1,"49":1,"99":1,"115":1,"121":1,"124":1},"2":{"34":7,"36":12,"42":5,"49":4,"99":6,"115":4,"121":6,"124":4}}],["error",{"0":{"113":1},"2":{"112":2,"113":1}}],["end",{"2":{"82":1,"123":1}}],["exceptions",{"2":{"44":1,"45":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["examples",{"2":{"37":1}}],["exp",{"2":{"25":1}}],["elif",{"2":{"34":1,"44":3,"56":1,"79":2,"80":1,"81":1,"82":2,"93":1,"112":1,"116":1,"117":1,"133":1,"138":1,"142":1}}],["else",{"2":{"4":1,"33":1,"34":1,"44":2,"56":1,"79":1,"80":1,"81":1,"93":1,"112":2,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1}}],["e",{"0":{"25":1},"2":{"25":1}}],["equations",{"0":{"48":1},"2":{"48":1,"83":1}}],["equation",{"0":{"30":1},"1":{"31":1,"32":1,"33":1,"34":1}}],["eq",{"0":{"17":1,"57":1,"94":1,"103":1,"112":1,"134":1},"2":{"17":1,"57":1,"94":1,"103":1,"112":1,"114":1,"134":1}}],["+1",{"2":{"117":2}}],["+=",{"2":{"34":1}}],["+",{"0":{"16":1,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1,"135":1},"2":{"16":1,"26":1,"36":3,"37":4,"45":1,"47":1,"48":3,"78":6,"81":5,"82":3,"83":5,"102":7,"107":3,"116":3,"117":3,"128":2,"133":11,"135":5,"144":2,"155":1}}],["1e",{"0":{"49":1}}],["1",{"2":{"13":1,"14":1,"15":1,"25":1,"26":1,"33":1,"37":2,"82":1,"89":1,"117":6,"148":1,"149":1,"150":1,"155":4}}],["180",{"2":{"4":1,"7":1}}],["正割值",{"2":{"14":4}}],["正切值",{"2":{"12":4}}],["正弦值",{"2":{"10":4}}],["余割值",{"2":{"15":4}}],["余切值",{"2":{"13":4}}],["余弦值",{"2":{"11":4}}],["余角",{"2":{"5":4}}],["最佳實踐",{"0":{"156":1},"1":{"157":1}}],["最大值",{"2":{"109":2}}],["最大负角度",{"2":{"9":2}}],["最大负角",{"2":{"9":2}}],["最小值",{"2":{"109":2}}],["最小正角度",{"2":{"8":2}}],["最小正角",{"2":{"8":2}}],["弧度",{"2":{"7":2}}],["角度",{"2":{"7":2}}],["角度或弧度值",{"2":{"4":2}}],["补角",{"2":{"6":4}}],["sphere",{"0":{"155":1},"2":{"155":1}}],["stop",{"2":{"157":1}}],["staticmethod",{"2":{"154":1,"155":1}}],["stable",{"2":{"127":1}}],["str",{"0":{"116":1,"117":1},"2":{"116":3,"117":3}}],["stdtypes",{"2":{"48":1}}],["s",{"2":{"93":1,"133":1,"138":1,"139":1,"142":1}}],["solve",{"2":{"82":3}}],["sign",{"0":{"116":1,"117":1},"2":{"116":1,"117":1}}],["simplify",{"0":{"54":1},"2":{"54":1}}],["singlevar",{"0":{"61":1},"2":{"61":1,"63":1,"64":2,"67":3,"70":4,"73":1}}],["sin",{"0":{"10":1},"2":{"10":2,"15":1,"155":3}}],["sqrt",{"2":{"26":1,"128":1,"155":1}}],["sub",{"2":{"18":1,"104":1,"136":1,"137":1,"138":1}}],["supplementary",{"0":{"6":1},"2":{"6":1}}],["segment",{"0":{"105":1},"1":{"106":1,"107":1}}],["segment3",{"0":{"106":1},"1":{"107":1},"2":{"38":1}}],["sec",{"0":{"14":1},"2":{"14":1}}],["self",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":3,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":3,"32":4,"33":7,"41":3,"42":4,"43":2,"44":13,"45":8,"46":3,"47":3,"48":7,"49":2,"50":2,"51":4,"52":3,"53":3,"54":8,"56":6,"57":4,"78":5,"79":16,"80":4,"81":8,"82":15,"83":9,"84":2,"85":2,"86":4,"91":1,"92":1,"93":5,"94":2,"95":2,"98":4,"99":4,"100":1,"101":1,"102":4,"103":4,"104":4,"107":15,"111":2,"112":9,"113":2,"114":2,"120":4,"121":4,"122":3,"123":7,"124":2,"125":2,"126":5,"127":4,"128":4,"129":3,"130":2,"131":1,"132":1,"133":7,"134":4,"135":4,"136":1,"137":1,"138":7,"139":4,"140":1,"141":1,"142":7,"143":2,"144":4,"145":4,"146":4}}],["255万个粒子",{"2":{"157":1}}],["2",{"2":{"5":1,"8":1,"9":1,"26":1,"34":1,"36":3,"37":2,"45":1,"81":3,"82":1,"107":3,"128":3,"155":2}}],["rmul",{"2":{"143":1}}],["rsub",{"2":{"139":1}}],["right",{"2":{"36":1}}],["reference",{"0":{"159":1},"2":{"127":1}}],["realnumber",{"0":{"47":1,"59":1,"111":1,"141":1,"143":1,"144":1,"145":1},"2":{"47":3,"60":1,"111":3,"141":1,"143":1,"144":1,"145":1}}],["result",{"2":{"34":4}}],["return",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"22":2,"33":2,"34":4,"36":1,"37":4,"42":1,"43":1,"44":5,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":3,"57":1,"79":4,"80":2,"81":2,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":4,"94":1,"95":1,"99":1,"102":1,"103":1,"104":1,"109":1,"112":2,"114":1,"115":1,"116":3,"117":3,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"130":1,"133":2,"134":1,"135":1,"138":2,"139":1,"142":2,"143":1,"144":1,"145":1,"146":1,"155":1}}],["returns",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"33":1,"34":2,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"99":1,"102":1,"103":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"155":1}}],["range",{"2":{"155":2}}],["rand",{"0":{"95":1},"2":{"95":1}}],["radius",{"0":{"155":1},"2":{"155":7}}],["radian=true",{"2":{"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"80":1,"122":1}}],["radian",{"0":{"4":1},"2":{"4":6,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":2,"17":2,"18":2,"19":1,"22":3}}],["radd",{"2":{"135":1}}],["raise",{"0":{"113":1},"2":{"34":1,"44":1,"45":2,"80":1,"81":1,"82":1,"83":1,"93":1,"112":2,"113":2,"133":1,"138":1,"139":1,"142":1}}],["raises",{"2":{"34":1,"44":1,"45":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["ratio",{"0":{"26":1}}],[">",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"33":1,"34":5,"36":3,"37":6,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"95":1,"99":1,"100":1,"101":1,"102":2,"104":3,"109":1,"115":1,"116":2,"117":5,"121":1,"122":1,"123":2,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"133":2,"135":2,"136":1,"137":1,"138":2,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["返回numpy数组",{"2":{"127":1}}],["返回",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"33":1,"34":1,"36":1,"37":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"99":1,"102":1,"103":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"155":1}}],["can",{"2":{"157":1}}],["cases",{"2":{"82":2}}],["cal",{"0":{"36":1,"43":1,"44":1,"45":1,"46":1,"80":1,"81":1,"82":1,"83":1,"84":1,"122":1},"2":{"36":1,"43":2,"44":1,"45":1,"46":1,"56":1,"80":2,"81":1,"82":1,"83":1,"84":1,"93":2,"95":1,"122":1}}],["callable",{"2":{"64":1,"65":1,"67":1,"68":1,"70":1,"71":1,"73":1,"74":1}}],["call",{"0":{"33":1},"2":{"33":1}}],["cdot",{"2":{"80":4,"122":2,"123":6}}],["cz",{"2":{"78":2}}],["clamp",{"0":{"109":1},"2":{"109":1,"155":1}}],["classmethod",{"2":{"54":1,"55":1,"86":1,"87":2,"88":2,"89":2,"90":1}}],["class",{"0":{"2":1,"3":1,"31":1,"40":1,"77":1,"97":1,"106":1,"110":1,"119":1,"154":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1},"2":{"36":1,"41":2,"42":1,"43":2,"44":2,"45":2,"46":2,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":3,"56":3,"57":1,"79":1,"80":3,"81":2,"82":2,"83":2,"84":2,"85":1,"86":1,"87":3,"88":1,"89":1,"90":2,"93":4,"94":1,"99":1,"102":3,"103":1,"104":3,"107":2,"121":1,"122":2,"123":2,"124":1,"125":1,"129":1,"133":4,"134":1,"135":2,"138":4,"139":2,"142":2,"144":1,"146":1}}],["cls",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":2,"87":2,"88":2,"89":2,"90":2}}],["cross",{"0":{"123":1},"2":{"44":4,"45":3,"46":1,"53":1,"82":1,"88":1,"89":1,"123":1,"124":1,"125":1}}],["c",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":6,"83":2,"86":1,"87":3}}],["curried",{"2":{"37":6}}],["currying",{"2":{"37":2}}],["curry",{"0":{"37":1},"2":{"37":3}}],["curveequation",{"0":{"31":1},"1":{"32":1,"33":1},"2":{"38":1}}],["csc",{"0":{"15":1},"2":{"15":1}}],["coincident",{"2":{"83":1}}],["collinear",{"0":{"51":1},"2":{"51":1,"56":1}}],["coplanar",{"0":{"53":1},"2":{"44":1,"45":2,"53":1,"56":1}}],["complex",{"2":{"60":1}}],["complementary",{"0":{"5":1},"2":{"5":1,"80":1}}],["com",{"2":{"37":1}}],["constants",{"2":{"56":1,"93":1}}],["const",{"0":{"23":1},"1":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1}}],["cot",{"0":{"13":1},"2":{"13":1}}],["cos",{"0":{"11":1},"2":{"11":2,"14":1,"155":2}}],["all",{"2":{"99":1,"112":1,"121":1}}],["acos",{"2":{"80":1,"122":1}}],["axis",{"0":{"148":1,"149":1,"150":1}}],["ax",{"2":{"78":2}}],["array",{"0":{"127":1},"2":{"82":6,"127":2,"155":6}}],["arrayvar",{"0":{"62":1},"2":{"62":1,"63":1,"65":2,"68":3,"71":4,"74":1}}],["arccos",{"2":{"80":2,"122":1,"155":1}}],["area",{"2":{"155":2}}],["are",{"2":{"45":2,"82":1,"83":1}}],["args2",{"2":{"37":2}}],["args",{"0":{"37":1},"2":{"4":1,"32":1,"33":1,"34":14,"36":1,"37":5,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"155":1}}],["abs",{"0":{"130":1},"2":{"44":1,"81":1,"99":3,"112":1,"115":1,"117":1,"121":3,"130":1}}],["a",{"0":{"78":1},"2":{"37":4,"78":5,"79":7,"81":2,"82":12,"83":2,"86":1,"87":3}}],["aaa",{"2":{"35":1}}],["approx",{"0":{"29":1,"42":2,"49":1,"79":1,"99":2,"110":1,"115":2,"121":2,"124":2},"1":{"111":1,"112":1,"113":1,"114":1},"2":{"17":1,"42":3,"49":2,"79":10,"94":1,"99":1,"103":3,"112":4,"115":1,"121":1,"124":1,"125":1,"134":3}}],["add",{"2":{"16":1,"37":8,"100":1,"101":1,"102":1,"131":1,"132":1,"133":1}}],["and",{"0":{"56":1,"87":1,"90":1,"91":1,"92":1,"93":1},"2":{"42":1,"45":2,"51":1,"56":1,"57":1,"79":6,"82":4,"83":1,"84":1,"87":1,"88":1,"89":1,"90":2,"91":1,"92":1,"93":2,"103":2,"113":1,"133":1,"134":2,"138":1,"139":1,"142":1}}],["anyangle",{"0":{"3":1,"5":1,"6":1,"8":1,"9":1,"16":2,"18":2,"19":1,"20":1,"21":1,"43":1,"80":1,"122":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1},"2":{"5":2,"6":2,"8":2,"9":2,"16":3,"18":3,"19":2,"20":1,"21":1,"22":2,"38":1,"43":3,"80":4,"122":4}}],["angle",{"0":{"1":1,"2":1,"3":1,"43":1,"80":1,"122":1},"1":{"2":1,"3":1,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":2},"2":{"43":3,"80":3,"122":2}}],["於github上查看",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["或包装一个实数",{"2":{"115":2}}],["或整数元组",{"2":{"34":2}}],["或",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":2,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["源碼",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["變數説明",{"2":{"4":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"155":1}}],["任意角度",{"2":{"4":2,"38":1}}],["説明",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"33":1,"34":1,"36":1,"37":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"93":1,"94":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"147":1,"148":1,"149":1,"150":1,"155":1}}],["from",{"0":{"55":1,"87":1,"88":1,"89":1,"90":1},"2":{"55":1,"84":1,"87":1,"88":2,"89":2,"90":2,"104":1,"157":1}}],["frac",{"2":{"36":3,"80":2,"82":3,"122":1}}],["f",{"2":{"36":4,"80":1,"81":1,"93":1,"113":1,"117":3,"133":1,"138":1,"139":1,"142":1}}],["format",{"0":{"117":1},"2":{"117":1}}],["for",{"2":{"33":1,"34":1,"93":1,"133":1,"138":1,"139":1,"142":1,"155":2}}],["functions",{"2":{"42":2,"44":1,"49":2,"50":1,"51":1,"52":1,"53":1,"57":1,"78":1,"79":1,"81":1,"85":1,"94":1,"98":1,"99":2,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"128":1,"134":1,"142":1,"144":1}}],["function",{"0":{"35":1},"1":{"36":1,"37":1}}],["func",{"0":{"32":3,"34":3,"36":2,"37":2,"109":1,"115":1,"116":1,"117":1},"2":{"32":15,"33":6,"34":16,"36":9,"37":6}}],["false",{"0":{"4":1,"116":1,"117":1},"2":{"79":1}}],["float=0",{"2":{"115":1}}],["float=1e",{"2":{"49":1}}],["float=approx",{"2":{"42":1,"99":1,"115":1,"121":1,"124":1}}],["float=epsilon",{"2":{"36":1}}],["float",{"0":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"36":1,"42":1,"44":1,"49":1,"78":4,"81":1,"98":3,"99":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"155":2},"2":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"42":2,"44":3,"49":2,"59":1,"78":9,"81":3,"98":7,"99":2,"109":9,"112":2,"115":5,"116":3,"117":3,"120":7,"121":2,"124":2,"128":3,"142":4,"144":2,"155":2}}],["==",{"2":{"33":1,"44":1,"53":1,"54":3,"83":1,"89":1,"93":1}}],["=",{"0":{"4":1,"16":1,"18":1,"19":1,"20":1,"21":1,"34":1,"36":1,"42":1,"49":1,"99":1,"100":1,"101":1,"104":1,"115":2,"116":1,"117":1,"121":1,"124":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":2,"32":3,"34":5,"36":5,"37":2,"41":2,"54":3,"55":1,"78":6,"79":6,"80":2,"82":23,"83":2,"87":2,"88":3,"89":3,"98":3,"107":5,"111":1,"120":3,"122":1,"123":2,"126":4,"155":7}}],["improve",{"2":{"159":1}}],["import",{"2":{"104":1}}],["i",{"2":{"123":1,"155":4,"157":1}}],["invalid",{"2":{"34":1}}],["intersect",{"2":{"45":2}}],["intersection",{"0":{"45":1,"82":1,"83":1},"2":{"45":1,"56":1,"82":2,"83":1,"93":2,"95":1}}],["int",{"0":{"34":2,"142":1},"2":{"34":3,"37":8,"59":1,"112":2,"142":2,"155":1}}],["in",{"2":{"33":1,"34":1,"155":2}}],["init",{"0":{"4":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1},"2":{"4":1,"32":1,"41":1,"78":1,"98":1,"107":1,"111":1,"120":1}}],["if",{"2":{"4":1,"22":1,"33":1,"34":1,"44":2,"45":2,"54":3,"56":1,"79":1,"80":1,"81":1,"82":2,"83":1,"89":1,"93":3,"112":3,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1,"157":1}}],["isinstance",{"2":{"22":1,"34":2,"44":2,"80":2,"81":2,"93":2,"112":4,"133":2,"138":2,"139":1,"142":2}}],["is",{"0":{"4":1,"49":1,"50":1,"51":1,"52":1,"53":1,"85":1,"124":1,"125":1},"2":{"4":4,"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"42":2,"44":2,"45":2,"49":2,"50":2,"51":3,"52":2,"53":1,"56":3,"57":2,"80":1,"82":1,"85":2,"93":1,"122":1,"124":1,"125":1}}],["预设",{"2":{"0":1}}],["phi",{"2":{"155":5}}],["p3",{"0":{"88":1},"2":{"88":4}}],["p2",{"0":{"55":1,"88":1,"107":1},"2":{"55":4,"57":2,"88":4,"107":9}}],["p1",{"0":{"55":1,"88":1,"107":1},"2":{"55":5,"57":2,"88":6,"107":9}}],["perpendicular",{"0":{"46":1},"2":{"46":1}}],["parametric",{"0":{"48":1},"2":{"48":1,"83":1}}],["parallel",{"0":{"49":1,"50":1,"84":1,"85":1,"124":1,"125":1},"2":{"42":2,"44":1,"45":2,"49":2,"50":2,"51":2,"52":1,"56":1,"57":2,"82":2,"83":1,"84":1,"85":2,"93":1,"124":1,"125":1}}],["partial",{"0":{"34":1},"2":{"34":6,"36":6}}],["particle",{"0":{"151":1},"2":{"0":1}}],["planes",{"2":{"82":1}}],["plane",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"93":1,"94":1}}],["plane3",{"0":{"77":1,"79":1,"80":1,"81":1,"82":1,"84":2,"85":1,"87":1,"88":1,"89":1,"90":1,"92":1},"1":{"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1},"2":{"38":1,"79":3,"80":4,"81":4,"82":3,"84":5,"85":3,"87":3,"88":1,"89":1,"90":1,"92":1,"93":4,"94":2,"112":1}}],["plus",{"2":{"34":3}}],["p",{"0":{"36":1},"2":{"36":21,"37":1,"82":1,"102":10,"104":8,"133":4,"135":4,"138":4,"139":4}}],["points",{"0":{"55":1,"88":1},"2":{"55":1,"88":1}}],["point",{"0":{"41":1,"46":1,"47":1,"52":2,"84":1,"87":2,"90":2,"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"36":1,"41":6,"42":2,"44":6,"45":4,"46":7,"47":3,"48":3,"51":2,"52":7,"53":2,"54":3,"55":2,"56":1,"57":2,"81":1,"83":4,"84":6,"87":8,"88":2,"89":6,"90":7,"93":1,"99":1,"102":2,"103":1,"104":1,"107":2,"133":2,"135":2,"138":2,"139":2}}],["point3",{"0":{"33":2,"36":1,"41":1,"44":1,"45":1,"46":1,"47":1,"52":1,"55":2,"56":1,"81":1,"83":2,"84":1,"87":1,"88":3,"90":1,"91":1,"95":1,"97":1,"99":1,"100":1,"101":2,"104":1,"107":2,"132":2,"135":2,"137":2,"139":1},"1":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"33":4,"36":3,"38":1,"41":3,"44":4,"45":3,"46":3,"47":3,"52":3,"55":6,"56":3,"81":4,"82":1,"83":5,"84":3,"87":3,"88":7,"90":3,"91":1,"93":3,"95":2,"99":3,"100":1,"101":2,"102":5,"103":2,"104":3,"107":7,"112":1,"132":2,"133":6,"135":7,"137":2,"138":6,"139":7,"155":3}}],["positive",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["python",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"42":2,"44":2,"45":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":2,"82":1,"83":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":2,"94":1,"98":1,"99":2,"100":1,"101":1,"103":1,"109":1,"115":2,"116":3,"117":3,"120":1,"121":2,"124":2,"125":1,"127":1,"128":2,"129":1,"131":1,"132":1,"134":1,"136":1,"137":1,"140":1,"141":1,"142":1,"144":1,"155":1}}],["pythondef",{"2":{"4":1,"16":1,"17":1,"18":1,"19":1,"22":1,"32":1,"33":1,"34":1,"36":1,"37":2,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"93":1,"94":1,"95":1,"98":1,"99":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"130":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["property",{"2":{"4":1,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":1,"85":1,"86":1,"126":1,"127":2,"128":2,"129":1}}],["presets",{"0":{"152":1,"153":1},"1":{"154":1,"155":1},"2":{"0":1}}],["pi",{"0":{"24":1},"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"24":1,"155":2}}],["粒子生成工具",{"2":{"0":1}}],["mc特效红石音乐",{"2":{"157":1}}],["model",{"0":{"153":1},"1":{"154":1,"155":1}}],["midpoint",{"2":{"107":1}}],["minecraft",{"2":{"157":1}}],["min",{"0":{"109":1},"2":{"109":5}}],["minus",{"2":{"34":3}}],["minimum",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["m",{"2":{"82":1}}],["multiarraysfunc",{"0":{"74":1},"2":{"75":1}}],["multisinglevarsfunc",{"0":{"73":1},"2":{"75":1}}],["multivarsfunc",{"0":{"34":2,"37":1,"75":1},"2":{"34":4,"37":3}}],["mul",{"2":{"19":1,"140":1,"141":1,"142":1,"143":1}}],["matmul",{"2":{"144":1}}],["math导入使用",{"2":{"38":1}}],["math",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"32":3,"34":1,"36":1,"37":2,"47":1,"48":1,"80":1,"111":1,"122":1,"128":1}}],["max",{"0":{"109":1},"2":{"109":5}}],["maximum",{"0":{"9":1},"2":{"9":1}}],["method",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"32":1,"33":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["mp",{"0":{"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":2,"76":1,"96":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"32":3,"34":1,"36":1,"37":2,"38":1,"47":1,"48":1,"111":1}}],["mbcp",{"0":{"0":1,"1":1,"23":1,"30":1,"35":1,"38":1,"39":1,"58":1,"76":1,"96":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"33":1,"34":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1},"2":{"0":3}}],["提供了一些工具",{"2":{"0":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexzht.DIej9wva.js b/assets/chunks/@localSearchIndexzht.DIej9wva.js new file mode 100644 index 0000000..2dec3bc --- /dev/null +++ b/assets/chunks/@localSearchIndexzht.DIej9wva.js @@ -0,0 +1 @@ +const t='{"documentCount":160,"nextId":160,"documentIds":{"0":"/zht/api/#模組-mbcp","1":"/zht/api/mp_math/angle.html#模組-mbcp-mp-math-angle","2":"/zht/api/mp_math/angle.html#class-angle","3":"/zht/api/mp_math/angle.html#class-anyangle-angle","4":"/zht/api/mp_math/angle.html#method-init-self-value-float-is-radian-bool-false","5":"/zht/api/mp_math/angle.html#method-complementary-self-anyangle","6":"/zht/api/mp_math/angle.html#method-supplementary-self-anyangle","7":"/zht/api/mp_math/angle.html#method-degree-self-float","8":"/zht/api/mp_math/angle.html#method-minimum-positive-self-anyangle","9":"/zht/api/mp_math/angle.html#method-maximum-negative-self-anyangle","10":"/zht/api/mp_math/angle.html#method-sin-self-float","11":"/zht/api/mp_math/angle.html#method-cos-self-float","12":"/zht/api/mp_math/angle.html#method-tan-self-float","13":"/zht/api/mp_math/angle.html#method-cot-self-float","14":"/zht/api/mp_math/angle.html#method-sec-self-float","15":"/zht/api/mp_math/angle.html#method-csc-self-float","16":"/zht/api/mp_math/angle.html#method-self-other-anyangle-anyangle","17":"/zht/api/mp_math/angle.html#method-eq-self-other","18":"/zht/api/mp_math/angle.html#method-self-other-anyangle-anyangle-1","19":"/zht/api/mp_math/angle.html#method-self-other-float-anyangle","20":"/zht/api/mp_math/angle.html#method-self-other-float-anyangle-1","21":"/zht/api/mp_math/angle.html#method-self-other-anyangle-float","22":"/zht/api/mp_math/angle.html#method-self-other","23":"/zht/api/mp_math/const.html#模組-mbcp-mp-math-const","24":"/zht/api/mp_math/const.html#var-pi","25":"/zht/api/mp_math/const.html#var-e","26":"/zht/api/mp_math/const.html#var-golden-ratio","27":"/zht/api/mp_math/const.html#var-gamma","28":"/zht/api/mp_math/const.html#var-epsilon","29":"/zht/api/mp_math/const.html#var-approx","30":"/zht/api/mp_math/function.html#模組-mbcp-mp-math-function","31":"/zht/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","32":"/zht/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","33":"/zht/api/mp_math/equation.html#模組-mbcp-mp-math-equation","34":"/zht/api/mp_math/equation.html#class-curveequation","35":"/zht/api/mp_math/equation.html#method-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","36":"/zht/api/mp_math/equation.html#method-call-self-t-var-point3-tuple-point3","37":"/zht/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","38":"/zht/api/mp_math/#模組-mbcp-mp-math","39":"/zht/api/mp_math/mp_math_typing.html#模組-mbcp-mp-math-mp-math-typing","40":"/zht/api/mp_math/mp_math_typing.html#var-realnumber","41":"/zht/api/mp_math/mp_math_typing.html#var-number","42":"/zht/api/mp_math/mp_math_typing.html#var-singlevar","43":"/zht/api/mp_math/mp_math_typing.html#var-arrayvar","44":"/zht/api/mp_math/mp_math_typing.html#var-var","45":"/zht/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","46":"/zht/api/mp_math/mp_math_typing.html#var-onearrayfunc","47":"/zht/api/mp_math/mp_math_typing.html#var-onevarfunc","48":"/zht/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","49":"/zht/api/mp_math/mp_math_typing.html#var-twoarraysfunc","50":"/zht/api/mp_math/mp_math_typing.html#var-twovarsfunc","51":"/zht/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","52":"/zht/api/mp_math/mp_math_typing.html#var-threearraysfunc","53":"/zht/api/mp_math/mp_math_typing.html#var-threevarsfunc","54":"/zht/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","55":"/zht/api/mp_math/mp_math_typing.html#var-multiarraysfunc","56":"/zht/api/mp_math/mp_math_typing.html#var-multivarsfunc","57":"/zht/api/mp_math/line.html#模組-mbcp-mp-math-line","58":"/zht/api/mp_math/line.html#class-line3","59":"/zht/api/mp_math/line.html#method-init-self-point-point3-direction-vector3","60":"/zht/api/mp_math/line.html#method-approx-self-other-line3-epsilon-float-approx-bool","61":"/zht/api/mp_math/line.html#method-cal-angle-self-other-line3-anyangle","62":"/zht/api/mp_math/line.html#method-cal-distance-self-other-line3-point3-float","63":"/zht/api/mp_math/line.html#method-cal-intersection-self-other-line3-point3","64":"/zht/api/mp_math/line.html#method-cal-perpendicular-self-point-point3-line3","65":"/zht/api/mp_math/line.html#method-get-point-self-t-realnumber-point3","66":"/zht/api/mp_math/line.html#method-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","67":"/zht/api/mp_math/line.html#method-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","68":"/zht/api/mp_math/line.html#method-is-parallel-self-other-line3-bool","69":"/zht/api/mp_math/line.html#method-is-collinear-self-other-line3-bool","70":"/zht/api/mp_math/line.html#method-is-point-on-self-point-point3-bool","71":"/zht/api/mp_math/line.html#method-is-coplanar-self-other-line3-bool","72":"/zht/api/mp_math/line.html#method-simplify-self","73":"/zht/api/mp_math/line.html#method-from-two-points-cls-p1-point3-p2-point3-line3","74":"/zht/api/mp_math/line.html#method-and-self-other-line3-line3-point3-none","75":"/zht/api/mp_math/line.html#method-eq-self-other-bool","76":"/zht/api/mp_math/point.html#模組-mbcp-mp-math-point","77":"/zht/api/mp_math/point.html#class-point3","78":"/zht/api/mp_math/point.html#method-init-self-x-float-y-float-z-float","79":"/zht/api/mp_math/point.html#method-approx-self-other-point3-epsilon-float-approx-bool","80":"/zht/api/mp_math/point.html#method-self-other-vector3-point3","81":"/zht/api/mp_math/point.html#method-self-other-point3-point3","82":"/zht/api/mp_math/point.html#method-self-other","83":"/zht/api/mp_math/point.html#method-eq-self-other","84":"/zht/api/mp_math/point.html#method-self-other-point3-vector3","85":"/zht/api/mp_math/plane.html#模組-mbcp-mp-math-plane","86":"/zht/api/mp_math/plane.html#class-plane3","87":"/zht/api/mp_math/plane.html#method-init-self-a-float-b-float-c-float-d-float","88":"/zht/api/mp_math/plane.html#method-approx-self-other-plane3-bool","89":"/zht/api/mp_math/plane.html#method-cal-angle-self-other-line3-plane3-anyangle","90":"/zht/api/mp_math/plane.html#method-cal-distance-self-other-plane3-point3-float","91":"/zht/api/mp_math/plane.html#method-cal-intersection-line3-self-other-plane3-line3","92":"/zht/api/mp_math/plane.html#method-cal-intersection-point3-self-other-line3-point3","93":"/zht/api/mp_math/plane.html#method-cal-parallel-plane3-self-point-point3-plane3","94":"/zht/api/mp_math/plane.html#method-is-parallel-self-other-plane3-bool","95":"/zht/api/mp_math/plane.html#method-normal-self-vector3","96":"/zht/api/mp_math/plane.html#method-from-point-and-normal-cls-point-point3-normal-vector3-plane3","97":"/zht/api/mp_math/plane.html#method-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","98":"/zht/api/mp_math/plane.html#method-from-two-lines-cls-l1-line3-l2-line3-plane3","99":"/zht/api/mp_math/plane.html#method-from-point-and-line-cls-point-point3-line-line3-plane3","100":"/zht/api/mp_math/plane.html#method-and-self-other-line3-point3-none","101":"/zht/api/mp_math/plane.html#method-and-self-other-plane3-line3-none","102":"/zht/api/mp_math/plane.html#method-and-self-other","103":"/zht/api/mp_math/plane.html#method-eq-self-other-bool","104":"/zht/api/mp_math/plane.html#method-rand-self-other-line3-point3","105":"/zht/api/mp_math/segment.html#模組-mbcp-mp-math-segment","106":"/zht/api/mp_math/segment.html#class-segment3","107":"/zht/api/mp_math/segment.html#method-init-self-p1-point3-p2-point3","108":"/zht/api/mp_math/utils.html#模組-mbcp-mp-math-utils","109":"/zht/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","110":"/zht/api/mp_math/utils.html#class-approx","111":"/zht/api/mp_math/utils.html#method-init-self-value-realnumber","112":"/zht/api/mp_math/utils.html#method-eq-self-other","113":"/zht/api/mp_math/utils.html#method-raise-type-error-self-other","114":"/zht/api/mp_math/utils.html#method-ne-self-other","115":"/zht/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","116":"/zht/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","117":"/zht/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","118":"/zht/api/mp_math/vector.html#模組-mbcp-mp-math-vector","119":"/zht/api/mp_math/vector.html#class-vector3","120":"/zht/api/mp_math/vector.html#method-init-self-x-float-y-float-z-float","121":"/zht/api/mp_math/vector.html#method-approx-self-other-vector3-epsilon-float-approx-bool","122":"/zht/api/mp_math/vector.html#method-cal-angle-self-other-vector3-anyangle","123":"/zht/api/mp_math/vector.html#method-cross-self-other-vector3-vector3","124":"/zht/api/mp_math/vector.html#method-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","125":"/zht/api/mp_math/vector.html#method-is-parallel-self-other-vector3-bool","126":"/zht/api/mp_math/vector.html#method-normalize-self","127":"/zht/api/mp_math/vector.html#method-np-array-self-np-ndarray","128":"/zht/api/mp_math/vector.html#method-length-self-float","129":"/zht/api/mp_math/vector.html#method-unit-self-vector3","130":"/zht/api/mp_math/vector.html#method-abs-self","131":"/zht/api/mp_math/vector.html#method-self-other-vector3-vector3","132":"/zht/api/mp_math/vector.html#method-self-other-point3-point3","133":"/zht/api/mp_math/vector.html#method-self-other","134":"/zht/api/mp_math/vector.html#method-eq-self-other","135":"/zht/api/mp_math/vector.html#method-self-other-point3-point3-1","136":"/zht/api/mp_math/vector.html#method-self-other-vector3-vector3-1","137":"/zht/api/mp_math/vector.html#method-self-other-point3-point3-2","138":"/zht/api/mp_math/vector.html#method-self-other-1","139":"/zht/api/mp_math/vector.html#method-self-other-point3","140":"/zht/api/mp_math/vector.html#method-self-other-vector3-vector3-2","141":"/zht/api/mp_math/vector.html#method-self-other-realnumber-vector3","142":"/zht/api/mp_math/vector.html#method-self-other-int-float-vector3-vector3","143":"/zht/api/mp_math/vector.html#method-self-other-realnumber-vector3-1","144":"/zht/api/mp_math/vector.html#method-self-other-vector3-realnumber","145":"/zht/api/mp_math/vector.html#method-self-other-realnumber-vector3-2","146":"/zht/api/mp_math/vector.html#method-self-vector3","147":"/zht/api/mp_math/vector.html#var-zero-vector3","148":"/zht/api/mp_math/vector.html#var-x-axis","149":"/zht/api/mp_math/vector.html#var-y-axis","150":"/zht/api/mp_math/vector.html#var-z-axis","151":"/zht/api/particle/#模組-mbcp-particle","152":"/zht/api/presets/#模組-mbcp-presets","153":"/zht/api/presets/model/#模組-mbcp-presets-model","154":"/zht/api/presets/model/#class-geometricmodels","155":"/zht/api/presets/model/#method-sphere-radius-float-density-float","156":"/zht/demo/best-practice.html#最佳實踐","157":"/zht/demo/best-practice.html#作品","158":"/zht/guide/#开始不了一点","159":"/zht/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,12],"1":[5,1,2],"2":[2,5,1],"3":[4,5,1],"4":[11,9,24],"5":[5,9,23],"6":[5,9,22],"7":[5,9,19],"8":[6,9,20],"9":[6,9,22],"10":[5,9,17],"11":[5,9,17],"12":[5,9,17],"13":[5,9,19],"14":[5,9,19],"15":[5,9,19],"16":[7,9,15],"17":[5,9,11],"18":[6,9,14],"19":[7,9,16],"20":[7,9,13],"21":[7,9,13],"22":[3,9,15],"23":[5,1,2],"24":[2,5,7],"25":[2,5,8],"26":[3,5,10],"27":[2,5,6],"28":[2,5,6],"29":[2,5,6],"30":[5,1,2],"31":[13,5,45],"32":[7,5,40],"33":[5,1,2],"34":[2,5,1],"35":[9,7,19],"36":[10,7,33],"37":[14,5,60],"38":[4,1,20],"39":[5,1,2],"40":[2,5,9],"41":[2,5,9],"42":[2,5,7],"43":[2,5,8],"44":[2,5,9],"45":[2,5,8],"46":[2,5,8],"47":[2,5,9],"48":[2,5,8],"49":[2,5,8],"50":[2,5,9],"51":[2,5,8],"52":[2,5,8],"53":[2,5,9],"54":[2,5,8],"55":[2,5,8],"56":[2,5,9],"57":[5,1,2],"58":[2,5,1],"59":[8,7,18],"60":[11,7,27],"61":[8,7,20],"62":[10,7,42],"63":[8,7,40],"64":[8,7,21],"65":[8,7,24],"66":[9,7,25],"67":[14,7,26],"68":[8,7,20],"69":[8,7,23],"70":[8,7,21],"71":[8,7,26],"72":[4,7,27],"73":[10,7,27],"74":[9,7,34],"75":[6,7,28],"76":[5,1,2],"77":[2,5,1],"78":[8,7,16],"79":[11,7,29],"80":[8,7,13],"81":[7,7,12],"82":[4,7,24],"83":[5,7,22],"84":[7,7,28],"85":[5,1,2],"86":[2,5,1],"87":[9,7,25],"88":[7,7,30],"89":[10,7,55],"90":[10,7,44],"91":[9,7,64],"92":[9,7,52],"93":[9,7,23],"94":[8,7,21],"95":[5,7,20],"96":[10,7,34],"97":[11,7,34],"98":[10,7,38],"99":[10,7,28],"100":[9,7,15],"101":[9,7,15],"102":[5,7,47],"103":[6,7,19],"104":[7,7,15],"105":[5,1,2],"106":[2,5,1],"107":[7,7,27],"108":[5,1,2],"109":[7,5,20],"110":[2,5,1],"111":[6,7,14],"112":[5,7,31],"113":[7,7,15],"114":[5,7,11],"115":[11,5,28],"116":[11,5,30],"117":[12,5,36],"118":[5,1,3],"119":[2,5,1],"120":[8,7,18],"121":[11,7,28],"122":[8,7,28],"123":[6,7,33],"124":[13,7,27],"125":[8,7,23],"126":[4,7,17],"127":[6,7,18],"128":[5,7,23],"129":[5,7,17],"130":[4,7,10],"131":[7,7,12],"132":[7,7,12],"133":[4,7,37],"134":[5,7,22],"135":[7,7,25],"136":[6,7,12],"137":[6,7,12],"138":[3,7,36],"139":[4,7,35],"140":[6,7,12],"141":[7,7,13],"142":[9,7,39],"143":[7,7,13],"144":[7,7,23],"145":[7,7,15],"146":[5,7,17],"147":[3,5,7],"148":[3,5,8],"149":[3,5,8],"150":[3,5,8],"151":[3,1,2],"152":[3,1,2],"153":[4,1,2],"154":[2,4,2],"155":[6,6,46],"156":[1,1,1],"157":[1,1,25],"158":[1,1,2],"159":[1,1,7]},"averageFieldLength":[5.743749999999997,5.924999999999998,17.887500000000003],"storedFields":{"0":{"title":"模組 mbcp","titles":[]},"1":{"title":"模組 mbcp.mp_math.angle","titles":[]},"2":{"title":"class Angle","titles":["模組 mbcp.mp_math.angle"]},"3":{"title":"class AnyAngle(Angle)","titles":["模組 mbcp.mp_math.angle"]},"4":{"title":"method __init__(self, value: float, is_radian: bool = False)","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"5":{"title":"method complementary(self) -> AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"method supplementary(self) -> AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"method degree(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"method minimum_positive(self) -> AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"method maximum_negative(self) -> AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"method sin(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"method cos(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"method tan(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"method cot(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"method sec(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"method csc(self) -> float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"method self + other: AnyAngle => AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"method __eq__(self, other)","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"method self - other: AnyAngle => AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"method self * other: float => AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"method self / other: float => AnyAngle","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"method self / other: AnyAngle => float","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"method self / other","titles":["模組 mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"模組 mbcp.mp_math.const","titles":[]},"24":{"title":"var PI","titles":["模組 mbcp.mp_math.const"]},"25":{"title":"var E","titles":["模組 mbcp.mp_math.const"]},"26":{"title":"var GOLDEN_RATIO","titles":["模組 mbcp.mp_math.const"]},"27":{"title":"var GAMMA","titles":["模組 mbcp.mp_math.const"]},"28":{"title":"var EPSILON","titles":["模組 mbcp.mp_math.const"]},"29":{"title":"var APPROX","titles":["模組 mbcp.mp_math.const"]},"30":{"title":"模組 mbcp.mp_math.function","titles":[]},"31":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["模組 mbcp.mp_math.function"]},"32":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["模組 mbcp.mp_math.function"]},"33":{"title":"模組 mbcp.mp_math.equation","titles":[]},"34":{"title":"class CurveEquation","titles":["模組 mbcp.mp_math.equation"]},"35":{"title":"method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["模組 mbcp.mp_math.equation","class CurveEquation"]},"36":{"title":"method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["模組 mbcp.mp_math.equation","class CurveEquation"]},"37":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["模組 mbcp.mp_math.equation"]},"38":{"title":"模組 mbcp.mp_math","titles":[]},"39":{"title":"模組 mbcp.mp_math.mp_math_typing","titles":[]},"40":{"title":"var RealNumber","titles":["模組 mbcp.mp_math.mp_math_typing"]},"41":{"title":"var Number","titles":["模組 mbcp.mp_math.mp_math_typing"]},"42":{"title":"var SingleVar","titles":["模組 mbcp.mp_math.mp_math_typing"]},"43":{"title":"var ArrayVar","titles":["模組 mbcp.mp_math.mp_math_typing"]},"44":{"title":"var Var","titles":["模組 mbcp.mp_math.mp_math_typing"]},"45":{"title":"var OneSingleVarFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"46":{"title":"var OneArrayFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"47":{"title":"var OneVarFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"48":{"title":"var TwoSingleVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"49":{"title":"var TwoArraysFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"50":{"title":"var TwoVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"51":{"title":"var ThreeSingleVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"52":{"title":"var ThreeArraysFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"53":{"title":"var ThreeVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"54":{"title":"var MultiSingleVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"55":{"title":"var MultiArraysFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"56":{"title":"var MultiVarsFunc","titles":["模組 mbcp.mp_math.mp_math_typing"]},"57":{"title":"模組 mbcp.mp_math.line","titles":[]},"58":{"title":"class Line3","titles":["模組 mbcp.mp_math.line"]},"59":{"title":"method __init__(self, point: Point3, direction: Vector3)","titles":["模組 mbcp.mp_math.line","class Line3"]},"60":{"title":"method approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"61":{"title":"method cal_angle(self, other: Line3) -> AnyAngle","titles":["模組 mbcp.mp_math.line","class Line3"]},"62":{"title":"method cal_distance(self, other: Line3 | Point3) -> float","titles":["模組 mbcp.mp_math.line","class Line3"]},"63":{"title":"method cal_intersection(self, other: Line3) -> Point3","titles":["模組 mbcp.mp_math.line","class Line3"]},"64":{"title":"method cal_perpendicular(self, point: Point3) -> Line3","titles":["模組 mbcp.mp_math.line","class Line3"]},"65":{"title":"method get_point(self, t: RealNumber) -> Point3","titles":["模組 mbcp.mp_math.line","class Line3"]},"66":{"title":"method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["模組 mbcp.mp_math.line","class Line3"]},"67":{"title":"method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"68":{"title":"method is_parallel(self, other: Line3) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"69":{"title":"method is_collinear(self, other: Line3) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"70":{"title":"method is_point_on(self, point: Point3) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"71":{"title":"method is_coplanar(self, other: Line3) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"72":{"title":"method simplify(self)","titles":["模組 mbcp.mp_math.line","class Line3"]},"73":{"title":"method from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["模組 mbcp.mp_math.line","class Line3"]},"74":{"title":"method __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["模組 mbcp.mp_math.line","class Line3"]},"75":{"title":"method __eq__(self, other) -> bool","titles":["模組 mbcp.mp_math.line","class Line3"]},"76":{"title":"模組 mbcp.mp_math.point","titles":[]},"77":{"title":"class Point3","titles":["模組 mbcp.mp_math.point"]},"78":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["模組 mbcp.mp_math.point","class Point3"]},"79":{"title":"method approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["模組 mbcp.mp_math.point","class Point3"]},"80":{"title":"method self + other: Vector3 => Point3","titles":["模組 mbcp.mp_math.point","class Point3"]},"81":{"title":"method self + other: Point3 => Point3","titles":["模組 mbcp.mp_math.point","class Point3"]},"82":{"title":"method self + other","titles":["模組 mbcp.mp_math.point","class Point3"]},"83":{"title":"method __eq__(self, other)","titles":["模組 mbcp.mp_math.point","class Point3"]},"84":{"title":"method self - other: Point3 => Vector3","titles":["模組 mbcp.mp_math.point","class Point3"]},"85":{"title":"模組 mbcp.mp_math.plane","titles":[]},"86":{"title":"class Plane3","titles":["模組 mbcp.mp_math.plane"]},"87":{"title":"method __init__(self, a: float, b: float, c: float, d: float)","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"88":{"title":"method approx(self, other: Plane3) -> bool","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"89":{"title":"method cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"90":{"title":"method cal_distance(self, other: Plane3 | Point3) -> float","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"91":{"title":"method cal_intersection_line3(self, other: Plane3) -> Line3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"92":{"title":"method cal_intersection_point3(self, other: Line3) -> Point3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"93":{"title":"method cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"94":{"title":"method is_parallel(self, other: Plane3) -> bool","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"95":{"title":"method normal(self) -> Vector3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"96":{"title":"method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"97":{"title":"method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"98":{"title":"method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"99":{"title":"method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"100":{"title":"method __and__(self, other: Line3) -> Point3 | None","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"101":{"title":"method __and__(self, other: Plane3) -> Line3 | None","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"102":{"title":"method __and__(self, other)","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"103":{"title":"method __eq__(self, other) -> bool","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"104":{"title":"method __rand__(self, other: Line3) -> Point3","titles":["模組 mbcp.mp_math.plane","class Plane3"]},"105":{"title":"模組 mbcp.mp_math.segment","titles":[]},"106":{"title":"class Segment3","titles":["模組 mbcp.mp_math.segment"]},"107":{"title":"method __init__(self, p1: Point3, p2: Point3)","titles":["模組 mbcp.mp_math.segment","class Segment3"]},"108":{"title":"模組 mbcp.mp_math.utils","titles":[]},"109":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["模組 mbcp.mp_math.utils"]},"110":{"title":"class Approx","titles":["模組 mbcp.mp_math.utils"]},"111":{"title":"method __init__(self, value: RealNumber)","titles":["模組 mbcp.mp_math.utils","class Approx"]},"112":{"title":"method __eq__(self, other)","titles":["模組 mbcp.mp_math.utils","class Approx"]},"113":{"title":"method raise_type_error(self, other)","titles":["模組 mbcp.mp_math.utils","class Approx"]},"114":{"title":"method __ne__(self, other)","titles":["模組 mbcp.mp_math.utils","class Approx"]},"115":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["模組 mbcp.mp_math.utils"]},"116":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["模組 mbcp.mp_math.utils"]},"117":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["模組 mbcp.mp_math.utils"]},"118":{"title":"模組 mbcp.mp_math.vector","titles":[]},"119":{"title":"class Vector3","titles":["模組 mbcp.mp_math.vector"]},"120":{"title":"method __init__(self, x: float, y: float, z: float)","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"121":{"title":"method approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"122":{"title":"method cal_angle(self, other: Vector3) -> AnyAngle","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"123":{"title":"method cross(self, other: Vector3) -> Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"124":{"title":"method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"125":{"title":"method is_parallel(self, other: Vector3) -> bool","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"126":{"title":"method normalize(self)","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"127":{"title":"method np_array(self) -> np.ndarray","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"128":{"title":"method length(self) -> float","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"129":{"title":"method unit(self) -> Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"130":{"title":"method __abs__(self)","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"131":{"title":"method self + other: Vector3 => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"132":{"title":"method self + other: Point3 => Point3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"133":{"title":"method self + other","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"134":{"title":"method __eq__(self, other)","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"135":{"title":"method self + other: Point3 => Point3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"136":{"title":"method self - other: Vector3 => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"137":{"title":"method self - other: Point3 => Point3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"138":{"title":"method self - other","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"139":{"title":"method self - other: Point3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"140":{"title":"method self * other: Vector3 => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"141":{"title":"method self * other: RealNumber => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"142":{"title":"method self * other: int | float | Vector3 => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"143":{"title":"method self * other: RealNumber => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"144":{"title":"method self @ other: Vector3 => RealNumber","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"145":{"title":"method self / other: RealNumber => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"146":{"title":"method - self => Vector3","titles":["模組 mbcp.mp_math.vector","class Vector3"]},"147":{"title":"var zero_vector3","titles":["模組 mbcp.mp_math.vector"]},"148":{"title":"var x_axis","titles":["模組 mbcp.mp_math.vector"]},"149":{"title":"var y_axis","titles":["模組 mbcp.mp_math.vector"]},"150":{"title":"var z_axis","titles":["模組 mbcp.mp_math.vector"]},"151":{"title":"模組 mbcp.particle","titles":[]},"152":{"title":"模組 mbcp.presets","titles":[]},"153":{"title":"模組 mbcp.presets.model","titles":[]},"154":{"title":"class GeometricModels","titles":["模組 mbcp.presets.model"]},"155":{"title":"method sphere(radius: float, density: float)","titles":["模組 mbcp.presets.model","class GeometricModels"]},"156":{"title":"最佳實踐","titles":[]},"157":{"title":"作品","titles":["最佳實踐"]},"158":{"title":"开始不了一点","titles":[]},"159":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["∫12x111",{"2":{"158":1}}],["开始不了一点",{"0":{"158":1}}],["红石音乐",{"2":{"157":1}}],["这么可爱真是抱歉",{"2":{"157":1}}],["这玩意不太稳定",{"2":{"37":1}}],["轻涟",{"2":{"157":1}}],["芙宁娜pv曲",{"2":{"157":1}}],["有点甜~",{"2":{"157":1}}],["有关函数柯里化",{"2":{"32":1}}],["星穹铁道",{"2":{"157":1}}],["崩坏",{"2":{"157":1}}],["使一颗心免于哀伤",{"2":{"157":1}}],["总有一条蜿蜒在童话镇里",{"2":{"157":1}}],["童话镇~",{"2":{"157":1}}],["特效红石音乐",{"2":{"157":2}}],["作品",{"0":{"157":1}}],["4",{"2":{"155":1}}],["球体上的点集",{"2":{"155":1}}],["生成球体上的点集",{"2":{"155":1}}],["几何模型点集",{"2":{"153":1}}],["零向量",{"2":{"147":1}}],["负向量",{"2":{"146":1}}],["取负",{"2":{"146":1}}],["取两平面的交集",{"2":{"102":1}}],["非点乘",{"2":{"142":1}}],["别去点那边实现了",{"2":{"135":1}}],["单位向量",{"2":{"129":1}}],["单变量",{"2":{"42":1}}],["模",{"2":{"128":1}}],["模組",{"0":{"0":1,"1":1,"23":1,"30":1,"33":1,"38":1,"39":1,"57":1,"76":1,"85":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"34":1,"35":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1}}],["将向量归一化",{"2":{"126":1}}],["转换为行列式形式",{"2":{"123":1}}],["叉乘使用cross",{"2":{"142":1}}],["叉乘结果",{"2":{"123":1}}],["叉乘运算法则为",{"2":{"123":1}}],["叉乘",{"2":{"123":1}}],["向量的模",{"2":{"128":1}}],["向量积",{"2":{"123":1}}],["向量夹角计算公式",{"2":{"122":1}}],["以及一些常用的向量",{"2":{"118":1}}],["格式化符号数",{"2":{"117":1}}],["quot",{"2":{"116":2,"117":4}}],["符号",{"2":{"116":1,"117":1}}],["获取该向量的单位向量",{"2":{"129":1}}],["获取数的符号",{"2":{"116":1}}],["获取直线的参数方程",{"2":{"66":1}}],["获取直线上的点",{"2":{"65":1}}],["用于判断是否近似于0",{"2":{"115":1}}],["用于近似比较对象",{"2":{"111":1}}],["限定在区间内的值",{"2":{"109":1}}],["值",{"2":{"109":1}}],["区间限定函数",{"2":{"109":1}}],["us",{"2":{"159":1}}],["unit",{"0":{"129":1},"2":{"129":1}}],["unsupported",{"2":{"62":1,"89":1,"90":1,"102":1,"113":1,"133":1,"138":1,"139":1,"142":1}}],["utils",{"0":{"108":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1}}],["中心点",{"2":{"107":1}}],["中实现",{"2":{"84":1}}],["长度",{"2":{"107":1}}],["线段的另一个端点",{"2":{"107":1}}],["线段的一个端点",{"2":{"107":1}}],["人话",{"2":{"102":1}}],["法向量",{"2":{"95":1,"96":1}}],["help",{"2":{"159":1}}],["heart",{"2":{"157":1}}],["have",{"2":{"91":1}}],["high",{"2":{"37":2}}],["并代入两平面方程求出合适的点",{"2":{"91":1}}],["并对向量单位化",{"2":{"72":1}}],["依次假设x=0",{"2":{"91":1}}],["寻找直线上的一点",{"2":{"91":1}}],["求两平面的法向量的叉乘得到方向向量",{"2":{"91":1}}],["求n元函数一阶偏导函数",{"2":{"37":1}}],["为直线的方向向量",{"2":{"89":1}}],["为平面的法向量",{"2":{"89":1}}],["分别为两个平面的法向量",{"2":{"89":1}}],["和",{"2":{"89":1}}],["其中",{"2":{"89":2}}],["θ=arccos⁡",{"2":{"89":2,"122":1}}],["k",{"2":{"88":12}}],["常数项",{"2":{"87":1}}],["常量",{"2":{"24":1}}],["平面上一点",{"2":{"96":1,"99":1}}],["平面的法向量",{"2":{"95":1}}],["平面",{"2":{"93":1,"96":1,"97":1,"98":1,"99":1}}],["平面与直线平行或重合",{"2":{"92":1}}],["平面与直线夹角计算公式",{"2":{"89":1}}],["平面平行且无交线",{"2":{"91":1}}],["平面间夹角计算公式",{"2":{"89":1}}],["平面方程",{"2":{"87":1}}],["平行线返回none",{"2":{"74":1}}],["新的向量或点",{"2":{"133":1}}],["新的向量",{"2":{"84":1,"138":1}}],["新的点",{"2":{"82":1,"135":1,"139":1}}],["已在",{"2":{"84":1}}],["已知一个函数f",{"2":{"31":1}}],["坐标",{"2":{"78":3}}],["笛卡尔坐标系中的点",{"2":{"78":1}}],["∧",{"2":{"75":1}}],["交线",{"2":{"91":1,"102":1}}],["交线返回交点",{"2":{"74":1}}],["交集",{"2":{"74":1,"102":1}}],["交点",{"2":{"63":1,"92":1}}],["重合线返回自身",{"2":{"74":1}}],["由点和直线构造平面",{"2":{"99":1}}],["由点和法向量构造平面",{"2":{"96":1}}],["由两直线构造平面",{"2":{"98":1}}],["由两点构造直线",{"2":{"73":1}}],["由三点构造平面",{"2":{"97":1}}],["由一个点和一个方向向量确定",{"2":{"59":1}}],["工厂函数",{"2":{"73":1,"96":1,"97":1,"98":1,"99":1}}],["处理",{"2":{"72":1}}],["处的梯度向量为",{"2":{"31":1}}],["化",{"2":{"72":1}}],["按照可行性一次对x",{"2":{"72":1}}],["不返回值",{"2":{"72":1,"126":1}}],["不支持的类型",{"2":{"62":1,"89":1,"90":1,"102":1}}],["自体归一化",{"2":{"126":1}}],["自体简化",{"2":{"72":1}}],["自然对数的底",{"2":{"25":1}}],["等价相等",{"2":{"72":1}}],["简化直线方程",{"2":{"72":1}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"71":1}}],["两角的和为180°",{"2":{"6":1}}],["两角的和为90°",{"2":{"5":1}}],["充要条件",{"2":{"71":1}}],["判断两个向量是否相等",{"2":{"134":1}}],["判断两个向量是否平行",{"2":{"125":1}}],["判断两个向量是否近似平行",{"2":{"124":1}}],["判断两个向量是否近似相等",{"2":{"121":1}}],["判断两个数是否近似相等",{"2":{"115":1}}],["判断两个平面是否等价",{"2":{"103":1}}],["判断两个平面是否平行",{"2":{"94":1}}],["判断两个平面是否近似相等",{"2":{"88":1}}],["判断两个点是否相等",{"2":{"83":1}}],["判断两个点是否近似相等",{"2":{"79":1}}],["判断两条直线是否等价",{"2":{"75":1}}],["判断两条直线是否共面",{"2":{"71":1}}],["判断两条直线是否共线",{"2":{"69":1}}],["判断两条直线是否平行",{"2":{"68":1}}],["判断两条直线是否近似平行",{"2":{"67":1}}],["判断两条直线是否近似相等",{"2":{"60":1}}],["判断点是否在直线上",{"2":{"70":1}}],["另一个向量或数",{"2":{"142":1}}],["另一个向量或点",{"2":{"133":1,"138":1}}],["另一个向量",{"2":{"121":1,"122":1,"123":1,"124":1,"125":1,"134":1,"144":1}}],["另一个平面或点",{"2":{"90":1}}],["另一个平面或直线",{"2":{"89":1,"102":1}}],["另一个平面",{"2":{"88":1,"91":1,"94":1,"103":1}}],["另一个点或向量",{"2":{"82":1}}],["另一个点",{"2":{"79":1,"83":1,"84":1,"135":1,"139":1}}],["另一",{"2":{"68":1,"69":1,"71":1}}],["另一条直线或点",{"2":{"62":1}}],["另一条直线",{"2":{"60":1,"61":1,"63":1,"67":1,"74":1,"75":1}}],["则同一个t对应的点不同",{"2":{"65":1}}],["则其在点",{"2":{"31":1}}],["但起始点和方向向量不同",{"2":{"65":1}}],["同一条直线",{"2":{"65":1}}],["垂线",{"2":{"64":1}}],["指定点",{"2":{"64":1,"93":1}}],["直线最终可用参数方程或点向式表示",{"2":{"91":1}}],["直线",{"2":{"73":1,"92":1,"98":2,"99":1}}],["直线不共面",{"2":{"63":1}}],["直线平行",{"2":{"63":1}}],["直线上的一点",{"2":{"59":1}}],["距离",{"2":{"62":1,"90":1}}],["夹角",{"2":{"61":1,"89":1,"122":1}}],["是否只返回负数的符号",{"2":{"116":1,"117":1}}],["是否相等",{"2":{"83":1,"134":1}}],["是否等价",{"2":{"75":1,"103":1}}],["是否共面",{"2":{"71":1}}],["是否共线",{"2":{"69":1}}],["是否在直线上",{"2":{"70":1}}],["是否平行",{"2":{"68":1,"94":1,"125":1}}],["是否近似平行",{"2":{"67":1,"124":1}}],["是否近似相等",{"2":{"60":1,"79":1,"88":1,"115":1,"121":1}}],["是否为弧度",{"2":{"4":1}}],["误差",{"2":{"60":1,"67":1,"79":1,"115":1,"121":1,"124":1}}],["方向向量",{"2":{"59":1,"107":1}}],["多元函数",{"2":{"56":1}}],["多元数组函数",{"2":{"55":1}}],["多元单变量函数",{"2":{"54":1}}],["二元函数",{"2":{"50":1}}],["二元数组函数",{"2":{"49":1}}],["二元单变量函数",{"2":{"48":1}}],["一元函数",{"2":{"47":1}}],["一元数组函数",{"2":{"46":1}}],["一元单变量函数",{"2":{"45":1}}],["一阶偏导",{"2":{"37":1}}],["变量",{"2":{"44":1}}],["变量位置",{"2":{"37":1}}],["数组运算结果",{"2":{"142":1}}],["数组运算",{"2":{"142":1}}],["数组变量",{"2":{"43":1}}],["数2",{"2":{"115":1}}],["数1",{"2":{"115":1}}],["数",{"2":{"41":1,"116":1,"117":1}}],["数学工具",{"2":{"0":1}}],["類型",{"2":{"40":1,"41":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"147":1,"148":1,"149":1,"150":1}}],["实数",{"2":{"40":1,"111":1}}],["三元数组函数",{"2":{"52":1}}],["三元单变量函数",{"2":{"51":1}}],["三元函数",{"2":{"31":1,"53":1}}],["三维空间中的线段",{"2":{"107":1}}],["三维空间中的直线",{"2":{"59":1}}],["三维向量",{"2":{"38":1}}],["三维线段",{"2":{"38":1}}],["三维点",{"2":{"38":1}}],["三维平面",{"2":{"38":1}}],["三维直线",{"2":{"38":1}}],["导入的类有",{"2":{"38":1}}],["本包定义了一些常用的导入",{"2":{"38":1}}],["本模块塞了一些预设",{"2":{"152":1}}],["本模块用于内部类型提示",{"2":{"39":1}}],["本模块定义了粒子生成相关的工具",{"2":{"151":1}}],["本模块定义了3维向量的类vector3",{"2":{"118":1}}],["本模块定义了一些常用的工具函数",{"2":{"108":1}}],["本模块定义了一些常用的常量",{"2":{"23":1}}],["本模块定义了三维空间中的线段类",{"2":{"105":1}}],["本模块定义了三维空间中的平面类",{"2":{"85":1}}],["本模块定义了三维空间中的直线类",{"2":{"57":1}}],["本模块定义了三维空间中点的类",{"2":{"76":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"33":1}}],["本模块定义了角度相关的类",{"2":{"1":1}}],["本模块是主模块",{"2":{"0":1}}],["l2",{"0":{"98":1},"2":{"98":4}}],["l1",{"0":{"98":1},"2":{"98":6}}],["lambda",{"2":{"66":3}}],["linalg",{"2":{"91":3}}],["lines",{"0":{"98":1},"2":{"63":2,"98":1}}],["line",{"0":{"57":1,"99":2},"1":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1},"2":{"92":1,"99":4}}],["line3",{"0":{"58":1,"60":1,"61":1,"62":1,"63":1,"64":1,"67":1,"68":1,"69":1,"71":1,"73":1,"74":2,"89":1,"91":2,"92":1,"98":2,"99":1,"100":1,"101":1,"104":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1},"2":{"38":1,"60":2,"61":2,"62":3,"63":2,"64":3,"67":2,"68":2,"69":2,"71":2,"73":2,"74":4,"75":1,"89":3,"91":4,"92":2,"98":4,"99":2,"100":1,"101":1,"102":4,"104":1,"112":1}}],["list",{"2":{"37":8,"155":9}}],["length",{"0":{"128":1},"2":{"62":5,"63":1,"89":2,"107":2,"122":2,"124":1,"126":5,"128":1,"129":1,"130":1}}],["len",{"2":{"36":1}}],["无效变量类型",{"2":{"37":1}}],["抛出",{"2":{"37":1,"62":1,"63":1,"89":1,"90":1,"91":1,"92":1,"102":1}}],["偏导函数",{"2":{"37":1}}],["偏移量",{"2":{"31":1,"37":1}}],["高阶偏导",{"2":{"37":1}}],["因此该函数的稳定性有待提升",{"2":{"37":1}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"37":1}}],["目标点",{"2":{"36":1}}],["warning",{"2":{"37":1}}],["慎用",{"2":{"37":1}}],["num",{"2":{"155":5}}],["numpy数组",{"2":{"127":1}}],["number=epsilon",{"2":{"37":1}}],["number",{"0":{"37":1,"41":1},"2":{"43":1}}],["ndarray",{"0":{"127":1},"2":{"127":2}}],["neg",{"0":{"116":1,"117":1},"2":{"116":3,"117":3,"146":1}}],["negative",{"0":{"9":1},"2":{"9":1}}],["ne",{"0":{"114":1},"2":{"114":1}}],["np",{"0":{"127":2},"2":{"91":9,"127":4,"155":9}}],["n",{"2":{"89":1}}],["n⋅d|n|⋅|d|",{"2":{"89":1}}],["n2",{"2":{"89":1}}],["n1",{"2":{"89":1}}],["n1⋅n2|n1|⋅|n2|",{"2":{"89":1}}],["no",{"2":{"91":1}}],["normal",{"0":{"95":1,"96":2},"2":{"89":5,"91":4,"92":1,"93":2,"94":2,"95":1,"96":6,"97":3,"98":1,"99":1,"102":3}}],["normalize",{"0":{"126":1},"2":{"72":1,"126":1}}],["none",{"0":{"74":1,"100":1,"101":1},"2":{"74":3,"100":1,"101":1,"102":3}}],["not",{"2":{"62":1,"63":4,"74":1,"114":1,"116":1,"117":1}}],["n元函数",{"2":{"37":1}}],["计算平行于该平面且过指定点的平面",{"2":{"93":1}}],["计算平面与直线的交点",{"2":{"92":1}}],["计算平面与平面或点之间的距离",{"2":{"90":1}}],["计算平面与平面之间的夹角",{"2":{"89":1}}],["计算两个向量之间的夹角",{"2":{"122":1}}],["计算两平面交线的一般步骤",{"2":{"91":1}}],["计算两平面的交线",{"2":{"91":1}}],["计算两条直线点集合的交集",{"2":{"74":1}}],["计算两条直线的交点",{"2":{"63":1}}],["计算直线经过指定点p的垂线",{"2":{"64":1}}],["计算直线和直线或点之间的距离",{"2":{"62":1}}],["计算直线和直线之间的夹角",{"2":{"61":1}}],["计算曲线上的点",{"2":{"36":1}}],["计算三元函数在某点的梯度向量",{"2":{"31":1}}],["|",{"0":{"36":1,"37":1,"62":1,"74":2,"89":1,"90":1,"100":1,"101":1,"142":2},"2":{"36":1,"37":1,"40":1,"41":1,"44":1,"47":1,"50":1,"53":1,"56":1,"62":2,"74":4,"82":1,"89":2,"90":2,"100":1,"101":1,"102":3,"133":2,"138":2,"142":3}}],["曲线方程",{"2":{"35":1,"38":1}}],["6",{"2":{"32":1}}],["3维向量",{"2":{"120":1}}],["3",{"2":{"32":1}}],["3vf",{"0":{"31":1},"2":{"31":1}}],["breaking",{"2":{"157":1}}],["by",{"2":{"87":1}}],["bound=iterable",{"2":{"43":1}}],["bound=number",{"2":{"42":1}}],["bool=false",{"2":{"4":1,"116":1,"117":1}}],["bool",{"0":{"4":1,"60":1,"67":1,"68":1,"69":1,"70":1,"71":1,"75":1,"79":1,"88":1,"94":1,"103":1,"115":1,"116":1,"117":1,"121":1,"124":1,"125":1},"2":{"60":2,"67":2,"68":2,"69":2,"70":2,"71":2,"75":2,"79":2,"83":1,"88":2,"94":2,"103":2,"115":2,"116":1,"117":1,"121":2,"124":2,"125":2,"134":1}}],["b",{"0":{"87":1},"2":{"32":2,"87":4,"88":7,"90":2,"91":12,"92":2,"95":1,"96":3}}],["範例",{"2":{"32":1}}],["柯里化后的函数",{"2":{"32":1}}],["柯理化",{"2":{"32":1}}],["参数方程",{"2":{"66":1}}],["参数t",{"2":{"65":1}}],["参数",{"2":{"32":1,"36":1}}],["函数",{"2":{"32":1}}],["可愛くてごめん",{"2":{"157":1}}],["可直接从mbcp",{"2":{"38":1}}],["可为整数",{"2":{"37":1}}],["可参考函数式编程",{"2":{"32":1}}],["可导入",{"2":{"0":1}}],["对多参数函数进行柯里化",{"2":{"32":1}}],["d=n1×n2",{"2":{"91":1}}],["d",{"0":{"87":1},"2":{"87":5,"88":6,"89":1,"90":1,"91":6,"92":1,"96":2}}],["documentation",{"2":{"159":1}}],["do",{"2":{"63":2}}],["distance",{"0":{"62":1,"90":1},"2":{"62":1,"90":1}}],["direction",{"0":{"59":1},"2":{"59":4,"60":1,"61":2,"62":8,"63":6,"64":1,"65":1,"66":3,"67":2,"68":2,"69":1,"70":1,"71":2,"72":4,"73":2,"75":3,"89":1,"91":2,"92":4,"98":1,"99":1,"102":1,"107":2}}],["dz",{"2":{"31":2}}],["dy",{"2":{"31":2}}],["dx",{"2":{"31":2}}],["density",{"0":{"155":1},"2":{"155":3}}],["derivative",{"0":{"37":1},"2":{"37":6}}],["degree",{"0":{"7":1},"2":{"7":1}}],["def",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"32":1,"37":2,"73":1,"80":1,"81":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"155":1}}],["梯度",{"2":{"31":1}}],["点乘结果",{"2":{"144":1}}],["点乘",{"2":{"144":1}}],["点乘使用",{"2":{"142":1}}],["点3",{"2":{"97":1}}],["点法式构造",{"2":{"96":1}}],["点2",{"2":{"73":1,"97":1}}],["点1",{"2":{"73":1,"97":1}}],["点",{"2":{"31":1,"65":1,"70":1}}],["∂f∂z",{"2":{"31":1}}],["∂f∂y",{"2":{"31":1}}],["∂f∂x",{"2":{"31":1}}],["∇f",{"2":{"31":1}}],["z轴单位向量",{"2":{"150":1}}],["z轴分量",{"2":{"120":1}}],["zero",{"0":{"147":1},"2":{"98":1,"125":1}}],["z=0",{"2":{"91":1}}],["z系数",{"2":{"87":1}}],["zip",{"2":{"36":1}}],["z函数",{"2":{"35":1}}],["z0",{"2":{"31":2}}],["z",{"0":{"35":1,"78":1,"120":1,"150":1},"2":{"31":7,"35":4,"36":4,"66":2,"72":3,"78":5,"79":2,"82":2,"83":2,"84":2,"90":1,"91":4,"92":4,"96":2,"107":2,"112":2,"120":4,"121":2,"123":4,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["y轴单位向量",{"2":{"149":1}}],["y轴分量",{"2":{"120":1}}],["y=0",{"2":{"91":1}}],["y系数",{"2":{"87":1}}],["y函数",{"2":{"35":1}}],["y0",{"2":{"31":2}}],["y",{"0":{"35":1,"78":1,"115":1,"120":1,"149":1},"2":{"31":7,"35":4,"36":4,"66":2,"72":3,"78":5,"79":2,"82":2,"83":2,"84":2,"90":1,"91":4,"92":4,"96":2,"107":2,"112":2,"115":3,"120":4,"121":2,"123":4,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["x轴单位向量",{"2":{"148":1}}],["x轴分量",{"2":{"120":1}}],["x26",{"2":{"102":1}}],["x−x0m=y−y0n=z−z0p",{"2":{"91":1}}],["x=x0+dty=y0+dtz=z0+dt或",{"2":{"91":1}}],["x系数",{"2":{"87":1}}],["x3c",{"2":{"79":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x函数",{"2":{"35":1}}],["x0",{"2":{"31":2}}],["x",{"0":{"35":1,"78":1,"109":1,"115":1,"116":1,"117":1,"120":1,"148":1},"2":{"31":7,"35":4,"36":4,"66":2,"72":2,"78":5,"79":2,"82":2,"83":2,"84":2,"90":1,"91":4,"92":4,"96":2,"107":2,"109":3,"112":2,"115":3,"116":4,"117":7,"120":4,"121":2,"123":5,"126":1,"127":1,"128":1,"133":4,"134":2,"135":2,"138":4,"139":2,"142":3,"144":2,"145":1,"146":1,"155":2}}],["v3",{"2":{"123":1}}],["vector",{"0":{"118":1},"1":{"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"84":1}}],["vector3",{"0":{"31":1,"59":1,"80":1,"84":1,"95":1,"96":1,"119":1,"121":1,"122":1,"123":2,"124":1,"125":1,"129":1,"131":2,"136":2,"140":2,"141":1,"142":2,"143":1,"144":1,"145":1,"146":1,"147":1},"1":{"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"31":2,"38":1,"59":2,"80":1,"82":1,"84":5,"95":3,"96":2,"98":1,"112":2,"121":2,"122":2,"123":5,"124":2,"125":3,"129":2,"131":2,"133":5,"134":1,"136":2,"138":5,"139":1,"140":2,"141":1,"142":8,"143":1,"144":2,"145":2,"146":3,"147":2,"148":2,"149":2,"150":2}}],["v2",{"2":{"75":1,"97":2,"98":4,"123":1}}],["v1x⋅v2y−v1y⋅v2x",{"2":{"123":1}}],["v1z⋅v2x−v1x⋅v2z",{"2":{"123":1}}],["v1y⋅v2z−v1z⋅v2y",{"2":{"123":1}}],["v1×v2=|ijkv1xv1yv1zv2xv2yv2z|",{"2":{"123":1}}],["v1×v2=",{"2":{"123":1}}],["v1⋅v2|v1|⋅|v2|",{"2":{"122":1}}],["v1",{"2":{"75":2,"97":2,"98":2,"123":1}}],["v",{"2":{"37":2,"82":1,"84":2,"133":4,"135":1,"138":4,"139":1}}],["var",{"0":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"32":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":2,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"147":1,"148":1,"149":1,"150":1},"2":{"32":4,"36":1,"37":12}}],["valueerror",{"2":{"37":2,"63":4,"91":2,"92":2}}],["value",{"0":{"4":1,"111":1},"2":{"4":4,"111":4,"112":6,"113":1}}],["约等于判定误差",{"2":{"29":1}}],["精度误差",{"2":{"28":1}}],["06",{"0":{"67":1},"2":{"67":1}}],["001",{"2":{"29":1}}],["0001",{"2":{"28":1}}],["0",{"0":{"115":2},"2":{"27":1,"28":1,"29":1,"36":3,"62":2,"71":1,"72":7,"87":1,"88":3,"90":2,"91":9,"92":1,"102":1,"115":1,"116":2,"117":3,"147":3,"148":2,"149":2,"150":2,"155":2}}],["欧拉常数",{"2":{"27":1}}],["5772156649015329",{"2":{"27":1}}],["5",{"2":{"26":1,"90":1}}],["黄金分割比",{"2":{"26":1}}],["geometricmodels",{"0":{"154":1},"1":{"155":1}}],["get",{"0":{"37":1,"65":1,"66":1},"2":{"37":2,"65":1,"66":1,"92":1,"98":1}}],["gradient",{"0":{"31":1},"2":{"31":1}}],["gamma",{"0":{"27":1}}],["golden",{"0":{"26":1}}],["gt",{"0":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"31":1,"32":1,"36":1,"37":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":1,"75":1,"79":1,"80":1,"81":1,"84":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"103":1,"104":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"82":2,"84":2,"117":3,"123":1,"133":2,"135":1,"138":2,"139":1}}],["默認值",{"2":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"147":1,"148":1,"149":1,"150":1}}],["默认为否",{"2":{"4":1}}],["π",{"2":{"24":1}}],["to",{"2":{"159":1}}],["theta",{"2":{"155":3}}],["the",{"2":{"92":2,"159":1}}],["three",{"0":{"97":1},"2":{"97":1}}],["threevarsfunc",{"0":{"53":1}}],["threearraysfunc",{"0":{"52":1},"2":{"53":1}}],["threesinglevarsfunc",{"0":{"31":1,"51":1},"2":{"31":2,"53":1}}],["two",{"0":{"73":1,"98":1},"2":{"73":1,"98":1}}],["twovarsfunc",{"0":{"50":1}}],["twoarraysfunc",{"0":{"49":1},"2":{"50":1}}],["twosinglevarsfunc",{"0":{"48":1},"2":{"50":1}}],["typing",{"0":{"39":1},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1}}],["typeerror",{"2":{"62":2,"89":2,"90":2,"102":2,"113":1,"133":1,"138":1,"139":1,"142":1}}],["typevar",{"2":{"42":1,"43":1}}],["typealias",{"2":{"40":1,"41":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1}}],["type",{"0":{"113":1},"2":{"37":1,"62":1,"89":2,"90":2,"102":2,"112":2,"113":4,"133":2,"138":2,"139":2,"142":2}}],["tuple",{"0":{"36":1,"37":1,"66":1},"2":{"36":2,"37":2,"66":2}}],["t",{"0":{"36":1,"65":1},"2":{"36":9,"65":3,"66":6,"92":4}}],["tip",{"2":{"31":1,"32":1,"89":2,"91":1,"122":1,"123":1}}],["truediv",{"2":{"20":1,"21":1,"22":1,"145":1}}],["tan",{"0":{"12":1},"2":{"12":2,"13":1}}],["operand",{"2":{"102":1,"133":1,"138":1,"139":1,"142":1}}],["or",{"2":{"74":1,"92":1}}],["order",{"2":{"37":2}}],["only",{"0":{"116":1,"117":1},"2":{"116":3,"117":3}}],["on",{"0":{"70":1},"2":{"70":1}}],["one",{"2":{"157":1}}],["onearrayfunc",{"0":{"46":1},"2":{"47":1}}],["onesinglevarfunc",{"0":{"45":1,"66":3},"2":{"47":1,"66":6}}],["onevarfunc",{"0":{"32":1,"35":3,"47":1},"2":{"32":1,"35":6}}],["overload",{"2":{"19":1,"20":2,"21":1,"79":1,"80":2,"81":1,"99":1,"100":2,"101":1,"130":1,"131":2,"132":1,"135":1,"136":2,"137":1,"139":1,"140":2,"141":1}}],["other",{"0":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"60":1,"61":1,"62":1,"63":1,"67":1,"68":1,"69":1,"71":1,"74":1,"75":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"88":1,"89":1,"90":1,"91":1,"92":1,"94":1,"100":1,"101":1,"102":1,"103":1,"104":1,"112":1,"113":1,"114":1,"121":1,"122":1,"123":1,"124":1,"125":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1},"2":{"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":4,"60":4,"61":3,"62":12,"63":8,"67":3,"68":3,"69":4,"71":4,"74":6,"75":4,"79":5,"80":1,"81":1,"82":5,"83":5,"84":5,"88":14,"89":8,"90":8,"91":16,"92":10,"94":3,"100":1,"101":1,"102":9,"103":3,"104":2,"112":9,"113":2,"114":2,"121":5,"122":4,"123":8,"124":3,"125":3,"131":1,"132":1,"133":11,"134":5,"135":5,"136":1,"137":1,"138":11,"139":7,"140":1,"141":1,"142":11,"143":2,"144":5,"145":4}}],["ep",{"2":{"157":1}}],["epsilon",{"0":{"28":1,"31":2,"37":2,"60":1,"67":1,"79":1,"115":1,"121":1,"124":1},"2":{"31":11,"37":6,"60":4,"67":3,"79":5,"115":3,"121":5,"124":3}}],["error",{"0":{"113":1},"2":{"112":2,"113":1}}],["elif",{"2":{"37":1,"62":3,"74":1,"88":2,"89":1,"90":1,"91":2,"102":1,"112":1,"116":1,"117":1,"133":1,"138":1,"142":1}}],["else",{"2":{"4":1,"36":1,"37":1,"62":2,"74":1,"88":1,"89":1,"90":1,"102":1,"112":2,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1}}],["exp",{"2":{"25":1}}],["e",{"0":{"25":1},"2":{"25":1}}],["equations",{"0":{"66":1},"2":{"66":1,"92":1}}],["equation",{"0":{"33":1},"1":{"34":1,"35":1,"36":1,"37":1}}],["eq",{"0":{"17":1,"75":1,"83":1,"103":1,"112":1,"134":1},"2":{"17":1,"75":1,"83":1,"103":1,"112":1,"114":1,"134":1}}],["acos",{"2":{"89":1,"122":1}}],["axis",{"0":{"148":1,"149":1,"150":1}}],["ax",{"2":{"87":1}}],["all",{"2":{"79":1,"112":1,"121":1}}],["abs",{"0":{"130":1},"2":{"62":1,"79":3,"90":1,"112":1,"115":1,"117":1,"121":3,"130":1}}],["arccos",{"2":{"155":1}}],["array",{"0":{"127":1},"2":{"91":6,"127":2,"155":6}}],["arrayvar",{"0":{"43":1},"2":{"43":1,"44":1,"46":2,"49":3,"52":4,"55":1}}],["area",{"2":{"155":2}}],["are",{"2":{"63":2,"91":1,"92":1}}],["args2",{"2":{"32":2}}],["args",{"0":{"32":1},"2":{"32":3,"37":11}}],["a",{"0":{"87":1},"2":{"32":2,"87":4,"88":7,"90":2,"91":12,"92":2,"95":1,"96":3}}],["aaa",{"2":{"30":1}}],["approx",{"0":{"29":1,"60":2,"67":1,"79":2,"88":1,"110":1,"115":2,"121":2,"124":2},"1":{"111":1,"112":1,"113":1,"114":1},"2":{"17":1,"60":3,"67":2,"79":1,"83":3,"88":10,"103":1,"112":4,"115":1,"121":1,"124":1,"125":1,"134":3}}],["add",{"2":{"16":1,"32":4,"80":1,"81":1,"82":1,"131":1,"132":1,"133":1}}],["and",{"0":{"74":1,"96":1,"99":1,"100":1,"101":1,"102":1},"2":{"60":1,"63":2,"69":1,"74":1,"75":1,"83":2,"88":6,"91":4,"92":1,"93":1,"96":1,"97":1,"98":1,"99":2,"100":1,"101":1,"102":2,"113":1,"133":1,"134":2,"138":1,"139":1,"142":1}}],["anyangle",{"0":{"3":1,"5":1,"6":1,"8":1,"9":1,"16":2,"18":2,"19":1,"20":1,"21":1,"61":1,"89":1,"122":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1},"2":{"5":2,"6":2,"8":2,"9":2,"16":3,"18":3,"19":2,"20":1,"21":1,"22":2,"38":1,"61":2,"89":3,"122":3}}],["angle",{"0":{"1":1,"2":1,"3":1,"61":1,"89":1,"122":1},"1":{"2":1,"3":1,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":2},"2":{"61":2,"89":2,"122":1}}],["+1",{"2":{"117":1}}],["+=",{"2":{"37":1}}],["+",{"0":{"16":1,"80":1,"81":1,"82":1,"131":1,"132":1,"133":1,"135":1},"2":{"16":1,"26":1,"31":3,"32":2,"63":1,"65":1,"66":3,"82":5,"87":3,"90":5,"92":5,"107":3,"116":2,"117":2,"128":2,"133":9,"135":4,"144":2,"155":1}}],["1e",{"0":{"67":1}}],["1",{"2":{"13":1,"14":1,"15":1,"25":1,"26":1,"32":1,"36":1,"98":1,"117":3,"148":1,"149":1,"150":1,"155":4}}],["180",{"2":{"4":1,"7":1}}],["正割值",{"2":{"14":2}}],["正切值",{"2":{"12":2}}],["正弦值",{"2":{"10":2}}],["余割值",{"2":{"15":2}}],["余切值",{"2":{"13":2}}],["余弦值",{"2":{"11":2}}],["余角",{"2":{"5":2}}],["最佳實踐",{"0":{"156":1},"1":{"157":1}}],["最大值",{"2":{"109":1}}],["最大负角度",{"2":{"9":1}}],["最大负角",{"2":{"9":1}}],["最小值",{"2":{"109":1}}],["最小正角度",{"2":{"8":1}}],["最小正角",{"2":{"8":1}}],["弧度",{"2":{"7":1}}],["角度",{"2":{"7":1}}],["角度或弧度值",{"2":{"4":1}}],["补角",{"2":{"6":2}}],["sphere",{"0":{"155":1},"2":{"155":1}}],["stop",{"2":{"157":1}}],["staticmethod",{"2":{"154":1,"155":1}}],["str",{"0":{"116":1,"117":1},"2":{"116":2,"117":2}}],["s",{"2":{"102":1,"133":1,"138":1,"139":1,"142":1}}],["solve",{"2":{"91":3}}],["sign",{"0":{"116":1,"117":1},"2":{"116":1,"117":1}}],["simplify",{"0":{"72":1},"2":{"72":1}}],["singlevar",{"0":{"42":1},"2":{"42":1,"44":1,"45":2,"48":3,"51":4,"54":1}}],["sin",{"0":{"10":1},"2":{"10":2,"15":1,"155":3}}],["sqrt",{"2":{"26":1,"128":1,"155":1}}],["sub",{"2":{"18":1,"84":1,"136":1,"137":1,"138":1}}],["supplementary",{"0":{"6":1},"2":{"6":1}}],["segment",{"0":{"105":1},"1":{"106":1,"107":1}}],["segment3",{"0":{"106":1},"1":{"107":1},"2":{"38":1}}],["sec",{"0":{"14":1},"2":{"14":1}}],["self",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"35":1,"36":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":3,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":3,"35":4,"36":7,"59":3,"60":4,"61":2,"62":13,"63":8,"64":3,"65":3,"66":7,"67":2,"68":2,"69":4,"70":3,"71":3,"72":8,"74":6,"75":4,"78":4,"79":4,"80":1,"81":1,"82":4,"83":4,"84":4,"87":5,"88":16,"89":4,"90":8,"91":15,"92":9,"93":2,"94":2,"95":4,"100":1,"101":1,"102":5,"103":2,"104":2,"107":15,"111":2,"112":9,"113":2,"114":2,"120":4,"121":4,"122":3,"123":7,"124":2,"125":2,"126":5,"127":4,"128":4,"129":3,"130":2,"131":1,"132":1,"133":7,"134":4,"135":4,"136":1,"137":1,"138":7,"139":4,"140":1,"141":1,"142":7,"143":2,"144":4,"145":4,"146":4}}],["255万个粒子",{"2":{"157":1}}],["2",{"2":{"5":1,"8":1,"9":1,"26":1,"31":3,"32":1,"37":1,"63":1,"90":3,"107":3,"128":3,"155":2}}],["rmul",{"2":{"143":1}}],["rsub",{"2":{"139":1}}],["reference",{"0":{"159":1}}],["realnumber",{"0":{"40":1,"65":1,"111":1,"141":1,"143":1,"144":1,"145":1},"2":{"41":1,"65":2,"111":2,"141":1,"143":1,"144":1,"145":1}}],["result",{"2":{"37":4}}],["return",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"22":2,"31":1,"32":3,"36":2,"37":4,"60":1,"61":1,"62":5,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":3,"75":1,"79":1,"82":1,"83":1,"84":1,"88":4,"89":2,"90":2,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"102":4,"103":1,"104":1,"109":1,"112":2,"114":1,"115":1,"116":3,"117":3,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"130":1,"133":2,"134":1,"135":1,"138":2,"139":1,"142":2,"143":1,"144":1,"145":1,"146":1,"155":1}}],["range",{"2":{"155":2}}],["rand",{"0":{"104":1},"2":{"104":1}}],["radius",{"0":{"155":1},"2":{"155":6}}],["radian=true",{"2":{"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"89":1,"122":1}}],["radian",{"0":{"4":1},"2":{"4":5,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":2,"17":2,"18":2,"19":1,"22":3}}],["radd",{"2":{"135":1}}],["raise",{"0":{"113":1},"2":{"37":1,"62":1,"63":2,"89":1,"90":1,"91":1,"92":1,"102":1,"112":2,"113":2,"133":1,"138":1,"139":1,"142":1}}],["ratio",{"0":{"26":1}}],[">",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"31":1,"32":3,"36":1,"37":3,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":1,"75":1,"79":1,"80":1,"81":1,"84":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"103":1,"104":1,"109":1,"115":1,"116":2,"117":2,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["返回",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"31":1,"32":1,"36":1,"37":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":1,"75":1,"79":1,"82":1,"83":1,"84":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"102":1,"103":1,"109":1,"115":1,"116":1,"117":1,"121":1,"122":1,"123":1,"124":1,"125":1,"127":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"155":1}}],["can",{"2":{"157":1}}],["callable",{"2":{"45":1,"46":1,"48":1,"49":1,"51":1,"52":1,"54":1,"55":1}}],["call",{"0":{"36":1},"2":{"36":1}}],["cal",{"0":{"31":1,"61":1,"62":1,"63":1,"64":1,"89":1,"90":1,"91":1,"92":1,"93":1,"122":1},"2":{"31":1,"61":2,"62":1,"63":1,"64":1,"74":1,"89":2,"90":1,"91":1,"92":1,"93":1,"102":2,"104":1,"122":1}}],["cz",{"2":{"87":1}}],["clamp",{"0":{"109":1},"2":{"109":1,"155":1}}],["classmethod",{"2":{"72":1,"73":1,"95":1,"96":2,"97":2,"98":2,"99":1}}],["class",{"0":{"2":1,"3":1,"34":1,"58":1,"77":1,"86":1,"106":1,"110":1,"119":1,"154":1},"1":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"35":1,"36":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["cls",{"0":{"73":1,"96":1,"97":1,"98":1,"99":1},"2":{"73":2,"96":2,"97":2,"98":2,"99":2}}],["cross",{"0":{"123":1},"2":{"62":4,"63":3,"64":1,"71":1,"91":1,"97":1,"98":1,"123":1,"124":1,"125":1}}],["curveequation",{"0":{"34":1},"1":{"35":1,"36":1},"2":{"38":1}}],["curried",{"2":{"32":4}}],["currying",{"2":{"32":1}}],["curry",{"0":{"32":1},"2":{"32":2}}],["c",{"0":{"87":1},"2":{"32":2,"87":4,"88":7,"90":2,"91":6,"92":2,"95":1,"96":3}}],["csc",{"0":{"15":1},"2":{"15":1}}],["coincident",{"2":{"92":1}}],["collinear",{"0":{"69":1},"2":{"69":1,"74":1}}],["coplanar",{"0":{"71":1},"2":{"62":1,"63":2,"71":1,"74":1}}],["complex",{"2":{"41":1}}],["complementary",{"0":{"5":1},"2":{"5":1,"89":1}}],["const",{"0":{"23":1},"1":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1}}],["cot",{"0":{"13":1},"2":{"13":1}}],["cos",{"0":{"11":1},"2":{"11":2,"14":1,"155":2}}],["於github上查看",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"31":1,"32":1,"35":1,"36":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["或包装一个实数",{"2":{"115":1}}],["或整数元组",{"2":{"37":1}}],["或",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"31":1,"32":1,"35":1,"36":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["源碼",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"31":1,"32":1,"35":1,"36":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["變數説明",{"2":{"4":1,"31":1,"32":1,"35":1,"36":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"67":1,"68":1,"69":1,"70":1,"71":1,"73":1,"74":1,"75":1,"78":1,"79":1,"82":1,"83":1,"84":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"96":1,"97":1,"98":1,"99":1,"102":1,"103":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"155":1}}],["任意角度",{"2":{"4":1,"38":1}}],["説明",{"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"35":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"82":1,"83":1,"84":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"102":1,"103":1,"107":1,"109":1,"111":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"128":1,"129":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"144":1,"146":1,"147":1,"148":1,"149":1,"150":1,"155":1}}],["f",{"2":{"89":1,"90":1,"102":1,"113":1,"117":3,"133":1,"138":1,"139":1,"142":1}}],["from",{"0":{"73":1,"96":1,"97":1,"98":1,"99":1},"2":{"73":1,"84":1,"93":1,"96":1,"97":2,"98":2,"99":2,"157":1}}],["format",{"0":{"117":1},"2":{"117":1}}],["for",{"2":{"36":1,"37":1,"102":1,"133":1,"138":1,"139":1,"142":1,"155":2}}],["func",{"0":{"31":2,"32":2,"35":3,"37":3,"109":1,"115":1,"116":1,"117":1},"2":{"31":8,"32":5,"35":12,"36":6,"37":15}}],["function",{"0":{"30":1},"1":{"31":1,"32":1}}],["false",{"0":{"4":1,"116":1,"117":1},"2":{"88":1}}],["float=0",{"2":{"115":1}}],["float=1e",{"2":{"67":1}}],["float=approx",{"2":{"60":1,"79":1,"115":1,"121":1,"124":1}}],["float=epsilon",{"2":{"31":1}}],["float",{"0":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"31":1,"60":1,"62":1,"67":1,"78":3,"79":1,"87":4,"90":1,"109":4,"115":3,"116":1,"117":1,"120":3,"121":1,"124":1,"128":1,"142":1,"155":2},"2":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"40":1,"60":1,"62":2,"67":1,"78":6,"79":1,"87":8,"90":2,"109":8,"112":2,"115":4,"116":2,"117":2,"120":6,"121":1,"124":1,"128":2,"142":3,"144":1,"155":2}}],["==",{"2":{"36":1,"62":1,"71":1,"72":3,"92":1,"98":1,"102":1}}],["=",{"0":{"4":1,"16":1,"18":1,"19":1,"20":1,"21":1,"31":1,"37":1,"60":1,"67":1,"79":1,"80":1,"81":1,"84":1,"115":2,"116":1,"117":1,"121":1,"124":1,"131":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1},"2":{"4":2,"31":4,"32":1,"35":3,"37":5,"59":2,"72":3,"73":1,"78":3,"87":5,"88":6,"91":17,"92":2,"96":2,"97":3,"98":3,"107":5,"111":1,"120":3,"126":4,"155":7}}],["improve",{"2":{"159":1}}],["import",{"2":{"84":1}}],["i",{"2":{"155":4,"157":1}}],["invalid",{"2":{"37":1}}],["in",{"2":{"36":1,"37":1,"155":2}}],["intersect",{"2":{"63":2}}],["intersection",{"0":{"63":1,"91":1,"92":1},"2":{"63":1,"74":1,"91":2,"92":1,"102":2,"104":1}}],["int",{"0":{"37":2,"142":1},"2":{"32":4,"37":3,"40":1,"112":2,"142":2,"155":1}}],["init",{"0":{"4":1,"35":1,"59":1,"78":1,"87":1,"107":1,"111":1,"120":1},"2":{"4":1,"35":1,"59":1,"78":1,"87":1,"107":1,"111":1,"120":1}}],["if",{"2":{"4":1,"22":1,"36":1,"37":1,"62":2,"63":2,"72":3,"74":1,"88":1,"89":1,"90":1,"91":2,"92":1,"98":1,"102":3,"112":3,"116":2,"117":2,"133":1,"138":1,"139":1,"142":1,"157":1}}],["isinstance",{"2":{"22":1,"37":2,"62":2,"89":2,"90":2,"102":2,"112":4,"133":2,"138":2,"139":1,"142":2}}],["is",{"0":{"4":1,"67":1,"68":1,"69":1,"70":1,"71":1,"94":1,"124":1,"125":1},"2":{"4":3,"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"60":2,"62":2,"63":2,"67":2,"68":2,"69":3,"70":2,"71":1,"74":3,"75":2,"89":1,"91":1,"94":2,"102":1,"122":1,"124":1,"125":1}}],["预设",{"2":{"0":1}}],["phi",{"2":{"155":5}}],["p3",{"0":{"97":1},"2":{"97":3}}],["p2",{"0":{"73":1,"97":1,"107":1},"2":{"73":3,"75":1,"97":3,"107":8}}],["p1",{"0":{"73":1,"97":1,"107":1},"2":{"73":4,"75":1,"97":5,"107":8}}],["perpendicular",{"0":{"64":1},"2":{"64":1}}],["parametric",{"0":{"66":1},"2":{"66":1,"92":1}}],["parallel",{"0":{"67":1,"68":1,"93":1,"94":1,"124":1,"125":1},"2":{"60":2,"62":1,"63":2,"67":2,"68":2,"69":2,"70":1,"74":1,"75":2,"91":2,"92":1,"93":1,"94":2,"102":1,"124":1,"125":1}}],["partial",{"0":{"37":1},"2":{"37":6}}],["particle",{"0":{"151":1},"2":{"0":1}}],["planes",{"2":{"91":1}}],["plane",{"0":{"85":1},"1":{"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"92":1}}],["plane3",{"0":{"86":1,"88":1,"89":1,"90":1,"91":1,"93":2,"94":1,"96":1,"97":1,"98":1,"99":1,"101":1},"1":{"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"38":1,"88":2,"89":3,"90":3,"91":2,"93":4,"94":2,"96":2,"97":1,"98":1,"99":1,"101":1,"102":3,"103":1,"112":1}}],["plus",{"2":{"37":3}}],["points",{"0":{"73":1,"97":1},"2":{"73":1,"97":1}}],["point",{"0":{"59":1,"64":1,"65":1,"70":2,"76":1,"93":1,"96":2,"99":2},"1":{"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1},"2":{"59":4,"60":2,"62":5,"63":3,"64":5,"65":2,"66":3,"69":2,"70":5,"71":2,"72":3,"75":2,"92":3,"93":4,"96":6,"97":1,"98":6,"99":5}}],["point3",{"0":{"31":1,"36":2,"59":1,"62":1,"63":1,"64":1,"65":1,"70":1,"73":2,"74":1,"77":1,"79":1,"80":1,"81":2,"84":1,"90":1,"92":2,"93":1,"96":1,"97":3,"99":1,"100":1,"104":1,"107":2,"132":2,"135":2,"137":2,"139":1},"1":{"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1},"2":{"31":2,"36":4,"38":1,"59":2,"62":3,"63":2,"64":2,"65":2,"70":2,"73":4,"74":2,"79":2,"80":1,"81":2,"82":3,"83":1,"84":2,"90":3,"91":1,"92":4,"93":2,"96":2,"97":6,"99":2,"100":1,"102":2,"104":2,"107":5,"112":1,"132":2,"133":4,"135":5,"137":2,"138":4,"139":5,"155":2}}],["positive",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["p",{"0":{"31":1},"2":{"31":20,"82":5,"84":4,"133":2,"135":2,"138":2,"139":2}}],["python",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"20":1,"21":1,"73":1,"80":1,"81":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"140":1,"141":1,"155":1}}],["pythondef",{"2":{"4":1,"16":1,"17":1,"18":1,"19":1,"22":1,"31":1,"32":2,"35":1,"36":1,"37":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"74":1,"75":1,"78":1,"79":1,"82":1,"83":1,"84":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"102":1,"103":1,"104":1,"107":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"130":1,"133":1,"134":1,"135":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1}}],["property",{"2":{"4":1,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":1,"94":1,"95":1,"126":1,"127":2,"128":2,"129":1}}],["presets",{"0":{"152":1,"153":1},"1":{"154":1,"155":1},"2":{"0":1}}],["pi",{"0":{"24":1},"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"24":1,"155":2}}],["粒子生成工具",{"2":{"0":1}}],["mc特效红石音乐",{"2":{"157":1}}],["model",{"0":{"153":1},"1":{"154":1,"155":1}}],["midpoint",{"2":{"107":1}}],["minecraft",{"2":{"157":1}}],["min",{"0":{"109":1},"2":{"109":4}}],["minus",{"2":{"37":3}}],["minimum",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["multiarraysfunc",{"0":{"55":1},"2":{"56":1}}],["multisinglevarsfunc",{"0":{"54":1},"2":{"56":1}}],["multivarsfunc",{"0":{"32":1,"37":2,"56":1},"2":{"32":2,"37":3}}],["mul",{"2":{"19":1,"140":1,"141":1,"142":1,"143":1}}],["matmul",{"2":{"144":1}}],["math导入使用",{"2":{"38":1}}],["math",{"0":{"1":1,"23":1,"30":1,"33":1,"38":1,"39":2,"57":1,"76":1,"85":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"34":1,"35":1,"36":1,"37":1,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"55":2,"56":2,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"24":1,"25":1,"26":1,"89":1,"122":1,"128":1}}],["max",{"0":{"109":1},"2":{"109":4}}],["maximum",{"0":{"9":1},"2":{"9":1}}],["method",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"35":1,"36":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"107":1,"111":1,"112":1,"113":1,"114":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"155":1}}],["mp",{"0":{"1":1,"23":1,"30":1,"33":1,"38":1,"39":2,"57":1,"76":1,"85":1,"105":1,"108":1,"118":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"34":1,"35":1,"36":1,"37":1,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"55":2,"56":2,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"2":{"0":1,"38":1}}],["mbcp",{"0":{"0":1,"1":1,"23":1,"30":1,"33":1,"38":1,"39":1,"57":1,"76":1,"85":1,"105":1,"108":1,"118":1,"151":1,"152":1,"153":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"31":1,"32":1,"34":1,"35":1,"36":1,"37":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"106":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"154":1,"155":1},"2":{"0":3}}],["提供了一些工具",{"2":{"0":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/VPLocalSearchBox.DvzdawYQ.js b/assets/chunks/VPLocalSearchBox.Lyrn-94G.js similarity index 99% rename from assets/chunks/VPLocalSearchBox.DvzdawYQ.js rename to assets/chunks/VPLocalSearchBox.Lyrn-94G.js index 8016275..5c6d9fe 100644 --- a/assets/chunks/VPLocalSearchBox.DvzdawYQ.js +++ b/assets/chunks/VPLocalSearchBox.Lyrn-94G.js @@ -1,4 +1,4 @@ -var Ot=Object.defineProperty;var Rt=(a,e,t)=>e in a?Ot(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Me=(a,e,t)=>Rt(a,typeof e!="symbol"?e+"":e,t);import{X as ye,s as ne,h as ve,aj as tt,ak as Ct,al as Mt,v as $e,am as At,d as Lt,G as we,an as st,ao as Dt,ap as zt,x as Pt,aq as Vt,y as Ae,R as de,Q as _e,ar as jt,as as $t,Y as Bt,U as Wt,a1 as Kt,o as Q,b as Jt,j as x,a2 as Ut,k as D,at as qt,au as Gt,av as Qt,c as Z,n as nt,e as xe,E as it,F as rt,a as he,t as fe,aw as Ht,p as Yt,l as Zt,ax as at,ay as Xt,a8 as es,ae as ts,az as ss,_ as ns}from"./framework.DpC1ZpOZ.js";import{u as is,c as rs}from"./theme.Uf1cjNk7.js";const as={en:()=>ye(()=>import("./@localSearchIndexen.BXFpxQIZ.js"),[]),ja:()=>ye(()=>import("./@localSearchIndexja.BL-t7QiB.js"),[]),root:()=>ye(()=>import("./@localSearchIndexroot.C2iqEqiL.js"),[]),zht:()=>ye(()=>import("./@localSearchIndexzht.BMfCbOB2.js"),[])};/*! +var Ot=Object.defineProperty;var Rt=(a,e,t)=>e in a?Ot(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Me=(a,e,t)=>Rt(a,typeof e!="symbol"?e+"":e,t);import{X as ye,s as ne,h as ve,aj as tt,ak as Ct,al as Mt,v as $e,am as At,d as Lt,G as we,an as st,ao as Dt,ap as zt,x as Pt,aq as Vt,y as Ae,R as de,Q as _e,ar as jt,as as $t,Y as Bt,U as Wt,a1 as Kt,o as Q,b as Jt,j as x,a2 as Ut,k as D,at as qt,au as Gt,av as Qt,c as Z,n as nt,e as xe,E as it,F as rt,a as he,t as fe,aw as Ht,p as Yt,l as Zt,ax as at,ay as Xt,a8 as es,ae as ts,az as ss,_ as ns}from"./framework.DpC1ZpOZ.js";import{u as is,c as rs}from"./theme.4Aq0plHp.js";const as={en:()=>ye(()=>import("./@localSearchIndexen.BiKPGziK.js"),[]),ja:()=>ye(()=>import("./@localSearchIndexja.NAYqQakD.js"),[]),root:()=>ye(()=>import("./@localSearchIndexroot.DH9jnGhe.js"),[]),zht:()=>ye(()=>import("./@localSearchIndexzht.DIej9wva.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var gt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ne=gt.join(","),bt=typeof Element>"u",re=bt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,ke=!bt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},Fe=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},os=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},yt=function(e,t,s){if(Fe(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&re.call(e,Ne)&&n.unshift(e),n=n.filter(s),n},wt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!Fe(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),c=o.length?o:i.children,l=a(c,!0,s);s.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=re.call(i,Ne);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var v=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),f=!Fe(v,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(v&&f){var b=a(v===!0?i.children:v.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},_t=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ie=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||os(e))&&!_t(e)?0:e.tabIndex},cs=function(e,t){var s=ie(e);return s<0&&t&&!_t(e)?0:s},ls=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},us=function(e){return xt(e)&&e.type==="hidden"},ds=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},hs=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(re.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var c=e.parentElement,l=ke(e);if(c&&!c.shadowRoot&&n(c)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!c&&l!==e.ownerDocument?e=l.host:e=c}e=o}if(ms(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return ot(e);return!1},bs=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s=0)},ws=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,c=cs(o,i),l=i?a(n.candidates):o;c===0?i?t.push.apply(t,l):t.push(o):s.push({documentOrder:r,tabIndex:c,item:n,isScope:i,content:l})}),s.sort(ls).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},_s=function(e,t){t=t||{};var s;return t.getShadowRoot?s=wt([e],t.includeContainer,{filter:Be.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:ys}):s=yt(e,t.includeContainer,Be.bind(null,t)),ws(s)},xs=function(e,t){t=t||{};var s;return t.getShadowRoot?s=wt([e],t.includeContainer,{filter:Oe.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=yt(e,t.includeContainer,Oe.bind(null,t)),s},ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,Ne)===!1?!1:Be(t,e)},Ss=gt.concat("iframe").join(","),Le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,Ss)===!1?!1:Oe(t,e)};/*! diff --git a/assets/chunks/theme.Uf1cjNk7.js b/assets/chunks/theme.4Aq0plHp.js similarity index 99% rename from assets/chunks/theme.Uf1cjNk7.js rename to assets/chunks/theme.4Aq0plHp.js index e385464..60774e7 100644 --- a/assets/chunks/theme.Uf1cjNk7.js +++ b/assets/chunks/theme.4Aq0plHp.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.DvzdawYQ.js","assets/chunks/framework.DpC1ZpOZ.js"])))=>i.map(i=>d[i]); -import{d as _,o as a,c,r as l,n as N,a as O,t as I,b as k,w as d,e as f,T as ve,_ as b,u as Ge,i as Ue,f as je,g as pe,h as y,j as v,k as r,p as C,l as H,m as K,q as ie,s as w,v as G,x as Z,y as W,z as he,A as fe,B as ze,C as qe,D as R,F as M,E,G as Pe,H as x,I as m,J as F,K as Ve,L as ee,M as q,N as te,O as Ke,P as Le,Q as le,R as We,S as Se,U as oe,V as Re,W as Je,X as Xe,Y as Te,Z as Ie,$ as Ye,a0 as Qe,a1 as Ze,a2 as xe,a3 as et}from"./framework.DpC1ZpOZ.js";const tt=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),c("span",{class:N(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[O(I(e.text),1)])],2))}}),ot={key:0,class:"VPBackdrop"},nt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),k(ve,{name:"fade"},{default:d(()=>[e.show?(a(),c("div",ot)):f("",!0)]),_:1}))}}),st=b(nt,[["__scopeId","data-v-daa1937f"]]),P=Ge;function at(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ce(o){return/^\//.test(o)?o:`/${o}`}function _e(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(Ue(o)||o.startsWith("#")||!n.startsWith("http")||!je(e))return o;const{site:i}=P(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return pe(u)}function X({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:s,theme:n,hash:i}=P(),u=y(()=>{var p,g;return{label:(p=e.value.locales[t.value])==null?void 0:p.label,link:((g=e.value.locales[t.value])==null?void 0:g.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([p,g])=>u.value.label===g.label?[]:{text:g.label,link:rt(g.link||(p==="root"?"/":`/${p}/`),n.value.i18nRouting!==!1&&o,s.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:u}}function rt(o,e,t,s){return e?o.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const it=o=>(C("data-v-2aa14331"),o=o(),H(),o),lt={class:"NotFound"},ct={class:"code"},ut={class:"title"},dt=it(()=>v("div",{class:"divider"},null,-1)),vt={class:"quote"},pt={class:"action"},ht=["href","aria-label"],ft=_({__name:"NotFound",setup(o){const{theme:e}=P(),{currentLang:t}=X();return(s,n)=>{var i,u,h,p,g;return a(),c("div",lt,[v("p",ct,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),v("h1",ut,I(((u=r(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),dt,v("blockquote",vt,I(((h=r(e).notFound)==null?void 0:h.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",pt,[v("a",{class:"link",href:r(pe)(r(t).link),"aria-label":((p=r(e).notFound)==null?void 0:p.linkLabel)??"go to home"},I(((g=r(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,ht)])])}}}),_t=b(ft,[["__scopeId","data-v-2aa14331"]]);function we(o,e){if(Array.isArray(o))return Y(o);if(o==null)return[];e=ce(e);const t=Object.keys(o).sort((n,i)=>i.split("/").length-n.split("/").length).find(n=>e.startsWith(ce(n))),s=t?o[t]:[];return Array.isArray(s)?Y(s):Y(s.items,s.base)}function mt(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function kt(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ue(o,e){return Array.isArray(e)?e.some(t=>ue(o,t)):K(o,e.link)?!0:e.items?ue(o,e.items):!1}function Y(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=Y(s.items,n)),s})}function U(){const{frontmatter:o,page:e,theme:t}=P(),s=ie("(min-width: 960px)"),n=w(!1),i=y(()=>{const B=t.value.sidebar,S=e.value.relativePath;return B?we(B,S):[]}),u=w(i.value);G(i,(B,S)=>{JSON.stringify(B)!==JSON.stringify(S)&&(u.value=i.value)});const h=y(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),p=y(()=>g?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),g=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),L=y(()=>h.value&&s.value),$=y(()=>h.value?mt(u.value):[]);function V(){n.value=!0}function T(){n.value=!1}function A(){n.value?T():V()}return{isOpen:n,sidebar:u,sidebarGroups:$,hasSidebar:h,hasAside:g,leftAside:p,isSidebarEnabled:L,open:V,close:T,toggle:A}}function $t(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),W(()=>{window.addEventListener("keyup",s)}),he(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function bt(o){const{page:e,hash:t}=P(),s=w(!1),n=y(()=>o.value.collapsed!=null),i=y(()=>!!o.value.link),u=w(!1),h=()=>{u.value=K(e.value.relativePath,o.value.link)};G([e,o,t],h),W(h);const p=y(()=>u.value?!0:o.value.items?ue(e.value.relativePath,o.value.items):!1),g=y(()=>!!(o.value.items&&o.value.items.length));Z(()=>{s.value=!!(n.value&&o.value.collapsed)}),fe(()=>{(u.value||p.value)&&(s.value=!1)});function L(){n.value&&(s.value=!s.value)}return{collapsed:s,collapsible:n,isLink:i,isActiveLink:u,hasActiveLink:p,hasChildren:g,toggle:L}}function gt(){const{hasSidebar:o}=U(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const de=[];function Ne(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function me(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:yt(t),link:"#"+t.id,level:s}});return Pt(e,o)}function yt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Pt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=s&&u.level<=n),de.length=0;for(const{element:u,link:h}of o)de.push({element:u,link:h});const i=[];e:for(let u=0;u=0;p--){const g=o[p];if(g.level{requestAnimationFrame(i),window.addEventListener("scroll",s)}),ze(()=>{u(location.hash)}),he(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const h=window.scrollY,p=window.innerHeight,g=document.body.offsetHeight,L=Math.abs(h+p-g)<1,$=de.map(({element:T,link:A})=>({link:A,top:Lt(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,A)=>T.top-A.top);if(!$.length){u(null);return}if(h<1){u(null);return}if(L){u($[$.length-1].link);return}let V=null;for(const{link:T,top:A}of $){if(A>h+qe()+4)break;V=T}u(V)}function u(h){n&&n.classList.remove("active"),h==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const p=n;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Lt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const St=["href","title"],Tt=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const s=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(s));n==null||n.focus({preventScroll:!0})}return(t,s)=>{const n=R("VPDocOutlineItem",!0);return a(),c("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),c(M,null,E(t.headers,({children:i,link:u,title:h})=>(a(),c("li",null,[v("a",{class:"outline-link",href:u,onClick:e,title:h},I(h),9,St),i!=null&&i.length?(a(),k(n,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Me=b(Tt,[["__scopeId","data-v-b9c884bb"]]),It={class:"content"},wt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Nt=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=P(),s=Pe([]);x(()=>{s.value=me(e.value.outline??t.value.outline)});const n=w(),i=w();return Vt(n,i),(u,h)=>(a(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n},[v("div",It,[v("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),v("div",wt,I(r(Ne)(r(t))),1),m(Me,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),Mt=b(Nt,[["__scopeId","data-v-d34649dc"]]),At={class:"VPDocAsideCarbonAds"},Bt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),c("div",At,[m(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ct=o=>(C("data-v-8951c20f"),o=o(),H(),o),Ht={class:"VPDocAside"},Et=Ct(()=>v("div",{class:"spacer"},null,-1)),Ft=_({__name:"VPDocAside",setup(o){const{theme:e}=P();return(t,s)=>(a(),c("div",Ht,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),m(Mt),l(t.$slots,"aside-outline-after",{},void 0,!0),Et,l(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),k(Bt,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Dt=b(Ft,[["__scopeId","data-v-8951c20f"]]);function Ot(){const{theme:o,page:e}=P();return y(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Gt(){const{page:o,theme:e,frontmatter:t}=P();return y(()=>{var g,L,$,V,T,A,B,S;const s=we(e.value.sidebar,o.value.relativePath),n=kt(s),i=Ut(n,j=>j.link.replace(/[?#].*$/,"")),u=i.findIndex(j=>K(o.value.relativePath,j.link)),h=((g=e.value.docFooter)==null?void 0:g.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:h?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??(($=i[u-1])==null?void 0:$.docFooterText)??((V=i[u-1])==null?void 0:V.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((T=i[u-1])==null?void 0:T.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[u+1])==null?void 0:A.docFooterText)??((B=i[u+1])==null?void 0:B.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=i[u+1])==null?void 0:S.link)}}})}function Ut(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const D=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&Ve.test(e.href)||e.target==="_blank");return(n,i)=>(a(),k(F(t.value),{class:N(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?r(_e)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:d(()=>[l(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),jt={class:"VPLastUpdated"},zt=["datetime"],qt=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:s}=P(),n=y(()=>new Date(t.value.lastUpdated)),i=y(()=>n.value.toISOString()),u=w("");return W(()=>{Z(()=>{var h,p,g;u.value=new Intl.DateTimeFormat((p=(h=e.value.lastUpdated)==null?void 0:h.formatOptions)!=null&&p.forceLocale?s.value:void 0,((g=e.value.lastUpdated)==null?void 0:g.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(h,p)=>{var g;return a(),c("p",jt,[O(I(((g=r(e).lastUpdated)==null?void 0:g.text)||r(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:i.value},I(u.value),9,zt)])}}}),Kt=b(qt,[["__scopeId","data-v-19bf19fb"]]),Ae=o=>(C("data-v-28deee4a"),o=o(),H(),o),Wt={key:0,class:"VPDocFooter"},Rt={key:0,class:"edit-info"},Jt={key:0,class:"edit-link"},Xt=Ae(()=>v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Yt={key:1,class:"last-updated"},Qt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Zt=Ae(()=>v("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),xt={class:"pager"},eo=["innerHTML"],to=["innerHTML"],oo={class:"pager"},no=["innerHTML"],so=["innerHTML"],ao=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=P(),n=Ot(),i=Gt(),u=y(()=>e.value.editLink&&s.value.editLink!==!1),h=y(()=>t.value.lastUpdated),p=y(()=>u.value||h.value||i.value.prev||i.value.next);return(g,L)=>{var $,V,T,A;return p.value?(a(),c("footer",Wt,[l(g.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(a(),c("div",Rt,[u.value?(a(),c("div",Jt,[m(D,{class:"edit-link-button",href:r(n).url,"no-icon":!0},{default:d(()=>[Xt,O(" "+I(r(n).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),c("div",Yt,[m(Kt)])):f("",!0)])):f("",!0),($=r(i).prev)!=null&&$.link||(V=r(i).next)!=null&&V.link?(a(),c("nav",Qt,[Zt,v("div",xt,[(T=r(i).prev)!=null&&T.link?(a(),k(D,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:d(()=>{var B;return[v("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.prev)||"Previous page"},null,8,eo),v("span",{class:"title",innerHTML:r(i).prev.text},null,8,to)]}),_:1},8,["href"])):f("",!0)]),v("div",oo,[(A=r(i).next)!=null&&A.link?(a(),k(D,{key:0,class:"pager-link next",href:r(i).next.link},{default:d(()=>{var B;return[v("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.next)||"Next page"},null,8,no),v("span",{class:"title",innerHTML:r(i).next.text},null,8,so)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),ro=b(ao,[["__scopeId","data-v-28deee4a"]]),io=o=>(C("data-v-01c90815"),o=o(),H(),o),lo={class:"container"},co=io(()=>v("div",{class:"aside-curtain"},null,-1)),uo={class:"aside-container"},vo={class:"aside-content"},po={class:"content"},ho={class:"content-container"},fo={class:"main"},_o=_({__name:"VPDoc",setup(o){const{theme:e}=P(),t=ee(),{hasSidebar:s,hasAside:n,leftAside:i}=U(),u=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,p)=>{const g=R("Content");return a(),c("div",{class:N(["VPDoc",{"has-sidebar":r(s),"has-aside":r(n)}])},[l(h.$slots,"doc-top",{},void 0,!0),v("div",lo,[r(n)?(a(),c("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[co,v("div",uo,[v("div",vo,[m(Dt,null,{"aside-top":d(()=>[l(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),v("div",po,[v("div",ho,[l(h.$slots,"doc-before",{},void 0,!0),v("main",fo,[m(g,{class:N(["vp-doc",[u.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),m(ro,null,{"doc-footer-before":d(()=>[l(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(h.$slots,"doc-after",{},void 0,!0)])])]),l(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),mo=b(_o,[["__scopeId","data-v-01c90815"]]),ko=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Ve.test(e.href)),s=y(()=>e.tag||e.href?"a":"button");return(n,i)=>(a(),k(F(s.value),{class:N(["VPButton",[n.size,n.theme]]),href:n.href?r(_e)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:d(()=>[O(I(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),$o=b(ko,[["__scopeId","data-v-f549f0f3"]]),bo=["src","alt"],go=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=R("VPImage",!0);return e.image?(a(),c(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",q({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,bo)):(a(),c(M,{key:1},[m(s,q({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),m(s,q({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),Q=b(go,[["__scopeId","data-v-cc63e071"]]),yo=o=>(C("data-v-e302b8ce"),o=o(),H(),o),Po={class:"container"},Vo={class:"main"},Lo={key:0,class:"name"},So=["innerHTML"],To=["innerHTML"],Io=["innerHTML"],wo={key:0,class:"actions"},No={key:0,class:"image"},Mo={class:"image-container"},Ao=yo(()=>v("div",{class:"image-bg"},null,-1)),Bo=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=te("hero-image-slot-exists");return(t,s)=>(a(),c("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[v("div",Po,[v("div",Vo,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(a(),c("h1",Lo,[v("span",{innerHTML:t.name,class:"clip"},null,8,So)])):f("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,To)):f("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Io)):f("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),c("div",wo,[(a(!0),c(M,null,E(t.actions,n=>(a(),c("div",{key:n.link,class:"action"},[m($o,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),c("div",No,[v("div",Mo,[Ao,l(t.$slots,"home-hero-image",{},()=>[t.image?(a(),k(Q,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Co=b(Bo,[["__scopeId","data-v-e302b8ce"]]),Ho=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=P();return(t,s)=>r(e).hero?(a(),k(Co,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Eo=o=>(C("data-v-f77e80b4"),o=o(),H(),o),Fo={class:"box"},Do={key:0,class:"icon"},Oo=["innerHTML"],Go=["innerHTML"],Uo=["innerHTML"],jo={key:4,class:"link-text"},zo={class:"link-text-value"},qo=Eo(()=>v("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),Ko=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),k(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:d(()=>[v("article",Fo,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",Do,[m(Q,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),k(Q,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Oo)):f("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,Go),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Uo)):f("",!0),e.linkText?(a(),c("div",jo,[v("p",zo,[O(I(e.linkText)+" ",1),qo])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Wo=b(Ko,[["__scopeId","data-v-f77e80b4"]]),Ro={key:0,class:"VPFeatures"},Jo={class:"container"},Xo={class:"items"},Yo=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),c("div",Ro,[v("div",Jo,[v("div",Xo,[(a(!0),c(M,null,E(s.features,i=>(a(),c("div",{key:i.title,class:N(["item",[t.value]])},[m(Wo,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),Qo=b(Yo,[["__scopeId","data-v-8e833103"]]),Zo=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=P();return(t,s)=>r(e).features?(a(),k(Qo,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),xo=_({__name:"VPHomeContent",setup(o){const{width:e}=Ke({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),c("div",{class:"vp-doc container",style:Le(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),en=b(xo,[["__scopeId","data-v-90605523"]]),tn={class:"VPHome"},on=_({__name:"VPHome",setup(o){const{frontmatter:e}=P();return(t,s)=>{const n=R("Content");return a(),c("div",tn,[l(t.$slots,"home-hero-before",{},void 0,!0),m(Ho,null,{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),m(Zo),l(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),k(en,{key:0},{default:d(()=>[m(n)]),_:1})):(a(),k(n,{key:1}))])}}}),nn=b(on,[["__scopeId","data-v-55977d12"]]),sn={},an={class:"VPPage"};function rn(o,e){const t=R("Content");return a(),c("div",an,[l(o.$slots,"page-top"),m(t),l(o.$slots,"page-bottom")])}const ln=b(sn,[["render",rn]]),cn=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=P(),{hasSidebar:s}=U();return(n,i)=>(a(),c("div",{class:N(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?l(n.$slots,"not-found",{key:0},()=>[m(_t)],!0):r(t).layout==="page"?(a(),k(ln,{key:1},{"page-top":d(()=>[l(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),k(nn,{key:2},{"home-hero-before":d(()=>[l(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),k(F(r(t).layout),{key:3})):(a(),k(mo,{key:4},{"doc-top":d(()=>[l(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":d(()=>[l(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":d(()=>[l(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":d(()=>[l(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":d(()=>[l(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),un=b(cn,[["__scopeId","data-v-fc04087f"]]),dn={class:"container"},vn=["innerHTML"],pn=["innerHTML"],hn=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=U();return(n,i)=>r(e).footer&&r(t).footer!==!1?(a(),c("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(s)}])},[v("div",dn,[r(e).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,vn)):f("",!0),r(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,pn)):f("",!0)])],2)):f("",!0)}}),fn=b(hn,[["__scopeId","data-v-d69bcf5d"]]);function _n(){const{theme:o,frontmatter:e}=P(),t=Pe([]),s=y(()=>t.value.length>0);return x(()=>{t.value=me(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const mn=o=>(C("data-v-9dd5e197"),o=o(),H(),o),kn={class:"menu-text"},$n=mn(()=>v("span",{class:"vpi-chevron-right icon"},null,-1)),bn={class:"header"},gn={class:"outline"},yn=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=P(),s=w(!1),n=w(0),i=w(),u=w();function h($){var V;(V=i.value)!=null&&V.contains($.target)||(s.value=!1)}G(s,$=>{if($){document.addEventListener("click",h);return}document.removeEventListener("click",h)}),le("Escape",()=>{s.value=!1}),x(()=>{s.value=!1});function p(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g($){$.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),We(()=>{s.value=!1}))}function L(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return($,V)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:Le({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[$.headers.length>0?(a(),c("button",{key:0,onClick:p,class:N({open:s.value})},[v("span",kn,I(r(Ne)(r(t))),1),$n],2)):(a(),c("button",{key:1,onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)),m(ve,{name:"flyout"},{default:d(()=>[s.value?(a(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:g},[v("div",bn,[v("a",{class:"top-link",href:"#",onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)]),v("div",gn,[m(Me,{headers:$.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),Pn=b(yn,[["__scopeId","data-v-9dd5e197"]]),Vn=o=>(C("data-v-9c649187"),o=o(),H(),o),Ln={class:"container"},Sn=["aria-expanded"],Tn=Vn(()=>v("span",{class:"vpi-align-left menu-icon"},null,-1)),In={class:"menu-text"},wn=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=U(),{headers:n}=_n(),{y:i}=Se(),u=w(0);W(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{n.value=me(t.value.outline??e.value.outline)});const h=y(()=>n.value.length===0),p=y(()=>h.value&&!s.value),g=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:h.value,fixed:p.value}));return(L,$)=>r(t).layout!=="home"&&(!p.value||r(i)>=u.value)?(a(),c("div",{key:0,class:N(g.value)},[v("div",Ln,[r(s)?(a(),c("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:$[0]||($[0]=V=>L.$emit("open-menu"))},[Tn,v("span",In,I(r(e).sidebarMenuLabel||"Menu"),1)],8,Sn)):f("",!0),m(Pn,{headers:r(n),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Nn=b(wn,[["__scopeId","data-v-9c649187"]]);function Mn(){const o=w(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const i=ee();return G(()=>i.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const An={},Bn={class:"VPSwitch",type:"button",role:"switch"},Cn={class:"check"},Hn={key:0,class:"icon"};function En(o,e){return a(),c("button",Bn,[v("span",Cn,[o.$slots.default?(a(),c("span",Hn,[l(o.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Fn=b(An,[["render",En],["__scopeId","data-v-846fe538"]]),Be=o=>(C("data-v-3125216b"),o=o(),H(),o),Dn=Be(()=>v("span",{class:"vpi-sun sun"},null,-1)),On=Be(()=>v("span",{class:"vpi-moon moon"},null,-1)),Gn=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=P(),s=te("toggle-appearance",()=>{e.value=!e.value}),n=w("");return fe(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,u)=>(a(),k(Fn,{title:n.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:d(()=>[Dn,On]),_:1},8,["title","aria-checked","onClick"]))}}),ke=b(Gn,[["__scopeId","data-v-3125216b"]]),Un={key:0,class:"VPNavBarAppearance"},jn=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=P();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),c("div",Un,[m(ke)])):f("",!0)}}),zn=b(jn,[["__scopeId","data-v-864d2abc"]]),$e=w();let Ce=!1,re=0;function qn(o){const e=w(!1);if(oe){!Ce&&Kn(),re++;const t=G($e,s=>{var n,i,u;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(i=o.onFocus)==null||i.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});he(()=>{t(),re--,re||Wn()})}return Re(e)}function Kn(){document.addEventListener("focusin",He),Ce=!0,$e.value=document.activeElement}function Wn(){document.removeEventListener("focusin",He)}function He(){$e.value=document.activeElement}const Rn={class:"VPMenuLink"},Jn=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,s)=>(a(),c("div",Rn,[m(D,{class:N({active:r(K)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:d(()=>[O(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=b(Jn,[["__scopeId","data-v-25a54821"]]),Xn={class:"VPMenuGroup"},Yn={key:0,class:"title"},Qn=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Xn,[e.text?(a(),c("p",Yn,I(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,s=>(a(),c(M,null,["link"in s?(a(),k(ne,{key:0,item:s},null,8,["item"])):f("",!0)],64))),256))]))}}),Zn=b(Qn,[["__scopeId","data-v-4dd03e28"]]),xn={class:"VPMenu"},es={key:0,class:"items"},ts=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),c("div",xn,[e.items?(a(),c("div",es,[(a(!0),c(M,null,E(e.items,s=>(a(),c(M,{key:JSON.stringify(s)},["link"in s?(a(),k(ne,{key:0,item:s},null,8,["item"])):"component"in s?(a(),k(F(s.component),q({key:1,ref_for:!0},s.props),null,16)):(a(),k(Zn,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),os=b(ts,[["__scopeId","data-v-809b8af7"]]),ns=o=>(C("data-v-00660109"),o=o(),H(),o),ss=["aria-expanded","aria-label"],as={key:0,class:"text"},rs=["innerHTML"],is=ns(()=>v("span",{class:"vpi-chevron-down text-icon"},null,-1)),ls={key:1,class:"vpi-more-horizontal icon"},cs={class:"menu"},us=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=w(!1),t=w();qn({el:t,onBlur:s});function s(){e.value=!1}return(n,i)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=u=>e.value=!0),onMouseleave:i[2]||(i[2]=u=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:i[0]||(i[0]=u=>e.value=!e.value)},[n.button||n.icon?(a(),c("span",as,[n.icon?(a(),c("span",{key:0,class:N([n.icon,"option-icon"])},null,2)):f("",!0),n.button?(a(),c("span",{key:1,innerHTML:n.button},null,8,rs)):f("",!0),is])):(a(),c("span",ls))],8,ss),v("div",cs,[m(os,{items:n.items},{default:d(()=>[l(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),be=b(us,[["__scopeId","data-v-00660109"]]),ds=["href","aria-label","innerHTML"],vs=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,n)=>(a(),c("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,ds))}}),ps=b(vs,[["__scopeId","data-v-15a5c40e"]]),hs={class:"VPSocialLinks"},fs=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",hs,[(a(!0),c(M,null,E(e.links,({link:s,icon:n,ariaLabel:i})=>(a(),k(ps,{key:s,icon:n,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),ge=b(fs,[["__scopeId","data-v-100434c4"]]),_s={key:0,class:"group translations"},ms={class:"trans-title"},ks={key:1,class:"group"},$s={class:"item appearance"},bs={class:"label"},gs={class:"appearance-action"},ys={key:2,class:"group"},Ps={class:"item social-links"},Vs=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=P(),{localeLinks:s,currentLang:n}=X({correspondingLink:!0}),i=y(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>i.value?(a(),k(be,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:d(()=>[r(s).length&&r(n).label?(a(),c("div",_s,[v("p",ms,I(r(n).label),1),(a(!0),c(M,null,E(r(s),p=>(a(),k(ne,{key:p.link,item:p},null,8,["item"]))),128))])):f("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),c("div",ks,[v("div",$s,[v("p",bs,I(r(t).darkModeSwitchLabel||"Appearance"),1),v("div",gs,[m(ke)])])])):f("",!0),r(t).socialLinks?(a(),c("div",ys,[v("div",Ps,[m(ge,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Ls=b(Vs,[["__scopeId","data-v-60cefd62"]]),Ss=o=>(C("data-v-e047a1f2"),o=o(),H(),o),Ts=["aria-expanded"],Is=Ss(()=>v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)),ws=[Is],Ns=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),c("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},ws,10,Ts))}}),Ms=b(Ns,[["__scopeId","data-v-e047a1f2"]]),As=["innerHTML"],Bs=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,s)=>(a(),k(D,{class:N({VPNavBarMenuLink:!0,active:r(K)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:d(()=>[v("span",{innerHTML:t.item.text},null,8,As)]),_:1},8,["class","href","noIcon","target","rel"]))}}),Cs=b(Bs,[["__scopeId","data-v-9a0da802"]]),Hs=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=P(),s=i=>"component"in i?!1:"link"in i?K(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),n=y(()=>s(e.item));return(i,u)=>(a(),k(be,{class:N({VPNavBarMenuGroup:!0,active:r(K)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||n.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Es=o=>(C("data-v-bf53b681"),o=o(),H(),o),Fs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ds=Es(()=>v("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Os=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=P();return(t,s)=>r(e).nav?(a(),c("nav",Fs,[Ds,(a(!0),c(M,null,E(r(e).nav,n=>(a(),c(M,{key:JSON.stringify(n)},["link"in n?(a(),k(Cs,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(F(n.component),q({key:1,ref_for:!0},n.props),null,16)):(a(),k(Hs,{key:2,item:n},null,8,["item"]))],64))),128))])):f("",!0)}}),Gs=b(Os,[["__scopeId","data-v-bf53b681"]]);function Us(o){const{localeIndex:e,theme:t}=P();function s(n){var A,B,S;const i=n.split("."),u=(A=t.value.search)==null?void 0:A.options,h=u&&typeof u=="object",p=h&&((S=(B=u.locales)==null?void 0:B[e.value])==null?void 0:S.translations)||null,g=h&&u.translations||null;let L=p,$=g,V=o;const T=i.pop();for(const j of i){let z=null;const J=V==null?void 0:V[j];J&&(z=V=J);const se=$==null?void 0:$[j];se&&(z=$=se);const ae=L==null?void 0:L[j];ae&&(z=L=ae),J||(V=z),se||($=z),ae||(L=z)}return(L==null?void 0:L[T])??($==null?void 0:$[T])??(V==null?void 0:V[T])??""}return s}const js=["aria-label"],zs={class:"DocSearch-Button-Container"},qs=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),Ks={class:"DocSearch-Button-Placeholder"},Ws=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ye=_({__name:"VPNavBarSearchButton",setup(o){const t=Us({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[v("span",zs,[qs,v("span",Ks,I(r(t)("button.buttonText")),1)]),Ws],8,js))}}),Rs={class:"VPNavBarSearch"},Js={id:"local-search"},Xs={key:1,id:"docsearch"},Ys=_({__name:"VPNavBarSearch",setup(o){const e=Je(()=>Xe(()=>import("./VPLocalSearchBox.DvzdawYQ.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=P(),n=w(!1),i=w(!1);W(()=>{});function u(){n.value||(n.value=!0,setTimeout(h,16))}function h(){const $=new Event("keydown");$.key="k",$.metaKey=!0,window.dispatchEvent($),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function p($){const V=$.target,T=V.tagName;return V.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const g=w(!1);le("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),g.value=!0)}),le("/",$=>{p($)||($.preventDefault(),g.value=!0)});const L="local";return($,V)=>{var T;return a(),c("div",Rs,[r(L)==="local"?(a(),c(M,{key:0},[g.value?(a(),k(r(e),{key:0,onClose:V[0]||(V[0]=A=>g.value=!1)})):f("",!0),v("div",Js,[m(ye,{onClick:V[1]||(V[1]=A=>g.value=!0)})])],64)):r(L)==="algolia"?(a(),c(M,{key:1},[n.value?(a(),k(r(t),{key:0,algolia:((T=r(s).search)==null?void 0:T.options)??r(s).algolia,onVnodeBeforeMount:V[2]||(V[2]=A=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),c("div",Xs,[m(ye,{onClick:u})]))],64)):f("",!0)])}}}),Qs=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=P();return(t,s)=>r(e).socialLinks?(a(),k(ge,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Zs=b(Qs,[["__scopeId","data-v-2c606308"]]),xs=["href","rel","target"],ea={key:1},ta={key:2},oa=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=P(),{hasSidebar:s}=U(),{currentLang:n}=X(),i=y(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),u=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),h=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,g)=>(a(),c("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(s)}])},[v("a",{class:"title",href:i.value??r(_e)(r(n).link),rel:u.value,target:h.value},[l(p.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),k(Q,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),c("span",ea,I(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),c("span",ta,I(r(e).title),1)):f("",!0),l(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,xs)],2))}}),na=b(oa,[["__scopeId","data-v-606a7e0f"]]),sa={class:"items"},aa={class:"title"},ra=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=P(),{localeLinks:t,currentLang:s}=X({correspondingLink:!0});return(n,i)=>r(t).length&&r(s).label?(a(),k(be,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:d(()=>[v("div",sa,[v("p",aa,I(r(s).label),1),(a(!0),c(M,null,E(r(t),u=>(a(),k(ne,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ia=b(ra,[["__scopeId","data-v-912817b1"]]),la=o=>(C("data-v-da0688be"),o=o(),H(),o),ca={class:"wrapper"},ua={class:"container"},da={class:"title"},va={class:"content"},pa={class:"content-body"},ha=la(()=>v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1)),fa=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=Se(),{hasSidebar:s}=U(),{frontmatter:n}=P(),i=w({});return fe(()=>{i.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(u,h)=>(a(),c("div",{class:N(["VPNavBar",i.value])},[v("div",ca,[v("div",ua,[v("div",da,[m(na,null,{"nav-bar-title-before":d(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",va,[v("div",pa,[l(u.$slots,"nav-bar-content-before",{},void 0,!0),m(Ys,{class:"search"}),m(Gs,{class:"menu"}),m(ia,{class:"translations"}),m(zn,{class:"appearance"}),m(Zs,{class:"social-links"}),m(Ls,{class:"extra"}),l(u.$slots,"nav-bar-content-after",{},void 0,!0),m(Ms,{class:"hamburger",active:u.isScreenOpen,onClick:h[0]||(h[0]=p=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),ha],2))}}),_a=b(fa,[["__scopeId","data-v-da0688be"]]),ma={key:0,class:"VPNavScreenAppearance"},ka={class:"text"},$a=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=P();return(s,n)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),c("div",ma,[v("p",ka,I(r(t).darkModeSwitchLabel||"Appearance"),1),m(ke)])):f("",!0)}}),ba=b($a,[["__scopeId","data-v-dfcc1536"]]),ga=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,s)=>(a(),k(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),ya=b(ga,[["__scopeId","data-v-8cd41455"]]),Pa=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,s)=>(a(),k(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:d(()=>[O(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ee=b(Pa,[["__scopeId","data-v-b8c7c580"]]),Va={class:"VPNavScreenMenuGroupSection"},La={key:0,class:"title"},Sa=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Va,[e.text?(a(),c("p",La,I(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,s=>(a(),k(Ee,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ta=b(Sa,[["__scopeId","data-v-a3e7a51c"]]),Ia=o=>(C("data-v-90f695a2"),o=o(),H(),o),wa=["aria-controls","aria-expanded"],Na=["innerHTML"],Ma=Ia(()=>v("span",{class:"vpi-plus button-icon"},null,-1)),Aa=["id"],Ba={key:0,class:"item"},Ca={key:1,class:"item"},Ha={key:2,class:"group"},Ea=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=w(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(i,u)=>(a(),c("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[v("span",{class:"button-text",innerHTML:i.text},null,8,Na),Ma],8,wa),v("div",{id:s.value,class:"items"},[(a(!0),c(M,null,E(i.items,h=>(a(),c(M,{key:JSON.stringify(h)},["link"in h?(a(),c("div",Ba,[m(Ee,{item:h},null,8,["item"])])):"component"in h?(a(),c("div",Ca,[(a(),k(F(h.component),q({ref_for:!0},h.props,{"screen-menu":""}),null,16))])):(a(),c("div",Ha,[m(Ta,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Aa)],2))}}),Fa=b(Ea,[["__scopeId","data-v-90f695a2"]]),Da={key:0,class:"VPNavScreenMenu"},Oa=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=P();return(t,s)=>r(e).nav?(a(),c("nav",Da,[(a(!0),c(M,null,E(r(e).nav,n=>(a(),c(M,{key:JSON.stringify(n)},["link"in n?(a(),k(ya,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(F(n.component),q({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),k(Fa,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Ga=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=P();return(t,s)=>r(e).socialLinks?(a(),k(ge,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Fe=o=>(C("data-v-95c61444"),o=o(),H(),o),Ua=Fe(()=>v("span",{class:"vpi-languages icon lang"},null,-1)),ja=Fe(()=>v("span",{class:"vpi-chevron-down icon chevron"},null,-1)),za={class:"list"},qa=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=X({correspondingLink:!0}),s=w(!1);function n(){s.value=!s.value}return(i,u)=>r(e).length&&r(t).label?(a(),c("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[v("button",{class:"title",onClick:n},[Ua,O(" "+I(r(t).label)+" ",1),ja]),v("ul",za,[(a(!0),c(M,null,E(r(e),h=>(a(),c("li",{key:h.link,class:"item"},[m(D,{class:"link",href:h.link},{default:d(()=>[O(I(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),Ka=b(qa,[["__scopeId","data-v-95c61444"]]),Wa={class:"container"},Ra=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=w(null),t=Te(oe?document.body:null);return(s,n)=>(a(),k(ve,{name:"fade",onEnter:n[0]||(n[0]=i=>t.value=!0),onAfterLeave:n[1]||(n[1]=i=>t.value=!1)},{default:d(()=>[s.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",Wa,[l(s.$slots,"nav-screen-content-before",{},void 0,!0),m(Oa,{class:"menu"}),m(Ka,{class:"translations"}),m(ba,{class:"appearance"}),m(Ga,{class:"social-links"}),l(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),Ja=b(Ra,[["__scopeId","data-v-c14c1e21"]]),Xa={key:0,class:"VPNav"},Ya=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=Mn(),{frontmatter:n}=P(),i=y(()=>n.value.navbar!==!1);return Ie("close-screen",t),Z(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(u,h)=>i.value?(a(),c("header",Xa,[m(_a,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":d(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),m(Ja,{open:r(e)},{"nav-screen-content-before":d(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Qa=b(Ya,[["__scopeId","data-v-e823d444"]]),De=o=>(C("data-v-a9cdba99"),o=o(),H(),o),Za=["role","tabindex"],xa=De(()=>v("div",{class:"indicator"},null,-1)),er=De(()=>v("span",{class:"vpi-chevron-right caret-icon"},null,-1)),tr=[er],or={key:1,class:"items"},nr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:i,hasActiveLink:u,hasChildren:h,toggle:p}=bt(y(()=>e.item)),g=y(()=>h.value?"section":"div"),L=y(()=>n.value?"a":"div"),$=y(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),V=y(()=>n.value?void 0:"button"),T=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":i.value},{"has-active":u.value}]);function A(S){"key"in S&&S.key!=="Enter"||!e.item.link&&p()}function B(){e.item.link&&p()}return(S,j)=>{const z=R("VPSidebarItem",!0);return a(),k(F(g.value),{class:N(["VPSidebarItem",T.value])},{default:d(()=>[S.item.text?(a(),c("div",q({key:0,class:"item",role:V.value},Qe(S.item.items?{click:A,keydown:A}:{},!0),{tabindex:S.item.items&&0}),[xa,S.item.link?(a(),k(D,{key:0,tag:L.value,class:"link",href:S.item.link,rel:S.item.rel,target:S.item.target},{default:d(()=>[(a(),k(F($.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(F($.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null&&S.item.items&&S.item.items.length?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:B,onKeydown:Ye(B,["enter"]),tabindex:"0"},tr,32)):f("",!0)],16,Za)):f("",!0),S.item.items&&S.item.items.length?(a(),c("div",or,[S.depth<5?(a(!0),c(M,{key:0},E(S.item.items,J=>(a(),k(z,{key:J.text,item:J,depth:S.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),sr=b(nr,[["__scopeId","data-v-a9cdba99"]]),ar=_({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=w(!0);let t=null;return W(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Ze(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,n)=>(a(!0),c(M,null,E(s.items,i=>(a(),c("div",{key:i.text,class:N(["group",{"no-transition":e.value}])},[m(sr,{item:i,depth:0},null,8,["item"])],2))),128))}}),rr=b(ar,[["__scopeId","data-v-72c67ed4"]]),Oe=o=>(C("data-v-59ceefa4"),o=o(),H(),o),ir=Oe(()=>v("div",{class:"curtain"},null,-1)),lr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},cr=Oe(()=>v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),ur=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=U(),s=o,n=w(null),i=Te(oe?document.body:null);G([s,n],()=>{var h;s.open?(i.value=!0,(h=n.value)==null||h.focus()):i.value=!1},{immediate:!0,flush:"post"});const u=w(0);return G(e,()=>{u.value+=1},{deep:!0}),(h,p)=>r(t)?(a(),c("aside",{key:0,class:N(["VPSidebar",{open:h.open}]),ref_key:"navEl",ref:n,onClick:p[0]||(p[0]=xe(()=>{},["stop"]))},[ir,v("nav",lr,[cr,l(h.$slots,"sidebar-nav-before",{},void 0,!0),(a(),k(rr,{items:r(e),key:u.value},null,8,["items"])),l(h.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),dr=b(ur,[["__scopeId","data-v-59ceefa4"]]),vr=_({__name:"VPSkipLink",setup(o){const e=ee(),t=w();G(()=>e.path,()=>t.value.focus());function s({target:n}){const i=document.getElementById(decodeURIComponent(n.hash).slice(1));if(i){const u=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",u)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",u),i.focus(),window.scrollTo(0,0)}}return(n,i)=>(a(),c(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),pr=b(vr,[["__scopeId","data-v-e813112c"]]),hr=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=U(),n=ee();G(()=>n.path,s),$t(e,s);const{frontmatter:i}=P(),u=et(),h=y(()=>!!u["home-hero-image"]);return Ie("hero-image-slot-exists",h),(p,g)=>{const L=R("Content");return r(i).layout!==!1?(a(),c("div",{key:0,class:N(["Layout",r(i).pageClass])},[l(p.$slots,"layout-top",{},void 0,!0),m(pr),m(st,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),m(Qa,null,{"nav-bar-title-before":d(()=>[l(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":d(()=>[l(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),m(Nn,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),m(dr,{open:r(e)},{"sidebar-nav-before":d(()=>[l(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":d(()=>[l(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),m(un,null,{"page-top":d(()=>[l(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":d(()=>[l(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":d(()=>[l(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":d(()=>[l(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":d(()=>[l(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":d(()=>[l(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),m(fn),l(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k(L,{key:1}))}}}),fr=b(hr,[["__scopeId","data-v-3b4648ff"]]),mr={Layout:fr,enhanceApp:({app:o})=>{o.component("Badge",tt)}};export{Us as c,mr as t,P as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.Lyrn-94G.js","assets/chunks/framework.DpC1ZpOZ.js"])))=>i.map(i=>d[i]); +import{d as _,o as a,c,r as l,n as N,a as O,t as I,b as k,w as d,e as f,T as ve,_ as b,u as Ge,i as Ue,f as je,g as pe,h as y,j as v,k as r,p as C,l as H,m as K,q as ie,s as w,v as G,x as Z,y as W,z as he,A as fe,B as ze,C as qe,D as R,F as M,E,G as Pe,H as x,I as m,J as F,K as Ve,L as ee,M as q,N as te,O as Ke,P as Le,Q as le,R as We,S as Se,U as oe,V as Re,W as Je,X as Xe,Y as Te,Z as Ie,$ as Ye,a0 as Qe,a1 as Ze,a2 as xe,a3 as et}from"./framework.DpC1ZpOZ.js";const tt=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),c("span",{class:N(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[O(I(e.text),1)])],2))}}),ot={key:0,class:"VPBackdrop"},nt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),k(ve,{name:"fade"},{default:d(()=>[e.show?(a(),c("div",ot)):f("",!0)]),_:1}))}}),st=b(nt,[["__scopeId","data-v-daa1937f"]]),P=Ge;function at(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ce(o){return/^\//.test(o)?o:`/${o}`}function _e(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(Ue(o)||o.startsWith("#")||!n.startsWith("http")||!je(e))return o;const{site:i}=P(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return pe(u)}function X({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:s,theme:n,hash:i}=P(),u=y(()=>{var p,g;return{label:(p=e.value.locales[t.value])==null?void 0:p.label,link:((g=e.value.locales[t.value])==null?void 0:g.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([p,g])=>u.value.label===g.label?[]:{text:g.label,link:rt(g.link||(p==="root"?"/":`/${p}/`),n.value.i18nRouting!==!1&&o,s.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:u}}function rt(o,e,t,s){return e?o.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const it=o=>(C("data-v-2aa14331"),o=o(),H(),o),lt={class:"NotFound"},ct={class:"code"},ut={class:"title"},dt=it(()=>v("div",{class:"divider"},null,-1)),vt={class:"quote"},pt={class:"action"},ht=["href","aria-label"],ft=_({__name:"NotFound",setup(o){const{theme:e}=P(),{currentLang:t}=X();return(s,n)=>{var i,u,h,p,g;return a(),c("div",lt,[v("p",ct,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),v("h1",ut,I(((u=r(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),dt,v("blockquote",vt,I(((h=r(e).notFound)==null?void 0:h.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",pt,[v("a",{class:"link",href:r(pe)(r(t).link),"aria-label":((p=r(e).notFound)==null?void 0:p.linkLabel)??"go to home"},I(((g=r(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,ht)])])}}}),_t=b(ft,[["__scopeId","data-v-2aa14331"]]);function we(o,e){if(Array.isArray(o))return Y(o);if(o==null)return[];e=ce(e);const t=Object.keys(o).sort((n,i)=>i.split("/").length-n.split("/").length).find(n=>e.startsWith(ce(n))),s=t?o[t]:[];return Array.isArray(s)?Y(s):Y(s.items,s.base)}function mt(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function kt(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ue(o,e){return Array.isArray(e)?e.some(t=>ue(o,t)):K(o,e.link)?!0:e.items?ue(o,e.items):!1}function Y(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=Y(s.items,n)),s})}function U(){const{frontmatter:o,page:e,theme:t}=P(),s=ie("(min-width: 960px)"),n=w(!1),i=y(()=>{const B=t.value.sidebar,S=e.value.relativePath;return B?we(B,S):[]}),u=w(i.value);G(i,(B,S)=>{JSON.stringify(B)!==JSON.stringify(S)&&(u.value=i.value)});const h=y(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),p=y(()=>g?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),g=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),L=y(()=>h.value&&s.value),$=y(()=>h.value?mt(u.value):[]);function V(){n.value=!0}function T(){n.value=!1}function A(){n.value?T():V()}return{isOpen:n,sidebar:u,sidebarGroups:$,hasSidebar:h,hasAside:g,leftAside:p,isSidebarEnabled:L,open:V,close:T,toggle:A}}function $t(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),W(()=>{window.addEventListener("keyup",s)}),he(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function bt(o){const{page:e,hash:t}=P(),s=w(!1),n=y(()=>o.value.collapsed!=null),i=y(()=>!!o.value.link),u=w(!1),h=()=>{u.value=K(e.value.relativePath,o.value.link)};G([e,o,t],h),W(h);const p=y(()=>u.value?!0:o.value.items?ue(e.value.relativePath,o.value.items):!1),g=y(()=>!!(o.value.items&&o.value.items.length));Z(()=>{s.value=!!(n.value&&o.value.collapsed)}),fe(()=>{(u.value||p.value)&&(s.value=!1)});function L(){n.value&&(s.value=!s.value)}return{collapsed:s,collapsible:n,isLink:i,isActiveLink:u,hasActiveLink:p,hasChildren:g,toggle:L}}function gt(){const{hasSidebar:o}=U(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const de=[];function Ne(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function me(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:yt(t),link:"#"+t.id,level:s}});return Pt(e,o)}function yt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Pt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=s&&u.level<=n),de.length=0;for(const{element:u,link:h}of o)de.push({element:u,link:h});const i=[];e:for(let u=0;u=0;p--){const g=o[p];if(g.level{requestAnimationFrame(i),window.addEventListener("scroll",s)}),ze(()=>{u(location.hash)}),he(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const h=window.scrollY,p=window.innerHeight,g=document.body.offsetHeight,L=Math.abs(h+p-g)<1,$=de.map(({element:T,link:A})=>({link:A,top:Lt(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,A)=>T.top-A.top);if(!$.length){u(null);return}if(h<1){u(null);return}if(L){u($[$.length-1].link);return}let V=null;for(const{link:T,top:A}of $){if(A>h+qe()+4)break;V=T}u(V)}function u(h){n&&n.classList.remove("active"),h==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const p=n;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Lt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const St=["href","title"],Tt=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const s=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(s));n==null||n.focus({preventScroll:!0})}return(t,s)=>{const n=R("VPDocOutlineItem",!0);return a(),c("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),c(M,null,E(t.headers,({children:i,link:u,title:h})=>(a(),c("li",null,[v("a",{class:"outline-link",href:u,onClick:e,title:h},I(h),9,St),i!=null&&i.length?(a(),k(n,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Me=b(Tt,[["__scopeId","data-v-b9c884bb"]]),It={class:"content"},wt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Nt=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=P(),s=Pe([]);x(()=>{s.value=me(e.value.outline??t.value.outline)});const n=w(),i=w();return Vt(n,i),(u,h)=>(a(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n},[v("div",It,[v("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),v("div",wt,I(r(Ne)(r(t))),1),m(Me,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),Mt=b(Nt,[["__scopeId","data-v-d34649dc"]]),At={class:"VPDocAsideCarbonAds"},Bt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),c("div",At,[m(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ct=o=>(C("data-v-8951c20f"),o=o(),H(),o),Ht={class:"VPDocAside"},Et=Ct(()=>v("div",{class:"spacer"},null,-1)),Ft=_({__name:"VPDocAside",setup(o){const{theme:e}=P();return(t,s)=>(a(),c("div",Ht,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),m(Mt),l(t.$slots,"aside-outline-after",{},void 0,!0),Et,l(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),k(Bt,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Dt=b(Ft,[["__scopeId","data-v-8951c20f"]]);function Ot(){const{theme:o,page:e}=P();return y(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Gt(){const{page:o,theme:e,frontmatter:t}=P();return y(()=>{var g,L,$,V,T,A,B,S;const s=we(e.value.sidebar,o.value.relativePath),n=kt(s),i=Ut(n,j=>j.link.replace(/[?#].*$/,"")),u=i.findIndex(j=>K(o.value.relativePath,j.link)),h=((g=e.value.docFooter)==null?void 0:g.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:h?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??(($=i[u-1])==null?void 0:$.docFooterText)??((V=i[u-1])==null?void 0:V.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((T=i[u-1])==null?void 0:T.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[u+1])==null?void 0:A.docFooterText)??((B=i[u+1])==null?void 0:B.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=i[u+1])==null?void 0:S.link)}}})}function Ut(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const D=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&Ve.test(e.href)||e.target==="_blank");return(n,i)=>(a(),k(F(t.value),{class:N(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?r(_e)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:d(()=>[l(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),jt={class:"VPLastUpdated"},zt=["datetime"],qt=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:s}=P(),n=y(()=>new Date(t.value.lastUpdated)),i=y(()=>n.value.toISOString()),u=w("");return W(()=>{Z(()=>{var h,p,g;u.value=new Intl.DateTimeFormat((p=(h=e.value.lastUpdated)==null?void 0:h.formatOptions)!=null&&p.forceLocale?s.value:void 0,((g=e.value.lastUpdated)==null?void 0:g.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(h,p)=>{var g;return a(),c("p",jt,[O(I(((g=r(e).lastUpdated)==null?void 0:g.text)||r(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:i.value},I(u.value),9,zt)])}}}),Kt=b(qt,[["__scopeId","data-v-19bf19fb"]]),Ae=o=>(C("data-v-28deee4a"),o=o(),H(),o),Wt={key:0,class:"VPDocFooter"},Rt={key:0,class:"edit-info"},Jt={key:0,class:"edit-link"},Xt=Ae(()=>v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Yt={key:1,class:"last-updated"},Qt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Zt=Ae(()=>v("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),xt={class:"pager"},eo=["innerHTML"],to=["innerHTML"],oo={class:"pager"},no=["innerHTML"],so=["innerHTML"],ao=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=P(),n=Ot(),i=Gt(),u=y(()=>e.value.editLink&&s.value.editLink!==!1),h=y(()=>t.value.lastUpdated),p=y(()=>u.value||h.value||i.value.prev||i.value.next);return(g,L)=>{var $,V,T,A;return p.value?(a(),c("footer",Wt,[l(g.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(a(),c("div",Rt,[u.value?(a(),c("div",Jt,[m(D,{class:"edit-link-button",href:r(n).url,"no-icon":!0},{default:d(()=>[Xt,O(" "+I(r(n).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),c("div",Yt,[m(Kt)])):f("",!0)])):f("",!0),($=r(i).prev)!=null&&$.link||(V=r(i).next)!=null&&V.link?(a(),c("nav",Qt,[Zt,v("div",xt,[(T=r(i).prev)!=null&&T.link?(a(),k(D,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:d(()=>{var B;return[v("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.prev)||"Previous page"},null,8,eo),v("span",{class:"title",innerHTML:r(i).prev.text},null,8,to)]}),_:1},8,["href"])):f("",!0)]),v("div",oo,[(A=r(i).next)!=null&&A.link?(a(),k(D,{key:0,class:"pager-link next",href:r(i).next.link},{default:d(()=>{var B;return[v("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.next)||"Next page"},null,8,no),v("span",{class:"title",innerHTML:r(i).next.text},null,8,so)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),ro=b(ao,[["__scopeId","data-v-28deee4a"]]),io=o=>(C("data-v-01c90815"),o=o(),H(),o),lo={class:"container"},co=io(()=>v("div",{class:"aside-curtain"},null,-1)),uo={class:"aside-container"},vo={class:"aside-content"},po={class:"content"},ho={class:"content-container"},fo={class:"main"},_o=_({__name:"VPDoc",setup(o){const{theme:e}=P(),t=ee(),{hasSidebar:s,hasAside:n,leftAside:i}=U(),u=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,p)=>{const g=R("Content");return a(),c("div",{class:N(["VPDoc",{"has-sidebar":r(s),"has-aside":r(n)}])},[l(h.$slots,"doc-top",{},void 0,!0),v("div",lo,[r(n)?(a(),c("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[co,v("div",uo,[v("div",vo,[m(Dt,null,{"aside-top":d(()=>[l(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),v("div",po,[v("div",ho,[l(h.$slots,"doc-before",{},void 0,!0),v("main",fo,[m(g,{class:N(["vp-doc",[u.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),m(ro,null,{"doc-footer-before":d(()=>[l(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(h.$slots,"doc-after",{},void 0,!0)])])]),l(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),mo=b(_o,[["__scopeId","data-v-01c90815"]]),ko=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Ve.test(e.href)),s=y(()=>e.tag||e.href?"a":"button");return(n,i)=>(a(),k(F(s.value),{class:N(["VPButton",[n.size,n.theme]]),href:n.href?r(_e)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:d(()=>[O(I(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),$o=b(ko,[["__scopeId","data-v-f549f0f3"]]),bo=["src","alt"],go=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=R("VPImage",!0);return e.image?(a(),c(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",q({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,bo)):(a(),c(M,{key:1},[m(s,q({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),m(s,q({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),Q=b(go,[["__scopeId","data-v-cc63e071"]]),yo=o=>(C("data-v-e302b8ce"),o=o(),H(),o),Po={class:"container"},Vo={class:"main"},Lo={key:0,class:"name"},So=["innerHTML"],To=["innerHTML"],Io=["innerHTML"],wo={key:0,class:"actions"},No={key:0,class:"image"},Mo={class:"image-container"},Ao=yo(()=>v("div",{class:"image-bg"},null,-1)),Bo=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=te("hero-image-slot-exists");return(t,s)=>(a(),c("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[v("div",Po,[v("div",Vo,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(a(),c("h1",Lo,[v("span",{innerHTML:t.name,class:"clip"},null,8,So)])):f("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,To)):f("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Io)):f("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),c("div",wo,[(a(!0),c(M,null,E(t.actions,n=>(a(),c("div",{key:n.link,class:"action"},[m($o,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),c("div",No,[v("div",Mo,[Ao,l(t.$slots,"home-hero-image",{},()=>[t.image?(a(),k(Q,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Co=b(Bo,[["__scopeId","data-v-e302b8ce"]]),Ho=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=P();return(t,s)=>r(e).hero?(a(),k(Co,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Eo=o=>(C("data-v-f77e80b4"),o=o(),H(),o),Fo={class:"box"},Do={key:0,class:"icon"},Oo=["innerHTML"],Go=["innerHTML"],Uo=["innerHTML"],jo={key:4,class:"link-text"},zo={class:"link-text-value"},qo=Eo(()=>v("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),Ko=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),k(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:d(()=>[v("article",Fo,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",Do,[m(Q,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),k(Q,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Oo)):f("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,Go),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Uo)):f("",!0),e.linkText?(a(),c("div",jo,[v("p",zo,[O(I(e.linkText)+" ",1),qo])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Wo=b(Ko,[["__scopeId","data-v-f77e80b4"]]),Ro={key:0,class:"VPFeatures"},Jo={class:"container"},Xo={class:"items"},Yo=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),c("div",Ro,[v("div",Jo,[v("div",Xo,[(a(!0),c(M,null,E(s.features,i=>(a(),c("div",{key:i.title,class:N(["item",[t.value]])},[m(Wo,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),Qo=b(Yo,[["__scopeId","data-v-8e833103"]]),Zo=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=P();return(t,s)=>r(e).features?(a(),k(Qo,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),xo=_({__name:"VPHomeContent",setup(o){const{width:e}=Ke({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),c("div",{class:"vp-doc container",style:Le(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),en=b(xo,[["__scopeId","data-v-90605523"]]),tn={class:"VPHome"},on=_({__name:"VPHome",setup(o){const{frontmatter:e}=P();return(t,s)=>{const n=R("Content");return a(),c("div",tn,[l(t.$slots,"home-hero-before",{},void 0,!0),m(Ho,null,{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),m(Zo),l(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),k(en,{key:0},{default:d(()=>[m(n)]),_:1})):(a(),k(n,{key:1}))])}}}),nn=b(on,[["__scopeId","data-v-55977d12"]]),sn={},an={class:"VPPage"};function rn(o,e){const t=R("Content");return a(),c("div",an,[l(o.$slots,"page-top"),m(t),l(o.$slots,"page-bottom")])}const ln=b(sn,[["render",rn]]),cn=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=P(),{hasSidebar:s}=U();return(n,i)=>(a(),c("div",{class:N(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?l(n.$slots,"not-found",{key:0},()=>[m(_t)],!0):r(t).layout==="page"?(a(),k(ln,{key:1},{"page-top":d(()=>[l(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),k(nn,{key:2},{"home-hero-before":d(()=>[l(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),k(F(r(t).layout),{key:3})):(a(),k(mo,{key:4},{"doc-top":d(()=>[l(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":d(()=>[l(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":d(()=>[l(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":d(()=>[l(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":d(()=>[l(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),un=b(cn,[["__scopeId","data-v-fc04087f"]]),dn={class:"container"},vn=["innerHTML"],pn=["innerHTML"],hn=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=U();return(n,i)=>r(e).footer&&r(t).footer!==!1?(a(),c("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(s)}])},[v("div",dn,[r(e).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,vn)):f("",!0),r(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,pn)):f("",!0)])],2)):f("",!0)}}),fn=b(hn,[["__scopeId","data-v-d69bcf5d"]]);function _n(){const{theme:o,frontmatter:e}=P(),t=Pe([]),s=y(()=>t.value.length>0);return x(()=>{t.value=me(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const mn=o=>(C("data-v-9dd5e197"),o=o(),H(),o),kn={class:"menu-text"},$n=mn(()=>v("span",{class:"vpi-chevron-right icon"},null,-1)),bn={class:"header"},gn={class:"outline"},yn=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=P(),s=w(!1),n=w(0),i=w(),u=w();function h($){var V;(V=i.value)!=null&&V.contains($.target)||(s.value=!1)}G(s,$=>{if($){document.addEventListener("click",h);return}document.removeEventListener("click",h)}),le("Escape",()=>{s.value=!1}),x(()=>{s.value=!1});function p(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g($){$.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),We(()=>{s.value=!1}))}function L(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return($,V)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:Le({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[$.headers.length>0?(a(),c("button",{key:0,onClick:p,class:N({open:s.value})},[v("span",kn,I(r(Ne)(r(t))),1),$n],2)):(a(),c("button",{key:1,onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)),m(ve,{name:"flyout"},{default:d(()=>[s.value?(a(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:g},[v("div",bn,[v("a",{class:"top-link",href:"#",onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)]),v("div",gn,[m(Me,{headers:$.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),Pn=b(yn,[["__scopeId","data-v-9dd5e197"]]),Vn=o=>(C("data-v-9c649187"),o=o(),H(),o),Ln={class:"container"},Sn=["aria-expanded"],Tn=Vn(()=>v("span",{class:"vpi-align-left menu-icon"},null,-1)),In={class:"menu-text"},wn=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=U(),{headers:n}=_n(),{y:i}=Se(),u=w(0);W(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{n.value=me(t.value.outline??e.value.outline)});const h=y(()=>n.value.length===0),p=y(()=>h.value&&!s.value),g=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:h.value,fixed:p.value}));return(L,$)=>r(t).layout!=="home"&&(!p.value||r(i)>=u.value)?(a(),c("div",{key:0,class:N(g.value)},[v("div",Ln,[r(s)?(a(),c("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:$[0]||($[0]=V=>L.$emit("open-menu"))},[Tn,v("span",In,I(r(e).sidebarMenuLabel||"Menu"),1)],8,Sn)):f("",!0),m(Pn,{headers:r(n),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Nn=b(wn,[["__scopeId","data-v-9c649187"]]);function Mn(){const o=w(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const i=ee();return G(()=>i.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const An={},Bn={class:"VPSwitch",type:"button",role:"switch"},Cn={class:"check"},Hn={key:0,class:"icon"};function En(o,e){return a(),c("button",Bn,[v("span",Cn,[o.$slots.default?(a(),c("span",Hn,[l(o.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Fn=b(An,[["render",En],["__scopeId","data-v-846fe538"]]),Be=o=>(C("data-v-3125216b"),o=o(),H(),o),Dn=Be(()=>v("span",{class:"vpi-sun sun"},null,-1)),On=Be(()=>v("span",{class:"vpi-moon moon"},null,-1)),Gn=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=P(),s=te("toggle-appearance",()=>{e.value=!e.value}),n=w("");return fe(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,u)=>(a(),k(Fn,{title:n.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:d(()=>[Dn,On]),_:1},8,["title","aria-checked","onClick"]))}}),ke=b(Gn,[["__scopeId","data-v-3125216b"]]),Un={key:0,class:"VPNavBarAppearance"},jn=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=P();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),c("div",Un,[m(ke)])):f("",!0)}}),zn=b(jn,[["__scopeId","data-v-864d2abc"]]),$e=w();let Ce=!1,re=0;function qn(o){const e=w(!1);if(oe){!Ce&&Kn(),re++;const t=G($e,s=>{var n,i,u;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(i=o.onFocus)==null||i.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});he(()=>{t(),re--,re||Wn()})}return Re(e)}function Kn(){document.addEventListener("focusin",He),Ce=!0,$e.value=document.activeElement}function Wn(){document.removeEventListener("focusin",He)}function He(){$e.value=document.activeElement}const Rn={class:"VPMenuLink"},Jn=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,s)=>(a(),c("div",Rn,[m(D,{class:N({active:r(K)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:d(()=>[O(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=b(Jn,[["__scopeId","data-v-25a54821"]]),Xn={class:"VPMenuGroup"},Yn={key:0,class:"title"},Qn=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Xn,[e.text?(a(),c("p",Yn,I(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,s=>(a(),c(M,null,["link"in s?(a(),k(ne,{key:0,item:s},null,8,["item"])):f("",!0)],64))),256))]))}}),Zn=b(Qn,[["__scopeId","data-v-4dd03e28"]]),xn={class:"VPMenu"},es={key:0,class:"items"},ts=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),c("div",xn,[e.items?(a(),c("div",es,[(a(!0),c(M,null,E(e.items,s=>(a(),c(M,{key:JSON.stringify(s)},["link"in s?(a(),k(ne,{key:0,item:s},null,8,["item"])):"component"in s?(a(),k(F(s.component),q({key:1,ref_for:!0},s.props),null,16)):(a(),k(Zn,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),os=b(ts,[["__scopeId","data-v-809b8af7"]]),ns=o=>(C("data-v-00660109"),o=o(),H(),o),ss=["aria-expanded","aria-label"],as={key:0,class:"text"},rs=["innerHTML"],is=ns(()=>v("span",{class:"vpi-chevron-down text-icon"},null,-1)),ls={key:1,class:"vpi-more-horizontal icon"},cs={class:"menu"},us=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=w(!1),t=w();qn({el:t,onBlur:s});function s(){e.value=!1}return(n,i)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=u=>e.value=!0),onMouseleave:i[2]||(i[2]=u=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:i[0]||(i[0]=u=>e.value=!e.value)},[n.button||n.icon?(a(),c("span",as,[n.icon?(a(),c("span",{key:0,class:N([n.icon,"option-icon"])},null,2)):f("",!0),n.button?(a(),c("span",{key:1,innerHTML:n.button},null,8,rs)):f("",!0),is])):(a(),c("span",ls))],8,ss),v("div",cs,[m(os,{items:n.items},{default:d(()=>[l(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),be=b(us,[["__scopeId","data-v-00660109"]]),ds=["href","aria-label","innerHTML"],vs=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,n)=>(a(),c("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,ds))}}),ps=b(vs,[["__scopeId","data-v-15a5c40e"]]),hs={class:"VPSocialLinks"},fs=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",hs,[(a(!0),c(M,null,E(e.links,({link:s,icon:n,ariaLabel:i})=>(a(),k(ps,{key:s,icon:n,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),ge=b(fs,[["__scopeId","data-v-100434c4"]]),_s={key:0,class:"group translations"},ms={class:"trans-title"},ks={key:1,class:"group"},$s={class:"item appearance"},bs={class:"label"},gs={class:"appearance-action"},ys={key:2,class:"group"},Ps={class:"item social-links"},Vs=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=P(),{localeLinks:s,currentLang:n}=X({correspondingLink:!0}),i=y(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>i.value?(a(),k(be,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:d(()=>[r(s).length&&r(n).label?(a(),c("div",_s,[v("p",ms,I(r(n).label),1),(a(!0),c(M,null,E(r(s),p=>(a(),k(ne,{key:p.link,item:p},null,8,["item"]))),128))])):f("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),c("div",ks,[v("div",$s,[v("p",bs,I(r(t).darkModeSwitchLabel||"Appearance"),1),v("div",gs,[m(ke)])])])):f("",!0),r(t).socialLinks?(a(),c("div",ys,[v("div",Ps,[m(ge,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Ls=b(Vs,[["__scopeId","data-v-60cefd62"]]),Ss=o=>(C("data-v-e047a1f2"),o=o(),H(),o),Ts=["aria-expanded"],Is=Ss(()=>v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)),ws=[Is],Ns=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),c("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},ws,10,Ts))}}),Ms=b(Ns,[["__scopeId","data-v-e047a1f2"]]),As=["innerHTML"],Bs=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,s)=>(a(),k(D,{class:N({VPNavBarMenuLink:!0,active:r(K)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:d(()=>[v("span",{innerHTML:t.item.text},null,8,As)]),_:1},8,["class","href","noIcon","target","rel"]))}}),Cs=b(Bs,[["__scopeId","data-v-9a0da802"]]),Hs=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=P(),s=i=>"component"in i?!1:"link"in i?K(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),n=y(()=>s(e.item));return(i,u)=>(a(),k(be,{class:N({VPNavBarMenuGroup:!0,active:r(K)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||n.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Es=o=>(C("data-v-bf53b681"),o=o(),H(),o),Fs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ds=Es(()=>v("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Os=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=P();return(t,s)=>r(e).nav?(a(),c("nav",Fs,[Ds,(a(!0),c(M,null,E(r(e).nav,n=>(a(),c(M,{key:JSON.stringify(n)},["link"in n?(a(),k(Cs,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(F(n.component),q({key:1,ref_for:!0},n.props),null,16)):(a(),k(Hs,{key:2,item:n},null,8,["item"]))],64))),128))])):f("",!0)}}),Gs=b(Os,[["__scopeId","data-v-bf53b681"]]);function Us(o){const{localeIndex:e,theme:t}=P();function s(n){var A,B,S;const i=n.split("."),u=(A=t.value.search)==null?void 0:A.options,h=u&&typeof u=="object",p=h&&((S=(B=u.locales)==null?void 0:B[e.value])==null?void 0:S.translations)||null,g=h&&u.translations||null;let L=p,$=g,V=o;const T=i.pop();for(const j of i){let z=null;const J=V==null?void 0:V[j];J&&(z=V=J);const se=$==null?void 0:$[j];se&&(z=$=se);const ae=L==null?void 0:L[j];ae&&(z=L=ae),J||(V=z),se||($=z),ae||(L=z)}return(L==null?void 0:L[T])??($==null?void 0:$[T])??(V==null?void 0:V[T])??""}return s}const js=["aria-label"],zs={class:"DocSearch-Button-Container"},qs=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),Ks={class:"DocSearch-Button-Placeholder"},Ws=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ye=_({__name:"VPNavBarSearchButton",setup(o){const t=Us({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[v("span",zs,[qs,v("span",Ks,I(r(t)("button.buttonText")),1)]),Ws],8,js))}}),Rs={class:"VPNavBarSearch"},Js={id:"local-search"},Xs={key:1,id:"docsearch"},Ys=_({__name:"VPNavBarSearch",setup(o){const e=Je(()=>Xe(()=>import("./VPLocalSearchBox.Lyrn-94G.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=P(),n=w(!1),i=w(!1);W(()=>{});function u(){n.value||(n.value=!0,setTimeout(h,16))}function h(){const $=new Event("keydown");$.key="k",$.metaKey=!0,window.dispatchEvent($),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function p($){const V=$.target,T=V.tagName;return V.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const g=w(!1);le("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),g.value=!0)}),le("/",$=>{p($)||($.preventDefault(),g.value=!0)});const L="local";return($,V)=>{var T;return a(),c("div",Rs,[r(L)==="local"?(a(),c(M,{key:0},[g.value?(a(),k(r(e),{key:0,onClose:V[0]||(V[0]=A=>g.value=!1)})):f("",!0),v("div",Js,[m(ye,{onClick:V[1]||(V[1]=A=>g.value=!0)})])],64)):r(L)==="algolia"?(a(),c(M,{key:1},[n.value?(a(),k(r(t),{key:0,algolia:((T=r(s).search)==null?void 0:T.options)??r(s).algolia,onVnodeBeforeMount:V[2]||(V[2]=A=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),c("div",Xs,[m(ye,{onClick:u})]))],64)):f("",!0)])}}}),Qs=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=P();return(t,s)=>r(e).socialLinks?(a(),k(ge,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Zs=b(Qs,[["__scopeId","data-v-2c606308"]]),xs=["href","rel","target"],ea={key:1},ta={key:2},oa=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=P(),{hasSidebar:s}=U(),{currentLang:n}=X(),i=y(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),u=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),h=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,g)=>(a(),c("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(s)}])},[v("a",{class:"title",href:i.value??r(_e)(r(n).link),rel:u.value,target:h.value},[l(p.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),k(Q,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),c("span",ea,I(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),c("span",ta,I(r(e).title),1)):f("",!0),l(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,xs)],2))}}),na=b(oa,[["__scopeId","data-v-606a7e0f"]]),sa={class:"items"},aa={class:"title"},ra=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=P(),{localeLinks:t,currentLang:s}=X({correspondingLink:!0});return(n,i)=>r(t).length&&r(s).label?(a(),k(be,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:d(()=>[v("div",sa,[v("p",aa,I(r(s).label),1),(a(!0),c(M,null,E(r(t),u=>(a(),k(ne,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ia=b(ra,[["__scopeId","data-v-912817b1"]]),la=o=>(C("data-v-da0688be"),o=o(),H(),o),ca={class:"wrapper"},ua={class:"container"},da={class:"title"},va={class:"content"},pa={class:"content-body"},ha=la(()=>v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1)),fa=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=Se(),{hasSidebar:s}=U(),{frontmatter:n}=P(),i=w({});return fe(()=>{i.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(u,h)=>(a(),c("div",{class:N(["VPNavBar",i.value])},[v("div",ca,[v("div",ua,[v("div",da,[m(na,null,{"nav-bar-title-before":d(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",va,[v("div",pa,[l(u.$slots,"nav-bar-content-before",{},void 0,!0),m(Ys,{class:"search"}),m(Gs,{class:"menu"}),m(ia,{class:"translations"}),m(zn,{class:"appearance"}),m(Zs,{class:"social-links"}),m(Ls,{class:"extra"}),l(u.$slots,"nav-bar-content-after",{},void 0,!0),m(Ms,{class:"hamburger",active:u.isScreenOpen,onClick:h[0]||(h[0]=p=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),ha],2))}}),_a=b(fa,[["__scopeId","data-v-da0688be"]]),ma={key:0,class:"VPNavScreenAppearance"},ka={class:"text"},$a=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=P();return(s,n)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),c("div",ma,[v("p",ka,I(r(t).darkModeSwitchLabel||"Appearance"),1),m(ke)])):f("",!0)}}),ba=b($a,[["__scopeId","data-v-dfcc1536"]]),ga=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,s)=>(a(),k(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),ya=b(ga,[["__scopeId","data-v-8cd41455"]]),Pa=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,s)=>(a(),k(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:d(()=>[O(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ee=b(Pa,[["__scopeId","data-v-b8c7c580"]]),Va={class:"VPNavScreenMenuGroupSection"},La={key:0,class:"title"},Sa=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Va,[e.text?(a(),c("p",La,I(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,s=>(a(),k(Ee,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ta=b(Sa,[["__scopeId","data-v-a3e7a51c"]]),Ia=o=>(C("data-v-90f695a2"),o=o(),H(),o),wa=["aria-controls","aria-expanded"],Na=["innerHTML"],Ma=Ia(()=>v("span",{class:"vpi-plus button-icon"},null,-1)),Aa=["id"],Ba={key:0,class:"item"},Ca={key:1,class:"item"},Ha={key:2,class:"group"},Ea=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=w(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(i,u)=>(a(),c("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[v("span",{class:"button-text",innerHTML:i.text},null,8,Na),Ma],8,wa),v("div",{id:s.value,class:"items"},[(a(!0),c(M,null,E(i.items,h=>(a(),c(M,{key:JSON.stringify(h)},["link"in h?(a(),c("div",Ba,[m(Ee,{item:h},null,8,["item"])])):"component"in h?(a(),c("div",Ca,[(a(),k(F(h.component),q({ref_for:!0},h.props,{"screen-menu":""}),null,16))])):(a(),c("div",Ha,[m(Ta,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Aa)],2))}}),Fa=b(Ea,[["__scopeId","data-v-90f695a2"]]),Da={key:0,class:"VPNavScreenMenu"},Oa=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=P();return(t,s)=>r(e).nav?(a(),c("nav",Da,[(a(!0),c(M,null,E(r(e).nav,n=>(a(),c(M,{key:JSON.stringify(n)},["link"in n?(a(),k(ya,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(F(n.component),q({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),k(Fa,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Ga=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=P();return(t,s)=>r(e).socialLinks?(a(),k(ge,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Fe=o=>(C("data-v-95c61444"),o=o(),H(),o),Ua=Fe(()=>v("span",{class:"vpi-languages icon lang"},null,-1)),ja=Fe(()=>v("span",{class:"vpi-chevron-down icon chevron"},null,-1)),za={class:"list"},qa=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=X({correspondingLink:!0}),s=w(!1);function n(){s.value=!s.value}return(i,u)=>r(e).length&&r(t).label?(a(),c("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[v("button",{class:"title",onClick:n},[Ua,O(" "+I(r(t).label)+" ",1),ja]),v("ul",za,[(a(!0),c(M,null,E(r(e),h=>(a(),c("li",{key:h.link,class:"item"},[m(D,{class:"link",href:h.link},{default:d(()=>[O(I(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),Ka=b(qa,[["__scopeId","data-v-95c61444"]]),Wa={class:"container"},Ra=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=w(null),t=Te(oe?document.body:null);return(s,n)=>(a(),k(ve,{name:"fade",onEnter:n[0]||(n[0]=i=>t.value=!0),onAfterLeave:n[1]||(n[1]=i=>t.value=!1)},{default:d(()=>[s.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",Wa,[l(s.$slots,"nav-screen-content-before",{},void 0,!0),m(Oa,{class:"menu"}),m(Ka,{class:"translations"}),m(ba,{class:"appearance"}),m(Ga,{class:"social-links"}),l(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),Ja=b(Ra,[["__scopeId","data-v-c14c1e21"]]),Xa={key:0,class:"VPNav"},Ya=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=Mn(),{frontmatter:n}=P(),i=y(()=>n.value.navbar!==!1);return Ie("close-screen",t),Z(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(u,h)=>i.value?(a(),c("header",Xa,[m(_a,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":d(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),m(Ja,{open:r(e)},{"nav-screen-content-before":d(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Qa=b(Ya,[["__scopeId","data-v-e823d444"]]),De=o=>(C("data-v-a9cdba99"),o=o(),H(),o),Za=["role","tabindex"],xa=De(()=>v("div",{class:"indicator"},null,-1)),er=De(()=>v("span",{class:"vpi-chevron-right caret-icon"},null,-1)),tr=[er],or={key:1,class:"items"},nr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:i,hasActiveLink:u,hasChildren:h,toggle:p}=bt(y(()=>e.item)),g=y(()=>h.value?"section":"div"),L=y(()=>n.value?"a":"div"),$=y(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),V=y(()=>n.value?void 0:"button"),T=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":i.value},{"has-active":u.value}]);function A(S){"key"in S&&S.key!=="Enter"||!e.item.link&&p()}function B(){e.item.link&&p()}return(S,j)=>{const z=R("VPSidebarItem",!0);return a(),k(F(g.value),{class:N(["VPSidebarItem",T.value])},{default:d(()=>[S.item.text?(a(),c("div",q({key:0,class:"item",role:V.value},Qe(S.item.items?{click:A,keydown:A}:{},!0),{tabindex:S.item.items&&0}),[xa,S.item.link?(a(),k(D,{key:0,tag:L.value,class:"link",href:S.item.link,rel:S.item.rel,target:S.item.target},{default:d(()=>[(a(),k(F($.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(F($.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null&&S.item.items&&S.item.items.length?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:B,onKeydown:Ye(B,["enter"]),tabindex:"0"},tr,32)):f("",!0)],16,Za)):f("",!0),S.item.items&&S.item.items.length?(a(),c("div",or,[S.depth<5?(a(!0),c(M,{key:0},E(S.item.items,J=>(a(),k(z,{key:J.text,item:J,depth:S.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),sr=b(nr,[["__scopeId","data-v-a9cdba99"]]),ar=_({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=w(!0);let t=null;return W(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Ze(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,n)=>(a(!0),c(M,null,E(s.items,i=>(a(),c("div",{key:i.text,class:N(["group",{"no-transition":e.value}])},[m(sr,{item:i,depth:0},null,8,["item"])],2))),128))}}),rr=b(ar,[["__scopeId","data-v-72c67ed4"]]),Oe=o=>(C("data-v-59ceefa4"),o=o(),H(),o),ir=Oe(()=>v("div",{class:"curtain"},null,-1)),lr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},cr=Oe(()=>v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),ur=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=U(),s=o,n=w(null),i=Te(oe?document.body:null);G([s,n],()=>{var h;s.open?(i.value=!0,(h=n.value)==null||h.focus()):i.value=!1},{immediate:!0,flush:"post"});const u=w(0);return G(e,()=>{u.value+=1},{deep:!0}),(h,p)=>r(t)?(a(),c("aside",{key:0,class:N(["VPSidebar",{open:h.open}]),ref_key:"navEl",ref:n,onClick:p[0]||(p[0]=xe(()=>{},["stop"]))},[ir,v("nav",lr,[cr,l(h.$slots,"sidebar-nav-before",{},void 0,!0),(a(),k(rr,{items:r(e),key:u.value},null,8,["items"])),l(h.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),dr=b(ur,[["__scopeId","data-v-59ceefa4"]]),vr=_({__name:"VPSkipLink",setup(o){const e=ee(),t=w();G(()=>e.path,()=>t.value.focus());function s({target:n}){const i=document.getElementById(decodeURIComponent(n.hash).slice(1));if(i){const u=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",u)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",u),i.focus(),window.scrollTo(0,0)}}return(n,i)=>(a(),c(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),pr=b(vr,[["__scopeId","data-v-e813112c"]]),hr=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=U(),n=ee();G(()=>n.path,s),$t(e,s);const{frontmatter:i}=P(),u=et(),h=y(()=>!!u["home-hero-image"]);return Ie("hero-image-slot-exists",h),(p,g)=>{const L=R("Content");return r(i).layout!==!1?(a(),c("div",{key:0,class:N(["Layout",r(i).pageClass])},[l(p.$slots,"layout-top",{},void 0,!0),m(pr),m(st,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),m(Qa,null,{"nav-bar-title-before":d(()=>[l(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":d(()=>[l(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),m(Nn,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),m(dr,{open:r(e)},{"sidebar-nav-before":d(()=>[l(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":d(()=>[l(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),m(un,null,{"page-top":d(()=>[l(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":d(()=>[l(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":d(()=>[l(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":d(()=>[l(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":d(()=>[l(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":d(()=>[l(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),m(fn),l(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k(L,{key:1}))}}}),fr=b(hr,[["__scopeId","data-v-3b4648ff"]]),mr={Layout:fr,enhanceApp:({app:o})=>{o.component("Badge",tt)}};export{Us as c,mr as t,P as u}; diff --git a/assets/en_api_mp_math_angle.md.B5tdtBiM.js b/assets/en_api_mp_math_angle.md.B5tdtBiM.js deleted file mode 100644 index 722b1fe..0000000 --- a/assets/en_api_mp_math_angle.md.B5tdtBiM.js +++ /dev/null @@ -1,99 +0,0 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/angle.md","filePath":"en/api/mp_math/angle.md"}'),t={name:"en/api/mp_math/angle.md"},e=n(`

Module mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

Description: 任意角度。

Arguments:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
Source code or View on GitHub
python
def __init__(self, value: float, is_radian: bool=False):
-    """
-        任意角度。
-        Args:
-            value: 角度或弧度值
-            is_radian: 是否为弧度,默认为否
-        """
-    if is_radian:
-        self.radian = value
-    else:
-        self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

Description: 余角:两角的和为90°。

Return: 余角

Source code or View on GitHub
python
@property
-def complementary(self) -> 'AnyAngle':
-    """
-        余角:两角的和为90°。
-        Returns:
-            余角
-        """
-    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

Description: 补角:两角的和为180°。

Return: 补角

Source code or View on GitHub
python
@property
-def supplementary(self) -> 'AnyAngle':
-    """
-        补角:两角的和为180°。
-        Returns:
-            补角
-        """
-    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

Description: 角度。

Return: 弧度

Source code or View on GitHub
python
@property
-def degree(self) -> float:
-    """
-        角度。
-        Returns:
-            弧度
-        """
-    return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

Description: 最小正角。

Return: 最小正角度

Source code or View on GitHub
python
@property
-def minimum_positive(self) -> 'AnyAngle':
-    """
-        最小正角。
-        Returns:
-            最小正角度
-        """
-    return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

Description: 最大负角。

Return: 最大负角度

Source code or View on GitHub
python
@property
-def maximum_negative(self) -> 'AnyAngle':
-    """
-        最大负角。
-        Returns:
-            最大负角度
-        """
-    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

Description: 正弦值。

Return: 正弦值

Source code or View on GitHub
python
@property
-def sin(self) -> float:
-    """
-        正弦值。
-        Returns:
-            正弦值
-        """
-    return math.sin(self.radian)

@property

method cos(self) -> float

Description: 余弦值。

Return: 余弦值

Source code or View on GitHub
python
@property
-def cos(self) -> float:
-    """
-        余弦值。
-        Returns:
-            余弦值
-        """
-    return math.cos(self.radian)

@property

method tan(self) -> float

Description: 正切值。

Return: 正切值

Source code or View on GitHub
python
@property
-def tan(self) -> float:
-    """
-        正切值。
-        Returns:
-            正切值
-        """
-    return math.tan(self.radian)

@property

method cot(self) -> float

Description: 余切值。

Return: 余切值

Source code or View on GitHub
python
@property
-def cot(self) -> float:
-    """
-        余切值。
-        Returns:
-            余切值
-        """
-    return 1 / math.tan(self.radian)

@property

method sec(self) -> float

Description: 正割值。

Return: 正割值

Source code or View on GitHub
python
@property
-def sec(self) -> float:
-    """
-        正割值。
-        Returns:
-            正割值
-        """
-    return 1 / math.cos(self.radian)

@property

method csc(self) -> float

Description: 余割值。

Return: 余割值

Source code or View on GitHub
python
@property
-def csc(self) -> float:
-    """
-        余割值。
-        Returns:
-            余割值
-        """
-    return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

Source code or View on GitHub
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

Source code or View on GitHub
python
def __eq__(self, other):
-    return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

Source code or View on GitHub
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian - other.radian, is_radian=True)

method self * other: float => AnyAngle

Source code or View on GitHub
python
def __mul__(self, other: float) -> 'AnyAngle':
-    return AnyAngle(self.radian * other, is_radian=True)

@overload

method self / other: float => AnyAngle

Source code or View on GitHub
python
@overload
-def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

method self / other: AnyAngle => float

Source code or View on GitHub
python
@overload
-def __truediv__(self, other: 'AnyAngle') -> float:
-    ...

method self / other

Source code or View on GitHub
python
def __truediv__(self, other):
-    if isinstance(other, AnyAngle):
-        return self.radian / other.radian
-    return AnyAngle(self.radian / other, is_radian=True)
`,80),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; diff --git a/assets/en_api_mp_math_angle.md.B5tdtBiM.lean.js b/assets/en_api_mp_math_angle.md.B5tdtBiM.lean.js deleted file mode 100644 index 8f233a1..0000000 --- a/assets/en_api_mp_math_angle.md.B5tdtBiM.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/angle.md","filePath":"en/api/mp_math/angle.md"}'),t={name:"en/api/mp_math/angle.md"},e=n("",80),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; diff --git a/assets/en_api_mp_math_angle.md.Bd_SmddI.js b/assets/en_api_mp_math_angle.md.Bd_SmddI.js new file mode 100644 index 0000000..b8762be --- /dev/null +++ b/assets/en_api_mp_math_angle.md.Bd_SmddI.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/angle.md","filePath":"en/api/mp_math/angle.md"}'),e={name:"en/api/mp_math/angle.md"},n=t('

Module mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

Description: 任意角度。

Arguments:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
Source code or View on GitHub
python
def __init__(self, value: float, is_radian: bool=False):\n    if is_radian:\n        self.radian = value\n    else:\n        self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

Description: 余角:两角的和为90°。

Return: 余角

Source code or View on GitHub
python
@property\ndef complementary(self) -> 'AnyAngle':\n    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

Description: 补角:两角的和为180°。

Return: 补角

Source code or View on GitHub
python
@property\ndef supplementary(self) -> 'AnyAngle':\n    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

Description: 角度。

Return: 弧度

Source code or View on GitHub
python
@property\ndef degree(self) -> float:\n    return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

Description: 最小正角。

Return: 最小正角度

Source code or View on GitHub
python
@property\ndef minimum_positive(self) -> 'AnyAngle':\n    return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

Description: 最大负角。

Return: 最大负角度

Source code or View on GitHub
python
@property\ndef maximum_negative(self) -> 'AnyAngle':\n    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

Description: 正弦值。

Return: 正弦值

Source code or View on GitHub
python
@property\ndef sin(self) -> float:\n    return math.sin(self.radian)

@property

method cos(self) -> float

Description: 余弦值。

Return: 余弦值

Source code or View on GitHub
python
@property\ndef cos(self) -> float:\n    return math.cos(self.radian)

@property

method tan(self) -> float

Description: 正切值。

Return: 正切值

Source code or View on GitHub
python
@property\ndef tan(self) -> float:\n    return math.tan(self.radian)

@property

method cot(self) -> float

Description: 余切值。

Return: 余切值

Source code or View on GitHub
python
@property\ndef cot(self) -> float:\n    return 1 / math.tan(self.radian)

@property

method sec(self) -> float

Description: 正割值。

Return: 正割值

Source code or View on GitHub
python
@property\ndef sec(self) -> float:\n    return 1 / math.cos(self.radian)

@property

method csc(self) -> float

Description: 余割值。

Return: 余割值

Source code or View on GitHub
python
@property\ndef csc(self) -> float:\n    return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

Source code or View on GitHub
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':\n    return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

Source code or View on GitHub
python
def __eq__(self, other):\n    return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

Source code or View on GitHub
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':\n    return AnyAngle(self.radian - other.radian, is_radian=True)

method self * other: float => AnyAngle

Source code or View on GitHub
python
def __mul__(self, other: float) -> 'AnyAngle':\n    return AnyAngle(self.radian * other, is_radian=True)

@overload

method self / other: float => AnyAngle

Source code or View on GitHub
python
@overload\ndef __truediv__(self, other: float) -> 'AnyAngle':\n    ...

@overload

method self / other: AnyAngle => float

Source code or View on GitHub
python
@overload\ndef __truediv__(self, other: 'AnyAngle') -> float:\n    ...

method self / other

Source code or View on GitHub
python
def __truediv__(self, other):\n    if isinstance(other, AnyAngle):\n        return self.radian / other.radian\n    return AnyAngle(self.radian / other, is_radian=True)
',80),h=[n];function l(p,r,k,o,d,g){return a(),i("div",null,h)}const m=s(e,[["render",l]]);export{c as __pageData,m as default}; diff --git a/assets/en_api_mp_math_angle.md.Bd_SmddI.lean.js b/assets/en_api_mp_math_angle.md.Bd_SmddI.lean.js new file mode 100644 index 0000000..039f849 --- /dev/null +++ b/assets/en_api_mp_math_angle.md.Bd_SmddI.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/angle.md","filePath":"en/api/mp_math/angle.md"}'),e={name:"en/api/mp_math/angle.md"},n=t("",80),h=[n];function l(p,r,k,o,d,g){return a(),i("div",null,h)}const m=s(e,[["render",l]]);export{c as __pageData,m as default}; diff --git a/assets/en_api_mp_math_equation.md.N3oP-7Ua.js b/assets/en_api_mp_math_equation.md.B0ThTNcD.js similarity index 77% rename from assets/en_api_mp_math_equation.md.N3oP-7Ua.js rename to assets/en_api_mp_math_equation.md.B0ThTNcD.js index 88be957..d236f29 100644 --- a/assets/en_api_mp_math_equation.md.N3oP-7Ua.js +++ b/assets/en_api_mp_math_equation.md.B0ThTNcD.js @@ -1,44 +1,14 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/equation.md","filePath":"en/api/mp_math/equation.md"}'),t={name:"en/api/mp_math/equation.md"},l=n(`

Module mbcp.mp_math.equation

本模块定义了方程相关的类和函数以及一些常用的数学函数

class CurveEquation

method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)

Description: 曲线方程。

Arguments:

Source code or View on GitHub
python
def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc):
-    """
-        曲线方程。
-        Args:
-            x_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): x函数
-            y_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): y函数
-            z_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): z函数
-        """
     self.x_func = x_func
     self.y_func = y_func
     self.z_func = z_func

method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

Description: 计算曲线上的点。

Arguments:

  • *t:
  • 参数:

Return: 目标点

Source code or View on GitHub
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
-    """
-        计算曲线上的点。
-        Args:
-            *t:
-                参数
-        Returns:
-            目标点
-        """
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
         return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

Description: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

Arguments:

  • func (MultiVarsFunc): N元函数
  • var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
  • epsilon: 偏移量

Return: 偏导函数

Raises:

  • ValueError 无效变量类型
Source code or View on GitHub
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
-    """
-    求N元函数一阶偏导函数。这玩意不太稳定,慎用。
-    > [!warning]
-    > 目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升
-
-    Args:
-        func ([\`MultiVarsFunc\`](./mp_math_typing#var-multivarsfunc)): N元函数
-        var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
-        epsilon: 偏移量
-    Returns:
-        偏导函数
-    Raises:
-        ValueError: 无效变量类型
-    """
     if isinstance(var, int):
 
         def partial_derivative_func(*args: Var) -> Var:
-            """@litedoc-hide"""
             args_list_plus = list(args)
             args_list_plus[var] += epsilon
             args_list_minus = list(args)
@@ -48,18 +18,10 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
     elif isinstance(var, tuple):
 
         def high_order_partial_derivative_func(*args: Var) -> Var:
-            """
-            @litedoc-hide
-            求高阶偏导函数
-            Args:
-                *args: 参数
-            Returns:
-                高阶偏导数值
-            """
             result_func = func
             for v in var:
                 result_func = get_partial_derivative_func(result_func, v, epsilon)
             return result_func(*args)
         return high_order_partial_derivative_func
     else:
-        raise ValueError('Invalid var type')
`,23),p=[l];function h(e,k,r,E,d,c){return a(),i("div",null,p)}const o=s(t,[["render",h]]);export{u as __pageData,o as default}; + raise ValueError('Invalid var type')`,23),h=[l];function e(p,k,r,E,d,c){return a(),i("div",null,h)}const o=s(t,[["render",e]]);export{u as __pageData,o as default}; diff --git a/assets/en_api_mp_math_equation.md.N3oP-7Ua.lean.js b/assets/en_api_mp_math_equation.md.B0ThTNcD.lean.js similarity index 73% rename from assets/en_api_mp_math_equation.md.N3oP-7Ua.lean.js rename to assets/en_api_mp_math_equation.md.B0ThTNcD.lean.js index ec4bd2d..f5aa0b5 100644 --- a/assets/en_api_mp_math_equation.md.N3oP-7Ua.lean.js +++ b/assets/en_api_mp_math_equation.md.B0ThTNcD.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/equation.md","filePath":"en/api/mp_math/equation.md"}'),t={name:"en/api/mp_math/equation.md"},l=n("",23),p=[l];function h(e,k,r,E,d,c){return a(),i("div",null,p)}const o=s(t,[["render",h]]);export{u as __pageData,o as default}; +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/equation.md","filePath":"en/api/mp_math/equation.md"}'),t={name:"en/api/mp_math/equation.md"},l=n("",23),h=[l];function e(p,k,r,E,d,c){return a(),i("div",null,h)}const o=s(t,[["render",e]]);export{u as __pageData,o as default}; diff --git a/assets/en_api_mp_math_function.md.BT0NB_1n.lean.js b/assets/en_api_mp_math_function.md.BT0NB_1n.lean.js deleted file mode 100644 index d2c213a..0000000 --- a/assets/en_api_mp_math_function.md.BT0NB_1n.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/function.md","filePath":"en/api/mp_math/function.md"}'),e={name:"en/api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const Z=l(e,[["render",x]]);export{V as __pageData,Z as default}; diff --git a/assets/en_api_mp_math_function.md.BT0NB_1n.js b/assets/en_api_mp_math_function.md.l19FY4Hu.js similarity index 82% rename from assets/en_api_mp_math_function.md.BT0NB_1n.js rename to assets/en_api_mp_math_function.md.l19FY4Hu.js index 7afc361..4d01461 100644 --- a/assets/en_api_mp_math_function.md.BT0NB_1n.js +++ b/assets/en_api_mp_math_function.md.l19FY4Hu.js @@ -1,16 +1,4 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/function.md","filePath":"en/api/mp_math/function.md"}'),e={name:"en/api/mp_math/function.md"},Q=a('

Module mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

Description: 计算三元函数在某点的梯度向量。

',4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a('',1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a('',1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a('',1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a(`

Arguments:

Return: 梯度

Source code or View on GitHub
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
-    """
-    计算三元函数在某点的梯度向量。
-    > [!tip]
-    > 已知一个函数$f(x, y, z)$,则其在点$(x_0, y_0, z_0)$处的梯度向量为:
-    $\\\\nabla f(x_0, y_0, z_0) = \\\\left(\\\\frac{\\\\partial f}{\\\\partial x}, \\\\frac{\\\\partial f}{\\\\partial y}, \\\\frac{\\\\partial f}{\\\\partial z}\\\\right)$
-    Args:
-        func ([\`ThreeSingleVarsFunc\`](./mp_math_typing#var-threesinglevarsfunc)): 三元函数
-        p ([\`Point3\`](./point#class-point3)): 点
-        epsilon: 偏移量
-    Returns:
-        梯度
-    """
+import{_ as n,c as s,j as t,a as Q,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/function.md","filePath":"en/api/mp_math/function.md"}'),T={name:"en/api/mp_math/function.md"},e=a('

Module mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

Description: 计算三元函数在某点的梯度向量。

',4),l={class:"tip custom-block github-alert"},h=t("p",{class:"custom-block-title"},"TIP",-1),r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},o=a('',1),p=[o],m=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("mi",null,"x"),t("mo",null,","),t("mi",null,"y"),t("mo",null,","),t("mi",null,"z"),t("mo",{stretchy:"false"},")")])],-1),k={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},g=a('',1),u=[g],y=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},_=a('',1),w=[_],x=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",{mathvariant:"normal"},"∇"),t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")"),t("mo",null,"="),t("mrow",{"data-mjx-texclass":"INNER"},[t("mo",{"data-mjx-texclass":"OPEN"},"("),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"x")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"y")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"z")])]),t("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),b=a(`

Arguments:

Return: 梯度

Source code or View on GitHub
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
     dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
     dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
     dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
@@ -18,25 +6,7 @@ import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1Zp
     return a + b + c
 add_curried = curry(add, 1, 2)
 add_curried(3)  # 6
Source code or View on GitHub
python
def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc:
-    """
-    对多参数函数进行柯里化。
-    > [!tip]
-    > 有关函数柯里化,可参考[函数式编程--柯理化(Currying)](https://zhuanlan.zhihu.com/p/355859667)
-    Args:
-        func ([\`MultiVarsFunc\`](./mp_math_typing#var-multivarsfunc)): 函数
-        *args ([\`Var\`](./mp_math_typing#var-var)): 参数
-    Returns:
-        柯里化后的函数
-    Examples:
-        \`\`\`python
-        def add(a: int, b: int, c: int) -> int:
-            return a + b + c
-        add_curried = curry(add, 1, 2)
-        add_curried(3)  # 6
-        \`\`\`
-    """
 
     def curried_func(*args2: Var) -> Var:
-        """@litedoc-hide"""
         return func(*args, *args2)
-    return curried_func
`,13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const Z=l(e,[["render",x]]);export{V as __pageData,Z as default}; + return curried_func
`,13);function L(H,M,F,v,D,Z){return i(),s("div",null,[e,t("div",l,[h,t("p",null,[Q("已知一个函数"),t("mjx-container",r,[(i(),s("svg",d,p)),m]),Q(",则其在点"),t("mjx-container",k,[(i(),s("svg",c,u)),y]),Q("处的梯度向量为: "),t("mjx-container",E,[(i(),s("svg",f,w)),x])])]),b])}const A=n(T,[["render",L]]);export{V as __pageData,A as default}; diff --git a/assets/en_api_mp_math_function.md.l19FY4Hu.lean.js b/assets/en_api_mp_math_function.md.l19FY4Hu.lean.js new file mode 100644 index 0000000..05c3641 --- /dev/null +++ b/assets/en_api_mp_math_function.md.l19FY4Hu.lean.js @@ -0,0 +1 @@ +import{_ as n,c as s,j as t,a as Q,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/function.md","filePath":"en/api/mp_math/function.md"}'),T={name:"en/api/mp_math/function.md"},e=a("",4),l={class:"tip custom-block github-alert"},h=t("p",{class:"custom-block-title"},"TIP",-1),r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},o=a("",1),p=[o],m=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("mi",null,"x"),t("mo",null,","),t("mi",null,"y"),t("mo",null,","),t("mi",null,"z"),t("mo",{stretchy:"false"},")")])],-1),k={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},g=a("",1),u=[g],y=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},_=a("",1),w=[_],x=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",{mathvariant:"normal"},"∇"),t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")"),t("mo",null,"="),t("mrow",{"data-mjx-texclass":"INNER"},[t("mo",{"data-mjx-texclass":"OPEN"},"("),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"x")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"y")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"z")])]),t("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),b=a("",13);function L(H,M,F,v,D,Z){return i(),s("div",null,[e,t("div",l,[h,t("p",null,[Q("已知一个函数"),t("mjx-container",r,[(i(),s("svg",d,p)),m]),Q(",则其在点"),t("mjx-container",k,[(i(),s("svg",c,u)),y]),Q("处的梯度向量为: "),t("mjx-container",E,[(i(),s("svg",f,w)),x])])]),b])}const A=n(T,[["render",L]]);export{V as __pageData,A as default}; diff --git a/assets/en_api_mp_math_line.md.0bBpZMyn.lean.js b/assets/en_api_mp_math_line.md.0bBpZMyn.lean.js deleted file mode 100644 index 0ed5ff5..0000000 --- a/assets/en_api_mp_math_line.md.0bBpZMyn.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/line.md","filePath":"en/api/mp_math/line.md"}'),t={name:"en/api/mp_math/line.md"},l=n("",106),e=[l];function h(p,k,o,r,d,g){return a(),i("div",null,e)}const E=s(t,[["render",h]]);export{F as __pageData,E as default}; diff --git a/assets/en_api_mp_math_line.md.0bBpZMyn.js b/assets/en_api_mp_math_line.md.Bd5Z3iC3.js similarity index 74% rename from assets/en_api_mp_math_line.md.0bBpZMyn.js rename to assets/en_api_mp_math_line.md.Bd5Z3iC3.js index 1fc957d..30b81c6 100644 --- a/assets/en_api_mp_math_line.md.0bBpZMyn.js +++ b/assets/en_api_mp_math_line.md.Bd5Z3iC3.js @@ -1,38 +1,8 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/line.md","filePath":"en/api/mp_math/line.md"}'),t={name:"en/api/mp_math/line.md"},l=n(`

Module mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

Description: 三维空间中的直线。由一个点和一个方向向量确定。

Arguments:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
Source code or View on GitHub
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
-    """
-        三维空间中的直线。由一个点和一个方向向量确定。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 直线上的一点
-            direction ([\`Vector3\`](./vector#class-vector3)): 方向向量
-        """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/line.md","filePath":"en/api/mp_math/line.md"}'),e={name:"en/api/mp_math/line.md"},n=t(`

Module mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

Description: 三维空间中的直线。由一个点和一个方向向量确定。

Arguments:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
Source code or View on GitHub
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
     self.point = point
     self.direction = direction

method approx(self, other: Line3, epsilon: float = APPROX) -> bool

Description: 判断两条直线是否近似相等。

Arguments:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
-    """
-        判断两条直线是否近似相等。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-            epsilon ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return self.is_approx_parallel(other, epsilon) and (self.point - other.point).is_approx_parallel(self.direction, epsilon)

method cal_angle(self, other: Line3) -> AnyAngle

Description: 计算直线和直线之间的夹角。

Arguments:

  • other (Line3): 另一条直线

Return: AnyAngle: 夹角

Source code or View on GitHub
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
-    """
-        计算直线和直线之间的夹角。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        """
     return self.direction.cal_angle(other.direction)

method cal_distance(self, other: Line3 | Point3) -> float

Description: 计算直线和直线或点之间的距离。

Arguments:

Return: float: 距离

Raises:

Source code or View on GitHub
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
-    """
-        计算直线和直线或点之间的距离。
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3)): 另一条直线或点
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         if self == other:
             return 0
@@ -46,91 +16,19 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
         raise TypeError('Unsupported type.')

method cal_intersection(self, other: Line3) -> Point3

Description: 计算两条直线的交点。

Arguments:

  • other (Line3): 另一条直线

Return: Point3: 交点

Raises:

Source code or View on GitHub
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
-    """
-        计算两条直线的交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`Point3\`](./point#class-point3): 交点
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 直线平行
-            \`ValueError\`: 直线不共面
-        """
     if self.is_parallel(other):
         raise ValueError('Lines are parallel and do not intersect.')
     if not self.is_coplanar(other):
         raise ValueError('Lines are not coplanar and do not intersect.')
     return self.point + self.direction.cross(other.direction) @ other.direction.cross(self.point - other.point) / self.direction.cross(other.direction).length ** 2 * self.direction

method cal_perpendicular(self, point: Point3) -> Line3

Description: 计算直线经过指定点p的垂线。

Arguments:

Return: Line3: 垂线

Source code or View on GitHub
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
-    """
-        计算直线经过指定点p的垂线。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 指定点
-        Returns:
-            [\`Line3\`](./line#class-line3): 垂线
-        """
     return Line3(point, self.direction.cross(point - self.point))

method get_point(self, t: RealNumber) -> Point3

Description: 获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。

Arguments:

Return: Point3: 点

Source code or View on GitHub
python
def get_point(self, t: RealNumber) -> 'Point3':
-    """
-        获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。
-        Args:
-            t ([\`RealNumber\`](./mp_math_typing#var-realnumber)): 参数t
-        Returns:
-            [\`Point3\`](./point#class-point3): 点
-        """
     return self.point + t * self.direction

method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]

Description: 获取直线的参数方程。

Return: tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]: 参数方程

Source code or View on GitHub
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
-    """
-        获取直线的参数方程。
-        Returns:
-            [\`tuple\`](https%3A//docs.python.org/3/library/stdtypes.html#tuple)[[\`OneSingleVarFunc\`](./mp_math_typing#var-onesinglevarfunc), \`OneSingleVarFunc\`, \`OneSingleVarFunc\`]: 参数方程
-        """
     return (lambda t: self.point.x + self.direction.x * t, lambda t: self.point.y + self.direction.y * t, lambda t: self.point.z + self.direction.z * t)

method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool

Description: 判断两条直线是否近似平行。

Arguments:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

Return: bool: 是否近似平行

Source code or View on GitHub
python
def is_approx_parallel(self, other: 'Line3', epsilon: float=1e-06) -> bool:
-    """
-        判断两条直线是否近似平行。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-            epsilon ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.direction.is_approx_parallel(other.direction, epsilon)

method is_parallel(self, other: Line3) -> bool

Description: 判断两条直线是否平行。

Arguments:

Return: bool: 是否平行

Source code or View on GitHub
python
def is_parallel(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否平行。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.direction.is_parallel(other.direction)

method is_collinear(self, other: Line3) -> bool

Description: 判断两条直线是否共线。

Arguments:

Return: bool: 是否共线

Source code or View on GitHub
python
def is_collinear(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共线。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共线
-        """
     return self.is_parallel(other) and (self.point - other.point).is_parallel(self.direction)

method is_point_on(self, point: Point3) -> bool

Description: 判断点是否在直线上。

Arguments:

Return: bool: 是否在直线上

Source code or View on GitHub
python
def is_point_on(self, point: 'Point3') -> bool:
-    """
-        判断点是否在直线上。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 点
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
-        """
     return (point - self.point).is_parallel(self.direction)

method is_coplanar(self, other: Line3) -> bool

Description: 判断两条直线是否共面。 充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。

Arguments:

Return: bool: 是否共面

Source code or View on GitHub
python
def is_coplanar(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共面。
-        充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
-        """
     return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

Description: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

Source code or View on GitHub
python
def simplify(self):
-    """
-        简化直线方程,等价相等。
-        自体简化,不返回值。
-
-        按照可行性一次对x y z 化 0 处理,并对向量单位化
-        """
     self.direction.normalize()
     if self.direction.x == 0:
         self.point.x = 0
@@ -139,36 +37,12 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     if self.direction.z == 0:
         self.point.z = 0

@classmethod

method from_two_points(cls, p1: Point3, p2: Point3) -> Line3

Description: 工厂函数 由两点构造直线。

Arguments:

Return: Line3: 直线

Source code or View on GitHub
python
@classmethod
 def from_two_points(cls, p1: 'Point3', p2: 'Point3') -> 'Line3':
-    """
-        工厂函数 由两点构造直线。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 点1
-            p2 ([\`Point3\`](./point#class-point3)): 点2
-        Returns:
-            [\`Line3\`](./line#class-line3): 直线
-        """
     direction = p2 - p1
     return cls(p1, direction)

method __and__(self, other: Line3) -> Line3 | Point3 | None

Description: 计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。

Arguments:

  • other (Line3): 另一条直线

Return: Line3 | Point3 | None: 交集

Source code or View on GitHub
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
-    """
-        计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3) | [\`None\`](https://docs.python.org/3/library/constants.html#None): 交集
-        """
     if self.is_collinear(other):
         return self
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
         return self.cal_intersection(other)

method __eq__(self, other) -> bool

Description: 判断两条直线是否等价。

v1 // v2 ∧ (p1 - p2) // v1

Arguments:

  • other (Line3): 另一条直线

Return: bool: 是否等价

Source code or View on GitHub
python
def __eq__(self, other) -> bool:
-    """
-        判断两条直线是否等价。
-
-        v1 // v2 ∧ (p1 - p2) // v1
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
-    return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)
`,106),e=[l];function h(p,k,o,r,d,g){return a(),i("div",null,e)}const E=s(t,[["render",h]]);export{F as __pageData,E as default}; + return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)
`,106),l=[n];function h(p,o,r,k,d,g){return a(),i("div",null,l)}const y=s(e,[["render",h]]);export{E as __pageData,y as default}; diff --git a/assets/en_api_mp_math_line.md.Bd5Z3iC3.lean.js b/assets/en_api_mp_math_line.md.Bd5Z3iC3.lean.js new file mode 100644 index 0000000..ee7ec98 --- /dev/null +++ b/assets/en_api_mp_math_line.md.Bd5Z3iC3.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/line.md","filePath":"en/api/mp_math/line.md"}'),e={name:"en/api/mp_math/line.md"},n=t("",106),l=[n];function h(p,o,r,k,d,g){return a(),i("div",null,l)}const y=s(e,[["render",h]]);export{E as __pageData,y as default}; diff --git a/assets/en_api_mp_math_plane.md.BqUredjB.js b/assets/en_api_mp_math_plane.md.D91Vt6aU.js similarity index 84% rename from assets/en_api_mp_math_plane.md.BqUredjB.js rename to assets/en_api_mp_math_plane.md.D91Vt6aU.js index 7e6f2ec..f8a4dc1 100644 --- a/assets/en_api_mp_math_plane.md.BqUredjB.js +++ b/assets/en_api_mp_math_plane.md.D91Vt6aU.js @@ -1,23 +1,8 @@ -import{_ as l,c as i,j as s,a as n,a4 as t,o as a}from"./chunks/framework.DpC1ZpOZ.js";const qs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/plane.md","filePath":"en/api/mp_math/plane.md"}'),e={name:"en/api/mp_math/plane.md"},h=t(`

Module mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

Description: 平面方程:ax + by + cz + d = 0

Arguments:

  • a (float): x系数
  • b (float): y系数
  • c (float): z系数
  • d (float): 常数项
Source code or View on GitHub
python
def __init__(self, a: float, b: float, c: float, d: float):
-    """
-        平面方程:ax + by + cz + d = 0
-        Args:
-            a ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): x系数
-            b (\`float\`): y系数
-            c (\`float\`): z系数
-            d (\`float\`): 常数项
-        """
+import{_ as n,c as a,j as s,a as e,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Zs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/plane.md","filePath":"en/api/mp_math/plane.md"}'),l={name:"en/api/mp_math/plane.md"},h=t(`

Module mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

Description: 平面方程:ax + by + cz + d = 0

Arguments:

  • a (float): x系数
  • b (float): y系数
  • c (float): z系数
  • d (float): 常数项
Source code or View on GitHub
python
def __init__(self, a: float, b: float, c: float, d: float):
     self.a = a
     self.b = b
     self.c = c
     self.d = d

method approx(self, other: Plane3) -> bool

Description: 判断两个平面是否近似相等。

Arguments:

  • other (Plane3): 另一个平面

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否近似相等。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     if self.a != 0:
         k = other.a / self.a
         return approx(other.b, self.b * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
@@ -28,67 +13,19 @@ import{_ as l,c as i,j as s,a as n,a4 as t,o as a}from"./chunks/framework.DpC1Zp
         k = other.c / self.c
         return approx(other.a, self.a * k) and approx(other.b, self.b * k) and approx(other.d, self.d * k)
     else:
-        return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

Description: 计算平面与平面之间的夹角。

`,16),p={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),k=s("p",null,"平面间夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t('',1),g=[Q],c=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),T={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},m={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t('',1),y=[E],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),u={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},C={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},f=t('',1),b=[f],_=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},B=s("p",{class:"custom-block-title"},"TIP",-1),w=s("p",null,"平面与直线夹角计算公式:",-1),H={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},A={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},L=t('',1),D=[L],v=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),V={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},M={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},q=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[q],Z=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},R={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},j=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),z=[j],$=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),N=t(`

Arguments:

Return: AnyAngle: 夹角

Raises:

Source code or View on GitHub
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
-    """
-        计算平面与平面之间的夹角。
-        :::tip
-        平面间夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{n1 \\\\cdot n2}{|n1| \\\\cdot |n2|})$$
-        其中 $n1$ 和 $n2$ 分别为两个平面的法向量
-        :::
-        :::tip
-        平面与直线夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{n \\\\cdot d}{|n| \\\\cdot |d|})$$
-        其中 $n$ 为平面的法向量,$d$ 为直线的方向向量
-        :::
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Plane3\`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
+        return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

Description: 计算平面与平面之间的夹角。

`,16),p={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),o=s("p",null,"平面间夹角计算公式:",-1),k={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t('',1),T=[Q],g=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t('',1),y=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},_=t('',1),b=[_],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},w=s("p",{class:"custom-block-title"},"TIP",-1),H=s("p",null,"平面与直线夹角计算公式:",-1),D={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},L={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t('',1),v=[A],B=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},Z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[Z],q=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},R=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),N=[R],z=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),G=t(`

Arguments:

Return: AnyAngle: 夹角

Raises:

Source code or View on GitHub
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     if isinstance(other, Line3):
         return self.normal.cal_angle(other.direction).complementary
     elif isinstance(other, Plane3):
         return AnyAngle(math.acos(self.normal @ other.normal / (self.normal.length * other.normal.length)), is_radian=True)
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_distance(self, other: Plane3 | Point3) -> float

Description: 计算平面与平面或点之间的距离。

Arguments:

Return: float: 距离

Raises:

Source code or View on GitHub
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
-    """
-        计算平面与平面或点之间的距离。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3) | [\`Point3\`](./point#class-point3)): 另一个平面或点
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         return 0
     elif isinstance(other, Point3):
         return abs(self.a * other.x + self.b * other.y + self.c * other.z + self.d) / (self.a ** 2 + self.b ** 2 + self.c ** 2) ** 0.5
     else:
-        raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

Description: 计算两平面的交线。

`,16),G={class:"tip custom-block"},I=s("p",{class:"custom-block-title"},"TIP",-1),J=s("p",null,"计算两平面交线的一般步骤:",-1),O=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t('',1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},is={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},as={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t('',1),ns=[ts],ls=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),es={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t('',1),rs=[ps],ks=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),os={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t('',1),gs=[Qs],cs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),Ts={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ms={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t('',1),ys=[Es],Fs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),us=s("p",null,"或",-1),Cs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},fs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t('',1),_s=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),Bs=t(`

Arguments:

  • other (Plane3): 另一个平面

Return: Line3: 交线

Raises:

Source code or View on GitHub
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
-    """
-        计算两平面的交线。
-        :::tip
-        计算两平面交线的一般步骤:
-        1. 求两平面的法向量的叉乘得到方向向量
-        $$ d = n1 \\\\times n2 $$
-        2. 寻找直线上的一点,依次假设$x=0$, $y=0$, $z=0$,并代入两平面方程求出合适的点
-        直线最终可用参数方程或点向式表示
-        $$ \\\\begin{cases} x = x_0 + dt \\\\\\\\ y = y_0 + dt \\\\\\\\ z = z_0 + dt \\\\end{cases} $$
-
-        $$ \\\\frac{x - x_0}{m} = \\\\frac{y - y_0}{n} = \\\\frac{z - z_0}{p} $$
-        :::
-
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`Line3\`](./line#class-line3): 交线
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面平行且无交线
-        """
+        raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

Description: 计算两平面的交线。

`,16),I={class:"tip custom-block"},J=s("p",{class:"custom-block-title"},"TIP",-1),O=s("p",null,"计算两平面交线的一般步骤:",-1),$=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t('',1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t('',1),es=[ts],ns=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),ls={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t('',1),rs=[ps],os=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),ks={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t('',1),Ts=[Qs],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),ms={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},cs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t('',1),ys=[Es],us=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),Fs=s("p",null,"或",-1),fs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},_s={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t('',1),Cs=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),ws=t(`

Arguments:

  • other (Plane3): 另一个平面

Return: Line3: 交线

Raises:

Source code or View on GitHub
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     if self.normal.is_parallel(other.normal):
         raise ValueError('Planes are parallel and have no intersection.')
     direction = self.normal.cross(other.normal)
@@ -106,106 +43,36 @@ import{_ as l,c as i,j as s,a as n,a4 as t,o as a}from"./chunks/framework.DpC1Zp
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
     return Line3(Point3(x, y, z), direction)

method cal_intersection_point3(self, other: Line3) -> Point3

Description: 计算平面与直线的交点。

Arguments:

Return: Point3: 交点

Raises:

Source code or View on GitHub
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
-    """
-        计算平面与直线的交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 直线
-        Returns:
-            [\`Point3\`](./point#class-point3): 交点
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面与直线平行或重合
-        """
     if self.normal @ other.direction == 0:
         raise ValueError('The plane and the line are parallel or coincident.')
     x, y, z = other.get_parametric_equations()
     t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)
     return Point3(x(t), y(t), z(t))

method cal_parallel_plane3(self, point: Point3) -> Plane3

Description: 计算平行于该平面且过指定点的平面。

Arguments:

Return: Plane3: 平面

Source code or View on GitHub
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
-    """
-        计算平行于该平面且过指定点的平面。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 指定点
-        Returns:
-            [\`Plane3\`](./plane#class-plane3): 平面
-        """
     return Plane3.from_point_and_normal(point, self.normal)

method is_parallel(self, other: Plane3) -> bool

Description: 判断两个平面是否平行。

Arguments:

  • other (Plane3): 另一个平面

Return: bool: 是否平行

Source code or View on GitHub
python
def is_parallel(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否平行。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.normal.is_parallel(other.normal)

@property

method normal(self) -> Vector3

Description: 平面的法向量。

Return: Vector3: 法向量

Source code or View on GitHub
python
@property
 def normal(self) -> 'Vector3':
-    """
-        平面的法向量。
-        Returns:
-            [\`Vector3\`](./vector#class-vector3): 法向量
-        """
     return Vector3(self.a, self.b, self.c)

@classmethod

method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3

Description: 工厂函数 由点和法向量构造平面(点法式构造)。

Arguments:

Return: Plane3: 平面

Source code or View on GitHub
python
@classmethod
 def from_point_and_normal(cls, point: 'Point3', normal: 'Vector3') -> 'Plane3':
-    """
-        工厂函数 由点和法向量构造平面(点法式构造)。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 平面上一点
-            normal ([\`Vector3\`](./vector#class-vector3)): 法向量
-        Returns:
-            [\`Plane3\`](./plane#class-plane3): 平面
-        """
     a, b, c = (normal.x, normal.y, normal.z)
     d = -a * point.x - b * point.y - c * point.z
     return cls(a, b, c, d)

@classmethod

method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3

Description: 工厂函数 由三点构造平面。

Arguments:

  • p1 (Point3): 点1
  • p2 (Point3): 点2
  • p3 (Point3): 点3

Return: 平面

Source code or View on GitHub
python
@classmethod
 def from_three_points(cls, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3':
-    """
-        工厂函数 由三点构造平面。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 点1
-            p2 (\`Point3\`): 点2
-            p3 (\`Point3\`): 点3
-        Returns:
-            平面
-        """
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
     return cls.from_point_and_normal(p1, normal)

@classmethod

method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3

Description: 工厂函数 由两直线构造平面。

Arguments:

  • l1 (Line3): 直线
  • l2 (Line3): 直线

Return: 平面

Source code or View on GitHub
python
@classmethod
 def from_two_lines(cls, l1: 'Line3', l2: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由两直线构造平面。
-        Args:
-            l1 ([\`Line3\`](./line#class-line3)): 直线
-            l2 (\`Line3\`): 直线
-        Returns:
-            平面
-        """
     v1 = l1.direction
     v2 = l2.point - l1.point
     if v2 == zero_vector3:
         v2 = l2.get_point(1) - l1.point
     return cls.from_point_and_normal(l1.point, v1.cross(v2))

@classmethod

method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3

Description: 工厂函数 由点和直线构造平面。

Arguments:

Return: 平面

Source code or View on GitHub
python
@classmethod
 def from_point_and_line(cls, point: 'Point3', line: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由点和直线构造平面。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 平面上一点
-            line ([\`Line3\`](./line#class-line3)): 直线
-        Returns:
-            平面
-        """
     return cls.from_point_and_normal(point, line.direction)

@overload

method __and__(self, other: Line3) -> Point3 | None

Source code or View on GitHub
python
@overload
 def __and__(self, other: 'Line3') -> 'Point3 | None':
     ...

@overload

method __and__(self, other: Plane3) -> Line3 | None

Source code or View on GitHub
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
     ...

method __and__(self, other)

Description: 取两平面的交集(人话:交线)

Arguments:

Return: Line3 | Point3 | None: 交集

Raises:

Source code or View on GitHub
python
def __and__(self, other):
-    """
-        取两平面的交集(人话:交线)
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Plane3\`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3) | [\`None\`](https%3A//docs.python.org/3/library/constants.html#None): 交集
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         if self.normal.is_parallel(other.normal):
             return None
@@ -216,12 +83,5 @@ import{_ as l,c as i,j as s,a as n,a4 as t,o as a}from"./chunks/framework.DpC1Zp
         return self.cal_intersection_point3(other)
     else:
         raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

method __eq__(self, other) -> bool

Description: 判断两个平面是否等价。

Arguments:

  • other (Plane3): 另一个平面

Return: bool: 是否等价

Source code or View on GitHub
python
def __eq__(self, other) -> bool:
-    """
-        判断两个平面是否等价。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.approx(other)

method __rand__(self, other: Line3) -> Point3

Source code or View on GitHub
python
def __rand__(self, other: 'Line3') -> 'Point3':
-    return self.cal_intersection_point3(other)
`,81);function ws(Hs,As,Ls,Ds,vs,Vs){return a(),i("div",null,[h,s("div",p,[r,k,s("mjx-container",o,[(a(),i("svg",d,g)),c]),s("p",null,[n("其中 "),s("mjx-container",T,[(a(),i("svg",m,y)),F]),n(" 和 "),s("mjx-container",u,[(a(),i("svg",C,b)),_]),n(" 分别为两个平面的法向量")])]),s("div",x,[B,w,s("mjx-container",H,[(a(),i("svg",A,D)),v]),s("p",null,[n("其中 "),s("mjx-container",V,[(a(),i("svg",M,P)),Z]),n(" 为平面的法向量,"),s("mjx-container",S,[(a(),i("svg",R,z)),$]),n(" 为直线的方向向量")])]),N,s("div",G,[I,J,O,s("mjx-container",U,[(a(),i("svg",K,X)),Y]),s("ol",ss,[s("li",null,[n("寻找直线上的一点,依次假设"),s("mjx-container",is,[(a(),i("svg",as,ns)),ls]),n(", "),s("mjx-container",es,[(a(),i("svg",hs,rs)),ks]),n(", "),s("mjx-container",os,[(a(),i("svg",ds,gs)),cs]),n(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",Ts,[(a(),i("svg",ms,ys)),Fs]),us,s("mjx-container",Cs,[(a(),i("svg",fs,_s)),xs])]),Bs])}const Ps=l(e,[["render",ws]]);export{qs as __pageData,Ps as default}; + return self.cal_intersection_point3(other)
`,81);function Hs(Ds,Ls,As,vs,Bs,Ms){return i(),a("div",null,[h,s("div",p,[r,o,s("mjx-container",k,[(i(),a("svg",d,T)),g]),s("p",null,[e("其中 "),s("mjx-container",m,[(i(),a("svg",c,y)),u]),e(" 和 "),s("mjx-container",F,[(i(),a("svg",f,b)),C]),e(" 分别为两个平面的法向量")])]),s("div",x,[w,H,s("mjx-container",D,[(i(),a("svg",L,v)),B]),s("p",null,[e("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),q]),e(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,N)),z]),e(" 为直线的方向向量")])]),G,s("div",I,[J,O,$,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[e("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,es)),ns]),e(", "),s("mjx-container",ls,[(i(),a("svg",hs,rs)),os]),e(", "),s("mjx-container",ks,[(i(),a("svg",ds,Ts)),gs]),e(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",ms,[(i(),a("svg",cs,ys)),us]),Fs,s("mjx-container",fs,[(i(),a("svg",_s,Cs)),xs])]),ws])}const Ps=n(l,[["render",Hs]]);export{Zs as __pageData,Ps as default}; diff --git a/assets/ja_api_mp_math_plane.md.DmM6KUUe.lean.js b/assets/en_api_mp_math_plane.md.D91Vt6aU.lean.js similarity index 78% rename from assets/ja_api_mp_math_plane.md.DmM6KUUe.lean.js rename to assets/en_api_mp_math_plane.md.D91Vt6aU.lean.js index 5ca44cf..6f7c97d 100644 --- a/assets/ja_api_mp_math_plane.md.DmM6KUUe.lean.js +++ b/assets/en_api_mp_math_plane.md.D91Vt6aU.lean.js @@ -1 +1 @@ -import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const qs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/plane.md","filePath":"ja/api/mp_math/plane.md"}'),e={name:"ja/api/mp_math/plane.md"},h=t("",16),p={class:"tip custom-block"},k=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"平面间夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t("",1),g=[Q],c=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),T={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},m={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t("",1),y=[E],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),u={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},C={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},f=t("",1),b=[f],_=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},B=s("p",{class:"custom-block-title"},"TIP",-1),w=s("p",null,"平面与直线夹角计算公式:",-1),H={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},L={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t("",1),D=[A],v=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},q=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[q],Z=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},R=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),z=[R],$=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),N=t("",16),G={class:"tip custom-block"},I=s("p",{class:"custom-block-title"},"TIP",-1),J=s("p",null,"计算两平面交线的一般步骤:",-1),O=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t("",1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t("",1),ns=[ts],ls=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),es={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t("",1),ks=[ps],rs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),os={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t("",1),gs=[Qs],cs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),Ts={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ms={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t("",1),ys=[Es],Fs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),us=s("p",null,"或",-1),Cs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},fs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t("",1),_s=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),Bs=t("",81);function ws(Hs,Ls,As,Ds,vs,Ms){return i(),a("div",null,[h,s("div",p,[k,r,s("mjx-container",o,[(i(),a("svg",d,g)),c]),s("p",null,[n("其中 "),s("mjx-container",T,[(i(),a("svg",m,y)),F]),n(" 和 "),s("mjx-container",u,[(i(),a("svg",C,b)),_]),n(" 分别为两个平面的法向量")])]),s("div",x,[B,w,s("mjx-container",H,[(i(),a("svg",L,D)),v]),s("p",null,[n("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),Z]),n(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,z)),$]),n(" 为直线的方向向量")])]),N,s("div",G,[I,J,O,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[n("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,ns)),ls]),n(", "),s("mjx-container",es,[(i(),a("svg",hs,ks)),rs]),n(", "),s("mjx-container",os,[(i(),a("svg",ds,gs)),cs]),n(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",Ts,[(i(),a("svg",ms,ys)),Fs]),us,s("mjx-container",Cs,[(i(),a("svg",fs,_s)),xs])]),Bs])}const Ps=l(e,[["render",ws]]);export{qs as __pageData,Ps as default}; +import{_ as n,c as a,j as s,a as e,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Zs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/plane.md","filePath":"en/api/mp_math/plane.md"}'),l={name:"en/api/mp_math/plane.md"},h=t("",16),p={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),o=s("p",null,"平面间夹角计算公式:",-1),k={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t("",1),T=[Q],g=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t("",1),y=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},_=t("",1),b=[_],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},w=s("p",{class:"custom-block-title"},"TIP",-1),H=s("p",null,"平面与直线夹角计算公式:",-1),D={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},L={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t("",1),v=[A],B=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},Z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[Z],q=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},R=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),N=[R],z=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),G=t("",16),I={class:"tip custom-block"},J=s("p",{class:"custom-block-title"},"TIP",-1),O=s("p",null,"计算两平面交线的一般步骤:",-1),$=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t("",1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t("",1),es=[ts],ns=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),ls={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t("",1),rs=[ps],os=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),ks={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t("",1),Ts=[Qs],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),ms={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},cs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t("",1),ys=[Es],us=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),Fs=s("p",null,"或",-1),fs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},_s={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t("",1),Cs=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),ws=t("",81);function Hs(Ds,Ls,As,vs,Bs,Ms){return i(),a("div",null,[h,s("div",p,[r,o,s("mjx-container",k,[(i(),a("svg",d,T)),g]),s("p",null,[e("其中 "),s("mjx-container",m,[(i(),a("svg",c,y)),u]),e(" 和 "),s("mjx-container",F,[(i(),a("svg",f,b)),C]),e(" 分别为两个平面的法向量")])]),s("div",x,[w,H,s("mjx-container",D,[(i(),a("svg",L,v)),B]),s("p",null,[e("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),q]),e(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,N)),z]),e(" 为直线的方向向量")])]),G,s("div",I,[J,O,$,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[e("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,es)),ns]),e(", "),s("mjx-container",ls,[(i(),a("svg",hs,rs)),os]),e(", "),s("mjx-container",ks,[(i(),a("svg",ds,Ts)),gs]),e(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",ms,[(i(),a("svg",cs,ys)),us]),Fs,s("mjx-container",fs,[(i(),a("svg",_s,Cs)),xs])]),ws])}const Ps=n(l,[["render",Hs]]);export{Zs as __pageData,Ps as default}; diff --git a/assets/en_api_mp_math_point.md.Ba_i7dDC.js b/assets/en_api_mp_math_point.md.Ba_i7dDC.js deleted file mode 100644 index 3c836a3..0000000 --- a/assets/en_api_mp_math_point.md.Ba_i7dDC.js +++ /dev/null @@ -1,52 +0,0 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/point.md","filePath":"en/api/mp_math/point.md"}'),n={name:"en/api/mp_math/point.md"},e=t(`

Module mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

Description: 笛卡尔坐标系中的点。

Arguments:

  • x (float): x 坐标
  • y (float): y 坐标
  • z (float): z 坐标
Source code or View on GitHub
python
def __init__(self, x: float, y: float, z: float):
-    """
-        笛卡尔坐标系中的点。
-        Args:
-            x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): x 坐标
-            y (\`float\`): y 坐标
-            z (\`float\`): z 坐标
-        """
-    self.x = x
-    self.y = y
-    self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

Description: 判断两个点是否近似相等。

Arguments:

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个点是否近似相等。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-            epsilon ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
-    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

Source code or View on GitHub
python
@overload
-def __add__(self, other: 'Vector3') -> 'Point3':
-    ...

@overload

method self + other: Point3 => Point3

Source code or View on GitHub
python
@overload
-def __add__(self, other: 'Point3') -> 'Point3':
-    ...

method self + other

Description: P + V -> P P + P -> P

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __add__(self, other):
-    """
-        P + V -> P
-        P + P -> P
-        Args:
-            other ([\`Vector3\`](./vector#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个点或向量
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

Description: 判断两个点是否相等。

Arguments:

Return: bool: 是否相等

Source code or View on GitHub
python
def __eq__(self, other):
-    """
-        判断两个点是否相等。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否相等
-        """
-    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

Description: P - P -> V

P - V -> P 已在 Vector3 中实现

Arguments:

Return: Vector3: 新的向量

Source code or View on GitHub
python
def __sub__(self, other: 'Point3') -> 'Vector3':
-    """
-        P - P -> V
-
-        P - V -> P  已在 [\`Vector3\`](./vector#class-vector3) 中实现
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Vector3\`](./vector#class-vector3): 新的向量
-        """
-    from .vector import Vector3
-    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
`,39),l=[e];function h(p,o,k,r,d,c){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; diff --git a/assets/en_api_mp_math_point.md.Dr2bDE6-.js b/assets/en_api_mp_math_point.md.Dr2bDE6-.js new file mode 100644 index 0000000..7a53d15 --- /dev/null +++ b/assets/en_api_mp_math_point.md.Dr2bDE6-.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/point.md","filePath":"en/api/mp_math/point.md"}'),e={name:"en/api/mp_math/point.md"},h=t('

Module mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

Description: 笛卡尔坐标系中的点。

Arguments:

  • x (float): x 坐标
  • y (float): y 坐标
  • z (float): z 坐标
Source code or View on GitHub
python
def __init__(self, x: float, y: float, z: float):\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

Description: 判断两个点是否近似相等。

Arguments:

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

Source code or View on GitHub
python
@overload\ndef __add__(self, other: 'Vector3') -> 'Point3':\n    ...

@overload

method self + other: Point3 => Point3

Source code or View on GitHub
python
@overload\ndef __add__(self, other: 'Point3') -> 'Point3':\n    ...

method self + other

Description: P + V -> P P + P -> P

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __add__(self, other):\n    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

Description: 判断两个点是否相等。

Arguments:

Return: bool: 是否相等

Source code or View on GitHub
python
def __eq__(self, other):\n    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

Description: P - P -> V

P - V -> P 已在 Vector3 中实现

Arguments:

Return: Vector3: 新的向量

Source code or View on GitHub
python
def __sub__(self, other: 'Point3') -> 'Vector3':\n    from .vector import Vector3\n    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
',39),n=[h];function l(p,o,r,k,d,g){return a(),i("div",null,n)}const y=s(e,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/en_api_mp_math_point.md.Ba_i7dDC.lean.js b/assets/en_api_mp_math_point.md.Dr2bDE6-.lean.js similarity index 58% rename from assets/en_api_mp_math_point.md.Ba_i7dDC.lean.js rename to assets/en_api_mp_math_point.md.Dr2bDE6-.lean.js index 8047eb5..1f98d0d 100644 --- a/assets/en_api_mp_math_point.md.Ba_i7dDC.lean.js +++ b/assets/en_api_mp_math_point.md.Dr2bDE6-.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/point.md","filePath":"en/api/mp_math/point.md"}'),n={name:"en/api/mp_math/point.md"},e=t("",39),l=[e];function h(p,o,k,r,d,c){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/point.md","filePath":"en/api/mp_math/point.md"}'),e={name:"en/api/mp_math/point.md"},h=t("",39),n=[h];function l(p,o,r,k,d,g){return a(),i("div",null,n)}const y=s(e,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/en_api_mp_math_segment.md.BhIGb9yq.lean.js b/assets/en_api_mp_math_segment.md.BhIGb9yq.lean.js deleted file mode 100644 index cbf8c29..0000000 --- a/assets/en_api_mp_math_segment.md.BhIGb9yq.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/segment.md","filePath":"en/api/mp_math/segment.md"}'),t={name:"en/api/mp_math/segment.md"},p=n("",8),h=[p];function e(l,k,r,d,o,E){return a(),i("div",null,h)}const F=s(t,[["render",e]]);export{c as __pageData,F as default}; diff --git a/assets/en_api_mp_math_segment.md.BhIGb9yq.js b/assets/en_api_mp_math_segment.md.D0wpX8Us.js similarity index 83% rename from assets/en_api_mp_math_segment.md.BhIGb9yq.js rename to assets/en_api_mp_math_segment.md.D0wpX8Us.js index 9594a7c..b253cd0 100644 --- a/assets/en_api_mp_math_segment.md.BhIGb9yq.js +++ b/assets/en_api_mp_math_segment.md.D0wpX8Us.js @@ -1,10 +1,4 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/segment.md","filePath":"en/api/mp_math/segment.md"}'),t={name:"en/api/mp_math/segment.md"},p=n(`

Module mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

Description: 三维空间中的线段。

Arguments:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
Source code or View on GitHub
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
-    """
-        三维空间中的线段。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 线段的一个端点
-            p2 ([\`Point3\`](./point#class-point3)): 线段的另一个端点
-        """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/segment.md","filePath":"en/api/mp_math/segment.md"}'),n={name:"en/api/mp_math/segment.md"},h=t(`

Module mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

Description: 三维空间中的线段。

Arguments:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
Source code or View on GitHub
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
     self.p1 = p1
     self.p2 = p2
     '方向向量'
@@ -12,4 +6,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     '长度'
     self.length = self.direction.length
     '中心点'
-    self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)
`,8),h=[p];function e(l,k,r,d,o,E){return a(),i("div",null,h)}const F=s(t,[["render",e]]);export{c as __pageData,F as default}; + self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)
`,8),e=[h];function p(l,k,r,d,o,E){return a(),i("div",null,e)}const c=s(n,[["render",p]]);export{m as __pageData,c as default}; diff --git a/assets/en_api_mp_math_segment.md.D0wpX8Us.lean.js b/assets/en_api_mp_math_segment.md.D0wpX8Us.lean.js new file mode 100644 index 0000000..2e00bc6 --- /dev/null +++ b/assets/en_api_mp_math_segment.md.D0wpX8Us.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/segment.md","filePath":"en/api/mp_math/segment.md"}'),n={name:"en/api/mp_math/segment.md"},h=t("",8),e=[h];function p(l,k,r,d,o,E){return a(),i("div",null,e)}const c=s(n,[["render",p]]);export{m as __pageData,c as default}; diff --git a/assets/en_api_mp_math_utils.md.Bz-xJhl3.js b/assets/en_api_mp_math_utils.md.n9Hkxc_q.js similarity index 81% rename from assets/en_api_mp_math_utils.md.Bz-xJhl3.js rename to assets/en_api_mp_math_utils.md.n9Hkxc_q.js index 7f55306..4516905 100644 --- a/assets/en_api_mp_math_utils.md.Bz-xJhl3.js +++ b/assets/en_api_mp_math_utils.md.n9Hkxc_q.js @@ -1,20 +1,5 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/utils.md","filePath":"en/api/mp_math/utils.md"}'),n={name:"en/api/mp_math/utils.md"},l=t(`

Module mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

Description: 区间限定函数

Arguments:

  • x (float): 值
  • min_ (float): 最小值
  • max_ (float): 最大值

Return: float: 限定在区间内的值

Source code or View on GitHub
python
def clamp(x: float, min_: float, max_: float) -> float:
-    """
-    区间限定函数
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 值
-        min_ (\`float\`): 最小值
-        max_ (\`float\`): 最大值
-
-    Returns:
-        \`float\`: 限定在区间内的值
-    """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/utils.md","filePath":"en/api/mp_math/utils.md"}'),n={name:"en/api/mp_math/utils.md"},l=t(`

Module mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

Description: 区间限定函数

Arguments:

  • x (float): 值
  • min_ (float): 最小值
  • max_ (float): 最大值

Return: float: 限定在区间内的值

Source code or View on GitHub
python
def clamp(x: float, min_: float, max_: float) -> float:
     return max(min(x, max_), min_)

class Approx

method __init__(self, value: RealNumber)

Description: 用于近似比较对象

Arguments:

Source code or View on GitHub
python
def __init__(self, value: RealNumber):
-    """
-        用于近似比较对象
-        Args:
-            value ([\`RealNumber\`](./mp_math_typing#realnumber)): 实数
-        """
     self.value = value

method __eq__(self, other)

Source code or View on GitHub
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
@@ -28,42 +13,16 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
             self.raise_type_error(other)

method raise_type_error(self, other)

Source code or View on GitHub
python
def raise_type_error(self, other):
     raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

method __ne__(self, other)

Source code or View on GitHub
python
def __ne__(self, other):
     return not self.__eq__(other)

func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool

Description: 判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

Arguments:

  • x (float): 数1
  • y (float): 数2
  • epsilon (float): 误差

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
-    """
-    判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数1
-        y (\`float\`): 数2
-        epsilon (\`float\`): 误差
-    Returns:
-        [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-    """
     return abs(x - y) < epsilon

func sign(x: float, only_neg: bool = False) -> str

Description: 获取数的符号。

Arguments:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign(x: float, only_neg: bool=False) -> str:
-    """获取数的符号。
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([\`bool\`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [\`str\`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return '+' if not only_neg else ''
     elif x < 0:
         return '-'
     else:
         return ''

func sign_format(x: float, only_neg: bool = False) -> str

Description: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

Arguments:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign_format(x: float, only_neg: bool=False) -> str:
-    """格式化符号数
-    -1 -> -1
-    1 -> +1
-    0 -> ""
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([\`bool\`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [\`str\`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return f'+{x}' if not only_neg else f'{x}'
     elif x < 0:
         return f'-{abs(x)}'
     else:
-        return ''
`,38),h=[l];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const c=s(n,[["render",e]]);export{F as __pageData,c as default}; + return ''
`,38),e=[l];function h(p,k,r,o,d,g){return a(),i("div",null,e)}const c=s(n,[["render",h]]);export{E as __pageData,c as default}; diff --git a/assets/en_api_mp_math_utils.md.Bz-xJhl3.lean.js b/assets/en_api_mp_math_utils.md.n9Hkxc_q.lean.js similarity index 58% rename from assets/en_api_mp_math_utils.md.Bz-xJhl3.lean.js rename to assets/en_api_mp_math_utils.md.n9Hkxc_q.lean.js index 292eb4c..266f09c 100644 --- a/assets/en_api_mp_math_utils.md.Bz-xJhl3.lean.js +++ b/assets/en_api_mp_math_utils.md.n9Hkxc_q.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/utils.md","filePath":"en/api/mp_math/utils.md"}'),n={name:"en/api/mp_math/utils.md"},l=t("",38),h=[l];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const c=s(n,[["render",e]]);export{F as __pageData,c as default}; +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/utils.md","filePath":"en/api/mp_math/utils.md"}'),n={name:"en/api/mp_math/utils.md"},l=t("",38),e=[l];function h(p,k,r,o,d,g){return a(),i("div",null,e)}const c=s(n,[["render",h]]);export{E as __pageData,c as default}; diff --git a/assets/en_api_mp_math_vector.md.ARDQGWRk.js b/assets/en_api_mp_math_vector.md.ARDQGWRk.js new file mode 100644 index 0000000..6713d46 --- /dev/null +++ b/assets/en_api_mp_math_vector.md.ARDQGWRk.js @@ -0,0 +1 @@ +import{_ as e,c as t,j as s,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/vector.md","filePath":"en/api/mp_math/vector.md"}'),l={name:"en/api/mp_math/vector.md"},n=a('

Module mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

Description: 3维向量

Arguments:

  • x (float): x轴分量
  • y (float): y轴分量
  • z (float): z轴分量
Source code or View on GitHub
python
def __init__(self, x: float, y: float, z: float):\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

Description: 判断两个向量是否近似相等。

Arguments:

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

Description: 计算两个向量之间的夹角。

',16),h={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),o=s("p",null,"向量夹角计算公式:",-1),p={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},k=a('',1),T=[k],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a('

Arguments:

Return: AnyAngle: 夹角

Source code or View on GitHub
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':\n    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

Description: 向量积 叉乘:v1 x v2 -> v3

',6),m={class:"tip custom-block"},c=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},u={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},b=a('',1),f=[b],F=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),_={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},v={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},V=a('',1),H=[V],x=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),D=a('

Arguments:

Return: Vector3: 叉乘结果

Source code or View on GitHub
python
def cross(self, other: 'Vector3') -> 'Vector3':\n    return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

Description: 判断两个向量是否近似平行。

Arguments:

Return: bool: 是否近似平行

Source code or View on GitHub
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

Description: 判断两个向量是否平行。

Arguments:

Return: bool: 是否平行

Source code or View on GitHub
python
def is_parallel(self, other: 'Vector3') -> bool:\n    return self.cross(other).approx(zero_vector3)

method normalize(self)

Description: 将向量归一化。

自体归一化,不返回值。

Source code or View on GitHub
python
def normalize(self):\n    length = self.length\n    self.x /= length\n    self.y /= length\n    self.z /= length

@property

method np_array(self) -> np.ndarray

Return: np.ndarray: numpy数组

Source code or View on GitHub
python
@property\ndef np_array(self) -> 'np.ndarray':\n    return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

Description: 向量的模。

Return: float: 模

Source code or View on GitHub
python
@property\ndef length(self) -> float:\n    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

Description: 获取该向量的单位向量。

Return: Vector3: 单位向量

Source code or View on GitHub
python
@property\ndef unit(self) -> 'Vector3':\n    return self / self.length

method __abs__(self)

Source code or View on GitHub
python
def __abs__(self):\n    return self.length

@overload

method self + other: Vector3 => Vector3

Source code or View on GitHub
python
@overload\ndef __add__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self + other: Point3 => Point3

Source code or View on GitHub
python
@overload\ndef __add__(self, other: 'Point3') -> 'Point3':\n    ...

method self + other

Description: V + P -> P

V + V -> V

Arguments:

Return: Vector3 | Point3: 新的向量或点

Source code or View on GitHub
python
def __add__(self, other):\n    if isinstance(other, Vector3):\n        return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)\n    elif isinstance(other, Point3):\n        return Point3(self.x + other.x, self.y + other.y, self.z + other.z)\n    else:\n        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

Description: 判断两个向量是否相等。

Arguments:

Return: bool: 是否相等

Source code or View on GitHub
python
def __eq__(self, other):\n    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

Description: P + V -> P

别去点那边实现了。

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __radd__(self, other: 'Point3') -> 'Point3':\n    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

Source code or View on GitHub
python
@overload\ndef __sub__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self - other: Point3 => Point3

Source code or View on GitHub
python
@overload\ndef __sub__(self, other: 'Point3') -> 'Point3':\n    ...

method self - other

Description: V - P -> P

V - V -> V

Arguments:

Return: Vector3 | Point3: 新的向量

Source code or View on GitHub
python
def __sub__(self, other):\n    if isinstance(other, Vector3):\n        return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)\n    elif isinstance(other, Point3):\n        return Point3(self.x - other.x, self.y - other.y, self.z - other.z)\n    else:\n        raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

Description: P - V -> P

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __rsub__(self, other: 'Point3'):\n    if isinstance(other, Point3):\n        return Point3(other.x - self.x, other.y - self.y, other.z - self.z)\n    else:\n        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

method self * other: Vector3 => Vector3

Source code or View on GitHub
python
@overload\ndef __mul__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self * other: RealNumber => Vector3

Source code or View on GitHub
python
@overload\ndef __mul__(self, other: RealNumber) -> 'Vector3':\n    ...

method self * other: int | float | Vector3 => Vector3

Description: 数组运算 非点乘。点乘使用@,叉乘使用cross。

Arguments:

Return: Vector3: 数组运算结果

Source code or View on GitHub
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':\n    if isinstance(other, Vector3):\n        return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)\n    elif isinstance(other, (float, int)):\n        return Vector3(self.x * other, self.y * other, self.z * other)\n    else:\n        raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

Source code or View on GitHub
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':\n    return self.__mul__(other)

method self @ other: Vector3 => RealNumber

Description: 点乘。

Arguments:

Return: float: 点乘结果

Source code or View on GitHub
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':\n    return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

Source code or View on GitHub
python
def __truediv__(self, other: RealNumber) -> 'Vector3':\n    return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

Description: 取负。

Return: Vector3: 负向量

Source code or View on GitHub
python
def __neg__(self) -> 'Vector3':\n    return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • Description: 零向量

  • Type: Vector3

  • Default: Vector3(0, 0, 0)

var x_axis

  • Description: x轴单位向量

  • Type: Vector3

  • Default: Vector3(1, 0, 0)

var y_axis

  • Description: y轴单位向量

  • Type: Vector3

  • Default: Vector3(0, 1, 0)

var z_axis

  • Description: z轴单位向量

  • Type: Vector3

  • Default: Vector3(0, 0, 1)

',115);function w(B,A,L,M,Z,q){return i(),t("div",null,[n,s("div",h,[r,o,s("mjx-container",p,[(i(),t("svg",d,T)),Q])]),g,s("div",m,[c,y,s("mjx-container",E,[(i(),t("svg",u,f)),F]),C,s("mjx-container",_,[(i(),t("svg",v,H)),x])]),D])}const S=e(l,[["render",w]]);export{z as __pageData,S as default}; diff --git a/assets/en_api_mp_math_vector.md.OzaLDP6e.lean.js b/assets/en_api_mp_math_vector.md.ARDQGWRk.lean.js similarity index 80% rename from assets/en_api_mp_math_vector.md.OzaLDP6e.lean.js rename to assets/en_api_mp_math_vector.md.ARDQGWRk.lean.js index f1f1e13..9f7fafb 100644 --- a/assets/en_api_mp_math_vector.md.OzaLDP6e.lean.js +++ b/assets/en_api_mp_math_vector.md.ARDQGWRk.lean.js @@ -1 +1 @@ -import{_ as n,c as i,j as s,a4 as a,o as t}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/vector.md","filePath":"en/api/mp_math/vector.md"}'),e={name:"en/api/mp_math/vector.md"},l=a("",16),h={class:"tip custom-block"},p=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},d=a("",1),T=[d],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a("",6),c={class:"tip custom-block"},m=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},u=a("",1),b=[u],f=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),v={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},_=a("",1),V=[_],H=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),x=a("",115);function D(w,q,A,L,M,P){return t(),i("div",null,[l,s("div",h,[p,r,s("mjx-container",o,[(t(),i("svg",k,T)),Q])]),g,s("div",c,[m,y,s("mjx-container",E,[(t(),i("svg",F,b)),f]),C,s("mjx-container",v,[(t(),i("svg",B,V)),H])]),x])}const R=n(e,[["render",D]]);export{z as __pageData,R as default}; +import{_ as e,c as t,j as s,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/vector.md","filePath":"en/api/mp_math/vector.md"}'),l={name:"en/api/mp_math/vector.md"},n=a("",16),h={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),o=s("p",null,"向量夹角计算公式:",-1),p={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},k=a("",1),T=[k],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a("",6),m={class:"tip custom-block"},c=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},u={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},b=a("",1),f=[b],F=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),_={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},v={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},V=a("",1),H=[V],x=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),D=a("",115);function w(B,A,L,M,Z,q){return i(),t("div",null,[n,s("div",h,[r,o,s("mjx-container",p,[(i(),t("svg",d,T)),Q])]),g,s("div",m,[c,y,s("mjx-container",E,[(i(),t("svg",u,f)),F]),C,s("mjx-container",_,[(i(),t("svg",v,H)),x])]),D])}const S=e(l,[["render",w]]);export{z as __pageData,S as default}; diff --git a/assets/en_api_mp_math_vector.md.OzaLDP6e.js b/assets/en_api_mp_math_vector.md.OzaLDP6e.js deleted file mode 100644 index ff07c55..0000000 --- a/assets/en_api_mp_math_vector.md.OzaLDP6e.js +++ /dev/null @@ -1,176 +0,0 @@ -import{_ as n,c as i,j as s,a4 as a,o as t}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/vector.md","filePath":"en/api/mp_math/vector.md"}'),e={name:"en/api/mp_math/vector.md"},l=a('

Module mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

Description: 3维向量

Arguments:

  • x (float): x轴分量
  • y (float): y轴分量
  • z (float): z轴分量
Source code or View on GitHub
python
def __init__(self, x: float, y: float, z: float):\n    """\n        3维向量\n        Args:\n            x ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x轴分量\n            y (`float`): y轴分量\n            z (`float`): z轴分量\n        """\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

Description: 判断两个向量是否近似相等。

Arguments:

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    """\n        判断两个向量是否近似相等。\n        Args:\n            other ([`Vector3`](#class-vector3)): 另一个向量\n            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差\n\n        Returns:\n            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似相等\n        """\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

Description: 计算两个向量之间的夹角。

',16),h={class:"tip custom-block"},p=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},d=a('',1),T=[d],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a(`

Arguments:

Return: AnyAngle: 夹角

Source code or View on GitHub
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
-    """
-        计算两个向量之间的夹角。
-        :::tip
-        向量夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{v1 \\\\cdot v2}{|v1| \\\\cdot |v2|})$$
-        :::
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

Description: 向量积 叉乘:v1 x v2 -> v3

`,6),c={class:"tip custom-block"},m=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},u=a('',1),b=[u],f=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),v={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},_=a('',1),V=[_],H=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),x=a(`

Arguments:

Return: Vector3: 叉乘结果

Source code or View on GitHub
python
def cross(self, other: 'Vector3') -> 'Vector3':
-    """
-        向量积 叉乘:v1 x v2 -> v3
-
-        :::tip
-        叉乘运算法则为:
-        $$ v1 \\\\times v2 = (v1_y \\\\cdot v2_z - v1_z \\\\cdot v2_y, v1_z \\\\cdot v2_x - v1_x \\\\cdot v2_z, v1_x \\\\cdot v2_y - v1_y \\\\cdot v2_x) $$
-        转换为行列式形式:
-        $$ v1 \\\\times v2 = \\\\begin{vmatrix} i & j & k \\\\\\\\ v1_x & v1_y & v1_z \\\\\\\\ v2_x & v2_y & v2_z \\\\end{vmatrix} $$
-        :::
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`Vector3\`](#class-vector3): 叉乘结果
-        """
-    return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

Description: 判断两个向量是否近似平行。

Arguments:

Return: bool: 是否近似平行

Source code or View on GitHub
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似平行。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-            epsilon ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
-    return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

Description: 判断两个向量是否平行。

Arguments:

Return: bool: 是否平行

Source code or View on GitHub
python
def is_parallel(self, other: 'Vector3') -> bool:
-    """
-        判断两个向量是否平行。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
-    return self.cross(other).approx(zero_vector3)

method normalize(self)

Description: 将向量归一化。

自体归一化,不返回值。

Source code or View on GitHub
python
def normalize(self):
-    """
-        将向量归一化。
-
-        自体归一化,不返回值。
-        """
-    length = self.length
-    self.x /= length
-    self.y /= length
-    self.z /= length

@property

method np_array(self) -> np.ndarray

Return: np.ndarray: numpy数组

Source code or View on GitHub
python
@property
-def np_array(self) -> 'np.ndarray':
-    """
-        返回numpy数组
-        Returns:
-            [\`np.ndarray\`](https%3A//numpy.org/doc/stable/reference/generated/numpy.ndarray.html): numpy数组
-        """
-    return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

Description: 向量的模。

Return: float: 模

Source code or View on GitHub
python
@property
-def length(self) -> float:
-    """
-        向量的模。
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 模
-        """
-    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

Description: 获取该向量的单位向量。

Return: Vector3: 单位向量

Source code or View on GitHub
python
@property
-def unit(self) -> 'Vector3':
-    """
-        获取该向量的单位向量。
-        Returns:
-            [\`Vector3\`](#class-vector3): 单位向量
-        """
-    return self / self.length

method __abs__(self)

Source code or View on GitHub
python
def __abs__(self):
-    return self.length

@overload

method self + other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
-def __add__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self + other: Point3 => Point3

Source code or View on GitHub
python
@overload
-def __add__(self, other: 'Point3') -> 'Point3':
-    ...

method self + other

Description: V + P -> P

V + V -> V

Arguments:

Return: Vector3 | Point3: 新的向量或点

Source code or View on GitHub
python
def __add__(self, other):
-    """
-        V + P -> P
-
-        V + V -> V
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3): 新的向量或点
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)
-    elif isinstance(other, Point3):
-        return Point3(self.x + other.x, self.y + other.y, self.z + other.z)
-    else:
-        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

Description: 判断两个向量是否相等。

Arguments:

Return: bool: 是否相等

Source code or View on GitHub
python
def __eq__(self, other):
-    """
-        判断两个向量是否相等。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否相等
-        """
-    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

Description: P + V -> P

别去点那边实现了。

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __radd__(self, other: 'Point3') -> 'Point3':
-    """
-        P + V -> P
-
-        别去点那边实现了。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
-def __sub__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self - other: Point3 => Point3

Source code or View on GitHub
python
@overload
-def __sub__(self, other: 'Point3') -> 'Point3':
-    ...

method self - other

Description: V - P -> P

V - V -> V

Arguments:

Return: Vector3 | Point3: 新的向量

Source code or View on GitHub
python
def __sub__(self, other):
-    """
-        V - P -> P
-
-        V - V -> V
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3): 新的向量
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
-    elif isinstance(other, Point3):
-        return Point3(self.x - other.x, self.y - other.y, self.z - other.z)
-    else:
-        raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

Description: P - V -> P

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __rsub__(self, other: 'Point3'):
-    """
-        P - V -> P
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    if isinstance(other, Point3):
-        return Point3(other.x - self.x, other.y - self.y, other.z - self.z)
-    else:
-        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

method self * other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
-def __mul__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self * other: RealNumber => Vector3

Source code or View on GitHub
python
@overload
-def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

method self * other: int | float | Vector3 => Vector3

Description: 数组运算 非点乘。点乘使用@,叉乘使用cross。

Arguments:

Return: Vector3: 数组运算结果

Source code or View on GitHub
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
-    """
-        数组运算 非点乘。点乘使用@,叉乘使用cross。
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 另一个向量或数
-        Returns:
-            [\`Vector3\`](#class-vector): 数组运算结果
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)
-    elif isinstance(other, (float, int)):
-        return Vector3(self.x * other, self.y * other, self.z * other)
-    else:
-        raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

Source code or View on GitHub
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

method self @ other: Vector3 => RealNumber

Description: 点乘。

Arguments:

Return: float: 点乘结果

Source code or View on GitHub
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
-    """
-        点乘。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 点乘结果
-        """
-    return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

Source code or View on GitHub
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
-    return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

Description: 取负。

Return: Vector3: 负向量

Source code or View on GitHub
python
def __neg__(self) -> 'Vector3':
-    """
-        取负。
-        Returns:
-            [\`Vector3\`](#class-vector3): 负向量
-        """
-    return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • Description: 零向量

  • Type: Vector3

  • Default: Vector3(0, 0, 0)

var x_axis

  • Description: x轴单位向量

  • Type: Vector3

  • Default: Vector3(1, 0, 0)

var y_axis

  • Description: y轴单位向量

  • Type: Vector3

  • Default: Vector3(0, 1, 0)

var z_axis

  • Description: z轴单位向量

  • Type: Vector3

  • Default: Vector3(0, 0, 1)

`,115);function D(w,q,A,L,M,P){return t(),i("div",null,[l,s("div",h,[p,r,s("mjx-container",o,[(t(),i("svg",k,T)),Q])]),g,s("div",c,[m,y,s("mjx-container",E,[(t(),i("svg",F,b)),f]),C,s("mjx-container",v,[(t(),i("svg",B,V)),H])]),x])}const R=n(e,[["render",D]]);export{z as __pageData,R as default}; diff --git a/assets/en_api_presets_model_index.md.tRSLY10d.js b/assets/en_api_presets_model_index.md.CF6gWxhr.js similarity index 87% rename from assets/en_api_presets_model_index.md.tRSLY10d.js rename to assets/en_api_presets_model_index.md.CF6gWxhr.js index bd865a8..1de50dc 100644 --- a/assets/en_api_presets_model_index.md.tRSLY10d.js +++ b/assets/en_api_presets_model_index.md.CF6gWxhr.js @@ -1,13 +1,5 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/presets/model/index.md","filePath":"en/api/presets/model/index.md"}'),t={name:"en/api/presets/model/index.md"},h=n(`

Module mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

Description: 生成球体上的点集。

Arguments:

  • radius:
  • density:

Return: List[Point3]: 球体上的点集。

Source code or View on GitHub
python
@staticmethod
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/presets/model/index.md","filePath":"en/api/presets/model/index.md"}'),h={name:"en/api/presets/model/index.md"},n=t(`

Module mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

Description: 生成球体上的点集。

Arguments:

  • radius:
  • density:

Return: List[Point3]: 球体上的点集。

Source code or View on GitHub
python
@staticmethod
 def sphere(radius: float, density: float):
-    """
-        生成球体上的点集。
-        Args:
-            radius:
-            density:
-        Returns:
-            List[Point3]: 球体上的点集。
-        """
     area = 4 * np.pi * radius ** 2
     num = int(area * density)
     phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
@@ -15,4 +7,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y
     x_array = radius * np.sin(phi_list) * np.cos(theta_list)
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
-    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]
`,10),l=[h];function p(e,k,r,d,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default}; + return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]
`,10),e=[n];function l(p,k,r,d,E,o){return a(),i("div",null,e)}const c=s(h,[["render",l]]);export{y as __pageData,c as default}; diff --git a/assets/en_api_presets_model_index.md.tRSLY10d.lean.js b/assets/en_api_presets_model_index.md.CF6gWxhr.lean.js similarity index 50% rename from assets/en_api_presets_model_index.md.tRSLY10d.lean.js rename to assets/en_api_presets_model_index.md.CF6gWxhr.lean.js index d57d4c4..711aae3 100644 --- a/assets/en_api_presets_model_index.md.tRSLY10d.lean.js +++ b/assets/en_api_presets_model_index.md.CF6gWxhr.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/presets/model/index.md","filePath":"en/api/presets/model/index.md"}'),t={name:"en/api/presets/model/index.md"},h=n("",10),l=[h];function p(e,k,r,d,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default}; +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/presets/model/index.md","filePath":"en/api/presets/model/index.md"}'),h={name:"en/api/presets/model/index.md"},n=t("",10),e=[n];function l(p,k,r,d,E,o){return a(),i("div",null,e)}const c=s(h,[["render",l]]);export{y as __pageData,c as default}; diff --git a/assets/ja_api_mp_math_angle.md.BPpenAm_.js b/assets/ja_api_mp_math_angle.md.BPpenAm_.js deleted file mode 100644 index 0c9f1f5..0000000 --- a/assets/ja_api_mp_math_angle.md.BPpenAm_.js +++ /dev/null @@ -1,99 +0,0 @@ -import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/angle.md","filePath":"ja/api/mp_math/angle.md"}'),t={name:"ja/api/mp_math/angle.md"},e=n(`

モジュール mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

説明: 任意角度。

引数:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
ソースコード または GitHubで表示
python
def __init__(self, value: float, is_radian: bool=False):
-    """
-        任意角度。
-        Args:
-            value: 角度或弧度值
-            is_radian: 是否为弧度,默认为否
-        """
-    if is_radian:
-        self.radian = value
-    else:
-        self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

説明: 余角:两角的和为90°。

戻り値: 余角

ソースコード または GitHubで表示
python
@property
-def complementary(self) -> 'AnyAngle':
-    """
-        余角:两角的和为90°。
-        Returns:
-            余角
-        """
-    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

説明: 补角:两角的和为180°。

戻り値: 补角

ソースコード または GitHubで表示
python
@property
-def supplementary(self) -> 'AnyAngle':
-    """
-        补角:两角的和为180°。
-        Returns:
-            补角
-        """
-    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

説明: 角度。

戻り値: 弧度

ソースコード または GitHubで表示
python
@property
-def degree(self) -> float:
-    """
-        角度。
-        Returns:
-            弧度
-        """
-    return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

説明: 最小正角。

戻り値: 最小正角度

ソースコード または GitHubで表示
python
@property
-def minimum_positive(self) -> 'AnyAngle':
-    """
-        最小正角。
-        Returns:
-            最小正角度
-        """
-    return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

説明: 最大负角。

戻り値: 最大负角度

ソースコード または GitHubで表示
python
@property
-def maximum_negative(self) -> 'AnyAngle':
-    """
-        最大负角。
-        Returns:
-            最大负角度
-        """
-    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

説明: 正弦值。

戻り値: 正弦值

ソースコード または GitHubで表示
python
@property
-def sin(self) -> float:
-    """
-        正弦值。
-        Returns:
-            正弦值
-        """
-    return math.sin(self.radian)

@property

method cos(self) -> float

説明: 余弦值。

戻り値: 余弦值

ソースコード または GitHubで表示
python
@property
-def cos(self) -> float:
-    """
-        余弦值。
-        Returns:
-            余弦值
-        """
-    return math.cos(self.radian)

@property

method tan(self) -> float

説明: 正切值。

戻り値: 正切值

ソースコード または GitHubで表示
python
@property
-def tan(self) -> float:
-    """
-        正切值。
-        Returns:
-            正切值
-        """
-    return math.tan(self.radian)

@property

method cot(self) -> float

説明: 余切值。

戻り値: 余切值

ソースコード または GitHubで表示
python
@property
-def cot(self) -> float:
-    """
-        余切值。
-        Returns:
-            余切值
-        """
-    return 1 / math.tan(self.radian)

@property

method sec(self) -> float

説明: 正割值。

戻り値: 正割值

ソースコード または GitHubで表示
python
@property
-def sec(self) -> float:
-    """
-        正割值。
-        Returns:
-            正割值
-        """
-    return 1 / math.cos(self.radian)

@property

method csc(self) -> float

説明: 余割值。

戻り値: 余割值

ソースコード または GitHubで表示
python
@property
-def csc(self) -> float:
-    """
-        余割值。
-        Returns:
-            余割值
-        """
-    return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
-    return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian - other.radian, is_radian=True)

method self * other: float => AnyAngle

ソースコード または GitHubで表示
python
def __mul__(self, other: float) -> 'AnyAngle':
-    return AnyAngle(self.radian * other, is_radian=True)

@overload

method self / other: float => AnyAngle

ソースコード または GitHubで表示
python
@overload
-def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

method self / other: AnyAngle => float

ソースコード または GitHubで表示
python
@overload
-def __truediv__(self, other: 'AnyAngle') -> float:
-    ...

method self / other

ソースコード または GitHubで表示
python
def __truediv__(self, other):
-    if isinstance(other, AnyAngle):
-        return self.radian / other.radian
-    return AnyAngle(self.radian / other, is_radian=True)
`,80),l=[e];function h(p,k,r,o,d,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; diff --git a/assets/ja_api_mp_math_angle.md.BPpenAm_.lean.js b/assets/ja_api_mp_math_angle.md.BPpenAm_.lean.js deleted file mode 100644 index feff6a6..0000000 --- a/assets/ja_api_mp_math_angle.md.BPpenAm_.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/angle.md","filePath":"ja/api/mp_math/angle.md"}'),t={name:"ja/api/mp_math/angle.md"},e=n("",80),l=[e];function h(p,k,r,o,d,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; diff --git a/assets/ja_api_mp_math_angle.md.DurFoqAy.js b/assets/ja_api_mp_math_angle.md.DurFoqAy.js new file mode 100644 index 0000000..9e3aafb --- /dev/null +++ b/assets/ja_api_mp_math_angle.md.DurFoqAy.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as i,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/angle.md","filePath":"ja/api/mp_math/angle.md"}'),e={name:"ja/api/mp_math/angle.md"},n=t('

モジュール mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

説明: 任意角度。

引数:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
ソースコード または GitHubで表示
python
def __init__(self, value: float, is_radian: bool=False):\n    if is_radian:\n        self.radian = value\n    else:\n        self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

説明: 余角:两角的和为90°。

戻り値: 余角

ソースコード または GitHubで表示
python
@property\ndef complementary(self) -> 'AnyAngle':\n    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

説明: 补角:两角的和为180°。

戻り値: 补角

ソースコード または GitHubで表示
python
@property\ndef supplementary(self) -> 'AnyAngle':\n    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

説明: 角度。

戻り値: 弧度

ソースコード または GitHubで表示
python
@property\ndef degree(self) -> float:\n    return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

説明: 最小正角。

戻り値: 最小正角度

ソースコード または GitHubで表示
python
@property\ndef minimum_positive(self) -> 'AnyAngle':\n    return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

説明: 最大负角。

戻り値: 最大负角度

ソースコード または GitHubで表示
python
@property\ndef maximum_negative(self) -> 'AnyAngle':\n    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

説明: 正弦值。

戻り値: 正弦值

ソースコード または GitHubで表示
python
@property\ndef sin(self) -> float:\n    return math.sin(self.radian)

@property

method cos(self) -> float

説明: 余弦值。

戻り値: 余弦值

ソースコード または GitHubで表示
python
@property\ndef cos(self) -> float:\n    return math.cos(self.radian)

@property

method tan(self) -> float

説明: 正切值。

戻り値: 正切值

ソースコード または GitHubで表示
python
@property\ndef tan(self) -> float:\n    return math.tan(self.radian)

@property

method cot(self) -> float

説明: 余切值。

戻り値: 余切值

ソースコード または GitHubで表示
python
@property\ndef cot(self) -> float:\n    return 1 / math.tan(self.radian)

@property

method sec(self) -> float

説明: 正割值。

戻り値: 正割值

ソースコード または GitHubで表示
python
@property\ndef sec(self) -> float:\n    return 1 / math.cos(self.radian)

@property

method csc(self) -> float

説明: 余割值。

戻り値: 余割值

ソースコード または GitHubで表示
python
@property\ndef csc(self) -> float:\n    return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':\n    return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):\n    return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':\n    return AnyAngle(self.radian - other.radian, is_radian=True)

method self * other: float => AnyAngle

ソースコード または GitHubで表示
python
def __mul__(self, other: float) -> 'AnyAngle':\n    return AnyAngle(self.radian * other, is_radian=True)

@overload

method self / other: float => AnyAngle

ソースコード または GitHubで表示
python
@overload\ndef __truediv__(self, other: float) -> 'AnyAngle':\n    ...

@overload

method self / other: AnyAngle => float

ソースコード または GitHubで表示
python
@overload\ndef __truediv__(self, other: 'AnyAngle') -> float:\n    ...

method self / other

ソースコード または GitHubで表示
python
def __truediv__(self, other):\n    if isinstance(other, AnyAngle):\n        return self.radian / other.radian\n    return AnyAngle(self.radian / other, is_radian=True)
',80),h=[n];function l(p,k,r,o,d,g){return i(),a("div",null,h)}const c=s(e,[["render",l]]);export{m as __pageData,c as default}; diff --git a/assets/ja_api_mp_math_angle.md.DurFoqAy.lean.js b/assets/ja_api_mp_math_angle.md.DurFoqAy.lean.js new file mode 100644 index 0000000..efbbb83 --- /dev/null +++ b/assets/ja_api_mp_math_angle.md.DurFoqAy.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as i,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/angle.md","filePath":"ja/api/mp_math/angle.md"}'),e={name:"ja/api/mp_math/angle.md"},n=t("",80),h=[n];function l(p,k,r,o,d,g){return i(),a("div",null,h)}const c=s(e,[["render",l]]);export{m as __pageData,c as default}; diff --git a/assets/ja_api_mp_math_equation.md.Cxc2AyGq.js b/assets/ja_api_mp_math_equation.md.ClACMtEE.js similarity index 77% rename from assets/ja_api_mp_math_equation.md.Cxc2AyGq.js rename to assets/ja_api_mp_math_equation.md.ClACMtEE.js index dd9dc65..85a7105 100644 --- a/assets/ja_api_mp_math_equation.md.Cxc2AyGq.js +++ b/assets/ja_api_mp_math_equation.md.ClACMtEE.js @@ -1,44 +1,14 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/equation.md","filePath":"ja/api/mp_math/equation.md"}'),t={name:"ja/api/mp_math/equation.md"},l=n(`

モジュール mbcp.mp_math.equation

本模块定义了方程相关的类和函数以及一些常用的数学函数

class CurveEquation

method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)

説明: 曲线方程。

引数:

ソースコード または GitHubで表示
python
def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc):
-    """
-        曲线方程。
-        Args:
-            x_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): x函数
-            y_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): y函数
-            z_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): z函数
-        """
     self.x_func = x_func
     self.y_func = y_func
     self.z_func = z_func

method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

説明: 计算曲线上的点。

引数:

  • *t:
  • 参数:

戻り値: 目标点

ソースコード または GitHubで表示
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
-    """
-        计算曲线上的点。
-        Args:
-            *t:
-                参数
-        Returns:
-            目标点
-        """
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
         return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

説明: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

引数:

  • func (MultiVarsFunc): N元函数
  • var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
  • epsilon: 偏移量

戻り値: 偏导函数

例外:

  • ValueError 无效变量类型
ソースコード または GitHubで表示
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
-    """
-    求N元函数一阶偏导函数。这玩意不太稳定,慎用。
-    > [!warning]
-    > 目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升
-
-    Args:
-        func ([\`MultiVarsFunc\`](./mp_math_typing#var-multivarsfunc)): N元函数
-        var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
-        epsilon: 偏移量
-    Returns:
-        偏导函数
-    Raises:
-        ValueError: 无效变量类型
-    """
     if isinstance(var, int):
 
         def partial_derivative_func(*args: Var) -> Var:
-            """@litedoc-hide"""
             args_list_plus = list(args)
             args_list_plus[var] += epsilon
             args_list_minus = list(args)
@@ -48,18 +18,10 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
     elif isinstance(var, tuple):
 
         def high_order_partial_derivative_func(*args: Var) -> Var:
-            """
-            @litedoc-hide
-            求高阶偏导函数
-            Args:
-                *args: 参数
-            Returns:
-                高阶偏导数值
-            """
             result_func = func
             for v in var:
                 result_func = get_partial_derivative_func(result_func, v, epsilon)
             return result_func(*args)
         return high_order_partial_derivative_func
     else:
-        raise ValueError('Invalid var type')
`,23),p=[l];function h(e,k,r,E,d,c){return a(),i("div",null,p)}const F=s(t,[["render",h]]);export{u as __pageData,F as default}; + raise ValueError('Invalid var type')`,23),h=[l];function p(e,k,r,E,d,c){return a(),i("div",null,h)}const o=s(t,[["render",p]]);export{u as __pageData,o as default}; diff --git a/assets/ja_api_mp_math_equation.md.Cxc2AyGq.lean.js b/assets/ja_api_mp_math_equation.md.ClACMtEE.lean.js similarity index 66% rename from assets/ja_api_mp_math_equation.md.Cxc2AyGq.lean.js rename to assets/ja_api_mp_math_equation.md.ClACMtEE.lean.js index 3aac2d8..69fc77e 100644 --- a/assets/ja_api_mp_math_equation.md.Cxc2AyGq.lean.js +++ b/assets/ja_api_mp_math_equation.md.ClACMtEE.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/equation.md","filePath":"ja/api/mp_math/equation.md"}'),t={name:"ja/api/mp_math/equation.md"},l=n("",23),p=[l];function h(e,k,r,E,d,c){return a(),i("div",null,p)}const F=s(t,[["render",h]]);export{u as __pageData,F as default}; +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/equation.md","filePath":"ja/api/mp_math/equation.md"}'),t={name:"ja/api/mp_math/equation.md"},l=n("",23),h=[l];function p(e,k,r,E,d,c){return a(),i("div",null,h)}const o=s(t,[["render",p]]);export{u as __pageData,o as default}; diff --git a/assets/ja_api_mp_math_function.md.zcK7s9-C.js b/assets/ja_api_mp_math_function.md.pJM1NJ2m.js similarity index 82% rename from assets/ja_api_mp_math_function.md.zcK7s9-C.js rename to assets/ja_api_mp_math_function.md.pJM1NJ2m.js index 72836de..7b3d551 100644 --- a/assets/ja_api_mp_math_function.md.zcK7s9-C.js +++ b/assets/ja_api_mp_math_function.md.pJM1NJ2m.js @@ -1,16 +1,4 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/function.md","filePath":"ja/api/mp_math/function.md"}'),e={name:"ja/api/mp_math/function.md"},Q=a('

モジュール mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

説明: 计算三元函数在某点的梯度向量。

',4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a('',1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a('',1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a('',1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a(`

引数:

戻り値: 梯度

ソースコード または GitHubで表示
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
-    """
-    计算三元函数在某点的梯度向量。
-    > [!tip]
-    > 已知一个函数$f(x, y, z)$,则其在点$(x_0, y_0, z_0)$处的梯度向量为:
-    $\\\\nabla f(x_0, y_0, z_0) = \\\\left(\\\\frac{\\\\partial f}{\\\\partial x}, \\\\frac{\\\\partial f}{\\\\partial y}, \\\\frac{\\\\partial f}{\\\\partial z}\\\\right)$
-    Args:
-        func ([\`ThreeSingleVarsFunc\`](./mp_math_typing#var-threesinglevarsfunc)): 三元函数
-        p ([\`Point3\`](./point#class-point3)): 点
-        epsilon: 偏移量
-    Returns:
-        梯度
-    """
+import{_ as n,c as s,j as a,a as Q,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/function.md","filePath":"ja/api/mp_math/function.md"}'),T={name:"ja/api/mp_math/function.md"},e=t('

モジュール mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

説明: 计算三元函数在某点的梯度向量。

',4),l={class:"tip custom-block github-alert"},h=a("p",{class:"custom-block-title"},"TIP",-1),r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},p=t('',1),o=[p],m=a("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[a("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[a("mi",null,"f"),a("mo",{stretchy:"false"},"("),a("mi",null,"x"),a("mo",null,","),a("mi",null,"y"),a("mo",null,","),a("mi",null,"z"),a("mo",{stretchy:"false"},")")])],-1),k={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},g=t('',1),u=[g],y=a("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[a("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[a("mo",{stretchy:"false"},"("),a("msub",null,[a("mi",null,"x"),a("mn",null,"0")]),a("mo",null,","),a("msub",null,[a("mi",null,"y"),a("mn",null,"0")]),a("mo",null,","),a("msub",null,[a("mi",null,"z"),a("mn",null,"0")]),a("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},_=t('',1),w=[_],x=a("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[a("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[a("mi",{mathvariant:"normal"},"∇"),a("mi",null,"f"),a("mo",{stretchy:"false"},"("),a("msub",null,[a("mi",null,"x"),a("mn",null,"0")]),a("mo",null,","),a("msub",null,[a("mi",null,"y"),a("mn",null,"0")]),a("mo",null,","),a("msub",null,[a("mi",null,"z"),a("mn",null,"0")]),a("mo",{stretchy:"false"},")"),a("mo",null,"="),a("mrow",{"data-mjx-texclass":"INNER"},[a("mo",{"data-mjx-texclass":"OPEN"},"("),a("mfrac",null,[a("mrow",null,[a("mi",null,"∂"),a("mi",null,"f")]),a("mrow",null,[a("mi",null,"∂"),a("mi",null,"x")])]),a("mo",null,","),a("mfrac",null,[a("mrow",null,[a("mi",null,"∂"),a("mi",null,"f")]),a("mrow",null,[a("mi",null,"∂"),a("mi",null,"y")])]),a("mo",null,","),a("mfrac",null,[a("mrow",null,[a("mi",null,"∂"),a("mi",null,"f")]),a("mrow",null,[a("mi",null,"∂"),a("mi",null,"z")])]),a("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),b=t(`

引数:

戻り値: 梯度

ソースコード または GitHubで表示
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
     dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
     dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
     dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
@@ -18,25 +6,7 @@ import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1Zp
     return a + b + c
 add_curried = curry(add, 1, 2)
 add_curried(3)  # 6
ソースコード または GitHubで表示
python
def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc:
-    """
-    对多参数函数进行柯里化。
-    > [!tip]
-    > 有关函数柯里化,可参考[函数式编程--柯理化(Currying)](https://zhuanlan.zhihu.com/p/355859667)
-    Args:
-        func ([\`MultiVarsFunc\`](./mp_math_typing#var-multivarsfunc)): 函数
-        *args ([\`Var\`](./mp_math_typing#var-var)): 参数
-    Returns:
-        柯里化后的函数
-    Examples:
-        \`\`\`python
-        def add(a: int, b: int, c: int) -> int:
-            return a + b + c
-        add_curried = curry(add, 1, 2)
-        add_curried(3)  # 6
-        \`\`\`
-    """
 
     def curried_func(*args2: Var) -> Var:
-        """@litedoc-hide"""
         return func(*args, *args2)
-    return curried_func
`,13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; + return curried_func
`,13);function L(H,F,M,v,D,Z){return i(),s("div",null,[e,a("div",l,[h,a("p",null,[Q("已知一个函数"),a("mjx-container",r,[(i(),s("svg",d,o)),m]),Q(",则其在点"),a("mjx-container",k,[(i(),s("svg",c,u)),y]),Q("处的梯度向量为: "),a("mjx-container",E,[(i(),s("svg",f,w)),x])])]),b])}const A=n(T,[["render",L]]);export{V as __pageData,A as default}; diff --git a/assets/ja_api_mp_math_function.md.pJM1NJ2m.lean.js b/assets/ja_api_mp_math_function.md.pJM1NJ2m.lean.js new file mode 100644 index 0000000..2b484d5 --- /dev/null +++ b/assets/ja_api_mp_math_function.md.pJM1NJ2m.lean.js @@ -0,0 +1 @@ +import{_ as n,c as s,j as a,a as Q,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/function.md","filePath":"ja/api/mp_math/function.md"}'),T={name:"ja/api/mp_math/function.md"},e=t("",4),l={class:"tip custom-block github-alert"},h=a("p",{class:"custom-block-title"},"TIP",-1),r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},p=t("",1),o=[p],m=a("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[a("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[a("mi",null,"f"),a("mo",{stretchy:"false"},"("),a("mi",null,"x"),a("mo",null,","),a("mi",null,"y"),a("mo",null,","),a("mi",null,"z"),a("mo",{stretchy:"false"},")")])],-1),k={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},g=t("",1),u=[g],y=a("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[a("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[a("mo",{stretchy:"false"},"("),a("msub",null,[a("mi",null,"x"),a("mn",null,"0")]),a("mo",null,","),a("msub",null,[a("mi",null,"y"),a("mn",null,"0")]),a("mo",null,","),a("msub",null,[a("mi",null,"z"),a("mn",null,"0")]),a("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},_=t("",1),w=[_],x=a("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[a("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[a("mi",{mathvariant:"normal"},"∇"),a("mi",null,"f"),a("mo",{stretchy:"false"},"("),a("msub",null,[a("mi",null,"x"),a("mn",null,"0")]),a("mo",null,","),a("msub",null,[a("mi",null,"y"),a("mn",null,"0")]),a("mo",null,","),a("msub",null,[a("mi",null,"z"),a("mn",null,"0")]),a("mo",{stretchy:"false"},")"),a("mo",null,"="),a("mrow",{"data-mjx-texclass":"INNER"},[a("mo",{"data-mjx-texclass":"OPEN"},"("),a("mfrac",null,[a("mrow",null,[a("mi",null,"∂"),a("mi",null,"f")]),a("mrow",null,[a("mi",null,"∂"),a("mi",null,"x")])]),a("mo",null,","),a("mfrac",null,[a("mrow",null,[a("mi",null,"∂"),a("mi",null,"f")]),a("mrow",null,[a("mi",null,"∂"),a("mi",null,"y")])]),a("mo",null,","),a("mfrac",null,[a("mrow",null,[a("mi",null,"∂"),a("mi",null,"f")]),a("mrow",null,[a("mi",null,"∂"),a("mi",null,"z")])]),a("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),b=t("",13);function L(H,F,M,v,D,Z){return i(),s("div",null,[e,a("div",l,[h,a("p",null,[Q("已知一个函数"),a("mjx-container",r,[(i(),s("svg",d,o)),m]),Q(",则其在点"),a("mjx-container",k,[(i(),s("svg",c,u)),y]),Q("处的梯度向量为: "),a("mjx-container",E,[(i(),s("svg",f,w)),x])])]),b])}const A=n(T,[["render",L]]);export{V as __pageData,A as default}; diff --git a/assets/ja_api_mp_math_function.md.zcK7s9-C.lean.js b/assets/ja_api_mp_math_function.md.zcK7s9-C.lean.js deleted file mode 100644 index e407719..0000000 --- a/assets/ja_api_mp_math_function.md.zcK7s9-C.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/function.md","filePath":"ja/api/mp_math/function.md"}'),e={name:"ja/api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; diff --git a/assets/ja_api_mp_math_line.md.BUEG7Qno.lean.js b/assets/ja_api_mp_math_line.md.BUEG7Qno.lean.js deleted file mode 100644 index 572538c..0000000 --- a/assets/ja_api_mp_math_line.md.BUEG7Qno.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/line.md","filePath":"ja/api/mp_math/line.md"}'),t={name:"ja/api/mp_math/line.md"},l=n("",106),e=[l];function h(p,k,o,r,d,g){return a(),i("div",null,e)}const E=s(t,[["render",h]]);export{F as __pageData,E as default}; diff --git a/assets/ja_api_mp_math_line.md.BUEG7Qno.js b/assets/ja_api_mp_math_line.md.BbbGydDH.js similarity index 75% rename from assets/ja_api_mp_math_line.md.BUEG7Qno.js rename to assets/ja_api_mp_math_line.md.BbbGydDH.js index 58e0c20..984e8d0 100644 --- a/assets/ja_api_mp_math_line.md.BUEG7Qno.js +++ b/assets/ja_api_mp_math_line.md.BbbGydDH.js @@ -1,38 +1,8 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/line.md","filePath":"ja/api/mp_math/line.md"}'),t={name:"ja/api/mp_math/line.md"},l=n(`

モジュール mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

説明: 三维空间中的直线。由一个点和一个方向向量确定。

引数:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
ソースコード または GitHubで表示
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
-    """
-        三维空间中的直线。由一个点和一个方向向量确定。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 直线上的一点
-            direction ([\`Vector3\`](./vector#class-vector3)): 方向向量
-        """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/line.md","filePath":"ja/api/mp_math/line.md"}'),n={name:"ja/api/mp_math/line.md"},e=t(`

モジュール mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

説明: 三维空间中的直线。由一个点和一个方向向量确定。

引数:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
ソースコード または GitHubで表示
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
     self.point = point
     self.direction = direction

method approx(self, other: Line3, epsilon: float = APPROX) -> bool

説明: 判断两条直线是否近似相等。

引数:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
-    """
-        判断两条直线是否近似相等。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-            epsilon ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return self.is_approx_parallel(other, epsilon) and (self.point - other.point).is_approx_parallel(self.direction, epsilon)

method cal_angle(self, other: Line3) -> AnyAngle

説明: 计算直线和直线之间的夹角。

引数:

  • other (Line3): 另一条直线

戻り値: AnyAngle: 夹角

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
-    """
-        计算直线和直线之间的夹角。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        """
     return self.direction.cal_angle(other.direction)

method cal_distance(self, other: Line3 | Point3) -> float

説明: 计算直线和直线或点之间的距离。

引数:

戻り値: float: 距离

例外:

ソースコード または GitHubで表示
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
-    """
-        计算直线和直线或点之间的距离。
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3)): 另一条直线或点
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         if self == other:
             return 0
@@ -46,91 +16,19 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
         raise TypeError('Unsupported type.')

method cal_intersection(self, other: Line3) -> Point3

説明: 计算两条直线的交点。

引数:

  • other (Line3): 另一条直线

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
-    """
-        计算两条直线的交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`Point3\`](./point#class-point3): 交点
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 直线平行
-            \`ValueError\`: 直线不共面
-        """
     if self.is_parallel(other):
         raise ValueError('Lines are parallel and do not intersect.')
     if not self.is_coplanar(other):
         raise ValueError('Lines are not coplanar and do not intersect.')
     return self.point + self.direction.cross(other.direction) @ other.direction.cross(self.point - other.point) / self.direction.cross(other.direction).length ** 2 * self.direction

method cal_perpendicular(self, point: Point3) -> Line3

説明: 计算直线经过指定点p的垂线。

引数:

戻り値: Line3: 垂线

ソースコード または GitHubで表示
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
-    """
-        计算直线经过指定点p的垂线。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 指定点
-        Returns:
-            [\`Line3\`](./line#class-line3): 垂线
-        """
     return Line3(point, self.direction.cross(point - self.point))

method get_point(self, t: RealNumber) -> Point3

説明: 获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。

引数:

戻り値: Point3: 点

ソースコード または GitHubで表示
python
def get_point(self, t: RealNumber) -> 'Point3':
-    """
-        获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。
-        Args:
-            t ([\`RealNumber\`](./mp_math_typing#var-realnumber)): 参数t
-        Returns:
-            [\`Point3\`](./point#class-point3): 点
-        """
     return self.point + t * self.direction

method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]

説明: 获取直线的参数方程。

戻り値: tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]: 参数方程

ソースコード または GitHubで表示
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
-    """
-        获取直线的参数方程。
-        Returns:
-            [\`tuple\`](https%3A//docs.python.org/3/library/stdtypes.html#tuple)[[\`OneSingleVarFunc\`](./mp_math_typing#var-onesinglevarfunc), \`OneSingleVarFunc\`, \`OneSingleVarFunc\`]: 参数方程
-        """
     return (lambda t: self.point.x + self.direction.x * t, lambda t: self.point.y + self.direction.y * t, lambda t: self.point.z + self.direction.z * t)

method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool

説明: 判断两条直线是否近似平行。

引数:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

戻り値: bool: 是否近似平行

ソースコード または GitHubで表示
python
def is_approx_parallel(self, other: 'Line3', epsilon: float=1e-06) -> bool:
-    """
-        判断两条直线是否近似平行。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-            epsilon ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.direction.is_approx_parallel(other.direction, epsilon)

method is_parallel(self, other: Line3) -> bool

説明: 判断两条直线是否平行。

引数:

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否平行。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.direction.is_parallel(other.direction)

method is_collinear(self, other: Line3) -> bool

説明: 判断两条直线是否共线。

引数:

戻り値: bool: 是否共线

ソースコード または GitHubで表示
python
def is_collinear(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共线。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共线
-        """
     return self.is_parallel(other) and (self.point - other.point).is_parallel(self.direction)

method is_point_on(self, point: Point3) -> bool

説明: 判断点是否在直线上。

引数:

戻り値: bool: 是否在直线上

ソースコード または GitHubで表示
python
def is_point_on(self, point: 'Point3') -> bool:
-    """
-        判断点是否在直线上。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 点
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
-        """
     return (point - self.point).is_parallel(self.direction)

method is_coplanar(self, other: Line3) -> bool

説明: 判断两条直线是否共面。 充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。

引数:

戻り値: bool: 是否共面

ソースコード または GitHubで表示
python
def is_coplanar(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共面。
-        充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
-        """
     return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

説明: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

ソースコード または GitHubで表示
python
def simplify(self):
-    """
-        简化直线方程,等价相等。
-        自体简化,不返回值。
-
-        按照可行性一次对x y z 化 0 处理,并对向量单位化
-        """
     self.direction.normalize()
     if self.direction.x == 0:
         self.point.x = 0
@@ -139,36 +37,12 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     if self.direction.z == 0:
         self.point.z = 0

@classmethod

method from_two_points(cls, p1: Point3, p2: Point3) -> Line3

説明: 工厂函数 由两点构造直线。

引数:

戻り値: Line3: 直线

ソースコード または GitHubで表示
python
@classmethod
 def from_two_points(cls, p1: 'Point3', p2: 'Point3') -> 'Line3':
-    """
-        工厂函数 由两点构造直线。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 点1
-            p2 ([\`Point3\`](./point#class-point3)): 点2
-        Returns:
-            [\`Line3\`](./line#class-line3): 直线
-        """
     direction = p2 - p1
     return cls(p1, direction)

method __and__(self, other: Line3) -> Line3 | Point3 | None

説明: 计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。

引数:

  • other (Line3): 另一条直线

戻り値: Line3 | Point3 | None: 交集

ソースコード または GitHubで表示
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
-    """
-        计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3) | [\`None\`](https://docs.python.org/3/library/constants.html#None): 交集
-        """
     if self.is_collinear(other):
         return self
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
         return self.cal_intersection(other)

method __eq__(self, other) -> bool

説明: 判断两条直线是否等价。

v1 // v2 ∧ (p1 - p2) // v1

引数:

  • other (Line3): 另一条直线

戻り値: bool: 是否等价

ソースコード または GitHubで表示
python
def __eq__(self, other) -> bool:
-    """
-        判断两条直线是否等价。
-
-        v1 // v2 ∧ (p1 - p2) // v1
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
-    return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)
`,106),e=[l];function h(p,k,o,r,d,g){return a(),i("div",null,e)}const E=s(t,[["render",h]]);export{F as __pageData,E as default}; + return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)
`,106),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; diff --git a/assets/ja_api_mp_math_line.md.BbbGydDH.lean.js b/assets/ja_api_mp_math_line.md.BbbGydDH.lean.js new file mode 100644 index 0000000..e30db9d --- /dev/null +++ b/assets/ja_api_mp_math_line.md.BbbGydDH.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/line.md","filePath":"ja/api/mp_math/line.md"}'),n={name:"ja/api/mp_math/line.md"},e=t("",106),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; diff --git a/assets/ja_api_mp_math_plane.md.DmM6KUUe.js b/assets/ja_api_mp_math_plane.md.BvT51o_C.js similarity index 85% rename from assets/ja_api_mp_math_plane.md.DmM6KUUe.js rename to assets/ja_api_mp_math_plane.md.BvT51o_C.js index 2759a9d..17c8542 100644 --- a/assets/ja_api_mp_math_plane.md.DmM6KUUe.js +++ b/assets/ja_api_mp_math_plane.md.BvT51o_C.js @@ -1,23 +1,8 @@ -import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const qs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/plane.md","filePath":"ja/api/mp_math/plane.md"}'),e={name:"ja/api/mp_math/plane.md"},h=t(`

モジュール mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

説明: 平面方程:ax + by + cz + d = 0

引数:

  • a (float): x系数
  • b (float): y系数
  • c (float): z系数
  • d (float): 常数项
ソースコード または GitHubで表示
python
def __init__(self, a: float, b: float, c: float, d: float):
-    """
-        平面方程:ax + by + cz + d = 0
-        Args:
-            a ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): x系数
-            b (\`float\`): y系数
-            c (\`float\`): z系数
-            d (\`float\`): 常数项
-        """
+import{_ as n,c as a,j as s,a as e,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Zs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/plane.md","filePath":"ja/api/mp_math/plane.md"}'),l={name:"ja/api/mp_math/plane.md"},h=t(`

モジュール mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

説明: 平面方程:ax + by + cz + d = 0

引数:

  • a (float): x系数
  • b (float): y系数
  • c (float): z系数
  • d (float): 常数项
ソースコード または GitHubで表示
python
def __init__(self, a: float, b: float, c: float, d: float):
     self.a = a
     self.b = b
     self.c = c
     self.d = d

method approx(self, other: Plane3) -> bool

説明: 判断两个平面是否近似相等。

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否近似相等。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     if self.a != 0:
         k = other.a / self.a
         return approx(other.b, self.b * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
@@ -28,67 +13,19 @@ import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1Zp
         k = other.c / self.c
         return approx(other.a, self.a * k) and approx(other.b, self.b * k) and approx(other.d, self.d * k)
     else:
-        return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

説明: 计算平面与平面之间的夹角。

`,16),p={class:"tip custom-block"},k=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"平面间夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t('',1),g=[Q],c=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),T={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},m={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t('',1),y=[E],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),u={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},C={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},f=t('',1),b=[f],_=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},B=s("p",{class:"custom-block-title"},"TIP",-1),w=s("p",null,"平面与直线夹角计算公式:",-1),H={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},L={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t('',1),D=[A],v=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},q=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[q],Z=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},R=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),z=[R],$=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),N=t(`

引数:

戻り値: AnyAngle: 夹角

例外:

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
-    """
-        计算平面与平面之间的夹角。
-        :::tip
-        平面间夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{n1 \\\\cdot n2}{|n1| \\\\cdot |n2|})$$
-        其中 $n1$ 和 $n2$ 分别为两个平面的法向量
-        :::
-        :::tip
-        平面与直线夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{n \\\\cdot d}{|n| \\\\cdot |d|})$$
-        其中 $n$ 为平面的法向量,$d$ 为直线的方向向量
-        :::
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Plane3\`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
+        return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

説明: 计算平面与平面之间的夹角。

`,16),p={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),o=s("p",null,"平面间夹角计算公式:",-1),k={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t('',1),T=[Q],g=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t('',1),y=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},_=t('',1),b=[_],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},w=s("p",{class:"custom-block-title"},"TIP",-1),H=s("p",null,"平面与直线夹角计算公式:",-1),L={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},D={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t('',1),v=[A],B=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},Z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[Z],q=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},N=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),z=[N],G=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),I=t(`

引数:

戻り値: AnyAngle: 夹角

例外:

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     if isinstance(other, Line3):
         return self.normal.cal_angle(other.direction).complementary
     elif isinstance(other, Plane3):
         return AnyAngle(math.acos(self.normal @ other.normal / (self.normal.length * other.normal.length)), is_radian=True)
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_distance(self, other: Plane3 | Point3) -> float

説明: 计算平面与平面或点之间的距离。

引数:

戻り値: float: 距离

例外:

ソースコード または GitHubで表示
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
-    """
-        计算平面与平面或点之间的距离。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3) | [\`Point3\`](./point#class-point3)): 另一个平面或点
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         return 0
     elif isinstance(other, Point3):
         return abs(self.a * other.x + self.b * other.y + self.c * other.z + self.d) / (self.a ** 2 + self.b ** 2 + self.c ** 2) ** 0.5
     else:
-        raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

説明: 计算两平面的交线。

`,16),G={class:"tip custom-block"},I=s("p",{class:"custom-block-title"},"TIP",-1),J=s("p",null,"计算两平面交线的一般步骤:",-1),O=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t('',1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t('',1),ns=[ts],ls=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),es={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t('',1),ks=[ps],rs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),os={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t('',1),gs=[Qs],cs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),Ts={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ms={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t('',1),ys=[Es],Fs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),us=s("p",null,"或",-1),Cs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},fs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t('',1),_s=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),Bs=t(`

引数:

  • other (Plane3): 另一个平面

戻り値: Line3: 交线

例外:

ソースコード または GitHubで表示
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
-    """
-        计算两平面的交线。
-        :::tip
-        计算两平面交线的一般步骤:
-        1. 求两平面的法向量的叉乘得到方向向量
-        $$ d = n1 \\\\times n2 $$
-        2. 寻找直线上的一点,依次假设$x=0$, $y=0$, $z=0$,并代入两平面方程求出合适的点
-        直线最终可用参数方程或点向式表示
-        $$ \\\\begin{cases} x = x_0 + dt \\\\\\\\ y = y_0 + dt \\\\\\\\ z = z_0 + dt \\\\end{cases} $$
-
-        $$ \\\\frac{x - x_0}{m} = \\\\frac{y - y_0}{n} = \\\\frac{z - z_0}{p} $$
-        :::
-
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`Line3\`](./line#class-line3): 交线
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面平行且无交线
-        """
+        raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

説明: 计算两平面的交线。

`,16),R={class:"tip custom-block"},J=s("p",{class:"custom-block-title"},"TIP",-1),O=s("p",null,"计算两平面交线的一般步骤:",-1),$=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t('',1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t('',1),es=[ts],ns=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),ls={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t('',1),rs=[ps],os=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),ks={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t('',1),Ts=[Qs],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),ms={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},cs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t('',1),ys=[Es],us=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),Fs=s("p",null,"或",-1),fs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},_s={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t('',1),Cs=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),ws=t(`

引数:

  • other (Plane3): 另一个平面

戻り値: Line3: 交线

例外:

ソースコード または GitHubで表示
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     if self.normal.is_parallel(other.normal):
         raise ValueError('Planes are parallel and have no intersection.')
     direction = self.normal.cross(other.normal)
@@ -106,106 +43,36 @@ import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1Zp
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
     return Line3(Point3(x, y, z), direction)

method cal_intersection_point3(self, other: Line3) -> Point3

説明: 计算平面与直线的交点。

引数:

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
-    """
-        计算平面与直线的交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 直线
-        Returns:
-            [\`Point3\`](./point#class-point3): 交点
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面与直线平行或重合
-        """
     if self.normal @ other.direction == 0:
         raise ValueError('The plane and the line are parallel or coincident.')
     x, y, z = other.get_parametric_equations()
     t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)
     return Point3(x(t), y(t), z(t))

method cal_parallel_plane3(self, point: Point3) -> Plane3

説明: 计算平行于该平面且过指定点的平面。

引数:

戻り値: Plane3: 平面

ソースコード または GitHubで表示
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
-    """
-        计算平行于该平面且过指定点的平面。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 指定点
-        Returns:
-            [\`Plane3\`](./plane#class-plane3): 平面
-        """
     return Plane3.from_point_and_normal(point, self.normal)

method is_parallel(self, other: Plane3) -> bool

説明: 判断两个平面是否平行。

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否平行。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.normal.is_parallel(other.normal)

@property

method normal(self) -> Vector3

説明: 平面的法向量。

戻り値: Vector3: 法向量

ソースコード または GitHubで表示
python
@property
 def normal(self) -> 'Vector3':
-    """
-        平面的法向量。
-        Returns:
-            [\`Vector3\`](./vector#class-vector3): 法向量
-        """
     return Vector3(self.a, self.b, self.c)

@classmethod

method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3

説明: 工厂函数 由点和法向量构造平面(点法式构造)。

引数:

戻り値: Plane3: 平面

ソースコード または GitHubで表示
python
@classmethod
 def from_point_and_normal(cls, point: 'Point3', normal: 'Vector3') -> 'Plane3':
-    """
-        工厂函数 由点和法向量构造平面(点法式构造)。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 平面上一点
-            normal ([\`Vector3\`](./vector#class-vector3)): 法向量
-        Returns:
-            [\`Plane3\`](./plane#class-plane3): 平面
-        """
     a, b, c = (normal.x, normal.y, normal.z)
     d = -a * point.x - b * point.y - c * point.z
     return cls(a, b, c, d)

@classmethod

method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3

説明: 工厂函数 由三点构造平面。

引数:

  • p1 (Point3): 点1
  • p2 (Point3): 点2
  • p3 (Point3): 点3

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
 def from_three_points(cls, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3':
-    """
-        工厂函数 由三点构造平面。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 点1
-            p2 (\`Point3\`): 点2
-            p3 (\`Point3\`): 点3
-        Returns:
-            平面
-        """
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
     return cls.from_point_and_normal(p1, normal)

@classmethod

method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3

説明: 工厂函数 由两直线构造平面。

引数:

  • l1 (Line3): 直线
  • l2 (Line3): 直线

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
 def from_two_lines(cls, l1: 'Line3', l2: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由两直线构造平面。
-        Args:
-            l1 ([\`Line3\`](./line#class-line3)): 直线
-            l2 (\`Line3\`): 直线
-        Returns:
-            平面
-        """
     v1 = l1.direction
     v2 = l2.point - l1.point
     if v2 == zero_vector3:
         v2 = l2.get_point(1) - l1.point
     return cls.from_point_and_normal(l1.point, v1.cross(v2))

@classmethod

method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3

説明: 工厂函数 由点和直线构造平面。

引数:

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
 def from_point_and_line(cls, point: 'Point3', line: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由点和直线构造平面。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 平面上一点
-            line ([\`Line3\`](./line#class-line3)): 直线
-        Returns:
-            平面
-        """
     return cls.from_point_and_normal(point, line.direction)

@overload

method __and__(self, other: Line3) -> Point3 | None

ソースコード または GitHubで表示
python
@overload
 def __and__(self, other: 'Line3') -> 'Point3 | None':
     ...

@overload

method __and__(self, other: Plane3) -> Line3 | None

ソースコード または GitHubで表示
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
     ...

method __and__(self, other)

説明: 取两平面的交集(人话:交线)

引数:

戻り値: Line3 | Point3 | None: 交集

例外:

ソースコード または GitHubで表示
python
def __and__(self, other):
-    """
-        取两平面的交集(人话:交线)
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Plane3\`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3) | [\`None\`](https%3A//docs.python.org/3/library/constants.html#None): 交集
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         if self.normal.is_parallel(other.normal):
             return None
@@ -216,12 +83,5 @@ import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1Zp
         return self.cal_intersection_point3(other)
     else:
         raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

method __eq__(self, other) -> bool

説明: 判断两个平面是否等价。

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否等价

ソースコード または GitHubで表示
python
def __eq__(self, other) -> bool:
-    """
-        判断两个平面是否等价。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.approx(other)

method __rand__(self, other: Line3) -> Point3

ソースコード または GitHubで表示
python
def __rand__(self, other: 'Line3') -> 'Point3':
-    return self.cal_intersection_point3(other)
`,81);function ws(Hs,Ls,As,Ds,vs,Ms){return i(),a("div",null,[h,s("div",p,[k,r,s("mjx-container",o,[(i(),a("svg",d,g)),c]),s("p",null,[n("其中 "),s("mjx-container",T,[(i(),a("svg",m,y)),F]),n(" 和 "),s("mjx-container",u,[(i(),a("svg",C,b)),_]),n(" 分别为两个平面的法向量")])]),s("div",x,[B,w,s("mjx-container",H,[(i(),a("svg",L,D)),v]),s("p",null,[n("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),Z]),n(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,z)),$]),n(" 为直线的方向向量")])]),N,s("div",G,[I,J,O,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[n("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,ns)),ls]),n(", "),s("mjx-container",es,[(i(),a("svg",hs,ks)),rs]),n(", "),s("mjx-container",os,[(i(),a("svg",ds,gs)),cs]),n(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",Ts,[(i(),a("svg",ms,ys)),Fs]),us,s("mjx-container",Cs,[(i(),a("svg",fs,_s)),xs])]),Bs])}const Ps=l(e,[["render",ws]]);export{qs as __pageData,Ps as default}; + return self.cal_intersection_point3(other)
`,81);function Hs(Ls,Ds,As,vs,Bs,Ms){return i(),a("div",null,[h,s("div",p,[r,o,s("mjx-container",k,[(i(),a("svg",d,T)),g]),s("p",null,[e("其中 "),s("mjx-container",m,[(i(),a("svg",c,y)),u]),e(" 和 "),s("mjx-container",F,[(i(),a("svg",f,b)),C]),e(" 分别为两个平面的法向量")])]),s("div",x,[w,H,s("mjx-container",L,[(i(),a("svg",D,v)),B]),s("p",null,[e("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),q]),e(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,z)),G]),e(" 为直线的方向向量")])]),I,s("div",R,[J,O,$,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[e("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,es)),ns]),e(", "),s("mjx-container",ls,[(i(),a("svg",hs,rs)),os]),e(", "),s("mjx-container",ks,[(i(),a("svg",ds,Ts)),gs]),e(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",ms,[(i(),a("svg",cs,ys)),us]),Fs,s("mjx-container",fs,[(i(),a("svg",_s,Cs)),xs])]),ws])}const Ps=n(l,[["render",Hs]]);export{Zs as __pageData,Ps as default}; diff --git a/assets/en_api_mp_math_plane.md.BqUredjB.lean.js b/assets/ja_api_mp_math_plane.md.BvT51o_C.lean.js similarity index 75% rename from assets/en_api_mp_math_plane.md.BqUredjB.lean.js rename to assets/ja_api_mp_math_plane.md.BvT51o_C.lean.js index 7ef4fb1..0d3a76f 100644 --- a/assets/en_api_mp_math_plane.md.BqUredjB.lean.js +++ b/assets/ja_api_mp_math_plane.md.BvT51o_C.lean.js @@ -1 +1 @@ -import{_ as l,c as i,j as s,a as n,a4 as t,o as a}from"./chunks/framework.DpC1ZpOZ.js";const qs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/plane.md","filePath":"en/api/mp_math/plane.md"}'),e={name:"en/api/mp_math/plane.md"},h=t("",16),p={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),k=s("p",null,"平面间夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t("",1),g=[Q],c=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),T={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},m={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t("",1),y=[E],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),u={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},C={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},f=t("",1),b=[f],_=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},B=s("p",{class:"custom-block-title"},"TIP",-1),w=s("p",null,"平面与直线夹角计算公式:",-1),H={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},A={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},L=t("",1),D=[L],v=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),V={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},M={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},q=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[q],Z=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},R={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},j=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),z=[j],$=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),N=t("",16),G={class:"tip custom-block"},I=s("p",{class:"custom-block-title"},"TIP",-1),J=s("p",null,"计算两平面交线的一般步骤:",-1),O=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t("",1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},is={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},as={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t("",1),ns=[ts],ls=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),es={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t("",1),rs=[ps],ks=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),os={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t("",1),gs=[Qs],cs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),Ts={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ms={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t("",1),ys=[Es],Fs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),us=s("p",null,"或",-1),Cs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},fs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t("",1),_s=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),Bs=t("",81);function ws(Hs,As,Ls,Ds,vs,Vs){return a(),i("div",null,[h,s("div",p,[r,k,s("mjx-container",o,[(a(),i("svg",d,g)),c]),s("p",null,[n("其中 "),s("mjx-container",T,[(a(),i("svg",m,y)),F]),n(" 和 "),s("mjx-container",u,[(a(),i("svg",C,b)),_]),n(" 分别为两个平面的法向量")])]),s("div",x,[B,w,s("mjx-container",H,[(a(),i("svg",A,D)),v]),s("p",null,[n("其中 "),s("mjx-container",V,[(a(),i("svg",M,P)),Z]),n(" 为平面的法向量,"),s("mjx-container",S,[(a(),i("svg",R,z)),$]),n(" 为直线的方向向量")])]),N,s("div",G,[I,J,O,s("mjx-container",U,[(a(),i("svg",K,X)),Y]),s("ol",ss,[s("li",null,[n("寻找直线上的一点,依次假设"),s("mjx-container",is,[(a(),i("svg",as,ns)),ls]),n(", "),s("mjx-container",es,[(a(),i("svg",hs,rs)),ks]),n(", "),s("mjx-container",os,[(a(),i("svg",ds,gs)),cs]),n(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",Ts,[(a(),i("svg",ms,ys)),Fs]),us,s("mjx-container",Cs,[(a(),i("svg",fs,_s)),xs])]),Bs])}const Ps=l(e,[["render",ws]]);export{qs as __pageData,Ps as default}; +import{_ as n,c as a,j as s,a as e,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Zs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/plane.md","filePath":"ja/api/mp_math/plane.md"}'),l={name:"ja/api/mp_math/plane.md"},h=t("",16),p={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),o=s("p",null,"平面间夹角计算公式:",-1),k={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t("",1),T=[Q],g=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t("",1),y=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},_=t("",1),b=[_],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},w=s("p",{class:"custom-block-title"},"TIP",-1),H=s("p",null,"平面与直线夹角计算公式:",-1),L={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},D={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t("",1),v=[A],B=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},Z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[Z],q=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},N=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),z=[N],G=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),I=t("",16),R={class:"tip custom-block"},J=s("p",{class:"custom-block-title"},"TIP",-1),O=s("p",null,"计算两平面交线的一般步骤:",-1),$=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t("",1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t("",1),es=[ts],ns=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),ls={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t("",1),rs=[ps],os=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),ks={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t("",1),Ts=[Qs],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),ms={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},cs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t("",1),ys=[Es],us=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),Fs=s("p",null,"或",-1),fs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},_s={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t("",1),Cs=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),ws=t("",81);function Hs(Ls,Ds,As,vs,Bs,Ms){return i(),a("div",null,[h,s("div",p,[r,o,s("mjx-container",k,[(i(),a("svg",d,T)),g]),s("p",null,[e("其中 "),s("mjx-container",m,[(i(),a("svg",c,y)),u]),e(" 和 "),s("mjx-container",F,[(i(),a("svg",f,b)),C]),e(" 分别为两个平面的法向量")])]),s("div",x,[w,H,s("mjx-container",L,[(i(),a("svg",D,v)),B]),s("p",null,[e("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),q]),e(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,z)),G]),e(" 为直线的方向向量")])]),I,s("div",R,[J,O,$,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[e("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,es)),ns]),e(", "),s("mjx-container",ls,[(i(),a("svg",hs,rs)),os]),e(", "),s("mjx-container",ks,[(i(),a("svg",ds,Ts)),gs]),e(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",ms,[(i(),a("svg",cs,ys)),us]),Fs,s("mjx-container",fs,[(i(),a("svg",_s,Cs)),xs])]),ws])}const Ps=n(l,[["render",Hs]]);export{Zs as __pageData,Ps as default}; diff --git a/assets/ja_api_mp_math_point.md.Bj_wyaCj.js b/assets/ja_api_mp_math_point.md.Bj_wyaCj.js deleted file mode 100644 index 51dbbf5..0000000 --- a/assets/ja_api_mp_math_point.md.Bj_wyaCj.js +++ /dev/null @@ -1,52 +0,0 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/point.md","filePath":"ja/api/mp_math/point.md"}'),n={name:"ja/api/mp_math/point.md"},h=t(`

モジュール mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

説明: 笛卡尔坐标系中的点。

引数:

  • x (float): x 坐标
  • y (float): y 坐标
  • z (float): z 坐标
ソースコード または GitHubで表示
python
def __init__(self, x: float, y: float, z: float):
-    """
-        笛卡尔坐标系中的点。
-        Args:
-            x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): x 坐标
-            y (\`float\`): y 坐标
-            z (\`float\`): z 坐标
-        """
-    self.x = x
-    self.y = y
-    self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

説明: 判断两个点是否近似相等。

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个点是否近似相等。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-            epsilon ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
-    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

ソースコード または GitHubで表示
python
@overload
-def __add__(self, other: 'Vector3') -> 'Point3':
-    ...

@overload

method self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
-def __add__(self, other: 'Point3') -> 'Point3':
-    ...

method self + other

説明: P + V -> P P + P -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __add__(self, other):
-    """
-        P + V -> P
-        P + P -> P
-        Args:
-            other ([\`Vector3\`](./vector#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个点或向量
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

説明: 判断两个点是否相等。

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
-    """
-        判断两个点是否相等。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否相等
-        """
-    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

説明: P - P -> V

P - V -> P 已在 Vector3 中实现

引数:

戻り値: Vector3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other: 'Point3') -> 'Vector3':
-    """
-        P - P -> V
-
-        P - V -> P  已在 [\`Vector3\`](./vector#class-vector3) 中实现
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Vector3\`](./vector#class-vector3): 新的向量
-        """
-    from .vector import Vector3
-    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
`,39),l=[h];function e(p,o,k,r,d,g){return a(),i("div",null,l)}const y=s(n,[["render",e]]);export{E as __pageData,y as default}; diff --git a/assets/ja_api_mp_math_point.md.Bj_wyaCj.lean.js b/assets/ja_api_mp_math_point.md.Bj_wyaCj.lean.js deleted file mode 100644 index 891c12b..0000000 --- a/assets/ja_api_mp_math_point.md.Bj_wyaCj.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/point.md","filePath":"ja/api/mp_math/point.md"}'),n={name:"ja/api/mp_math/point.md"},h=t("",39),l=[h];function e(p,o,k,r,d,g){return a(),i("div",null,l)}const y=s(n,[["render",e]]);export{E as __pageData,y as default}; diff --git a/assets/ja_api_mp_math_point.md.CevhXWsh.js b/assets/ja_api_mp_math_point.md.CevhXWsh.js new file mode 100644 index 0000000..242c659 --- /dev/null +++ b/assets/ja_api_mp_math_point.md.CevhXWsh.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/point.md","filePath":"ja/api/mp_math/point.md"}'),e={name:"ja/api/mp_math/point.md"},h=t('

モジュール mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

説明: 笛卡尔坐标系中的点。

引数:

  • x (float): x 坐标
  • y (float): y 坐标
  • z (float): z 坐标
ソースコード または GitHubで表示
python
def __init__(self, x: float, y: float, z: float):\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

説明: 判断两个点是否近似相等。

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

ソースコード または GitHubで表示
python
@overload\ndef __add__(self, other: 'Vector3') -> 'Point3':\n    ...

@overload

method self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload\ndef __add__(self, other: 'Point3') -> 'Point3':\n    ...

method self + other

説明: P + V -> P P + P -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __add__(self, other):\n    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

説明: 判断两个点是否相等。

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):\n    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

説明: P - P -> V

P - V -> P 已在 Vector3 中实现

引数:

戻り値: Vector3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other: 'Point3') -> 'Vector3':\n    from .vector import Vector3\n    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
',39),n=[h];function l(p,o,k,r,d,g){return a(),i("div",null,n)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; diff --git a/assets/ja_api_mp_math_point.md.CevhXWsh.lean.js b/assets/ja_api_mp_math_point.md.CevhXWsh.lean.js new file mode 100644 index 0000000..7d888f8 --- /dev/null +++ b/assets/ja_api_mp_math_point.md.CevhXWsh.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/point.md","filePath":"ja/api/mp_math/point.md"}'),e={name:"ja/api/mp_math/point.md"},h=t("",39),n=[h];function l(p,o,k,r,d,g){return a(),i("div",null,n)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; diff --git a/assets/ja_api_mp_math_segment.md.hBKUntDs.js b/assets/ja_api_mp_math_segment.md.DZAkmIjJ.js similarity index 83% rename from assets/ja_api_mp_math_segment.md.hBKUntDs.js rename to assets/ja_api_mp_math_segment.md.DZAkmIjJ.js index 38632aa..c290789 100644 --- a/assets/ja_api_mp_math_segment.md.hBKUntDs.js +++ b/assets/ja_api_mp_math_segment.md.DZAkmIjJ.js @@ -1,10 +1,4 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/segment.md","filePath":"ja/api/mp_math/segment.md"}'),t={name:"ja/api/mp_math/segment.md"},p=n(`

モジュール mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

説明: 三维空间中的线段。

引数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
ソースコード または GitHubで表示
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
-    """
-        三维空间中的线段。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 线段的一个端点
-            p2 ([\`Point3\`](./point#class-point3)): 线段的另一个端点
-        """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/segment.md","filePath":"ja/api/mp_math/segment.md"}'),n={name:"ja/api/mp_math/segment.md"},h=t(`

モジュール mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

説明: 三维空间中的线段。

引数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
ソースコード または GitHubで表示
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
     self.p1 = p1
     self.p2 = p2
     '方向向量'
@@ -12,4 +6,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     '长度'
     self.length = self.direction.length
     '中心点'
-    self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)
`,8),h=[p];function l(e,k,r,d,o,E){return a(),i("div",null,h)}const c=s(t,[["render",l]]);export{F as __pageData,c as default}; + self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)
`,8),p=[h];function e(l,k,r,d,E,g){return a(),i("div",null,p)}const c=s(n,[["render",e]]);export{m as __pageData,c as default}; diff --git a/assets/ja_api_mp_math_segment.md.DZAkmIjJ.lean.js b/assets/ja_api_mp_math_segment.md.DZAkmIjJ.lean.js new file mode 100644 index 0000000..18bf63a --- /dev/null +++ b/assets/ja_api_mp_math_segment.md.DZAkmIjJ.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/segment.md","filePath":"ja/api/mp_math/segment.md"}'),n={name:"ja/api/mp_math/segment.md"},h=t("",8),p=[h];function e(l,k,r,d,E,g){return a(),i("div",null,p)}const c=s(n,[["render",e]]);export{m as __pageData,c as default}; diff --git a/assets/ja_api_mp_math_segment.md.hBKUntDs.lean.js b/assets/ja_api_mp_math_segment.md.hBKUntDs.lean.js deleted file mode 100644 index cbe9481..0000000 --- a/assets/ja_api_mp_math_segment.md.hBKUntDs.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/segment.md","filePath":"ja/api/mp_math/segment.md"}'),t={name:"ja/api/mp_math/segment.md"},p=n("",8),h=[p];function l(e,k,r,d,o,E){return a(),i("div",null,h)}const c=s(t,[["render",l]]);export{F as __pageData,c as default}; diff --git a/assets/ja_api_mp_math_utils.md.DdrbPY-j.js b/assets/ja_api_mp_math_utils.md.Bk8MHgOd.js similarity index 81% rename from assets/ja_api_mp_math_utils.md.DdrbPY-j.js rename to assets/ja_api_mp_math_utils.md.Bk8MHgOd.js index 339fac2..6d437d7 100644 --- a/assets/ja_api_mp_math_utils.md.DdrbPY-j.js +++ b/assets/ja_api_mp_math_utils.md.Bk8MHgOd.js @@ -1,20 +1,5 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/utils.md","filePath":"ja/api/mp_math/utils.md"}'),n={name:"ja/api/mp_math/utils.md"},l=t(`

モジュール mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

説明: 区间限定函数

引数:

  • x (float): 值
  • min_ (float): 最小值
  • max_ (float): 最大值

戻り値: float: 限定在区间内的值

ソースコード または GitHubで表示
python
def clamp(x: float, min_: float, max_: float) -> float:
-    """
-    区间限定函数
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 值
-        min_ (\`float\`): 最小值
-        max_ (\`float\`): 最大值
-
-    Returns:
-        \`float\`: 限定在区间内的值
-    """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/utils.md","filePath":"ja/api/mp_math/utils.md"}'),l={name:"ja/api/mp_math/utils.md"},n=t(`

モジュール mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

説明: 区间限定函数

引数:

  • x (float): 值
  • min_ (float): 最小值
  • max_ (float): 最大值

戻り値: float: 限定在区间内的值

ソースコード または GitHubで表示
python
def clamp(x: float, min_: float, max_: float) -> float:
     return max(min(x, max_), min_)

class Approx

method __init__(self, value: RealNumber)

説明: 用于近似比较对象

引数:

ソースコード または GitHubで表示
python
def __init__(self, value: RealNumber):
-    """
-        用于近似比较对象
-        Args:
-            value ([\`RealNumber\`](./mp_math_typing#realnumber)): 实数
-        """
     self.value = value

method __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
@@ -28,42 +13,16 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
             self.raise_type_error(other)

method raise_type_error(self, other)

ソースコード または GitHubで表示
python
def raise_type_error(self, other):
     raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

method __ne__(self, other)

ソースコード または GitHubで表示
python
def __ne__(self, other):
     return not self.__eq__(other)

func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool

説明: 判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

引数:

  • x (float): 数1
  • y (float): 数2
  • epsilon (float): 误差

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
-    """
-    判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数1
-        y (\`float\`): 数2
-        epsilon (\`float\`): 误差
-    Returns:
-        [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-    """
     return abs(x - y) < epsilon

func sign(x: float, only_neg: bool = False) -> str

説明: 获取数的符号。

引数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign(x: float, only_neg: bool=False) -> str:
-    """获取数的符号。
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([\`bool\`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [\`str\`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return '+' if not only_neg else ''
     elif x < 0:
         return '-'
     else:
         return ''

func sign_format(x: float, only_neg: bool = False) -> str

説明: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

引数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign_format(x: float, only_neg: bool=False) -> str:
-    """格式化符号数
-    -1 -> -1
-    1 -> +1
-    0 -> ""
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([\`bool\`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [\`str\`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return f'+{x}' if not only_neg else f'{x}'
     elif x < 0:
         return f'-{abs(x)}'
     else:
-        return ''
`,38),h=[l];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const E=s(n,[["render",e]]);export{F as __pageData,E as default}; + return ''
`,38),h=[n];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const c=s(l,[["render",e]]);export{E as __pageData,c as default}; diff --git a/assets/ja_api_mp_math_utils.md.Bk8MHgOd.lean.js b/assets/ja_api_mp_math_utils.md.Bk8MHgOd.lean.js new file mode 100644 index 0000000..d0a5feb --- /dev/null +++ b/assets/ja_api_mp_math_utils.md.Bk8MHgOd.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/utils.md","filePath":"ja/api/mp_math/utils.md"}'),l={name:"ja/api/mp_math/utils.md"},n=t("",38),h=[n];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const c=s(l,[["render",e]]);export{E as __pageData,c as default}; diff --git a/assets/ja_api_mp_math_utils.md.DdrbPY-j.lean.js b/assets/ja_api_mp_math_utils.md.DdrbPY-j.lean.js deleted file mode 100644 index 935a7fb..0000000 --- a/assets/ja_api_mp_math_utils.md.DdrbPY-j.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/utils.md","filePath":"ja/api/mp_math/utils.md"}'),n={name:"ja/api/mp_math/utils.md"},l=t("",38),h=[l];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const E=s(n,[["render",e]]);export{F as __pageData,E as default}; diff --git a/assets/ja_api_mp_math_vector.md.DuAJ8ZJo.js b/assets/ja_api_mp_math_vector.md.DuAJ8ZJo.js deleted file mode 100644 index f7cb615..0000000 --- a/assets/ja_api_mp_math_vector.md.DuAJ8ZJo.js +++ /dev/null @@ -1,176 +0,0 @@ -import{_ as n,c as i,j as s,a4 as a,o as t}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/vector.md","filePath":"ja/api/mp_math/vector.md"}'),l={name:"ja/api/mp_math/vector.md"},e=a('

モジュール mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

説明: 3维向量

引数:

  • x (float): x轴分量
  • y (float): y轴分量
  • z (float): z轴分量
ソースコード または GitHubで表示
python
def __init__(self, x: float, y: float, z: float):\n    """\n        3维向量\n        Args:\n            x ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x轴分量\n            y (`float`): y轴分量\n            z (`float`): z轴分量\n        """\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似相等。

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    """\n        判断两个向量是否近似相等。\n        Args:\n            other ([`Vector3`](#class-vector3)): 另一个向量\n            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差\n\n        Returns:\n            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似相等\n        """\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

説明: 计算两个向量之间的夹角。

',16),h={class:"tip custom-block"},p=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},d=a('',1),T=[d],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a(`

引数:

戻り値: AnyAngle: 夹角

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
-    """
-        计算两个向量之间的夹角。
-        :::tip
-        向量夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{v1 \\\\cdot v2}{|v1| \\\\cdot |v2|})$$
-        :::
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

説明: 向量积 叉乘:v1 x v2 -> v3

`,6),c={class:"tip custom-block"},m=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},u=a('',1),b=[u],f=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),v={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},_=a('',1),V=[_],H=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),x=a(`

引数:

戻り値: Vector3: 叉乘结果

ソースコード または GitHubで表示
python
def cross(self, other: 'Vector3') -> 'Vector3':
-    """
-        向量积 叉乘:v1 x v2 -> v3
-
-        :::tip
-        叉乘运算法则为:
-        $$ v1 \\\\times v2 = (v1_y \\\\cdot v2_z - v1_z \\\\cdot v2_y, v1_z \\\\cdot v2_x - v1_x \\\\cdot v2_z, v1_x \\\\cdot v2_y - v1_y \\\\cdot v2_x) $$
-        转换为行列式形式:
-        $$ v1 \\\\times v2 = \\\\begin{vmatrix} i & j & k \\\\\\\\ v1_x & v1_y & v1_z \\\\\\\\ v2_x & v2_y & v2_z \\\\end{vmatrix} $$
-        :::
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`Vector3\`](#class-vector3): 叉乘结果
-        """
-    return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似平行。

引数:

戻り値: bool: 是否近似平行

ソースコード または GitHubで表示
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似平行。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-            epsilon ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
-    return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

説明: 判断两个向量是否平行。

引数:

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Vector3') -> bool:
-    """
-        判断两个向量是否平行。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
-    return self.cross(other).approx(zero_vector3)

method normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

ソースコード または GitHubで表示
python
def normalize(self):
-    """
-        将向量归一化。
-
-        自体归一化,不返回值。
-        """
-    length = self.length
-    self.x /= length
-    self.y /= length
-    self.z /= length

@property

method np_array(self) -> np.ndarray

戻り値: np.ndarray: numpy数组

ソースコード または GitHubで表示
python
@property
-def np_array(self) -> 'np.ndarray':
-    """
-        返回numpy数组
-        Returns:
-            [\`np.ndarray\`](https%3A//numpy.org/doc/stable/reference/generated/numpy.ndarray.html): numpy数组
-        """
-    return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

説明: 向量的模。

戻り値: float: 模

ソースコード または GitHubで表示
python
@property
-def length(self) -> float:
-    """
-        向量的模。
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 模
-        """
-    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

説明: 获取该向量的单位向量。

戻り値: Vector3: 单位向量

ソースコード または GitHubで表示
python
@property
-def unit(self) -> 'Vector3':
-    """
-        获取该向量的单位向量。
-        Returns:
-            [\`Vector3\`](#class-vector3): 单位向量
-        """
-    return self / self.length

method __abs__(self)

ソースコード または GitHubで表示
python
def __abs__(self):
-    return self.length

@overload

method self + other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
-def __add__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
-def __add__(self, other: 'Point3') -> 'Point3':
-    ...

method self + other

説明: V + P -> P

V + V -> V

引数:

戻り値: Vector3 | Point3: 新的向量或点

ソースコード または GitHubで表示
python
def __add__(self, other):
-    """
-        V + P -> P
-
-        V + V -> V
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3): 新的向量或点
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)
-    elif isinstance(other, Point3):
-        return Point3(self.x + other.x, self.y + other.y, self.z + other.z)
-    else:
-        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

説明: 判断两个向量是否相等。

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
-    """
-        判断两个向量是否相等。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否相等
-        """
-    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

説明: P + V -> P

别去点那边实现了。

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __radd__(self, other: 'Point3') -> 'Point3':
-    """
-        P + V -> P
-
-        别去点那边实现了。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
-def __sub__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self - other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
-def __sub__(self, other: 'Point3') -> 'Point3':
-    ...

method self - other

説明: V - P -> P

V - V -> V

引数:

戻り値: Vector3 | Point3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other):
-    """
-        V - P -> P
-
-        V - V -> V
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3): 新的向量
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
-    elif isinstance(other, Point3):
-        return Point3(self.x - other.x, self.y - other.y, self.z - other.z)
-    else:
-        raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

説明: P - V -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __rsub__(self, other: 'Point3'):
-    """
-        P - V -> P
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    if isinstance(other, Point3):
-        return Point3(other.x - self.x, other.y - self.y, other.z - self.z)
-    else:
-        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

method self * other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
-def __mul__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
@overload
-def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

method self * other: int | float | Vector3 => Vector3

説明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

引数:

戻り値: Vector3: 数组运算结果

ソースコード または GitHubで表示
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
-    """
-        数组运算 非点乘。点乘使用@,叉乘使用cross。
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 另一个向量或数
-        Returns:
-            [\`Vector3\`](#class-vector): 数组运算结果
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)
-    elif isinstance(other, (float, int)):
-        return Vector3(self.x * other, self.y * other, self.z * other)
-    else:
-        raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

method self @ other: Vector3 => RealNumber

説明: 点乘。

引数:

戻り値: float: 点乘结果

ソースコード または GitHubで表示
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
-    """
-        点乘。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 点乘结果
-        """
-    return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
-    return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

説明: 取负。

戻り値: Vector3: 负向量

ソースコード または GitHubで表示
python
def __neg__(self) -> 'Vector3':
-    """
-        取负。
-        Returns:
-            [\`Vector3\`](#class-vector3): 负向量
-        """
-    return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • 説明: 零向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 0, 0)

var x_axis

  • 説明: x轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(1, 0, 0)

var y_axis

  • 説明: y轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 1, 0)

var z_axis

  • 説明: z轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 0, 1)

`,115);function q(D,A,w,L,M,P){return t(),i("div",null,[e,s("div",h,[p,r,s("mjx-container",o,[(t(),i("svg",k,T)),Q])]),g,s("div",c,[m,y,s("mjx-container",E,[(t(),i("svg",F,b)),f]),C,s("mjx-container",v,[(t(),i("svg",B,V)),H])]),x])}const R=n(l,[["render",q]]);export{z as __pageData,R as default}; diff --git a/assets/ja_api_mp_math_vector.md.c1mtKaM8.js b/assets/ja_api_mp_math_vector.md.c1mtKaM8.js new file mode 100644 index 0000000..b2cf9ef --- /dev/null +++ b/assets/ja_api_mp_math_vector.md.c1mtKaM8.js @@ -0,0 +1 @@ +import{_ as e,c as t,j as s,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/vector.md","filePath":"ja/api/mp_math/vector.md"}'),l={name:"ja/api/mp_math/vector.md"},h=a('

モジュール mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

説明: 3维向量

引数:

  • x (float): x轴分量
  • y (float): y轴分量
  • z (float): z轴分量
ソースコード または GitHubで表示
python
def __init__(self, x: float, y: float, z: float):\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似相等。

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

説明: 计算两个向量之间的夹角。

',16),n={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),p=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},k=a('',1),T=[k],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a('

引数:

戻り値: AnyAngle: 夹角

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':\n    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

説明: 向量积 叉乘:v1 x v2 -> v3

',6),m={class:"tip custom-block"},c=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},u={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},b=a('',1),f=[b],F=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),_={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},v={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},V=a('',1),H=[V],x=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),D=a('

引数:

戻り値: Vector3: 叉乘结果

ソースコード または GitHubで表示
python
def cross(self, other: 'Vector3') -> 'Vector3':\n    return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似平行。

引数:

戻り値: bool: 是否近似平行

ソースコード または GitHubで表示
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

説明: 判断两个向量是否平行。

引数:

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Vector3') -> bool:\n    return self.cross(other).approx(zero_vector3)

method normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

ソースコード または GitHubで表示
python
def normalize(self):\n    length = self.length\n    self.x /= length\n    self.y /= length\n    self.z /= length

@property

method np_array(self) -> np.ndarray

戻り値: np.ndarray: numpy数组

ソースコード または GitHubで表示
python
@property\ndef np_array(self) -> 'np.ndarray':\n    return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

説明: 向量的模。

戻り値: float: 模

ソースコード または GitHubで表示
python
@property\ndef length(self) -> float:\n    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

説明: 获取该向量的单位向量。

戻り値: Vector3: 单位向量

ソースコード または GitHubで表示
python
@property\ndef unit(self) -> 'Vector3':\n    return self / self.length

method __abs__(self)

ソースコード または GitHubで表示
python
def __abs__(self):\n    return self.length

@overload

method self + other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload\ndef __add__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload\ndef __add__(self, other: 'Point3') -> 'Point3':\n    ...

method self + other

説明: V + P -> P

V + V -> V

引数:

戻り値: Vector3 | Point3: 新的向量或点

ソースコード または GitHubで表示
python
def __add__(self, other):\n    if isinstance(other, Vector3):\n        return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)\n    elif isinstance(other, Point3):\n        return Point3(self.x + other.x, self.y + other.y, self.z + other.z)\n    else:\n        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

説明: 判断两个向量是否相等。

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):\n    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

説明: P + V -> P

别去点那边实现了。

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __radd__(self, other: 'Point3') -> 'Point3':\n    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload\ndef __sub__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self - other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload\ndef __sub__(self, other: 'Point3') -> 'Point3':\n    ...

method self - other

説明: V - P -> P

V - V -> V

引数:

戻り値: Vector3 | Point3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other):\n    if isinstance(other, Vector3):\n        return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)\n    elif isinstance(other, Point3):\n        return Point3(self.x - other.x, self.y - other.y, self.z - other.z)\n    else:\n        raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

説明: P - V -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __rsub__(self, other: 'Point3'):\n    if isinstance(other, Point3):\n        return Point3(other.x - self.x, other.y - self.y, other.z - self.z)\n    else:\n        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

method self * other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload\ndef __mul__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
@overload\ndef __mul__(self, other: RealNumber) -> 'Vector3':\n    ...

method self * other: int | float | Vector3 => Vector3

説明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

引数:

戻り値: Vector3: 数组运算结果

ソースコード または GitHubで表示
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':\n    if isinstance(other, Vector3):\n        return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)\n    elif isinstance(other, (float, int)):\n        return Vector3(self.x * other, self.y * other, self.z * other)\n    else:\n        raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':\n    return self.__mul__(other)

method self @ other: Vector3 => RealNumber

説明: 点乘。

引数:

戻り値: float: 点乘结果

ソースコード または GitHubで表示
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':\n    return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __truediv__(self, other: RealNumber) -> 'Vector3':\n    return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

説明: 取负。

戻り値: Vector3: 负向量

ソースコード または GitHubで表示
python
def __neg__(self) -> 'Vector3':\n    return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • 説明: 零向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 0, 0)

var x_axis

  • 説明: x轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(1, 0, 0)

var y_axis

  • 説明: y轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 1, 0)

var z_axis

  • 説明: z轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 0, 1)

',115);function B(w,A,L,M,Z,q){return i(),t("div",null,[h,s("div",n,[r,p,s("mjx-container",o,[(i(),t("svg",d,T)),Q])]),g,s("div",m,[c,y,s("mjx-container",E,[(i(),t("svg",u,f)),F]),C,s("mjx-container",_,[(i(),t("svg",v,H)),x])]),D])}const G=e(l,[["render",B]]);export{z as __pageData,G as default}; diff --git a/assets/ja_api_mp_math_vector.md.DuAJ8ZJo.lean.js b/assets/ja_api_mp_math_vector.md.c1mtKaM8.lean.js similarity index 82% rename from assets/ja_api_mp_math_vector.md.DuAJ8ZJo.lean.js rename to assets/ja_api_mp_math_vector.md.c1mtKaM8.lean.js index da15d09..8689641 100644 --- a/assets/ja_api_mp_math_vector.md.DuAJ8ZJo.lean.js +++ b/assets/ja_api_mp_math_vector.md.c1mtKaM8.lean.js @@ -1 +1 @@ -import{_ as n,c as i,j as s,a4 as a,o as t}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/vector.md","filePath":"ja/api/mp_math/vector.md"}'),l={name:"ja/api/mp_math/vector.md"},e=a("",16),h={class:"tip custom-block"},p=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},d=a("",1),T=[d],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a("",6),c={class:"tip custom-block"},m=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},u=a("",1),b=[u],f=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),v={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},_=a("",1),V=[_],H=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),x=a("",115);function q(D,A,w,L,M,P){return t(),i("div",null,[e,s("div",h,[p,r,s("mjx-container",o,[(t(),i("svg",k,T)),Q])]),g,s("div",c,[m,y,s("mjx-container",E,[(t(),i("svg",F,b)),f]),C,s("mjx-container",v,[(t(),i("svg",B,V)),H])]),x])}const R=n(l,[["render",q]]);export{z as __pageData,R as default}; +import{_ as e,c as t,j as s,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/vector.md","filePath":"ja/api/mp_math/vector.md"}'),l={name:"ja/api/mp_math/vector.md"},h=a("",16),n={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),p=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},k=a("",1),T=[k],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a("",6),m={class:"tip custom-block"},c=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},u={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},b=a("",1),f=[b],F=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),_={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},v={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},V=a("",1),H=[V],x=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),D=a("",115);function B(w,A,L,M,Z,q){return i(),t("div",null,[h,s("div",n,[r,p,s("mjx-container",o,[(i(),t("svg",d,T)),Q])]),g,s("div",m,[c,y,s("mjx-container",E,[(i(),t("svg",u,f)),F]),C,s("mjx-container",_,[(i(),t("svg",v,H)),x])]),D])}const G=e(l,[["render",B]]);export{z as __pageData,G as default}; diff --git a/assets/ja_api_presets_model_index.md.BqEjZ7IY.js b/assets/ja_api_presets_model_index.md.wZZUhvvV.js similarity index 87% rename from assets/ja_api_presets_model_index.md.BqEjZ7IY.js rename to assets/ja_api_presets_model_index.md.wZZUhvvV.js index b0f63d2..f641369 100644 --- a/assets/ja_api_presets_model_index.md.BqEjZ7IY.js +++ b/assets/ja_api_presets_model_index.md.wZZUhvvV.js @@ -1,13 +1,5 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/model/index.md","filePath":"ja/api/presets/model/index.md"}'),n={name:"ja/api/presets/model/index.md"},h=t(`

モジュール mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

説明: 生成球体上的点集。

引数:

  • radius:
  • density:

戻り値: List[Point3]: 球体上的点集。

ソースコード または GitHubで表示
python
@staticmethod
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/model/index.md","filePath":"ja/api/presets/model/index.md"}'),h={name:"ja/api/presets/model/index.md"},n=t(`

モジュール mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

説明: 生成球体上的点集。

引数:

  • radius:
  • density:

戻り値: List[Point3]: 球体上的点集。

ソースコード または GitHubで表示
python
@staticmethod
 def sphere(radius: float, density: float):
-    """
-        生成球体上的点集。
-        Args:
-            radius:
-            density:
-        Returns:
-            List[Point3]: 球体上的点集。
-        """
     area = 4 * np.pi * radius ** 2
     num = int(area * density)
     phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
@@ -15,4 +7,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y
     x_array = radius * np.sin(phi_list) * np.cos(theta_list)
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
-    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]
`,10),l=[h];function p(e,k,r,d,E,o){return a(),i("div",null,l)}const c=s(n,[["render",p]]);export{y as __pageData,c as default}; + return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]
`,10),l=[n];function e(p,k,r,d,E,o){return a(),i("div",null,l)}const c=s(h,[["render",e]]);export{y as __pageData,c as default}; diff --git a/assets/ja_api_presets_model_index.md.BqEjZ7IY.lean.js b/assets/ja_api_presets_model_index.md.wZZUhvvV.lean.js similarity index 63% rename from assets/ja_api_presets_model_index.md.BqEjZ7IY.lean.js rename to assets/ja_api_presets_model_index.md.wZZUhvvV.lean.js index 8d2ea37..35693d3 100644 --- a/assets/ja_api_presets_model_index.md.BqEjZ7IY.lean.js +++ b/assets/ja_api_presets_model_index.md.wZZUhvvV.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/model/index.md","filePath":"ja/api/presets/model/index.md"}'),n={name:"ja/api/presets/model/index.md"},h=t("",10),l=[h];function p(e,k,r,d,E,o){return a(),i("div",null,l)}const c=s(n,[["render",p]]);export{y as __pageData,c as default}; +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/model/index.md","filePath":"ja/api/presets/model/index.md"}'),h={name:"ja/api/presets/model/index.md"},n=t("",10),l=[n];function e(p,k,r,d,E,o){return a(),i("div",null,l)}const c=s(h,[["render",e]]);export{y as __pageData,c as default}; diff --git a/assets/style.Bh0M9mVm.css b/assets/style.Bh0M9mVm.css new file mode 100644 index 0000000..2527c8f --- /dev/null +++ b/assets/style.Bh0M9mVm.css @@ -0,0 +1 @@ +:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-daa1937f]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-daa1937f],.VPBackdrop.fade-leave-to[data-v-daa1937f]{opacity:0}.VPBackdrop.fade-leave-active[data-v-daa1937f]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-daa1937f]{display:none}}.NotFound[data-v-2aa14331]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-2aa14331]{padding:96px 32px 168px}}.code[data-v-2aa14331]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-2aa14331]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-2aa14331]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-2aa14331]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-2aa14331]{padding-top:20px}.link[data-v-2aa14331]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-2aa14331]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-b9c884bb]{position:relative;z-index:1}.nested[data-v-b9c884bb]{padding-right:16px;padding-left:16px}.outline-link[data-v-b9c884bb]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-b9c884bb]:hover,.outline-link.active[data-v-b9c884bb]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-b9c884bb]{padding-left:13px}.VPDocAsideOutline[data-v-d34649dc]{display:none}.VPDocAsideOutline.has-outline[data-v-d34649dc]{display:block}.content[data-v-d34649dc]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-d34649dc]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-d34649dc]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-8951c20f]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-8951c20f]{flex-grow:1}.VPDocAside[data-v-8951c20f] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-8951c20f] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-8951c20f] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-19bf19fb]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-19bf19fb]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-28deee4a]{margin-top:64px}.edit-info[data-v-28deee4a]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-28deee4a]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-28deee4a]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-28deee4a]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-28deee4a]{margin-right:8px}.prev-next[data-v-28deee4a]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-28deee4a]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-28deee4a]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-28deee4a]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-28deee4a]{margin-left:auto;text-align:right}.desc[data-v-28deee4a]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-28deee4a]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-01c90815]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-01c90815]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-01c90815]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-01c90815]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-01c90815]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-01c90815]{display:flex;justify-content:center}.VPDoc .aside[data-v-01c90815]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-01c90815]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-01c90815]{max-width:1104px}}.container[data-v-01c90815]{margin:0 auto;width:100%}.aside[data-v-01c90815]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-01c90815]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-01c90815]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-01c90815]::-webkit-scrollbar{display:none}.aside-curtain[data-v-01c90815]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-01c90815]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-01c90815]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-01c90815]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-01c90815]{order:1;margin:0;min-width:640px}}.content-container[data-v-01c90815]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-01c90815]{max-width:688px}.VPButton[data-v-f549f0f3]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-f549f0f3]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-f549f0f3]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-f549f0f3]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-f549f0f3]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-f549f0f3]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-f549f0f3]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-f549f0f3]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-f549f0f3]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-f549f0f3]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-f549f0f3]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-f549f0f3]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-f549f0f3]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-cc63e071]{display:none}.dark .VPImage.light[data-v-cc63e071]{display:none}.VPHero[data-v-e302b8ce]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-e302b8ce]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-e302b8ce]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-e302b8ce]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-e302b8ce]{flex-direction:row}}.main[data-v-e302b8ce]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-e302b8ce]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-e302b8ce]{text-align:left}}@media (min-width: 960px){.main[data-v-e302b8ce]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-e302b8ce]{max-width:592px}}.name[data-v-e302b8ce],.text[data-v-e302b8ce]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-e302b8ce],.VPHero.has-image .text[data-v-e302b8ce]{margin:0 auto}.name[data-v-e302b8ce]{color:var(--vp-home-hero-name-color)}.clip[data-v-e302b8ce]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-e302b8ce],.text[data-v-e302b8ce]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-e302b8ce],.text[data-v-e302b8ce]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-e302b8ce],.VPHero.has-image .text[data-v-e302b8ce]{margin:0}}.tagline[data-v-e302b8ce]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-e302b8ce]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-e302b8ce]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-e302b8ce]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-e302b8ce]{margin:0}}.actions[data-v-e302b8ce]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-e302b8ce]{justify-content:center}@media (min-width: 640px){.actions[data-v-e302b8ce]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-e302b8ce]{justify-content:flex-start}}.action[data-v-e302b8ce]{flex-shrink:0;padding:6px}.image[data-v-e302b8ce]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-e302b8ce]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-e302b8ce]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-e302b8ce]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-e302b8ce]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-e302b8ce]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-e302b8ce]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-e302b8ce]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-e302b8ce]{width:320px;height:320px}}[data-v-e302b8ce] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-e302b8ce] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-e302b8ce] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-f77e80b4]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-f77e80b4]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-f77e80b4]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-f77e80b4]>.VPImage{margin-bottom:20px}.icon[data-v-f77e80b4]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-f77e80b4]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-f77e80b4]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-f77e80b4]{padding-top:8px}.link-text-value[data-v-f77e80b4]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-f77e80b4]{margin-left:6px}.VPFeatures[data-v-8e833103]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-8e833103]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-8e833103]{padding:0 64px}}.container[data-v-8e833103]{margin:0 auto;max-width:1152px}.items[data-v-8e833103]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-8e833103]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-8e833103],.item.grid-4[data-v-8e833103],.item.grid-6[data-v-8e833103]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-8e833103],.item.grid-4[data-v-8e833103]{width:50%}.item.grid-3[data-v-8e833103],.item.grid-6[data-v-8e833103]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-8e833103]{width:25%}}.container[data-v-90605523]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-90605523]{padding:0 48px}}@media (min-width: 960px){.container[data-v-90605523]{width:100%;padding:0 64px}}.vp-doc[data-v-90605523] .VPHomeSponsors,.vp-doc[data-v-90605523] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-90605523] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-90605523] .VPHomeSponsors a,.vp-doc[data-v-90605523] .VPTeamPage a{text-decoration:none}.VPHome[data-v-55977d12]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-55977d12]{margin-bottom:128px}}.VPContent[data-v-fc04087f]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-fc04087f]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-fc04087f]{margin:0}@media (min-width: 960px){.VPContent[data-v-fc04087f]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-fc04087f]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-fc04087f]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-d69bcf5d]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-d69bcf5d]{display:none}.VPFooter[data-v-d69bcf5d] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-d69bcf5d] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-d69bcf5d]{padding:32px}}.container[data-v-d69bcf5d]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-d69bcf5d],.copyright[data-v-d69bcf5d]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-9dd5e197]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-9dd5e197]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-9dd5e197]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-9dd5e197]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-9dd5e197]{color:var(--vp-c-text-1)}.icon[data-v-9dd5e197]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-9dd5e197]{font-size:14px}.icon[data-v-9dd5e197]{font-size:16px}}.open>.icon[data-v-9dd5e197]{transform:rotate(90deg)}.items[data-v-9dd5e197]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-9dd5e197]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-9dd5e197]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-9dd5e197]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-9dd5e197]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-9dd5e197]{transition:all .2s ease-out}.flyout-leave-active[data-v-9dd5e197]{transition:all .15s ease-in}.flyout-enter-from[data-v-9dd5e197],.flyout-leave-to[data-v-9dd5e197]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-9c649187]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-9c649187]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-9c649187]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-9c649187]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-9c649187]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-9c649187]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-9c649187]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-9c649187]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-9c649187]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-9c649187]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-9c649187]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-9c649187]{display:none}}.menu-icon[data-v-9c649187]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-9c649187]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-9c649187]{padding:12px 32px 11px}}.VPSwitch[data-v-846fe538]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-846fe538]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-846fe538]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-846fe538]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-846fe538] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-846fe538] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-3125216b]{opacity:1}.moon[data-v-3125216b],.dark .sun[data-v-3125216b]{opacity:0}.dark .moon[data-v-3125216b]{opacity:1}.dark .VPSwitchAppearance[data-v-3125216b] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-864d2abc]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-864d2abc]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-25a54821]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-25a54821]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-25a54821]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-25a54821]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-4dd03e28]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-4dd03e28]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-4dd03e28]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-4dd03e28]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-809b8af7]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-809b8af7] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-809b8af7] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-809b8af7] .group:last-child{padding-bottom:0}.VPMenu[data-v-809b8af7] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-809b8af7] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-809b8af7] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-809b8af7] .action{padding-left:24px}.VPFlyout[data-v-00660109]{position:relative}.VPFlyout[data-v-00660109]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-00660109]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-00660109]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-00660109]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-00660109]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-00660109],.button[aria-expanded=true]+.menu[data-v-00660109]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-00660109]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-00660109]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-00660109]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-00660109]{margin-right:0;font-size:16px}.text-icon[data-v-00660109]{margin-left:4px;font-size:14px}.icon[data-v-00660109]{font-size:20px;transition:fill .25s}.menu[data-v-00660109]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-15a5c40e]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-15a5c40e]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-15a5c40e]>svg,.VPSocialLink[data-v-15a5c40e]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-100434c4]{display:flex;justify-content:center}.VPNavBarExtra[data-v-60cefd62]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-60cefd62]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-60cefd62]{display:none}}.trans-title[data-v-60cefd62]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-60cefd62],.item.social-links[data-v-60cefd62]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-60cefd62]{min-width:176px}.appearance-action[data-v-60cefd62]{margin-right:-2px}.social-links-list[data-v-60cefd62]{margin:-4px -8px}.VPNavBarHamburger[data-v-e047a1f2]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e047a1f2]{display:none}}.container[data-v-e047a1f2]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e047a1f2]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e047a1f2]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e047a1f2]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e047a1f2]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e047a1f2]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e047a1f2]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e047a1f2],.VPNavBarHamburger.active:hover .middle[data-v-e047a1f2],.VPNavBarHamburger.active:hover .bottom[data-v-e047a1f2]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e047a1f2],.middle[data-v-e047a1f2],.bottom[data-v-e047a1f2]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e047a1f2]{top:0;left:0;transform:translate(0)}.middle[data-v-e047a1f2]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e047a1f2]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-9a0da802]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-9a0da802],.VPNavBarMenuLink[data-v-9a0da802]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-bf53b681]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-bf53b681]{display:flex}}/*! @docsearch/css 3.6.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.30196078431372547);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}.DocSearch-Button-Key--pressed{transform:translate3d(0,1px,0);box-shadow:var(--docsearch-key-pressed-shadow)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-2c606308]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-2c606308]{display:flex;align-items:center}}.title[data-v-606a7e0f]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-606a7e0f]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-606a7e0f]{border-bottom-color:var(--vp-c-divider)}}[data-v-606a7e0f] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-912817b1]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-912817b1]{display:flex;align-items:center}}.title[data-v-912817b1]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-da0688be]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-da0688be]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-da0688be]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-da0688be]:not(.home){background-color:transparent}.VPNavBar[data-v-da0688be]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-da0688be]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-da0688be]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-da0688be]{padding:0}}.container[data-v-da0688be]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-da0688be],.container>.content[data-v-da0688be]{pointer-events:none}.container[data-v-da0688be] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-da0688be]{max-width:100%}}.title[data-v-da0688be]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-da0688be]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-da0688be]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-da0688be]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-da0688be]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-da0688be]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-da0688be]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-da0688be]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-da0688be]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-da0688be]{column-gap:.5rem}}.menu+.translations[data-v-da0688be]:before,.menu+.appearance[data-v-da0688be]:before,.menu+.social-links[data-v-da0688be]:before,.translations+.appearance[data-v-da0688be]:before,.appearance+.social-links[data-v-da0688be]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-da0688be]:before,.translations+.appearance[data-v-da0688be]:before{margin-right:16px}.appearance+.social-links[data-v-da0688be]:before{margin-left:16px}.social-links[data-v-da0688be]{margin-right:-8px}.divider[data-v-da0688be]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-da0688be]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-da0688be]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-da0688be]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-da0688be]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-da0688be]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-da0688be]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-dfcc1536]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-dfcc1536]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-8cd41455]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-8cd41455]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-b8c7c580]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-b8c7c580]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-a3e7a51c]{display:block}.title[data-v-a3e7a51c]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-90f695a2]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-90f695a2]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-90f695a2]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-90f695a2]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-90f695a2]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-90f695a2]{transform:rotate(45deg)}.button[data-v-90f695a2]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-90f695a2]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-90f695a2]{transition:transform .25s}.group[data-v-90f695a2]:first-child{padding-top:0}.group+.group[data-v-90f695a2],.group+.item[data-v-90f695a2]{padding-top:4px}.VPNavScreenTranslations[data-v-95c61444]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-95c61444]{height:auto}.title[data-v-95c61444]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-95c61444]{font-size:16px}.icon.lang[data-v-95c61444]{margin-right:8px}.icon.chevron[data-v-95c61444]{margin-left:4px}.list[data-v-95c61444]{padding:4px 0 0 24px}.link[data-v-95c61444]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-c14c1e21]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .25s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-c14c1e21],.VPNavScreen.fade-leave-active[data-v-c14c1e21]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-c14c1e21],.VPNavScreen.fade-leave-active .container[data-v-c14c1e21]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-c14c1e21],.VPNavScreen.fade-leave-to[data-v-c14c1e21]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-c14c1e21],.VPNavScreen.fade-leave-to .container[data-v-c14c1e21]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-c14c1e21]{display:none}}.container[data-v-c14c1e21]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-c14c1e21],.menu+.appearance[data-v-c14c1e21],.translations+.appearance[data-v-c14c1e21]{margin-top:24px}.menu+.social-links[data-v-c14c1e21]{margin-top:16px}.appearance+.social-links[data-v-c14c1e21]{margin-top:16px}.VPNav[data-v-e823d444]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-e823d444]{position:fixed}}.VPSidebarItem.level-0[data-v-a9cdba99]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-a9cdba99]{padding-bottom:10px}.item[data-v-a9cdba99]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-a9cdba99]{cursor:pointer}.indicator[data-v-a9cdba99]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-a9cdba99],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-a9cdba99],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-a9cdba99],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-a9cdba99]{background-color:var(--vp-c-brand-1)}.link[data-v-a9cdba99]{display:flex;align-items:center;flex-grow:1}.text[data-v-a9cdba99]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-a9cdba99]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-a9cdba99],.VPSidebarItem.level-2 .text[data-v-a9cdba99],.VPSidebarItem.level-3 .text[data-v-a9cdba99],.VPSidebarItem.level-4 .text[data-v-a9cdba99],.VPSidebarItem.level-5 .text[data-v-a9cdba99]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-a9cdba99],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-a9cdba99],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-a9cdba99],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-a9cdba99],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-a9cdba99],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-a9cdba99]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-1.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-2.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-3.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-4.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-5.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-a9cdba99],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-a9cdba99],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-a9cdba99],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-a9cdba99],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-a9cdba99],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-a9cdba99]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-a9cdba99],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-a9cdba99],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-a9cdba99],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-a9cdba99],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-a9cdba99],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-a9cdba99]{color:var(--vp-c-brand-1)}.caret[data-v-a9cdba99]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-a9cdba99]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-a9cdba99]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-a9cdba99]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-a9cdba99]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-a9cdba99],.VPSidebarItem.level-2 .items[data-v-a9cdba99],.VPSidebarItem.level-3 .items[data-v-a9cdba99],.VPSidebarItem.level-4 .items[data-v-a9cdba99],.VPSidebarItem.level-5 .items[data-v-a9cdba99]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-a9cdba99]{display:none}.no-transition[data-v-72c67ed4] .caret-icon{transition:none}.group+.group[data-v-72c67ed4]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-72c67ed4]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-59ceefa4]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-59ceefa4]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-59ceefa4]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-59ceefa4]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-59ceefa4]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-59ceefa4]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-59ceefa4]{outline:0}.VPSkipLink[data-v-e813112c]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-e813112c]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-e813112c]{top:14px;left:16px}}.Layout[data-v-3b4648ff]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-e06ca32a]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-e06ca32a]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-e06ca32a]{margin:128px 0}}.VPHomeSponsors[data-v-e06ca32a]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-e06ca32a]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-e06ca32a]{padding:0 64px}}.container[data-v-e06ca32a]{margin:0 auto;max-width:1152px}.love[data-v-e06ca32a]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-e06ca32a]{display:inline-block}.message[data-v-e06ca32a]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-e06ca32a]{padding-top:32px}.action[data-v-e06ca32a]{padding-top:40px;text-align:center}.VPTeamPage[data-v-b1db0dbf]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-b1db0dbf]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-b1db0dbf-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-b1db0dbf-s],.VPTeamMembers+.VPTeamPageSection[data-v-b1db0dbf-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-b1db0dbf-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-b1db0dbf-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-b1db0dbf-s],.VPTeamMembers+.VPTeamPageSection[data-v-b1db0dbf-s]{margin-top:96px}}.VPTeamMembers[data-v-b1db0dbf-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-b1db0dbf-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-b1db0dbf-s]{padding:0 64px}}.VPTeamPageTitle[data-v-67e2507a]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-67e2507a]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-67e2507a]{padding:80px 64px 48px}}.title[data-v-67e2507a]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-67e2507a]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-67e2507a]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-67e2507a]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-848babf0]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-848babf0]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-848babf0]{padding:0 64px}}.title[data-v-848babf0]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-848babf0]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-848babf0]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-848babf0]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-848babf0]{padding-top:40px}.VPTeamMembersItem[data-v-990ef11d]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-990ef11d]{padding:32px}.VPTeamMembersItem.small .data[data-v-990ef11d]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-990ef11d]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-990ef11d]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-990ef11d]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-990ef11d]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-990ef11d]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-990ef11d]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-990ef11d]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-990ef11d]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-990ef11d]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-990ef11d]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-990ef11d]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-990ef11d]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-990ef11d]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-990ef11d]{text-align:center}.avatar[data-v-990ef11d]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-990ef11d]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-990ef11d]{margin:0;font-weight:600}.affiliation[data-v-990ef11d]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-990ef11d]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-990ef11d]:hover{color:var(--vp-c-brand-1)}.desc[data-v-990ef11d]{margin:0 auto}.desc[data-v-990ef11d] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-990ef11d]{display:flex;justify-content:center;height:56px}.sp-link[data-v-990ef11d]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-990ef11d]:hover,.sp .sp-link.link[data-v-990ef11d]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-990ef11d]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-387893a3]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-387893a3]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-387893a3]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-387893a3]{max-width:876px}.VPTeamMembers.medium .container[data-v-387893a3]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-387893a3]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-387893a3]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-387893a3]{max-width:760px}.container[data-v-387893a3]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--vp-font-family-base: "Poppins", "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: "Cousine", monospace}:root{--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe 30%, #41d1ff)}@media (min-width: 640px){:root{--vp-home-hero-image-filter: blur(56px)}}@media (min-width: 960px){:root{--vp-home-hero-image-filter: blur(68px)}}.VPLocalSearchBox[data-v-6120c6bd]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-6120c6bd]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-6120c6bd]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 767px){.shell[data-v-6120c6bd]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-6120c6bd]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 767px){.search-bar[data-v-6120c6bd]{padding:0 8px}}.search-bar[data-v-6120c6bd]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-6120c6bd]{display:block;font-size:18px}.navigate-icon[data-v-6120c6bd]{display:block;font-size:14px}.search-icon[data-v-6120c6bd]{margin:8px}@media (max-width: 767px){.search-icon[data-v-6120c6bd]{display:none}}.search-input[data-v-6120c6bd]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-6120c6bd]{padding:6px 4px}}.search-actions[data-v-6120c6bd]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-6120c6bd]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-6120c6bd]{display:none}}.search-actions button[data-v-6120c6bd]{padding:8px}.search-actions button[data-v-6120c6bd]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-6120c6bd]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-6120c6bd]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-6120c6bd]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-6120c6bd]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-6120c6bd]{display:none}}.search-keyboard-shortcuts kbd[data-v-6120c6bd]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-6120c6bd]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-6120c6bd]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-6120c6bd]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-6120c6bd]{margin:8px}}.titles[data-v-6120c6bd]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-6120c6bd]{display:flex;align-items:center;gap:4px}.title.main[data-v-6120c6bd]{font-weight:500}.title-icon[data-v-6120c6bd]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-6120c6bd]{opacity:.5}.result.selected[data-v-6120c6bd]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-6120c6bd]{position:relative}.excerpt[data-v-6120c6bd]{opacity:50%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;margin-top:4px}.result.selected .excerpt[data-v-6120c6bd]{opacity:1}.excerpt[data-v-6120c6bd] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-6120c6bd] mark,.excerpt[data-v-6120c6bd] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-6120c6bd] .vp-code-group .tabs{display:none}.excerpt[data-v-6120c6bd] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-6120c6bd]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-6120c6bd]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-6120c6bd],.result.selected .title-icon[data-v-6120c6bd]{color:var(--vp-c-brand-1)!important}.no-results[data-v-6120c6bd]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-6120c6bd]{flex:none} diff --git a/assets/style.Czi07tLB.css b/assets/style.Czi07tLB.css deleted file mode 100644 index a75a21f..0000000 --- a/assets/style.Czi07tLB.css +++ /dev/null @@ -1 +0,0 @@ -:root{--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe 30%, #41d1ff)}@media (min-width: 640px){:root{--vp-home-hero-image-filter: blur(56px)}}@media (min-width: 960px){:root{--vp-home-hero-image-filter: blur(68px)}}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-daa1937f]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-daa1937f],.VPBackdrop.fade-leave-to[data-v-daa1937f]{opacity:0}.VPBackdrop.fade-leave-active[data-v-daa1937f]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-daa1937f]{display:none}}.NotFound[data-v-2aa14331]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-2aa14331]{padding:96px 32px 168px}}.code[data-v-2aa14331]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-2aa14331]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-2aa14331]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-2aa14331]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-2aa14331]{padding-top:20px}.link[data-v-2aa14331]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-2aa14331]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-b9c884bb]{position:relative;z-index:1}.nested[data-v-b9c884bb]{padding-right:16px;padding-left:16px}.outline-link[data-v-b9c884bb]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-b9c884bb]:hover,.outline-link.active[data-v-b9c884bb]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-b9c884bb]{padding-left:13px}.VPDocAsideOutline[data-v-d34649dc]{display:none}.VPDocAsideOutline.has-outline[data-v-d34649dc]{display:block}.content[data-v-d34649dc]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-d34649dc]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-d34649dc]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-8951c20f]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-8951c20f]{flex-grow:1}.VPDocAside[data-v-8951c20f] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-8951c20f] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-8951c20f] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-19bf19fb]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-19bf19fb]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-28deee4a]{margin-top:64px}.edit-info[data-v-28deee4a]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-28deee4a]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-28deee4a]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-28deee4a]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-28deee4a]{margin-right:8px}.prev-next[data-v-28deee4a]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-28deee4a]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-28deee4a]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-28deee4a]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-28deee4a]{margin-left:auto;text-align:right}.desc[data-v-28deee4a]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-28deee4a]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-01c90815]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-01c90815]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-01c90815]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-01c90815]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-01c90815]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-01c90815]{display:flex;justify-content:center}.VPDoc .aside[data-v-01c90815]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-01c90815]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-01c90815]{max-width:1104px}}.container[data-v-01c90815]{margin:0 auto;width:100%}.aside[data-v-01c90815]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-01c90815]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-01c90815]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-01c90815]::-webkit-scrollbar{display:none}.aside-curtain[data-v-01c90815]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-01c90815]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-01c90815]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-01c90815]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-01c90815]{order:1;margin:0;min-width:640px}}.content-container[data-v-01c90815]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-01c90815]{max-width:688px}.VPButton[data-v-f549f0f3]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-f549f0f3]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-f549f0f3]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-f549f0f3]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-f549f0f3]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-f549f0f3]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-f549f0f3]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-f549f0f3]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-f549f0f3]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-f549f0f3]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-f549f0f3]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-f549f0f3]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-f549f0f3]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-cc63e071]{display:none}.dark .VPImage.light[data-v-cc63e071]{display:none}.VPHero[data-v-e302b8ce]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-e302b8ce]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-e302b8ce]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-e302b8ce]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-e302b8ce]{flex-direction:row}}.main[data-v-e302b8ce]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-e302b8ce]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-e302b8ce]{text-align:left}}@media (min-width: 960px){.main[data-v-e302b8ce]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-e302b8ce]{max-width:592px}}.name[data-v-e302b8ce],.text[data-v-e302b8ce]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-e302b8ce],.VPHero.has-image .text[data-v-e302b8ce]{margin:0 auto}.name[data-v-e302b8ce]{color:var(--vp-home-hero-name-color)}.clip[data-v-e302b8ce]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-e302b8ce],.text[data-v-e302b8ce]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-e302b8ce],.text[data-v-e302b8ce]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-e302b8ce],.VPHero.has-image .text[data-v-e302b8ce]{margin:0}}.tagline[data-v-e302b8ce]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-e302b8ce]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-e302b8ce]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-e302b8ce]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-e302b8ce]{margin:0}}.actions[data-v-e302b8ce]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-e302b8ce]{justify-content:center}@media (min-width: 640px){.actions[data-v-e302b8ce]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-e302b8ce]{justify-content:flex-start}}.action[data-v-e302b8ce]{flex-shrink:0;padding:6px}.image[data-v-e302b8ce]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-e302b8ce]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-e302b8ce]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-e302b8ce]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-e302b8ce]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-e302b8ce]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-e302b8ce]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-e302b8ce]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-e302b8ce]{width:320px;height:320px}}[data-v-e302b8ce] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-e302b8ce] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-e302b8ce] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-f77e80b4]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-f77e80b4]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-f77e80b4]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-f77e80b4]>.VPImage{margin-bottom:20px}.icon[data-v-f77e80b4]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-f77e80b4]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-f77e80b4]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-f77e80b4]{padding-top:8px}.link-text-value[data-v-f77e80b4]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-f77e80b4]{margin-left:6px}.VPFeatures[data-v-8e833103]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-8e833103]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-8e833103]{padding:0 64px}}.container[data-v-8e833103]{margin:0 auto;max-width:1152px}.items[data-v-8e833103]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-8e833103]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-8e833103],.item.grid-4[data-v-8e833103],.item.grid-6[data-v-8e833103]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-8e833103],.item.grid-4[data-v-8e833103]{width:50%}.item.grid-3[data-v-8e833103],.item.grid-6[data-v-8e833103]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-8e833103]{width:25%}}.container[data-v-90605523]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-90605523]{padding:0 48px}}@media (min-width: 960px){.container[data-v-90605523]{width:100%;padding:0 64px}}.vp-doc[data-v-90605523] .VPHomeSponsors,.vp-doc[data-v-90605523] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-90605523] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-90605523] .VPHomeSponsors a,.vp-doc[data-v-90605523] .VPTeamPage a{text-decoration:none}.VPHome[data-v-55977d12]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-55977d12]{margin-bottom:128px}}.VPContent[data-v-fc04087f]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-fc04087f]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-fc04087f]{margin:0}@media (min-width: 960px){.VPContent[data-v-fc04087f]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-fc04087f]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-fc04087f]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-d69bcf5d]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-d69bcf5d]{display:none}.VPFooter[data-v-d69bcf5d] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-d69bcf5d] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-d69bcf5d]{padding:32px}}.container[data-v-d69bcf5d]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-d69bcf5d],.copyright[data-v-d69bcf5d]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-9dd5e197]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-9dd5e197]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-9dd5e197]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-9dd5e197]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-9dd5e197]{color:var(--vp-c-text-1)}.icon[data-v-9dd5e197]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-9dd5e197]{font-size:14px}.icon[data-v-9dd5e197]{font-size:16px}}.open>.icon[data-v-9dd5e197]{transform:rotate(90deg)}.items[data-v-9dd5e197]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-9dd5e197]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-9dd5e197]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-9dd5e197]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-9dd5e197]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-9dd5e197]{transition:all .2s ease-out}.flyout-leave-active[data-v-9dd5e197]{transition:all .15s ease-in}.flyout-enter-from[data-v-9dd5e197],.flyout-leave-to[data-v-9dd5e197]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-9c649187]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-9c649187]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-9c649187]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-9c649187]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-9c649187]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-9c649187]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-9c649187]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-9c649187]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-9c649187]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-9c649187]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-9c649187]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-9c649187]{display:none}}.menu-icon[data-v-9c649187]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-9c649187]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-9c649187]{padding:12px 32px 11px}}.VPSwitch[data-v-846fe538]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-846fe538]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-846fe538]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-846fe538]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-846fe538] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-846fe538] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-3125216b]{opacity:1}.moon[data-v-3125216b],.dark .sun[data-v-3125216b]{opacity:0}.dark .moon[data-v-3125216b]{opacity:1}.dark .VPSwitchAppearance[data-v-3125216b] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-864d2abc]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-864d2abc]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-25a54821]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-25a54821]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-25a54821]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-25a54821]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-4dd03e28]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-4dd03e28]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-4dd03e28]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-4dd03e28]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-809b8af7]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-809b8af7] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-809b8af7] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-809b8af7] .group:last-child{padding-bottom:0}.VPMenu[data-v-809b8af7] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-809b8af7] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-809b8af7] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-809b8af7] .action{padding-left:24px}.VPFlyout[data-v-00660109]{position:relative}.VPFlyout[data-v-00660109]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-00660109]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-00660109]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-00660109]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-00660109]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-00660109],.button[aria-expanded=true]+.menu[data-v-00660109]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-00660109]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-00660109]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-00660109]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-00660109]{margin-right:0;font-size:16px}.text-icon[data-v-00660109]{margin-left:4px;font-size:14px}.icon[data-v-00660109]{font-size:20px;transition:fill .25s}.menu[data-v-00660109]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-15a5c40e]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-15a5c40e]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-15a5c40e]>svg,.VPSocialLink[data-v-15a5c40e]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-100434c4]{display:flex;justify-content:center}.VPNavBarExtra[data-v-60cefd62]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-60cefd62]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-60cefd62]{display:none}}.trans-title[data-v-60cefd62]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-60cefd62],.item.social-links[data-v-60cefd62]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-60cefd62]{min-width:176px}.appearance-action[data-v-60cefd62]{margin-right:-2px}.social-links-list[data-v-60cefd62]{margin:-4px -8px}.VPNavBarHamburger[data-v-e047a1f2]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e047a1f2]{display:none}}.container[data-v-e047a1f2]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e047a1f2]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e047a1f2]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e047a1f2]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e047a1f2]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e047a1f2]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e047a1f2]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e047a1f2],.VPNavBarHamburger.active:hover .middle[data-v-e047a1f2],.VPNavBarHamburger.active:hover .bottom[data-v-e047a1f2]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e047a1f2],.middle[data-v-e047a1f2],.bottom[data-v-e047a1f2]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e047a1f2]{top:0;left:0;transform:translate(0)}.middle[data-v-e047a1f2]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e047a1f2]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-9a0da802]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-9a0da802],.VPNavBarMenuLink[data-v-9a0da802]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-bf53b681]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-bf53b681]{display:flex}}/*! @docsearch/css 3.6.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.30196078431372547);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}.DocSearch-Button-Key--pressed{transform:translate3d(0,1px,0);box-shadow:var(--docsearch-key-pressed-shadow)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-2c606308]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-2c606308]{display:flex;align-items:center}}.title[data-v-606a7e0f]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-606a7e0f]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-606a7e0f]{border-bottom-color:var(--vp-c-divider)}}[data-v-606a7e0f] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-912817b1]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-912817b1]{display:flex;align-items:center}}.title[data-v-912817b1]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-da0688be]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-da0688be]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-da0688be]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-da0688be]:not(.home){background-color:transparent}.VPNavBar[data-v-da0688be]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-da0688be]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-da0688be]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-da0688be]{padding:0}}.container[data-v-da0688be]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-da0688be],.container>.content[data-v-da0688be]{pointer-events:none}.container[data-v-da0688be] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-da0688be]{max-width:100%}}.title[data-v-da0688be]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-da0688be]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-da0688be]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-da0688be]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-da0688be]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-da0688be]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-da0688be]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-da0688be]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-da0688be]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-da0688be]{column-gap:.5rem}}.menu+.translations[data-v-da0688be]:before,.menu+.appearance[data-v-da0688be]:before,.menu+.social-links[data-v-da0688be]:before,.translations+.appearance[data-v-da0688be]:before,.appearance+.social-links[data-v-da0688be]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-da0688be]:before,.translations+.appearance[data-v-da0688be]:before{margin-right:16px}.appearance+.social-links[data-v-da0688be]:before{margin-left:16px}.social-links[data-v-da0688be]{margin-right:-8px}.divider[data-v-da0688be]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-da0688be]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-da0688be]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-da0688be]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-da0688be]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-da0688be]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-da0688be]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-dfcc1536]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-dfcc1536]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-8cd41455]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-8cd41455]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-b8c7c580]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-b8c7c580]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-a3e7a51c]{display:block}.title[data-v-a3e7a51c]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-90f695a2]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-90f695a2]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-90f695a2]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-90f695a2]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-90f695a2]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-90f695a2]{transform:rotate(45deg)}.button[data-v-90f695a2]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-90f695a2]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-90f695a2]{transition:transform .25s}.group[data-v-90f695a2]:first-child{padding-top:0}.group+.group[data-v-90f695a2],.group+.item[data-v-90f695a2]{padding-top:4px}.VPNavScreenTranslations[data-v-95c61444]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-95c61444]{height:auto}.title[data-v-95c61444]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-95c61444]{font-size:16px}.icon.lang[data-v-95c61444]{margin-right:8px}.icon.chevron[data-v-95c61444]{margin-left:4px}.list[data-v-95c61444]{padding:4px 0 0 24px}.link[data-v-95c61444]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-c14c1e21]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .25s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-c14c1e21],.VPNavScreen.fade-leave-active[data-v-c14c1e21]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-c14c1e21],.VPNavScreen.fade-leave-active .container[data-v-c14c1e21]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-c14c1e21],.VPNavScreen.fade-leave-to[data-v-c14c1e21]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-c14c1e21],.VPNavScreen.fade-leave-to .container[data-v-c14c1e21]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-c14c1e21]{display:none}}.container[data-v-c14c1e21]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-c14c1e21],.menu+.appearance[data-v-c14c1e21],.translations+.appearance[data-v-c14c1e21]{margin-top:24px}.menu+.social-links[data-v-c14c1e21]{margin-top:16px}.appearance+.social-links[data-v-c14c1e21]{margin-top:16px}.VPNav[data-v-e823d444]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-e823d444]{position:fixed}}.VPSidebarItem.level-0[data-v-a9cdba99]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-a9cdba99]{padding-bottom:10px}.item[data-v-a9cdba99]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-a9cdba99]{cursor:pointer}.indicator[data-v-a9cdba99]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-a9cdba99],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-a9cdba99],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-a9cdba99],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-a9cdba99]{background-color:var(--vp-c-brand-1)}.link[data-v-a9cdba99]{display:flex;align-items:center;flex-grow:1}.text[data-v-a9cdba99]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-a9cdba99]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-a9cdba99],.VPSidebarItem.level-2 .text[data-v-a9cdba99],.VPSidebarItem.level-3 .text[data-v-a9cdba99],.VPSidebarItem.level-4 .text[data-v-a9cdba99],.VPSidebarItem.level-5 .text[data-v-a9cdba99]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-a9cdba99],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-a9cdba99],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-a9cdba99],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-a9cdba99],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-a9cdba99],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-a9cdba99]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-1.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-2.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-3.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-4.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-5.has-active>.item>.text[data-v-a9cdba99],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-a9cdba99],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-a9cdba99],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-a9cdba99],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-a9cdba99],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-a9cdba99],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-a9cdba99]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-a9cdba99],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-a9cdba99],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-a9cdba99],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-a9cdba99],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-a9cdba99],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-a9cdba99]{color:var(--vp-c-brand-1)}.caret[data-v-a9cdba99]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-a9cdba99]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-a9cdba99]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-a9cdba99]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-a9cdba99]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-a9cdba99],.VPSidebarItem.level-2 .items[data-v-a9cdba99],.VPSidebarItem.level-3 .items[data-v-a9cdba99],.VPSidebarItem.level-4 .items[data-v-a9cdba99],.VPSidebarItem.level-5 .items[data-v-a9cdba99]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-a9cdba99]{display:none}.no-transition[data-v-72c67ed4] .caret-icon{transition:none}.group+.group[data-v-72c67ed4]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-72c67ed4]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-59ceefa4]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-59ceefa4]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-59ceefa4]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-59ceefa4]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-59ceefa4]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-59ceefa4]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-59ceefa4]{outline:0}.VPSkipLink[data-v-e813112c]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-e813112c]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-e813112c]{top:14px;left:16px}}.Layout[data-v-3b4648ff]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-e06ca32a]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-e06ca32a]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-e06ca32a]{margin:128px 0}}.VPHomeSponsors[data-v-e06ca32a]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-e06ca32a]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-e06ca32a]{padding:0 64px}}.container[data-v-e06ca32a]{margin:0 auto;max-width:1152px}.love[data-v-e06ca32a]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-e06ca32a]{display:inline-block}.message[data-v-e06ca32a]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-e06ca32a]{padding-top:32px}.action[data-v-e06ca32a]{padding-top:40px;text-align:center}.VPTeamPage[data-v-b1db0dbf]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-b1db0dbf]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-b1db0dbf-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-b1db0dbf-s],.VPTeamMembers+.VPTeamPageSection[data-v-b1db0dbf-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-b1db0dbf-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-b1db0dbf-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-b1db0dbf-s],.VPTeamMembers+.VPTeamPageSection[data-v-b1db0dbf-s]{margin-top:96px}}.VPTeamMembers[data-v-b1db0dbf-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-b1db0dbf-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-b1db0dbf-s]{padding:0 64px}}.VPTeamPageTitle[data-v-67e2507a]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-67e2507a]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-67e2507a]{padding:80px 64px 48px}}.title[data-v-67e2507a]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-67e2507a]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-67e2507a]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-67e2507a]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-848babf0]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-848babf0]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-848babf0]{padding:0 64px}}.title[data-v-848babf0]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-848babf0]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-848babf0]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-848babf0]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-848babf0]{padding-top:40px}.VPTeamMembersItem[data-v-990ef11d]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-990ef11d]{padding:32px}.VPTeamMembersItem.small .data[data-v-990ef11d]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-990ef11d]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-990ef11d]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-990ef11d]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-990ef11d]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-990ef11d]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-990ef11d]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-990ef11d]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-990ef11d]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-990ef11d]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-990ef11d]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-990ef11d]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-990ef11d]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-990ef11d]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-990ef11d]{text-align:center}.avatar[data-v-990ef11d]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-990ef11d]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-990ef11d]{margin:0;font-weight:600}.affiliation[data-v-990ef11d]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-990ef11d]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-990ef11d]:hover{color:var(--vp-c-brand-1)}.desc[data-v-990ef11d]{margin:0 auto}.desc[data-v-990ef11d] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-990ef11d]{display:flex;justify-content:center;height:56px}.sp-link[data-v-990ef11d]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-990ef11d]:hover,.sp .sp-link.link[data-v-990ef11d]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-990ef11d]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-387893a3]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-387893a3]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-387893a3]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-387893a3]{max-width:876px}.VPTeamMembers.medium .container[data-v-387893a3]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-387893a3]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-387893a3]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-387893a3]{max-width:760px}.container[data-v-387893a3]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--vp-font-family-base: "Poppins", "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: "Cousine", monospace}.VPLocalSearchBox[data-v-6120c6bd]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-6120c6bd]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-6120c6bd]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 767px){.shell[data-v-6120c6bd]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-6120c6bd]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 767px){.search-bar[data-v-6120c6bd]{padding:0 8px}}.search-bar[data-v-6120c6bd]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-6120c6bd]{display:block;font-size:18px}.navigate-icon[data-v-6120c6bd]{display:block;font-size:14px}.search-icon[data-v-6120c6bd]{margin:8px}@media (max-width: 767px){.search-icon[data-v-6120c6bd]{display:none}}.search-input[data-v-6120c6bd]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-6120c6bd]{padding:6px 4px}}.search-actions[data-v-6120c6bd]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-6120c6bd]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-6120c6bd]{display:none}}.search-actions button[data-v-6120c6bd]{padding:8px}.search-actions button[data-v-6120c6bd]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-6120c6bd]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-6120c6bd]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-6120c6bd]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-6120c6bd]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-6120c6bd]{display:none}}.search-keyboard-shortcuts kbd[data-v-6120c6bd]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-6120c6bd]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-6120c6bd]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-6120c6bd]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-6120c6bd]{margin:8px}}.titles[data-v-6120c6bd]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-6120c6bd]{display:flex;align-items:center;gap:4px}.title.main[data-v-6120c6bd]{font-weight:500}.title-icon[data-v-6120c6bd]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-6120c6bd]{opacity:.5}.result.selected[data-v-6120c6bd]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-6120c6bd]{position:relative}.excerpt[data-v-6120c6bd]{opacity:50%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;margin-top:4px}.result.selected .excerpt[data-v-6120c6bd]{opacity:1}.excerpt[data-v-6120c6bd] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-6120c6bd] mark,.excerpt[data-v-6120c6bd] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-6120c6bd] .vp-code-group .tabs{display:none}.excerpt[data-v-6120c6bd] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-6120c6bd]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-6120c6bd]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-6120c6bd],.result.selected .title-icon[data-v-6120c6bd]{color:var(--vp-c-brand-1)!important}.no-results[data-v-6120c6bd]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-6120c6bd]{flex:none} diff --git a/assets/zht_api_mp_math_angle.md.CBKEZciJ.js b/assets/zht_api_mp_math_angle.md.CBKEZciJ.js new file mode 100644 index 0000000..d5197f8 --- /dev/null +++ b/assets/zht_api_mp_math_angle.md.CBKEZciJ.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as i,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/angle.md","filePath":"zht/api/mp_math/angle.md"}'),e={name:"zht/api/mp_math/angle.md"},n=t('

模組 mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

説明: 任意角度。

變數説明:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
源碼於GitHub上查看
python
def __init__(self, value: float, is_radian: bool=False):\n    if is_radian:\n        self.radian = value\n    else:\n        self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

説明: 余角:两角的和为90°。

返回: 余角

源碼於GitHub上查看
python
@property\ndef complementary(self) -> 'AnyAngle':\n    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

説明: 补角:两角的和为180°。

返回: 补角

源碼於GitHub上查看
python
@property\ndef supplementary(self) -> 'AnyAngle':\n    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

説明: 角度。

返回: 弧度

源碼於GitHub上查看
python
@property\ndef degree(self) -> float:\n    return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

説明: 最小正角。

返回: 最小正角度

源碼於GitHub上查看
python
@property\ndef minimum_positive(self) -> 'AnyAngle':\n    return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

説明: 最大负角。

返回: 最大负角度

源碼於GitHub上查看
python
@property\ndef maximum_negative(self) -> 'AnyAngle':\n    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

説明: 正弦值。

返回: 正弦值

源碼於GitHub上查看
python
@property\ndef sin(self) -> float:\n    return math.sin(self.radian)

@property

method cos(self) -> float

説明: 余弦值。

返回: 余弦值

源碼於GitHub上查看
python
@property\ndef cos(self) -> float:\n    return math.cos(self.radian)

@property

method tan(self) -> float

説明: 正切值。

返回: 正切值

源碼於GitHub上查看
python
@property\ndef tan(self) -> float:\n    return math.tan(self.radian)

@property

method cot(self) -> float

説明: 余切值。

返回: 余切值

源碼於GitHub上查看
python
@property\ndef cot(self) -> float:\n    return 1 / math.tan(self.radian)

@property

method sec(self) -> float

説明: 正割值。

返回: 正割值

源碼於GitHub上查看
python
@property\ndef sec(self) -> float:\n    return 1 / math.cos(self.radian)

@property

method csc(self) -> float

説明: 余割值。

返回: 余割值

源碼於GitHub上查看
python
@property\ndef csc(self) -> float:\n    return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

源碼於GitHub上查看
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':\n    return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):\n    return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

源碼於GitHub上查看
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':\n    return AnyAngle(self.radian - other.radian, is_radian=True)

method self * other: float => AnyAngle

源碼於GitHub上查看
python
def __mul__(self, other: float) -> 'AnyAngle':\n    return AnyAngle(self.radian * other, is_radian=True)

@overload

method self / other: float => AnyAngle

源碼於GitHub上查看
python
@overload\ndef __truediv__(self, other: float) -> 'AnyAngle':\n    ...

@overload

method self / other: AnyAngle => float

源碼於GitHub上查看
python
@overload\ndef __truediv__(self, other: 'AnyAngle') -> float:\n    ...

method self / other

源碼於GitHub上查看
python
def __truediv__(self, other):\n    if isinstance(other, AnyAngle):\n        return self.radian / other.radian\n    return AnyAngle(self.radian / other, is_radian=True)
',80),h=[n];function l(p,k,r,o,d,g){return i(),a("div",null,h)}const c=s(e,[["render",l]]);export{m as __pageData,c as default}; diff --git a/assets/zht_api_mp_math_angle.md.CBKEZciJ.lean.js b/assets/zht_api_mp_math_angle.md.CBKEZciJ.lean.js new file mode 100644 index 0000000..811c48a --- /dev/null +++ b/assets/zht_api_mp_math_angle.md.CBKEZciJ.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as i,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/angle.md","filePath":"zht/api/mp_math/angle.md"}'),e={name:"zht/api/mp_math/angle.md"},n=t("",80),h=[n];function l(p,k,r,o,d,g){return i(),a("div",null,h)}const c=s(e,[["render",l]]);export{m as __pageData,c as default}; diff --git a/assets/zht_api_mp_math_angle.md.mmecNIJM.js b/assets/zht_api_mp_math_angle.md.mmecNIJM.js deleted file mode 100644 index 51d85ef..0000000 --- a/assets/zht_api_mp_math_angle.md.mmecNIJM.js +++ /dev/null @@ -1,99 +0,0 @@ -import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/angle.md","filePath":"zht/api/mp_math/angle.md"}'),t={name:"zht/api/mp_math/angle.md"},e=n(`

模組 mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

説明: 任意角度。

變數説明:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
源碼於GitHub上查看
python
def __init__(self, value: float, is_radian: bool=False):
-    """
-        任意角度。
-        Args:
-            value: 角度或弧度值
-            is_radian: 是否为弧度,默认为否
-        """
-    if is_radian:
-        self.radian = value
-    else:
-        self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

説明: 余角:两角的和为90°。

返回: 余角

源碼於GitHub上查看
python
@property
-def complementary(self) -> 'AnyAngle':
-    """
-        余角:两角的和为90°。
-        Returns:
-            余角
-        """
-    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

説明: 补角:两角的和为180°。

返回: 补角

源碼於GitHub上查看
python
@property
-def supplementary(self) -> 'AnyAngle':
-    """
-        补角:两角的和为180°。
-        Returns:
-            补角
-        """
-    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

説明: 角度。

返回: 弧度

源碼於GitHub上查看
python
@property
-def degree(self) -> float:
-    """
-        角度。
-        Returns:
-            弧度
-        """
-    return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

説明: 最小正角。

返回: 最小正角度

源碼於GitHub上查看
python
@property
-def minimum_positive(self) -> 'AnyAngle':
-    """
-        最小正角。
-        Returns:
-            最小正角度
-        """
-    return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

説明: 最大负角。

返回: 最大负角度

源碼於GitHub上查看
python
@property
-def maximum_negative(self) -> 'AnyAngle':
-    """
-        最大负角。
-        Returns:
-            最大负角度
-        """
-    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

説明: 正弦值。

返回: 正弦值

源碼於GitHub上查看
python
@property
-def sin(self) -> float:
-    """
-        正弦值。
-        Returns:
-            正弦值
-        """
-    return math.sin(self.radian)

@property

method cos(self) -> float

説明: 余弦值。

返回: 余弦值

源碼於GitHub上查看
python
@property
-def cos(self) -> float:
-    """
-        余弦值。
-        Returns:
-            余弦值
-        """
-    return math.cos(self.radian)

@property

method tan(self) -> float

説明: 正切值。

返回: 正切值

源碼於GitHub上查看
python
@property
-def tan(self) -> float:
-    """
-        正切值。
-        Returns:
-            正切值
-        """
-    return math.tan(self.radian)

@property

method cot(self) -> float

説明: 余切值。

返回: 余切值

源碼於GitHub上查看
python
@property
-def cot(self) -> float:
-    """
-        余切值。
-        Returns:
-            余切值
-        """
-    return 1 / math.tan(self.radian)

@property

method sec(self) -> float

説明: 正割值。

返回: 正割值

源碼於GitHub上查看
python
@property
-def sec(self) -> float:
-    """
-        正割值。
-        Returns:
-            正割值
-        """
-    return 1 / math.cos(self.radian)

@property

method csc(self) -> float

説明: 余割值。

返回: 余割值

源碼於GitHub上查看
python
@property
-def csc(self) -> float:
-    """
-        余割值。
-        Returns:
-            余割值
-        """
-    return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

源碼於GitHub上查看
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
-    return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

源碼於GitHub上查看
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian - other.radian, is_radian=True)

method self * other: float => AnyAngle

源碼於GitHub上查看
python
def __mul__(self, other: float) -> 'AnyAngle':
-    return AnyAngle(self.radian * other, is_radian=True)

@overload

method self / other: float => AnyAngle

源碼於GitHub上查看
python
@overload
-def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

method self / other: AnyAngle => float

源碼於GitHub上查看
python
@overload
-def __truediv__(self, other: 'AnyAngle') -> float:
-    ...

method self / other

源碼於GitHub上查看
python
def __truediv__(self, other):
-    if isinstance(other, AnyAngle):
-        return self.radian / other.radian
-    return AnyAngle(self.radian / other, is_radian=True)
`,80),l=[e];function h(p,k,r,o,d,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; diff --git a/assets/zht_api_mp_math_angle.md.mmecNIJM.lean.js b/assets/zht_api_mp_math_angle.md.mmecNIJM.lean.js deleted file mode 100644 index a629079..0000000 --- a/assets/zht_api_mp_math_angle.md.mmecNIJM.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/angle.md","filePath":"zht/api/mp_math/angle.md"}'),t={name:"zht/api/mp_math/angle.md"},e=n("",80),l=[e];function h(p,k,r,o,d,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; diff --git a/assets/zht_api_mp_math_equation.md.B00IWO_d.js b/assets/zht_api_mp_math_equation.md.DckV9F7F.js similarity index 77% rename from assets/zht_api_mp_math_equation.md.B00IWO_d.js rename to assets/zht_api_mp_math_equation.md.DckV9F7F.js index 3ea7d70..d15aec4 100644 --- a/assets/zht_api_mp_math_equation.md.B00IWO_d.js +++ b/assets/zht_api_mp_math_equation.md.DckV9F7F.js @@ -1,44 +1,14 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/equation.md","filePath":"zht/api/mp_math/equation.md"}'),t={name:"zht/api/mp_math/equation.md"},l=n(`

模組 mbcp.mp_math.equation

本模块定义了方程相关的类和函数以及一些常用的数学函数

class CurveEquation

method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)

説明: 曲线方程。

變數説明:

源碼於GitHub上查看
python
def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc):
-    """
-        曲线方程。
-        Args:
-            x_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): x函数
-            y_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): y函数
-            z_func ([\`OneVarFunc\`](./mp_math_typing#var-onevarfunc)): z函数
-        """
     self.x_func = x_func
     self.y_func = y_func
     self.z_func = z_func

method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

説明: 计算曲线上的点。

變數説明:

  • *t:
  • 参数:

返回: 目标点

源碼於GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
-    """
-        计算曲线上的点。
-        Args:
-            *t:
-                参数
-        Returns:
-            目标点
-        """
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
         return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

説明: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

變數説明:

  • func (MultiVarsFunc): N元函数
  • var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
  • epsilon: 偏移量

返回: 偏导函数

抛出:

  • ValueError 无效变量类型
源碼於GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
-    """
-    求N元函数一阶偏导函数。这玩意不太稳定,慎用。
-    > [!warning]
-    > 目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升
-
-    Args:
-        func ([\`MultiVarsFunc\`](./mp_math_typing#var-multivarsfunc)): N元函数
-        var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
-        epsilon: 偏移量
-    Returns:
-        偏导函数
-    Raises:
-        ValueError: 无效变量类型
-    """
     if isinstance(var, int):
 
         def partial_derivative_func(*args: Var) -> Var:
-            """@litedoc-hide"""
             args_list_plus = list(args)
             args_list_plus[var] += epsilon
             args_list_minus = list(args)
@@ -48,18 +18,10 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
     elif isinstance(var, tuple):
 
         def high_order_partial_derivative_func(*args: Var) -> Var:
-            """
-            @litedoc-hide
-            求高阶偏导函数
-            Args:
-                *args: 参数
-            Returns:
-                高阶偏导数值
-            """
             result_func = func
             for v in var:
                 result_func = get_partial_derivative_func(result_func, v, epsilon)
             return result_func(*args)
         return high_order_partial_derivative_func
     else:
-        raise ValueError('Invalid var type')
`,23),p=[l];function h(e,k,r,E,d,c){return a(),i("div",null,p)}const F=s(t,[["render",h]]);export{u as __pageData,F as default}; + raise ValueError('Invalid var type')`,23),h=[l];function p(e,k,r,E,d,c){return a(),i("div",null,h)}const o=s(t,[["render",p]]);export{u as __pageData,o as default}; diff --git a/assets/zht_api_mp_math_equation.md.B00IWO_d.lean.js b/assets/zht_api_mp_math_equation.md.DckV9F7F.lean.js similarity index 65% rename from assets/zht_api_mp_math_equation.md.B00IWO_d.lean.js rename to assets/zht_api_mp_math_equation.md.DckV9F7F.lean.js index b4dd5c1..981b6ea 100644 --- a/assets/zht_api_mp_math_equation.md.B00IWO_d.lean.js +++ b/assets/zht_api_mp_math_equation.md.DckV9F7F.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/equation.md","filePath":"zht/api/mp_math/equation.md"}'),t={name:"zht/api/mp_math/equation.md"},l=n("",23),p=[l];function h(e,k,r,E,d,c){return a(),i("div",null,p)}const F=s(t,[["render",h]]);export{u as __pageData,F as default}; +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/equation.md","filePath":"zht/api/mp_math/equation.md"}'),t={name:"zht/api/mp_math/equation.md"},l=n("",23),h=[l];function p(e,k,r,E,d,c){return a(),i("div",null,h)}const o=s(t,[["render",p]]);export{u as __pageData,o as default}; diff --git a/assets/zht_api_mp_math_function.md.BnUerglv.js b/assets/zht_api_mp_math_function.md.3Rru8vfk.js similarity index 82% rename from assets/zht_api_mp_math_function.md.BnUerglv.js rename to assets/zht_api_mp_math_function.md.3Rru8vfk.js index dea7319..654e2b0 100644 --- a/assets/zht_api_mp_math_function.md.BnUerglv.js +++ b/assets/zht_api_mp_math_function.md.3Rru8vfk.js @@ -1,16 +1,4 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/function.md","filePath":"zht/api/mp_math/function.md"}'),e={name:"zht/api/mp_math/function.md"},Q=a('

模組 mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

説明: 计算三元函数在某点的梯度向量。

',4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a('',1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a('',1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a('',1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a(`

變數説明:

返回: 梯度

源碼於GitHub上查看
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
-    """
-    计算三元函数在某点的梯度向量。
-    > [!tip]
-    > 已知一个函数$f(x, y, z)$,则其在点$(x_0, y_0, z_0)$处的梯度向量为:
-    $\\\\nabla f(x_0, y_0, z_0) = \\\\left(\\\\frac{\\\\partial f}{\\\\partial x}, \\\\frac{\\\\partial f}{\\\\partial y}, \\\\frac{\\\\partial f}{\\\\partial z}\\\\right)$
-    Args:
-        func ([\`ThreeSingleVarsFunc\`](./mp_math_typing#var-threesinglevarsfunc)): 三元函数
-        p ([\`Point3\`](./point#class-point3)): 点
-        epsilon: 偏移量
-    Returns:
-        梯度
-    """
+import{_ as n,c as s,j as t,a as Q,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/function.md","filePath":"zht/api/mp_math/function.md"}'),T={name:"zht/api/mp_math/function.md"},e=a('

模組 mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

説明: 计算三元函数在某点的梯度向量。

',4),l={class:"tip custom-block github-alert"},h=t("p",{class:"custom-block-title"},"TIP",-1),r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},p=a('',1),o=[p],m=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("mi",null,"x"),t("mo",null,","),t("mi",null,"y"),t("mo",null,","),t("mi",null,"z"),t("mo",{stretchy:"false"},")")])],-1),k={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},g=a('',1),u=[g],y=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},_=a('',1),w=[_],x=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",{mathvariant:"normal"},"∇"),t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")"),t("mo",null,"="),t("mrow",{"data-mjx-texclass":"INNER"},[t("mo",{"data-mjx-texclass":"OPEN"},"("),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"x")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"y")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"z")])]),t("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),b=a(`

變數説明:

返回: 梯度

源碼於GitHub上查看
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
     dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
     dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
     dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
@@ -18,25 +6,7 @@ import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1Zp
     return a + b + c
 add_curried = curry(add, 1, 2)
 add_curried(3)  # 6
源碼於GitHub上查看
python
def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc:
-    """
-    对多参数函数进行柯里化。
-    > [!tip]
-    > 有关函数柯里化,可参考[函数式编程--柯理化(Currying)](https://zhuanlan.zhihu.com/p/355859667)
-    Args:
-        func ([\`MultiVarsFunc\`](./mp_math_typing#var-multivarsfunc)): 函数
-        *args ([\`Var\`](./mp_math_typing#var-var)): 参数
-    Returns:
-        柯里化后的函数
-    Examples:
-        \`\`\`python
-        def add(a: int, b: int, c: int) -> int:
-            return a + b + c
-        add_curried = curry(add, 1, 2)
-        add_curried(3)  # 6
-        \`\`\`
-    """
 
     def curried_func(*args2: Var) -> Var:
-        """@litedoc-hide"""
         return func(*args, *args2)
-    return curried_func
`,13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; + return curried_func
`,13);function L(H,F,M,v,D,Z){return i(),s("div",null,[e,t("div",l,[h,t("p",null,[Q("已知一个函数"),t("mjx-container",r,[(i(),s("svg",d,o)),m]),Q(",则其在点"),t("mjx-container",k,[(i(),s("svg",c,u)),y]),Q("处的梯度向量为: "),t("mjx-container",E,[(i(),s("svg",f,w)),x])])]),b])}const A=n(T,[["render",L]]);export{V as __pageData,A as default}; diff --git a/assets/zht_api_mp_math_function.md.3Rru8vfk.lean.js b/assets/zht_api_mp_math_function.md.3Rru8vfk.lean.js new file mode 100644 index 0000000..de59fd7 --- /dev/null +++ b/assets/zht_api_mp_math_function.md.3Rru8vfk.lean.js @@ -0,0 +1 @@ +import{_ as n,c as s,j as t,a as Q,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/function.md","filePath":"zht/api/mp_math/function.md"}'),T={name:"zht/api/mp_math/function.md"},e=a("",4),l={class:"tip custom-block github-alert"},h=t("p",{class:"custom-block-title"},"TIP",-1),r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},p=a("",1),o=[p],m=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("mi",null,"x"),t("mo",null,","),t("mi",null,"y"),t("mo",null,","),t("mi",null,"z"),t("mo",{stretchy:"false"},")")])],-1),k={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},g=a("",1),u=[g],y=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},_=a("",1),w=[_],x=t("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",{mathvariant:"normal"},"∇"),t("mi",null,"f"),t("mo",{stretchy:"false"},"("),t("msub",null,[t("mi",null,"x"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"y"),t("mn",null,"0")]),t("mo",null,","),t("msub",null,[t("mi",null,"z"),t("mn",null,"0")]),t("mo",{stretchy:"false"},")"),t("mo",null,"="),t("mrow",{"data-mjx-texclass":"INNER"},[t("mo",{"data-mjx-texclass":"OPEN"},"("),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"x")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"y")])]),t("mo",null,","),t("mfrac",null,[t("mrow",null,[t("mi",null,"∂"),t("mi",null,"f")]),t("mrow",null,[t("mi",null,"∂"),t("mi",null,"z")])]),t("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),b=a("",13);function L(H,F,M,v,D,Z){return i(),s("div",null,[e,t("div",l,[h,t("p",null,[Q("已知一个函数"),t("mjx-container",r,[(i(),s("svg",d,o)),m]),Q(",则其在点"),t("mjx-container",k,[(i(),s("svg",c,u)),y]),Q("处的梯度向量为: "),t("mjx-container",E,[(i(),s("svg",f,w)),x])])]),b])}const A=n(T,[["render",L]]);export{V as __pageData,A as default}; diff --git a/assets/zht_api_mp_math_function.md.BnUerglv.lean.js b/assets/zht_api_mp_math_function.md.BnUerglv.lean.js deleted file mode 100644 index 39dd29d..0000000 --- a/assets/zht_api_mp_math_function.md.BnUerglv.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/function.md","filePath":"zht/api/mp_math/function.md"}'),e={name:"zht/api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; diff --git a/assets/zht_api_mp_math_line.md.Dg3ji_dG.lean.js b/assets/zht_api_mp_math_line.md.Dg3ji_dG.lean.js deleted file mode 100644 index 62d797b..0000000 --- a/assets/zht_api_mp_math_line.md.Dg3ji_dG.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/line.md","filePath":"zht/api/mp_math/line.md"}'),t={name:"zht/api/mp_math/line.md"},l=n("",106),e=[l];function h(p,k,o,r,d,g){return a(),i("div",null,e)}const E=s(t,[["render",h]]);export{F as __pageData,E as default}; diff --git a/assets/zht_api_mp_math_line.md.Dg3ji_dG.js b/assets/zht_api_mp_math_line.md.DopGqzVZ.js similarity index 74% rename from assets/zht_api_mp_math_line.md.Dg3ji_dG.js rename to assets/zht_api_mp_math_line.md.DopGqzVZ.js index a358a97..f52d208 100644 --- a/assets/zht_api_mp_math_line.md.Dg3ji_dG.js +++ b/assets/zht_api_mp_math_line.md.DopGqzVZ.js @@ -1,38 +1,8 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/line.md","filePath":"zht/api/mp_math/line.md"}'),t={name:"zht/api/mp_math/line.md"},l=n(`

模組 mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

説明: 三维空间中的直线。由一个点和一个方向向量确定。

變數説明:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
源碼於GitHub上查看
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
-    """
-        三维空间中的直线。由一个点和一个方向向量确定。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 直线上的一点
-            direction ([\`Vector3\`](./vector#class-vector3)): 方向向量
-        """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/line.md","filePath":"zht/api/mp_math/line.md"}'),n={name:"zht/api/mp_math/line.md"},e=t(`

模組 mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

説明: 三维空间中的直线。由一个点和一个方向向量确定。

變數説明:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
源碼於GitHub上查看
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
     self.point = point
     self.direction = direction

method approx(self, other: Line3, epsilon: float = APPROX) -> bool

説明: 判断两条直线是否近似相等。

變數説明:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
-    """
-        判断两条直线是否近似相等。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-            epsilon ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return self.is_approx_parallel(other, epsilon) and (self.point - other.point).is_approx_parallel(self.direction, epsilon)

method cal_angle(self, other: Line3) -> AnyAngle

説明: 计算直线和直线之间的夹角。

變數説明:

  • other (Line3): 另一条直线

返回: AnyAngle: 夹角

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
-    """
-        计算直线和直线之间的夹角。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        """
     return self.direction.cal_angle(other.direction)

method cal_distance(self, other: Line3 | Point3) -> float

説明: 计算直线和直线或点之间的距离。

變數説明:

返回: float: 距离

抛出:

源碼於GitHub上查看
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
-    """
-        计算直线和直线或点之间的距离。
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3)): 另一条直线或点
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         if self == other:
             return 0
@@ -46,91 +16,19 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
         raise TypeError('Unsupported type.')

method cal_intersection(self, other: Line3) -> Point3

説明: 计算两条直线的交点。

變數説明:

  • other (Line3): 另一条直线

返回: Point3: 交点

抛出:

源碼於GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
-    """
-        计算两条直线的交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`Point3\`](./point#class-point3): 交点
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 直线平行
-            \`ValueError\`: 直线不共面
-        """
     if self.is_parallel(other):
         raise ValueError('Lines are parallel and do not intersect.')
     if not self.is_coplanar(other):
         raise ValueError('Lines are not coplanar and do not intersect.')
     return self.point + self.direction.cross(other.direction) @ other.direction.cross(self.point - other.point) / self.direction.cross(other.direction).length ** 2 * self.direction

method cal_perpendicular(self, point: Point3) -> Line3

説明: 计算直线经过指定点p的垂线。

變數説明:

返回: Line3: 垂线

源碼於GitHub上查看
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
-    """
-        计算直线经过指定点p的垂线。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 指定点
-        Returns:
-            [\`Line3\`](./line#class-line3): 垂线
-        """
     return Line3(point, self.direction.cross(point - self.point))

method get_point(self, t: RealNumber) -> Point3

説明: 获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。

變數説明:

返回: Point3: 点

源碼於GitHub上查看
python
def get_point(self, t: RealNumber) -> 'Point3':
-    """
-        获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。
-        Args:
-            t ([\`RealNumber\`](./mp_math_typing#var-realnumber)): 参数t
-        Returns:
-            [\`Point3\`](./point#class-point3): 点
-        """
     return self.point + t * self.direction

method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]

説明: 获取直线的参数方程。

返回: tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]: 参数方程

源碼於GitHub上查看
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
-    """
-        获取直线的参数方程。
-        Returns:
-            [\`tuple\`](https%3A//docs.python.org/3/library/stdtypes.html#tuple)[[\`OneSingleVarFunc\`](./mp_math_typing#var-onesinglevarfunc), \`OneSingleVarFunc\`, \`OneSingleVarFunc\`]: 参数方程
-        """
     return (lambda t: self.point.x + self.direction.x * t, lambda t: self.point.y + self.direction.y * t, lambda t: self.point.z + self.direction.z * t)

method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool

説明: 判断两条直线是否近似平行。

變數説明:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

返回: bool: 是否近似平行

源碼於GitHub上查看
python
def is_approx_parallel(self, other: 'Line3', epsilon: float=1e-06) -> bool:
-    """
-        判断两条直线是否近似平行。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-            epsilon ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.direction.is_approx_parallel(other.direction, epsilon)

method is_parallel(self, other: Line3) -> bool

説明: 判断两条直线是否平行。

變數説明:

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否平行。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.direction.is_parallel(other.direction)

method is_collinear(self, other: Line3) -> bool

説明: 判断两条直线是否共线。

變數説明:

返回: bool: 是否共线

源碼於GitHub上查看
python
def is_collinear(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共线。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共线
-        """
     return self.is_parallel(other) and (self.point - other.point).is_parallel(self.direction)

method is_point_on(self, point: Point3) -> bool

説明: 判断点是否在直线上。

變數説明:

返回: bool: 是否在直线上

源碼於GitHub上查看
python
def is_point_on(self, point: 'Point3') -> bool:
-    """
-        判断点是否在直线上。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 点
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
-        """
     return (point - self.point).is_parallel(self.direction)

method is_coplanar(self, other: Line3) -> bool

説明: 判断两条直线是否共面。 充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。

變數説明:

返回: bool: 是否共面

源碼於GitHub上查看
python
def is_coplanar(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共面。
-        充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
-        """
     return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

説明: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

源碼於GitHub上查看
python
def simplify(self):
-    """
-        简化直线方程,等价相等。
-        自体简化,不返回值。
-
-        按照可行性一次对x y z 化 0 处理,并对向量单位化
-        """
     self.direction.normalize()
     if self.direction.x == 0:
         self.point.x = 0
@@ -139,36 +37,12 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     if self.direction.z == 0:
         self.point.z = 0

@classmethod

method from_two_points(cls, p1: Point3, p2: Point3) -> Line3

説明: 工厂函数 由两点构造直线。

變數説明:

返回: Line3: 直线

源碼於GitHub上查看
python
@classmethod
 def from_two_points(cls, p1: 'Point3', p2: 'Point3') -> 'Line3':
-    """
-        工厂函数 由两点构造直线。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 点1
-            p2 ([\`Point3\`](./point#class-point3)): 点2
-        Returns:
-            [\`Line3\`](./line#class-line3): 直线
-        """
     direction = p2 - p1
     return cls(p1, direction)

method __and__(self, other: Line3) -> Line3 | Point3 | None

説明: 计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。

變數説明:

  • other (Line3): 另一条直线

返回: Line3 | Point3 | None: 交集

源碼於GitHub上查看
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
-    """
-        计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3) | [\`None\`](https://docs.python.org/3/library/constants.html#None): 交集
-        """
     if self.is_collinear(other):
         return self
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
         return self.cal_intersection(other)

method __eq__(self, other) -> bool

説明: 判断两条直线是否等价。

v1 // v2 ∧ (p1 - p2) // v1

變數説明:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源碼於GitHub上查看
python
def __eq__(self, other) -> bool:
-    """
-        判断两条直线是否等价。
-
-        v1 // v2 ∧ (p1 - p2) // v1
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 另一条直线
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
-    return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)
`,106),e=[l];function h(p,k,o,r,d,g){return a(),i("div",null,e)}const E=s(t,[["render",h]]);export{F as __pageData,E as default}; + return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)
`,106),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; diff --git a/assets/zht_api_mp_math_line.md.DopGqzVZ.lean.js b/assets/zht_api_mp_math_line.md.DopGqzVZ.lean.js new file mode 100644 index 0000000..d282918 --- /dev/null +++ b/assets/zht_api_mp_math_line.md.DopGqzVZ.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.line","description":"","frontmatter":{"title":"mbcp.mp_math.line","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/line.md","filePath":"zht/api/mp_math/line.md"}'),n={name:"zht/api/mp_math/line.md"},e=t("",106),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; diff --git a/assets/zht_api_mp_math_plane.md.DHKntbKb.js b/assets/zht_api_mp_math_plane.md.OnI32y0z.js similarity index 85% rename from assets/zht_api_mp_math_plane.md.DHKntbKb.js rename to assets/zht_api_mp_math_plane.md.OnI32y0z.js index 3a597e9..d113dd4 100644 --- a/assets/zht_api_mp_math_plane.md.DHKntbKb.js +++ b/assets/zht_api_mp_math_plane.md.OnI32y0z.js @@ -1,23 +1,8 @@ -import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const qs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/plane.md","filePath":"zht/api/mp_math/plane.md"}'),e={name:"zht/api/mp_math/plane.md"},h=t(`

模組 mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

説明: 平面方程:ax + by + cz + d = 0

變數説明:

  • a (float): x系数
  • b (float): y系数
  • c (float): z系数
  • d (float): 常数项
源碼於GitHub上查看
python
def __init__(self, a: float, b: float, c: float, d: float):
-    """
-        平面方程:ax + by + cz + d = 0
-        Args:
-            a ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): x系数
-            b (\`float\`): y系数
-            c (\`float\`): z系数
-            d (\`float\`): 常数项
-        """
+import{_ as n,c as a,j as s,a as e,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Zs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/plane.md","filePath":"zht/api/mp_math/plane.md"}'),l={name:"zht/api/mp_math/plane.md"},h=t(`

模組 mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

説明: 平面方程:ax + by + cz + d = 0

變數説明:

  • a (float): x系数
  • b (float): y系数
  • c (float): z系数
  • d (float): 常数项
源碼於GitHub上查看
python
def __init__(self, a: float, b: float, c: float, d: float):
     self.a = a
     self.b = b
     self.c = c
     self.d = d

method approx(self, other: Plane3) -> bool

説明: 判断两个平面是否近似相等。

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否近似相等。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     if self.a != 0:
         k = other.a / self.a
         return approx(other.b, self.b * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
@@ -28,67 +13,19 @@ import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1Zp
         k = other.c / self.c
         return approx(other.a, self.a * k) and approx(other.b, self.b * k) and approx(other.d, self.d * k)
     else:
-        return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

説明: 计算平面与平面之间的夹角。

`,16),p={class:"tip custom-block"},k=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"平面间夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t('',1),g=[Q],c=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),T={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},m={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t('',1),y=[E],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),u={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},C={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},f=t('',1),b=[f],_=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},B=s("p",{class:"custom-block-title"},"TIP",-1),w=s("p",null,"平面与直线夹角计算公式:",-1),H={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},L={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t('',1),D=[A],v=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},q=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[q],Z=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),R=[z],$=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),N=t(`

變數説明:

返回: AnyAngle: 夹角

抛出:

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
-    """
-        计算平面与平面之间的夹角。
-        :::tip
-        平面间夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{n1 \\\\cdot n2}{|n1| \\\\cdot |n2|})$$
-        其中 $n1$ 和 $n2$ 分别为两个平面的法向量
-        :::
-        :::tip
-        平面与直线夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{n \\\\cdot d}{|n| \\\\cdot |d|})$$
-        其中 $n$ 为平面的法向量,$d$ 为直线的方向向量
-        :::
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Plane3\`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
+        return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

説明: 计算平面与平面之间的夹角。

`,16),p={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),o=s("p",null,"平面间夹角计算公式:",-1),k={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t('',1),T=[Q],g=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t('',1),y=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},_=t('',1),b=[_],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},w=s("p",{class:"custom-block-title"},"TIP",-1),H=s("p",null,"平面与直线夹角计算公式:",-1),L={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},D={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t('',1),v=[A],B=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},Z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[Z],q=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),N=[z],G=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),I=t(`

變數説明:

返回: AnyAngle: 夹角

抛出:

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     if isinstance(other, Line3):
         return self.normal.cal_angle(other.direction).complementary
     elif isinstance(other, Plane3):
         return AnyAngle(math.acos(self.normal @ other.normal / (self.normal.length * other.normal.length)), is_radian=True)
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_distance(self, other: Plane3 | Point3) -> float

説明: 计算平面与平面或点之间的距离。

變數説明:

返回: float: 距离

抛出:

源碼於GitHub上查看
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
-    """
-        计算平面与平面或点之间的距离。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3) | [\`Point3\`](./point#class-point3)): 另一个平面或点
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         return 0
     elif isinstance(other, Point3):
         return abs(self.a * other.x + self.b * other.y + self.c * other.z + self.d) / (self.a ** 2 + self.b ** 2 + self.c ** 2) ** 0.5
     else:
-        raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

説明: 计算两平面的交线。

`,16),G={class:"tip custom-block"},I=s("p",{class:"custom-block-title"},"TIP",-1),J=s("p",null,"计算两平面交线的一般步骤:",-1),O=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t('',1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t('',1),ns=[ts],ls=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),es={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t('',1),ks=[ps],rs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),os={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t('',1),gs=[Qs],cs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),Ts={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ms={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t('',1),ys=[Es],Fs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),us=s("p",null,"或",-1),Cs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},fs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t('',1),_s=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),Bs=t(`

變數説明:

  • other (Plane3): 另一个平面

返回: Line3: 交线

抛出:

源碼於GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
-    """
-        计算两平面的交线。
-        :::tip
-        计算两平面交线的一般步骤:
-        1. 求两平面的法向量的叉乘得到方向向量
-        $$ d = n1 \\\\times n2 $$
-        2. 寻找直线上的一点,依次假设$x=0$, $y=0$, $z=0$,并代入两平面方程求出合适的点
-        直线最终可用参数方程或点向式表示
-        $$ \\\\begin{cases} x = x_0 + dt \\\\\\\\ y = y_0 + dt \\\\\\\\ z = z_0 + dt \\\\end{cases} $$
-
-        $$ \\\\frac{x - x_0}{m} = \\\\frac{y - y_0}{n} = \\\\frac{z - z_0}{p} $$
-        :::
-
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`Line3\`](./line#class-line3): 交线
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面平行且无交线
-        """
+        raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

説明: 计算两平面的交线。

`,16),R={class:"tip custom-block"},J=s("p",{class:"custom-block-title"},"TIP",-1),O=s("p",null,"计算两平面交线的一般步骤:",-1),$=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t('',1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t('',1),es=[ts],ns=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),ls={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t('',1),rs=[ps],os=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),ks={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t('',1),Ts=[Qs],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),ms={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},cs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t('',1),ys=[Es],us=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),Fs=s("p",null,"或",-1),fs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},_s={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t('',1),Cs=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),ws=t(`

變數説明:

  • other (Plane3): 另一个平面

返回: Line3: 交线

抛出:

源碼於GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     if self.normal.is_parallel(other.normal):
         raise ValueError('Planes are parallel and have no intersection.')
     direction = self.normal.cross(other.normal)
@@ -106,106 +43,36 @@ import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1Zp
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
     return Line3(Point3(x, y, z), direction)

method cal_intersection_point3(self, other: Line3) -> Point3

説明: 计算平面与直线的交点。

變數説明:

返回: Point3: 交点

抛出:

源碼於GitHub上查看
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
-    """
-        计算平面与直线的交点。
-        Args:
-            other ([\`Line3\`](./line#class-line3)): 直线
-        Returns:
-            [\`Point3\`](./point#class-point3): 交点
-        Raises:
-            [\`ValueError\`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面与直线平行或重合
-        """
     if self.normal @ other.direction == 0:
         raise ValueError('The plane and the line are parallel or coincident.')
     x, y, z = other.get_parametric_equations()
     t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)
     return Point3(x(t), y(t), z(t))

method cal_parallel_plane3(self, point: Point3) -> Plane3

説明: 计算平行于该平面且过指定点的平面。

變數説明:

返回: Plane3: 平面

源碼於GitHub上查看
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
-    """
-        计算平行于该平面且过指定点的平面。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 指定点
-        Returns:
-            [\`Plane3\`](./plane#class-plane3): 平面
-        """
     return Plane3.from_point_and_normal(point, self.normal)

method is_parallel(self, other: Plane3) -> bool

説明: 判断两个平面是否平行。

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否平行。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.normal.is_parallel(other.normal)

@property

method normal(self) -> Vector3

説明: 平面的法向量。

返回: Vector3: 法向量

源碼於GitHub上查看
python
@property
 def normal(self) -> 'Vector3':
-    """
-        平面的法向量。
-        Returns:
-            [\`Vector3\`](./vector#class-vector3): 法向量
-        """
     return Vector3(self.a, self.b, self.c)

@classmethod

method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3

説明: 工厂函数 由点和法向量构造平面(点法式构造)。

變數説明:

返回: Plane3: 平面

源碼於GitHub上查看
python
@classmethod
 def from_point_and_normal(cls, point: 'Point3', normal: 'Vector3') -> 'Plane3':
-    """
-        工厂函数 由点和法向量构造平面(点法式构造)。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 平面上一点
-            normal ([\`Vector3\`](./vector#class-vector3)): 法向量
-        Returns:
-            [\`Plane3\`](./plane#class-plane3): 平面
-        """
     a, b, c = (normal.x, normal.y, normal.z)
     d = -a * point.x - b * point.y - c * point.z
     return cls(a, b, c, d)

@classmethod

method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3

説明: 工厂函数 由三点构造平面。

變數説明:

  • p1 (Point3): 点1
  • p2 (Point3): 点2
  • p3 (Point3): 点3

返回: 平面

源碼於GitHub上查看
python
@classmethod
 def from_three_points(cls, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3':
-    """
-        工厂函数 由三点构造平面。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 点1
-            p2 (\`Point3\`): 点2
-            p3 (\`Point3\`): 点3
-        Returns:
-            平面
-        """
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
     return cls.from_point_and_normal(p1, normal)

@classmethod

method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3

説明: 工厂函数 由两直线构造平面。

變數説明:

  • l1 (Line3): 直线
  • l2 (Line3): 直线

返回: 平面

源碼於GitHub上查看
python
@classmethod
 def from_two_lines(cls, l1: 'Line3', l2: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由两直线构造平面。
-        Args:
-            l1 ([\`Line3\`](./line#class-line3)): 直线
-            l2 (\`Line3\`): 直线
-        Returns:
-            平面
-        """
     v1 = l1.direction
     v2 = l2.point - l1.point
     if v2 == zero_vector3:
         v2 = l2.get_point(1) - l1.point
     return cls.from_point_and_normal(l1.point, v1.cross(v2))

@classmethod

method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3

説明: 工厂函数 由点和直线构造平面。

變數説明:

返回: 平面

源碼於GitHub上查看
python
@classmethod
 def from_point_and_line(cls, point: 'Point3', line: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由点和直线构造平面。
-        Args:
-            point ([\`Point3\`](./point#class-point3)): 平面上一点
-            line ([\`Line3\`](./line#class-line3)): 直线
-        Returns:
-            平面
-        """
     return cls.from_point_and_normal(point, line.direction)

@overload

method __and__(self, other: Line3) -> Point3 | None

源碼於GitHub上查看
python
@overload
 def __and__(self, other: 'Line3') -> 'Point3 | None':
     ...

@overload

method __and__(self, other: Plane3) -> Line3 | None

源碼於GitHub上查看
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
     ...

method __and__(self, other)

説明: 取两平面的交集(人话:交线)

變數説明:

返回: Line3 | Point3 | None: 交集

抛出:

源碼於GitHub上查看
python
def __and__(self, other):
-    """
-        取两平面的交集(人话:交线)
-        Args:
-            other ([\`Line3\`](./line#class-line3) | [\`Plane3\`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [\`Line3\`](./line#class-line3) | [\`Point3\`](./point#class-point3) | [\`None\`](https%3A//docs.python.org/3/library/constants.html#None): 交集
-        Raises:
-            [\`TypeError\`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         if self.normal.is_parallel(other.normal):
             return None
@@ -216,12 +83,5 @@ import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1Zp
         return self.cal_intersection_point3(other)
     else:
         raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

method __eq__(self, other) -> bool

説明: 判断两个平面是否等价。

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否等价

源碼於GitHub上查看
python
def __eq__(self, other) -> bool:
-    """
-        判断两个平面是否等价。
-        Args:
-            other ([\`Plane3\`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.approx(other)

method __rand__(self, other: Line3) -> Point3

源碼於GitHub上查看
python
def __rand__(self, other: 'Line3') -> 'Point3':
-    return self.cal_intersection_point3(other)
`,81);function ws(Hs,Ls,As,Ds,vs,Ms){return i(),a("div",null,[h,s("div",p,[k,r,s("mjx-container",o,[(i(),a("svg",d,g)),c]),s("p",null,[n("其中 "),s("mjx-container",T,[(i(),a("svg",m,y)),F]),n(" 和 "),s("mjx-container",u,[(i(),a("svg",C,b)),_]),n(" 分别为两个平面的法向量")])]),s("div",x,[B,w,s("mjx-container",H,[(i(),a("svg",L,D)),v]),s("p",null,[n("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),Z]),n(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,R)),$]),n(" 为直线的方向向量")])]),N,s("div",G,[I,J,O,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[n("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,ns)),ls]),n(", "),s("mjx-container",es,[(i(),a("svg",hs,ks)),rs]),n(", "),s("mjx-container",os,[(i(),a("svg",ds,gs)),cs]),n(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",Ts,[(i(),a("svg",ms,ys)),Fs]),us,s("mjx-container",Cs,[(i(),a("svg",fs,_s)),xs])]),Bs])}const Ps=l(e,[["render",ws]]);export{qs as __pageData,Ps as default}; + return self.cal_intersection_point3(other)
`,81);function Hs(Ls,Ds,As,vs,Bs,Ms){return i(),a("div",null,[h,s("div",p,[r,o,s("mjx-container",k,[(i(),a("svg",d,T)),g]),s("p",null,[e("其中 "),s("mjx-container",m,[(i(),a("svg",c,y)),u]),e(" 和 "),s("mjx-container",F,[(i(),a("svg",f,b)),C]),e(" 分别为两个平面的法向量")])]),s("div",x,[w,H,s("mjx-container",L,[(i(),a("svg",D,v)),B]),s("p",null,[e("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),q]),e(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,N)),G]),e(" 为直线的方向向量")])]),I,s("div",R,[J,O,$,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[e("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,es)),ns]),e(", "),s("mjx-container",ls,[(i(),a("svg",hs,rs)),os]),e(", "),s("mjx-container",ks,[(i(),a("svg",ds,Ts)),gs]),e(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",ms,[(i(),a("svg",cs,ys)),us]),Fs,s("mjx-container",fs,[(i(),a("svg",_s,Cs)),xs])]),ws])}const Ps=n(l,[["render",Hs]]);export{Zs as __pageData,Ps as default}; diff --git a/assets/zht_api_mp_math_plane.md.DHKntbKb.lean.js b/assets/zht_api_mp_math_plane.md.OnI32y0z.lean.js similarity index 79% rename from assets/zht_api_mp_math_plane.md.DHKntbKb.lean.js rename to assets/zht_api_mp_math_plane.md.OnI32y0z.lean.js index e779361..d9975a5 100644 --- a/assets/zht_api_mp_math_plane.md.DHKntbKb.lean.js +++ b/assets/zht_api_mp_math_plane.md.OnI32y0z.lean.js @@ -1 +1 @@ -import{_ as l,c as a,j as s,a as n,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const qs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/plane.md","filePath":"zht/api/mp_math/plane.md"}'),e={name:"zht/api/mp_math/plane.md"},h=t("",16),p={class:"tip custom-block"},k=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"平面间夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t("",1),g=[Q],c=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),T={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},m={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t("",1),y=[E],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),u={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},C={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},f=t("",1),b=[f],_=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},B=s("p",{class:"custom-block-title"},"TIP",-1),w=s("p",null,"平面与直线夹角计算公式:",-1),H={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},L={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t("",1),D=[A],v=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},q=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[q],Z=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),R=[z],$=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),N=t("",16),G={class:"tip custom-block"},I=s("p",{class:"custom-block-title"},"TIP",-1),J=s("p",null,"计算两平面交线的一般步骤:",-1),O=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t("",1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t("",1),ns=[ts],ls=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),es={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t("",1),ks=[ps],rs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),os={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t("",1),gs=[Qs],cs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),Ts={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ms={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t("",1),ys=[Es],Fs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),us=s("p",null,"或",-1),Cs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},fs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t("",1),_s=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),Bs=t("",81);function ws(Hs,Ls,As,Ds,vs,Ms){return i(),a("div",null,[h,s("div",p,[k,r,s("mjx-container",o,[(i(),a("svg",d,g)),c]),s("p",null,[n("其中 "),s("mjx-container",T,[(i(),a("svg",m,y)),F]),n(" 和 "),s("mjx-container",u,[(i(),a("svg",C,b)),_]),n(" 分别为两个平面的法向量")])]),s("div",x,[B,w,s("mjx-container",H,[(i(),a("svg",L,D)),v]),s("p",null,[n("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),Z]),n(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,R)),$]),n(" 为直线的方向向量")])]),N,s("div",G,[I,J,O,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[n("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,ns)),ls]),n(", "),s("mjx-container",es,[(i(),a("svg",hs,ks)),rs]),n(", "),s("mjx-container",os,[(i(),a("svg",ds,gs)),cs]),n(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",Ts,[(i(),a("svg",ms,ys)),Fs]),us,s("mjx-container",Cs,[(i(),a("svg",fs,_s)),xs])]),Bs])}const Ps=l(e,[["render",ws]]);export{qs as __pageData,Ps as default}; +import{_ as n,c as a,j as s,a as e,a4 as t,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Zs=JSON.parse('{"title":"mbcp.mp_math.plane","description":"","frontmatter":{"title":"mbcp.mp_math.plane","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/plane.md","filePath":"zht/api/mp_math/plane.md"}'),l={name:"zht/api/mp_math/plane.md"},h=t("",16),p={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),o=s("p",null,"平面间夹角计算公式:",-1),k={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"22.011ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9729 2301","aria-hidden":"true"},Q=t("",1),T=[Q],g=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"n"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},E=t("",1),y=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"1")])],-1),F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},f={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.489ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -666 1100 677","aria-hidden":"true"},_=t("",1),b=[_],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mn",null,"2")])],-1),x={class:"tip custom-block"},w=s("p",{class:"custom-block-title"},"TIP",-1),H=s("p",null,"平面与直线夹角计算公式:",-1),L={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},D={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"19.568ex",height:"5.269ex",role:"img",focusable:"false",viewBox:"0 -1370 8649 2329","aria-hidden":"true"},A=t("",1),v=[A],B=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"n"),s("mo",null,"⋅"),s("mi",null,"d")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"n"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"d"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),M={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},Z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),P=[Z],q=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),S={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},j={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.176ex",height:"1.593ex",role:"img",focusable:"false",viewBox:"0 -694 520 704","aria-hidden":"true"},z=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D451",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z",style:{"stroke-width":"3"}})])])],-1),N=[z],G=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"d")])],-1),I=t("",16),R={class:"tip custom-block"},J=s("p",{class:"custom-block-title"},"TIP",-1),O=s("p",null,"计算两平面交线的一般步骤:",-1),$=s("ol",null,[s("li",null,"求两平面的法向量的叉乘得到方向向量")],-1),U={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},K={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.937ex",height:"1.756ex",role:"img",focusable:"false",viewBox:"0 -694 5276 776","aria-hidden":"true"},W=t("",1),X=[W],Y=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"d"),s("mo",null,"="),s("mi",null,"n"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"n"),s("mn",null,"2")])],-1),ss={start:"2"},as={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},is={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.442ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2405.6 748","aria-hidden":"true"},ts=t("",1),es=[ts],ns=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"="),s("mn",null,"0")])],-1),ls={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.257ex",height:"1.971ex",role:"img",focusable:"false",viewBox:"0 -666 2323.6 871","aria-hidden":"true"},ps=t("",1),rs=[ps],os=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y"),s("mo",null,"="),s("mn",null,"0")])],-1),ks={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ds={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.2ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2298.6 748","aria-hidden":"true"},Qs=t("",1),Ts=[Qs],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"z"),s("mo",null,"="),s("mn",null,"0")])],-1),ms={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},cs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.281ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.363ex",height:"7.692ex",role:"img",focusable:"false",viewBox:"0 -1950 5906.6 3400","aria-hidden":"true"},Es=t("",1),ys=[Es],us=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mi",null,"x"),s("mo",null,"="),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"y"),s("mo",null,"="),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"z"),s("mo",null,"="),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",null,"+"),s("mi",null,"d"),s("mi",null,"t")])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])],-1),Fs=s("p",null,"或",-1),fs={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},_s={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.991ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.19ex",height:"4.839ex",role:"img",focusable:"false",viewBox:"0 -1259 12018.1 2139","aria-hidden":"true"},bs=t("",1),Cs=[bs],xs=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")])]),s("mi",null,"m")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"y"),s("mo",null,"−"),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")])]),s("mi",null,"n")]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mi",null,"z"),s("mo",null,"−"),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")])]),s("mi",null,"p")])])],-1),ws=t("",81);function Hs(Ls,Ds,As,vs,Bs,Ms){return i(),a("div",null,[h,s("div",p,[r,o,s("mjx-container",k,[(i(),a("svg",d,T)),g]),s("p",null,[e("其中 "),s("mjx-container",m,[(i(),a("svg",c,y)),u]),e(" 和 "),s("mjx-container",F,[(i(),a("svg",f,b)),C]),e(" 分别为两个平面的法向量")])]),s("div",x,[w,H,s("mjx-container",L,[(i(),a("svg",D,v)),B]),s("p",null,[e("其中 "),s("mjx-container",M,[(i(),a("svg",V,P)),q]),e(" 为平面的法向量,"),s("mjx-container",S,[(i(),a("svg",j,N)),G]),e(" 为直线的方向向量")])]),I,s("div",R,[J,O,$,s("mjx-container",U,[(i(),a("svg",K,X)),Y]),s("ol",ss,[s("li",null,[e("寻找直线上的一点,依次假设"),s("mjx-container",as,[(i(),a("svg",is,es)),ns]),e(", "),s("mjx-container",ls,[(i(),a("svg",hs,rs)),os]),e(", "),s("mjx-container",ks,[(i(),a("svg",ds,Ts)),gs]),e(",并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示")])]),s("mjx-container",ms,[(i(),a("svg",cs,ys)),us]),Fs,s("mjx-container",fs,[(i(),a("svg",_s,Cs)),xs])]),ws])}const Ps=n(l,[["render",Hs]]);export{Zs as __pageData,Ps as default}; diff --git a/assets/zht_api_mp_math_point.md.DoQ35q26.js b/assets/zht_api_mp_math_point.md.DoQ35q26.js new file mode 100644 index 0000000..7362c8f --- /dev/null +++ b/assets/zht_api_mp_math_point.md.DoQ35q26.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/point.md","filePath":"zht/api/mp_math/point.md"}'),e={name:"zht/api/mp_math/point.md"},h=t('

模組 mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

説明: 笛卡尔坐标系中的点。

變數説明:

  • x (float): x 坐标
  • y (float): y 坐标
  • z (float): z 坐标
源碼於GitHub上查看
python
def __init__(self, x: float, y: float, z: float):\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

説明: 判断两个点是否近似相等。

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

源碼於GitHub上查看
python
@overload\ndef __add__(self, other: 'Vector3') -> 'Point3':\n    ...

@overload

method self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload\ndef __add__(self, other: 'Point3') -> 'Point3':\n    ...

method self + other

説明: P + V -> P P + P -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __add__(self, other):\n    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

説明: 判断两个点是否相等。

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):\n    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

説明: P - P -> V

P - V -> P 已在 Vector3 中实现

變數説明:

返回: Vector3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':\n    from .vector import Vector3\n    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
',39),n=[h];function l(p,o,k,r,d,g){return a(),i("div",null,n)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; diff --git a/assets/zht_api_mp_math_point.md.DoQ35q26.lean.js b/assets/zht_api_mp_math_point.md.DoQ35q26.lean.js new file mode 100644 index 0000000..3a9146a --- /dev/null +++ b/assets/zht_api_mp_math_point.md.DoQ35q26.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/point.md","filePath":"zht/api/mp_math/point.md"}'),e={name:"zht/api/mp_math/point.md"},h=t("",39),n=[h];function l(p,o,k,r,d,g){return a(),i("div",null,n)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; diff --git a/assets/zht_api_mp_math_point.md.vFMEEeVu.js b/assets/zht_api_mp_math_point.md.vFMEEeVu.js deleted file mode 100644 index 7051d19..0000000 --- a/assets/zht_api_mp_math_point.md.vFMEEeVu.js +++ /dev/null @@ -1,52 +0,0 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/point.md","filePath":"zht/api/mp_math/point.md"}'),n={name:"zht/api/mp_math/point.md"},h=t(`

模組 mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

説明: 笛卡尔坐标系中的点。

變數説明:

  • x (float): x 坐标
  • y (float): y 坐标
  • z (float): z 坐标
源碼於GitHub上查看
python
def __init__(self, x: float, y: float, z: float):
-    """
-        笛卡尔坐标系中的点。
-        Args:
-            x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): x 坐标
-            y (\`float\`): y 坐标
-            z (\`float\`): z 坐标
-        """
-    self.x = x
-    self.y = y
-    self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

説明: 判断两个点是否近似相等。

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个点是否近似相等。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-            epsilon ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
-    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

源碼於GitHub上查看
python
@overload
-def __add__(self, other: 'Vector3') -> 'Point3':
-    ...

@overload

method self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
-def __add__(self, other: 'Point3') -> 'Point3':
-    ...

method self + other

説明: P + V -> P P + P -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __add__(self, other):
-    """
-        P + V -> P
-        P + P -> P
-        Args:
-            other ([\`Vector3\`](./vector#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个点或向量
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

説明: 判断两个点是否相等。

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
-    """
-        判断两个点是否相等。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否相等
-        """
-    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

説明: P - P -> V

P - V -> P 已在 Vector3 中实现

變數説明:

返回: Vector3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':
-    """
-        P - P -> V
-
-        P - V -> P  已在 [\`Vector3\`](./vector#class-vector3) 中实现
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Vector3\`](./vector#class-vector3): 新的向量
-        """
-    from .vector import Vector3
-    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
`,39),l=[h];function e(p,o,k,r,d,g){return a(),i("div",null,l)}const y=s(n,[["render",e]]);export{E as __pageData,y as default}; diff --git a/assets/zht_api_mp_math_point.md.vFMEEeVu.lean.js b/assets/zht_api_mp_math_point.md.vFMEEeVu.lean.js deleted file mode 100644 index 8ede03c..0000000 --- a/assets/zht_api_mp_math_point.md.vFMEEeVu.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/point.md","filePath":"zht/api/mp_math/point.md"}'),n={name:"zht/api/mp_math/point.md"},h=t("",39),l=[h];function e(p,o,k,r,d,g){return a(),i("div",null,l)}const y=s(n,[["render",e]]);export{E as __pageData,y as default}; diff --git a/assets/zht_api_mp_math_segment.md.BuDHbwYP.js b/assets/zht_api_mp_math_segment.md.CqQitARa.js similarity index 86% rename from assets/zht_api_mp_math_segment.md.BuDHbwYP.js rename to assets/zht_api_mp_math_segment.md.CqQitARa.js index 91014cf..6775791 100644 --- a/assets/zht_api_mp_math_segment.md.BuDHbwYP.js +++ b/assets/zht_api_mp_math_segment.md.CqQitARa.js @@ -1,10 +1,4 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/segment.md","filePath":"zht/api/mp_math/segment.md"}'),n={name:"zht/api/mp_math/segment.md"},h=t(`

模組 mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

説明: 三维空间中的线段。

變數説明:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源碼於GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
-    """
-        三维空间中的线段。
-        Args:
-            p1 ([\`Point3\`](./point#class-point3)): 线段的一个端点
-            p2 ([\`Point3\`](./point#class-point3)): 线段的另一个端点
-        """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/segment.md","filePath":"zht/api/mp_math/segment.md"}'),n={name:"zht/api/mp_math/segment.md"},h=t(`

模組 mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

説明: 三维空间中的线段。

變數説明:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源碼於GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
     self.p1 = p1
     self.p2 = p2
     '方向向量'
@@ -12,4 +6,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     '长度'
     self.length = self.direction.length
     '中心点'
-    self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)
`,8),p=[h];function l(e,k,r,d,o,E){return a(),i("div",null,p)}const c=s(n,[["render",l]]);export{F as __pageData,c as default}; + self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)
`,8),p=[h];function e(l,k,r,d,E,g){return a(),i("div",null,p)}const c=s(n,[["render",e]]);export{m as __pageData,c as default}; diff --git a/assets/zht_api_mp_math_segment.md.BuDHbwYP.lean.js b/assets/zht_api_mp_math_segment.md.CqQitARa.lean.js similarity index 53% rename from assets/zht_api_mp_math_segment.md.BuDHbwYP.lean.js rename to assets/zht_api_mp_math_segment.md.CqQitARa.lean.js index b18ade0..ce5442c 100644 --- a/assets/zht_api_mp_math_segment.md.BuDHbwYP.lean.js +++ b/assets/zht_api_mp_math_segment.md.CqQitARa.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/segment.md","filePath":"zht/api/mp_math/segment.md"}'),n={name:"zht/api/mp_math/segment.md"},h=t("",8),p=[h];function l(e,k,r,d,o,E){return a(),i("div",null,p)}const c=s(n,[["render",l]]);export{F as __pageData,c as default}; +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const m=JSON.parse('{"title":"mbcp.mp_math.segment","description":"","frontmatter":{"title":"mbcp.mp_math.segment","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/segment.md","filePath":"zht/api/mp_math/segment.md"}'),n={name:"zht/api/mp_math/segment.md"},h=t("",8),p=[h];function e(l,k,r,d,E,g){return a(),i("div",null,p)}const c=s(n,[["render",e]]);export{m as __pageData,c as default}; diff --git a/assets/zht_api_mp_math_utils.md.DvxTZy5j.lean.js b/assets/zht_api_mp_math_utils.md.DvxTZy5j.lean.js deleted file mode 100644 index 24b504f..0000000 --- a/assets/zht_api_mp_math_utils.md.DvxTZy5j.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/utils.md","filePath":"zht/api/mp_math/utils.md"}'),n={name:"zht/api/mp_math/utils.md"},l=t("",38),h=[l];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const E=s(n,[["render",e]]);export{F as __pageData,E as default}; diff --git a/assets/zht_api_mp_math_utils.md.DvxTZy5j.js b/assets/zht_api_mp_math_utils.md.itNFG1x8.js similarity index 81% rename from assets/zht_api_mp_math_utils.md.DvxTZy5j.js rename to assets/zht_api_mp_math_utils.md.itNFG1x8.js index 3c130cb..96667d8 100644 --- a/assets/zht_api_mp_math_utils.md.DvxTZy5j.js +++ b/assets/zht_api_mp_math_utils.md.itNFG1x8.js @@ -1,20 +1,5 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/utils.md","filePath":"zht/api/mp_math/utils.md"}'),n={name:"zht/api/mp_math/utils.md"},l=t(`

模組 mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

説明: 区间限定函数

變數説明:

  • x (float): 值
  • min_ (float): 最小值
  • max_ (float): 最大值

返回: float: 限定在区间内的值

源碼於GitHub上查看
python
def clamp(x: float, min_: float, max_: float) -> float:
-    """
-    区间限定函数
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 值
-        min_ (\`float\`): 最小值
-        max_ (\`float\`): 最大值
-
-    Returns:
-        \`float\`: 限定在区间内的值
-    """
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/utils.md","filePath":"zht/api/mp_math/utils.md"}'),l={name:"zht/api/mp_math/utils.md"},n=t(`

模組 mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

説明: 区间限定函数

變數説明:

  • x (float): 值
  • min_ (float): 最小值
  • max_ (float): 最大值

返回: float: 限定在区间内的值

源碼於GitHub上查看
python
def clamp(x: float, min_: float, max_: float) -> float:
     return max(min(x, max_), min_)

class Approx

method __init__(self, value: RealNumber)

説明: 用于近似比较对象

變數説明:

源碼於GitHub上查看
python
def __init__(self, value: RealNumber):
-    """
-        用于近似比较对象
-        Args:
-            value ([\`RealNumber\`](./mp_math_typing#realnumber)): 实数
-        """
     self.value = value

method __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
@@ -28,42 +13,16 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
             self.raise_type_error(other)

method raise_type_error(self, other)

源碼於GitHub上查看
python
def raise_type_error(self, other):
     raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

method __ne__(self, other)

源碼於GitHub上查看
python
def __ne__(self, other):
     return not self.__eq__(other)

func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool

説明: 判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

變數説明:

  • x (float): 数1
  • y (float): 数2
  • epsilon (float): 误差

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
-    """
-    判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数1
-        y (\`float\`): 数2
-        epsilon (\`float\`): 误差
-    Returns:
-        [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-    """
     return abs(x - y) < epsilon

func sign(x: float, only_neg: bool = False) -> str

説明: 获取数的符号。

變數説明:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign(x: float, only_neg: bool=False) -> str:
-    """获取数的符号。
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([\`bool\`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [\`str\`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return '+' if not only_neg else ''
     elif x < 0:
         return '-'
     else:
         return ''

func sign_format(x: float, only_neg: bool = False) -> str

説明: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

變數説明:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
-    """格式化符号数
-    -1 -> -1
-    1 -> +1
-    0 -> ""
-    Args:
-        x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([\`bool\`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [\`str\`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return f'+{x}' if not only_neg else f'{x}'
     elif x < 0:
         return f'-{abs(x)}'
     else:
-        return ''
`,38),h=[l];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const E=s(n,[["render",e]]);export{F as __pageData,E as default}; + return ''
`,38),h=[n];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const c=s(l,[["render",e]]);export{E as __pageData,c as default}; diff --git a/assets/zht_api_mp_math_utils.md.itNFG1x8.lean.js b/assets/zht_api_mp_math_utils.md.itNFG1x8.lean.js new file mode 100644 index 0000000..330d56b --- /dev/null +++ b/assets/zht_api_mp_math_utils.md.itNFG1x8.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/utils.md","filePath":"zht/api/mp_math/utils.md"}'),l={name:"zht/api/mp_math/utils.md"},n=t("",38),h=[n];function e(p,k,r,o,d,g){return a(),i("div",null,h)}const c=s(l,[["render",e]]);export{E as __pageData,c as default}; diff --git a/assets/zht_api_mp_math_vector.md.DoP7bI-7.js b/assets/zht_api_mp_math_vector.md.DoP7bI-7.js deleted file mode 100644 index d442ae0..0000000 --- a/assets/zht_api_mp_math_vector.md.DoP7bI-7.js +++ /dev/null @@ -1,176 +0,0 @@ -import{_ as n,c as i,j as s,a4 as a,o as t}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/vector.md","filePath":"zht/api/mp_math/vector.md"}'),l={name:"zht/api/mp_math/vector.md"},e=a('

模組 mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

説明: 3维向量

變數説明:

  • x (float): x轴分量
  • y (float): y轴分量
  • z (float): z轴分量
源碼於GitHub上查看
python
def __init__(self, x: float, y: float, z: float):\n    """\n        3维向量\n        Args:\n            x ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x轴分量\n            y (`float`): y轴分量\n            z (`float`): z轴分量\n        """\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似相等。

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    """\n        判断两个向量是否近似相等。\n        Args:\n            other ([`Vector3`](#class-vector3)): 另一个向量\n            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差\n\n        Returns:\n            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似相等\n        """\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

説明: 计算两个向量之间的夹角。

',16),h={class:"tip custom-block"},p=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},d=a('',1),T=[d],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a(`

變數説明:

返回: AnyAngle: 夹角

源碼於GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
-    """
-        计算两个向量之间的夹角。
-        :::tip
-        向量夹角计算公式:
-        $$\\\\theta = \\\\arccos(\\\\frac{v1 \\\\cdot v2}{|v1| \\\\cdot |v2|})$$
-        :::
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`AnyAngle\`](./angle#class-anyangle): 夹角
-        """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

説明: 向量积 叉乘:v1 x v2 -> v3

`,6),c={class:"tip custom-block"},m=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},u=a('',1),b=[u],f=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),v={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},_=a('',1),V=[_],H=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),x=a(`

變數説明:

返回: Vector3: 叉乘结果

源碼於GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':
-    """
-        向量积 叉乘:v1 x v2 -> v3
-
-        :::tip
-        叉乘运算法则为:
-        $$ v1 \\\\times v2 = (v1_y \\\\cdot v2_z - v1_z \\\\cdot v2_y, v1_z \\\\cdot v2_x - v1_x \\\\cdot v2_z, v1_x \\\\cdot v2_y - v1_y \\\\cdot v2_x) $$
-        转换为行列式形式:
-        $$ v1 \\\\times v2 = \\\\begin{vmatrix} i & j & k \\\\\\\\ v1_x & v1_y & v1_z \\\\\\\\ v2_x & v2_y & v2_z \\\\end{vmatrix} $$
-        :::
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`Vector3\`](#class-vector3): 叉乘结果
-        """
-    return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似平行。

變數説明:

返回: bool: 是否近似平行

源碼於GitHub上查看
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似平行。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-            epsilon ([\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
-    return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

説明: 判断两个向量是否平行。

變數説明:

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> bool:
-    """
-        判断两个向量是否平行。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
-    return self.cross(other).approx(zero_vector3)

method normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

源碼於GitHub上查看
python
def normalize(self):
-    """
-        将向量归一化。
-
-        自体归一化,不返回值。
-        """
-    length = self.length
-    self.x /= length
-    self.y /= length
-    self.z /= length

@property

method np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源碼於GitHub上查看
python
@property
-def np_array(self) -> 'np.ndarray':
-    """
-        返回numpy数组
-        Returns:
-            [\`np.ndarray\`](https%3A//numpy.org/doc/stable/reference/generated/numpy.ndarray.html): numpy数组
-        """
-    return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

説明: 向量的模。

返回: float: 模

源碼於GitHub上查看
python
@property
-def length(self) -> float:
-    """
-        向量的模。
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 模
-        """
-    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

説明: 获取该向量的单位向量。

返回: Vector3: 单位向量

源碼於GitHub上查看
python
@property
-def unit(self) -> 'Vector3':
-    """
-        获取该向量的单位向量。
-        Returns:
-            [\`Vector3\`](#class-vector3): 单位向量
-        """
-    return self / self.length

method __abs__(self)

源碼於GitHub上查看
python
def __abs__(self):
-    return self.length

@overload

method self + other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
-def __add__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
-def __add__(self, other: 'Point3') -> 'Point3':
-    ...

method self + other

説明: V + P -> P

V + V -> V

變數説明:

返回: Vector3 | Point3: 新的向量或点

源碼於GitHub上查看
python
def __add__(self, other):
-    """
-        V + P -> P
-
-        V + V -> V
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3): 新的向量或点
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)
-    elif isinstance(other, Point3):
-        return Point3(self.x + other.x, self.y + other.y, self.z + other.z)
-    else:
-        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

説明: 判断两个向量是否相等。

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
-    """
-        判断两个向量是否相等。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否相等
-        """
-    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

説明: P + V -> P

别去点那边实现了。

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __radd__(self, other: 'Point3') -> 'Point3':
-    """
-        P + V -> P
-
-        别去点那边实现了。
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
-def __sub__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self - other: Point3 => Point3

源碼於GitHub上查看
python
@overload
-def __sub__(self, other: 'Point3') -> 'Point3':
-    ...

method self - other

説明: V - P -> P

V - V -> V

變數説明:

返回: Vector3 | Point3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other):
-    """
-        V - P -> P
-
-        V - V -> V
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [\`Vector3\`](#class-vector3) | [\`Point3\`](./point#class-point3): 新的向量
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
-    elif isinstance(other, Point3):
-        return Point3(self.x - other.x, self.y - other.y, self.z - other.z)
-    else:
-        raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

説明: P - V -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __rsub__(self, other: 'Point3'):
-    """
-        P - V -> P
-        Args:
-            other ([\`Point3\`](./point#class-point3)): 另一个点
-        Returns:
-            [\`Point3\`](./point#class-point3): 新的点
-        """
-    if isinstance(other, Point3):
-        return Point3(other.x - self.x, other.y - self.y, other.z - self.z)
-    else:
-        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

method self * other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
-def __mul__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

method self * other: RealNumber => Vector3

源碼於GitHub上查看
python
@overload
-def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

method self * other: int | float | Vector3 => Vector3

説明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

變數説明:

返回: Vector3: 数组运算结果

源碼於GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
-    """
-        数组运算 非点乘。点乘使用@,叉乘使用cross。
-        Args:
-            other ([\`Vector3\`](#class-vector3) | [\`float\`](https%3A//docs.python.org/3/library/functions.html#float)): 另一个向量或数
-        Returns:
-            [\`Vector3\`](#class-vector): 数组运算结果
-        """
-    if isinstance(other, Vector3):
-        return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)
-    elif isinstance(other, (float, int)):
-        return Vector3(self.x * other, self.y * other, self.z * other)
-    else:
-        raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

源碼於GitHub上查看
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

method self @ other: Vector3 => RealNumber

説明: 点乘。

變數説明:

返回: float: 点乘结果

源碼於GitHub上查看
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
-    """
-        点乘。
-        Args:
-            other ([\`Vector3\`](#class-vector3)): 另一个向量
-        Returns:
-            [\`float\`](https%3A//docs.python.org/3/library/functions.html#float): 点乘结果
-        """
-    return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

源碼於GitHub上查看
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
-    return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

説明: 取负。

返回: Vector3: 负向量

源碼於GitHub上查看
python
def __neg__(self) -> 'Vector3':
-    """
-        取负。
-        Returns:
-            [\`Vector3\`](#class-vector3): 负向量
-        """
-    return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • 説明: 零向量

  • 類型: Vector3

  • 默認值: Vector3(0, 0, 0)

var x_axis

  • 説明: x轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(1, 0, 0)

var y_axis

  • 説明: y轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(0, 1, 0)

var z_axis

  • 説明: z轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(0, 0, 1)

`,115);function q(D,A,w,L,M,P){return t(),i("div",null,[e,s("div",h,[p,r,s("mjx-container",o,[(t(),i("svg",k,T)),Q])]),g,s("div",c,[m,y,s("mjx-container",E,[(t(),i("svg",F,b)),f]),C,s("mjx-container",v,[(t(),i("svg",B,V)),H])]),x])}const R=n(l,[["render",q]]);export{z as __pageData,R as default}; diff --git a/assets/zht_api_mp_math_vector.md.Dug1hqAu.js b/assets/zht_api_mp_math_vector.md.Dug1hqAu.js new file mode 100644 index 0000000..4a605a2 --- /dev/null +++ b/assets/zht_api_mp_math_vector.md.Dug1hqAu.js @@ -0,0 +1 @@ +import{_ as e,c as t,j as s,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/vector.md","filePath":"zht/api/mp_math/vector.md"}'),l={name:"zht/api/mp_math/vector.md"},h=a('

模組 mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

説明: 3维向量

變數説明:

  • x (float): x轴分量
  • y (float): y轴分量
  • z (float): z轴分量
源碼於GitHub上查看
python
def __init__(self, x: float, y: float, z: float):\n    self.x = x\n    self.y = y\n    self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似相等。

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

説明: 计算两个向量之间的夹角。

',16),n={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),p=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},k=a('',1),T=[k],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a('

變數説明:

返回: AnyAngle: 夹角

源碼於GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':\n    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

説明: 向量积 叉乘:v1 x v2 -> v3

',6),m={class:"tip custom-block"},c=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},u={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},b=a('',1),f=[b],F=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),_={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},v={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},V=a('',1),H=[V],x=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),D=a('

變數説明:

返回: Vector3: 叉乘结果

源碼於GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':\n    return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似平行。

變數説明:

返回: bool: 是否近似平行

源碼於GitHub上查看
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:\n    return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

説明: 判断两个向量是否平行。

變數説明:

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> bool:\n    return self.cross(other).approx(zero_vector3)

method normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

源碼於GitHub上查看
python
def normalize(self):\n    length = self.length\n    self.x /= length\n    self.y /= length\n    self.z /= length

@property

method np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源碼於GitHub上查看
python
@property\ndef np_array(self) -> 'np.ndarray':\n    return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

説明: 向量的模。

返回: float: 模

源碼於GitHub上查看
python
@property\ndef length(self) -> float:\n    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

説明: 获取该向量的单位向量。

返回: Vector3: 单位向量

源碼於GitHub上查看
python
@property\ndef unit(self) -> 'Vector3':\n    return self / self.length

method __abs__(self)

源碼於GitHub上查看
python
def __abs__(self):\n    return self.length

@overload

method self + other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload\ndef __add__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload\ndef __add__(self, other: 'Point3') -> 'Point3':\n    ...

method self + other

説明: V + P -> P

V + V -> V

變數説明:

返回: Vector3 | Point3: 新的向量或点

源碼於GitHub上查看
python
def __add__(self, other):\n    if isinstance(other, Vector3):\n        return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)\n    elif isinstance(other, Point3):\n        return Point3(self.x + other.x, self.y + other.y, self.z + other.z)\n    else:\n        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

説明: 判断两个向量是否相等。

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):\n    return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

説明: P + V -> P

别去点那边实现了。

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __radd__(self, other: 'Point3') -> 'Point3':\n    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload\ndef __sub__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self - other: Point3 => Point3

源碼於GitHub上查看
python
@overload\ndef __sub__(self, other: 'Point3') -> 'Point3':\n    ...

method self - other

説明: V - P -> P

V - V -> V

變數説明:

返回: Vector3 | Point3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other):\n    if isinstance(other, Vector3):\n        return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)\n    elif isinstance(other, Point3):\n        return Point3(self.x - other.x, self.y - other.y, self.z - other.z)\n    else:\n        raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

説明: P - V -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __rsub__(self, other: 'Point3'):\n    if isinstance(other, Point3):\n        return Point3(other.x - self.x, other.y - self.y, other.z - self.z)\n    else:\n        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

method self * other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload\ndef __mul__(self, other: 'Vector3') -> 'Vector3':\n    ...

@overload

method self * other: RealNumber => Vector3

源碼於GitHub上查看
python
@overload\ndef __mul__(self, other: RealNumber) -> 'Vector3':\n    ...

method self * other: int | float | Vector3 => Vector3

説明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

變數説明:

返回: Vector3: 数组运算结果

源碼於GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':\n    if isinstance(other, Vector3):\n        return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)\n    elif isinstance(other, (float, int)):\n        return Vector3(self.x * other, self.y * other, self.z * other)\n    else:\n        raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

源碼於GitHub上查看
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':\n    return self.__mul__(other)

method self @ other: Vector3 => RealNumber

説明: 点乘。

變數説明:

返回: float: 点乘结果

源碼於GitHub上查看
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':\n    return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

源碼於GitHub上查看
python
def __truediv__(self, other: RealNumber) -> 'Vector3':\n    return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

説明: 取负。

返回: Vector3: 负向量

源碼於GitHub上查看
python
def __neg__(self) -> 'Vector3':\n    return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • 説明: 零向量

  • 類型: Vector3

  • 默認值: Vector3(0, 0, 0)

var x_axis

  • 説明: x轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(1, 0, 0)

var y_axis

  • 説明: y轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(0, 1, 0)

var z_axis

  • 説明: z轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(0, 0, 1)

',115);function B(w,A,L,M,Z,q){return i(),t("div",null,[h,s("div",n,[r,p,s("mjx-container",o,[(i(),t("svg",d,T)),Q])]),g,s("div",m,[c,y,s("mjx-container",E,[(i(),t("svg",u,f)),F]),C,s("mjx-container",_,[(i(),t("svg",v,H)),x])]),D])}const G=e(l,[["render",B]]);export{z as __pageData,G as default}; diff --git a/assets/zht_api_mp_math_vector.md.DoP7bI-7.lean.js b/assets/zht_api_mp_math_vector.md.Dug1hqAu.lean.js similarity index 83% rename from assets/zht_api_mp_math_vector.md.DoP7bI-7.lean.js rename to assets/zht_api_mp_math_vector.md.Dug1hqAu.lean.js index 58048b6..75dba5f 100644 --- a/assets/zht_api_mp_math_vector.md.DoP7bI-7.lean.js +++ b/assets/zht_api_mp_math_vector.md.Dug1hqAu.lean.js @@ -1 +1 @@ -import{_ as n,c as i,j as s,a4 as a,o as t}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/vector.md","filePath":"zht/api/mp_math/vector.md"}'),l={name:"zht/api/mp_math/vector.md"},e=a("",16),h={class:"tip custom-block"},p=s("p",{class:"custom-block-title"},"TIP",-1),r=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},d=a("",1),T=[d],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a("",6),c={class:"tip custom-block"},m=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},u=a("",1),b=[u],f=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),v={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},_=a("",1),V=[_],H=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),x=a("",115);function q(D,A,w,L,M,P){return t(),i("div",null,[e,s("div",h,[p,r,s("mjx-container",o,[(t(),i("svg",k,T)),Q])]),g,s("div",c,[m,y,s("mjx-container",E,[(t(),i("svg",F,b)),f]),C,s("mjx-container",v,[(t(),i("svg",B,V)),H])]),x])}const R=n(l,[["render",q]]);export{z as __pageData,R as default}; +import{_ as e,c as t,j as s,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const z=JSON.parse('{"title":"mbcp.mp_math.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/vector.md","filePath":"zht/api/mp_math/vector.md"}'),l={name:"zht/api/mp_math/vector.md"},h=a("",16),n={class:"tip custom-block"},r=s("p",{class:"custom-block-title"},"TIP",-1),p=s("p",null,"向量夹角计算公式:",-1),o={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.17ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.491ex",height:"5.206ex",role:"img",focusable:"false",viewBox:"0 -1342 9499 2301","aria-hidden":"true"},k=a("",1),T=[k],Q=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"θ"),s("mo",null,"="),s("mi",null,"arccos"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"⋅"),s("mi",null,"v"),s("mn",null,"2")]),s("mrow",null,[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"1"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"⋅"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"v"),s("mn",null,"2"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])]),s("mo",{stretchy:"false"},")")])],-1),g=a("",6),m={class:"tip custom-block"},c=s("p",{class:"custom-block-title"},"TIP",-1),y=s("p",null,"叉乘运算法则为:",-1),E={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},u={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.667ex"},xmlns:"http://www.w3.org/2000/svg",width:"70.883ex",height:"2.364ex",role:"img",focusable:"false",viewBox:"0 -750 31330.3 1045","aria-hidden":"true"},b=a("",1),f=[b],F=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mo",{stretchy:"false"},"("),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")]),s("mo",null,","),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")]),s("mo",null,"−"),s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")]),s("mo",null,"⋅"),s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")]),s("mo",{stretchy:"false"},")")])],-1),C=s("p",null,"转换为行列式形式:",-1),_={tabindex:"0",class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},v={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.835ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.963ex",height:"8.801ex",role:"img",focusable:"false",viewBox:"0 -2195 11475.8 3889.9","aria-hidden":"true"},V=a("",1),H=[V],x=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"v"),s("mn",null,"1"),s("mo",null,"×"),s("mi",null,"v"),s("mn",null,"2"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"|"),s("mtable",{columnspacing:"1em",rowspacing:"4pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"i")]),s("mtd",null,[s("mi",null,"j")]),s("mtd",null,[s("mi",null,"k")])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"1"),s("mi",null,"z")])])]),s("mtr",null,[s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"x")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"y")])]),s("mtd",null,[s("mi",null,"v"),s("msub",null,[s("mn",null,"2"),s("mi",null,"z")])])])]),s("mo",{"data-mjx-texclass":"CLOSE"},"|")])])],-1),D=a("",115);function B(w,A,L,M,Z,q){return i(),t("div",null,[h,s("div",n,[r,p,s("mjx-container",o,[(i(),t("svg",d,T)),Q])]),g,s("div",m,[c,y,s("mjx-container",E,[(i(),t("svg",u,f)),F]),C,s("mjx-container",_,[(i(),t("svg",v,H)),x])]),D])}const G=e(l,[["render",B]]);export{z as __pageData,G as default}; diff --git a/assets/zht_api_presets_model_index.md.CyrJscBT.js b/assets/zht_api_presets_model_index.md.BfmFWGa-.js similarity index 87% rename from assets/zht_api_presets_model_index.md.CyrJscBT.js rename to assets/zht_api_presets_model_index.md.BfmFWGa-.js index fd35ac1..d25fe44 100644 --- a/assets/zht_api_presets_model_index.md.CyrJscBT.js +++ b/assets/zht_api_presets_model_index.md.BfmFWGa-.js @@ -1,13 +1,5 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/presets/model/index.md","filePath":"zht/api/presets/model/index.md"}'),n={name:"zht/api/presets/model/index.md"},h=t(`

模組 mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

説明: 生成球体上的点集。

變數説明:

  • radius:
  • density:

返回: List[Point3]: 球体上的点集。

源碼於GitHub上查看
python
@staticmethod
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/presets/model/index.md","filePath":"zht/api/presets/model/index.md"}'),h={name:"zht/api/presets/model/index.md"},n=t(`

模組 mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

説明: 生成球体上的点集。

變數説明:

  • radius:
  • density:

返回: List[Point3]: 球体上的点集。

源碼於GitHub上查看
python
@staticmethod
 def sphere(radius: float, density: float):
-    """
-        生成球体上的点集。
-        Args:
-            radius:
-            density:
-        Returns:
-            List[Point3]: 球体上的点集。
-        """
     area = 4 * np.pi * radius ** 2
     num = int(area * density)
     phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
@@ -15,4 +7,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y
     x_array = radius * np.sin(phi_list) * np.cos(theta_list)
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
-    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]
`,10),l=[h];function p(e,k,r,d,E,o){return a(),i("div",null,l)}const c=s(n,[["render",p]]);export{y as __pageData,c as default}; + return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]
`,10),l=[n];function e(p,k,r,d,E,o){return a(),i("div",null,l)}const c=s(h,[["render",e]]);export{y as __pageData,c as default}; diff --git a/assets/zht_api_presets_model_index.md.CyrJscBT.lean.js b/assets/zht_api_presets_model_index.md.BfmFWGa-.lean.js similarity index 63% rename from assets/zht_api_presets_model_index.md.CyrJscBT.lean.js rename to assets/zht_api_presets_model_index.md.BfmFWGa-.lean.js index 443be63..cc75e16 100644 --- a/assets/zht_api_presets_model_index.md.CyrJscBT.lean.js +++ b/assets/zht_api_presets_model_index.md.BfmFWGa-.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/presets/model/index.md","filePath":"zht/api/presets/model/index.md"}'),n={name:"zht/api/presets/model/index.md"},h=t("",10),l=[h];function p(e,k,r,d,E,o){return a(),i("div",null,l)}const c=s(n,[["render",p]]);export{y as __pageData,c as default}; +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/presets/model/index.md","filePath":"zht/api/presets/model/index.md"}'),h={name:"zht/api/presets/model/index.md"},n=t("",10),l=[n];function e(p,k,r,d,E,o){return a(),i("div",null,l)}const c=s(h,[["render",e]]);export{y as __pageData,c as default}; diff --git a/demo/best-practice.html b/demo/best-practice.html index d87dbd3..e8a675a 100644 --- a/demo/best-practice.html +++ b/demo/best-practice.html @@ -6,10 +6,10 @@ 最佳实践 | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/demo/index.html b/demo/index.html index 51356f2..c323ea1 100644 --- a/demo/index.html +++ b/demo/index.html @@ -6,10 +6,10 @@ demo | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/en/api/index.html b/en/api/index.html index 98a8f2f..f62b6eb 100644 --- a/en/api/index.html +++ b/en/api/index.html @@ -6,10 +6,10 @@ mbcp | MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

Module mbcp

本模块是主模块,提供了一些工具 可导入

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/angle.html b/en/api/mp_math/angle.html index 9943c31..b8a677f 100644 --- a/en/api/mp_math/angle.html +++ b/en/api/mp_math/angle.html @@ -6,12 +6,12 @@ mbcp.mp_math.angle | MBCP docs - + - - + + - + @@ -19,92 +19,31 @@
Skip to content

Module mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

Description: 任意角度。

Arguments:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
Source code or View on GitHub
python
def __init__(self, value: float, is_radian: bool=False):
-    """
-        任意角度。
-        Args:
-            value: 角度或弧度值
-            is_radian: 是否为弧度,默认为否
-        """
     if is_radian:
         self.radian = value
     else:
         self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

Description: 余角:两角的和为90°。

Return: 余角

Source code or View on GitHub
python
@property
 def complementary(self) -> 'AnyAngle':
-    """
-        余角:两角的和为90°。
-        Returns:
-            余角
-        """
     return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

Description: 补角:两角的和为180°。

Return: 补角

Source code or View on GitHub
python
@property
 def supplementary(self) -> 'AnyAngle':
-    """
-        补角:两角的和为180°。
-        Returns:
-            补角
-        """
     return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

Description: 角度。

Return: 弧度

Source code or View on GitHub
python
@property
 def degree(self) -> float:
-    """
-        角度。
-        Returns:
-            弧度
-        """
     return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

Description: 最小正角。

Return: 最小正角度

Source code or View on GitHub
python
@property
 def minimum_positive(self) -> 'AnyAngle':
-    """
-        最小正角。
-        Returns:
-            最小正角度
-        """
     return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

Description: 最大负角。

Return: 最大负角度

Source code or View on GitHub
python
@property
 def maximum_negative(self) -> 'AnyAngle':
-    """
-        最大负角。
-        Returns:
-            最大负角度
-        """
     return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

Description: 正弦值。

Return: 正弦值

Source code or View on GitHub
python
@property
 def sin(self) -> float:
-    """
-        正弦值。
-        Returns:
-            正弦值
-        """
     return math.sin(self.radian)

@property

method cos(self) -> float

Description: 余弦值。

Return: 余弦值

Source code or View on GitHub
python
@property
 def cos(self) -> float:
-    """
-        余弦值。
-        Returns:
-            余弦值
-        """
     return math.cos(self.radian)

@property

method tan(self) -> float

Description: 正切值。

Return: 正切值

Source code or View on GitHub
python
@property
 def tan(self) -> float:
-    """
-        正切值。
-        Returns:
-            正切值
-        """
     return math.tan(self.radian)

@property

method cot(self) -> float

Description: 余切值。

Return: 余切值

Source code or View on GitHub
python
@property
 def cot(self) -> float:
-    """
-        余切值。
-        Returns:
-            余切值
-        """
     return 1 / math.tan(self.radian)

@property

method sec(self) -> float

Description: 正割值。

Return: 正割值

Source code or View on GitHub
python
@property
 def sec(self) -> float:
-    """
-        正割值。
-        Returns:
-            正割值
-        """
     return 1 / math.cos(self.radian)

@property

method csc(self) -> float

Description: 余割值。

Return: 余割值

Source code or View on GitHub
python
@property
 def csc(self) -> float:
-    """
-        余割值。
-        Returns:
-            余割值
-        """
     return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

Source code or View on GitHub
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
     return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

Source code or View on GitHub
python
def __eq__(self, other):
     return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

Source code or View on GitHub
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
@@ -117,7 +56,7 @@
     if isinstance(other, AnyAngle):
         return self.radian / other.radian
     return AnyAngle(self.radian / other, is_radian=True)

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/const.html b/en/api/mp_math/const.html index 2b528ed..e87e739 100644 --- a/en/api/mp_math/const.html +++ b/en/api/mp_math/const.html @@ -6,10 +6,10 @@ mbcp.mp_math.const | MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

Module mbcp.mp_math.const

本模块定义了一些常用的常量

var PI

  • Description: 常量 π

  • Default: math.pi

var E

  • Description: 自然对数的底 exp(1)

  • Default: math.e

var GOLDEN_RATIO

  • Description: 黄金分割比

  • Default: (1 + math.sqrt(5)) / 2

var GAMMA

  • Description: 欧拉常数

  • Default: 0.5772156649015329

var EPSILON

  • Description: 精度误差

  • Default: 0.0001

var APPROX

  • Description: 约等于判定误差

  • Default: 0.001

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/equation.html b/en/api/mp_math/equation.html index ab5a958..9bd0f4a 100644 --- a/en/api/mp_math/equation.html +++ b/en/api/mp_math/equation.html @@ -6,12 +6,12 @@ mbcp.mp_math.equation | MBCP docs - + - - + + - + @@ -19,46 +19,16 @@
Skip to content

Module mbcp.mp_math.equation

本模块定义了方程相关的类和函数以及一些常用的数学函数

class CurveEquation

method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)

Description: 曲线方程。

Arguments:

Source code or View on GitHub
python
def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc):
-    """
-        曲线方程。
-        Args:
-            x_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): x函数
-            y_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): y函数
-            z_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): z函数
-        """
     self.x_func = x_func
     self.y_func = y_func
     self.z_func = z_func

method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

Description: 计算曲线上的点。

Arguments:

  • *t:
  • 参数:

Return: 目标点

Source code or View on GitHub
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
-    """
-        计算曲线上的点。
-        Args:
-            *t:
-                参数
-        Returns:
-            目标点
-        """
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
         return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

Description: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

Arguments:

  • func (MultiVarsFunc): N元函数
  • var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
  • epsilon: 偏移量

Return: 偏导函数

Raises:

  • ValueError 无效变量类型
Source code or View on GitHub
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
-    """
-    求N元函数一阶偏导函数。这玩意不太稳定,慎用。
-    > [!warning]
-    > 目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升
-
-    Args:
-        func ([`MultiVarsFunc`](./mp_math_typing#var-multivarsfunc)): N元函数
-        var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
-        epsilon: 偏移量
-    Returns:
-        偏导函数
-    Raises:
-        ValueError: 无效变量类型
-    """
     if isinstance(var, int):
 
         def partial_derivative_func(*args: Var) -> Var:
-            """@litedoc-hide"""
             args_list_plus = list(args)
             args_list_plus[var] += epsilon
             args_list_minus = list(args)
@@ -68,14 +38,6 @@
     elif isinstance(var, tuple):
 
         def high_order_partial_derivative_func(*args: Var) -> Var:
-            """
-            @litedoc-hide
-            求高阶偏导函数
-            Args:
-                *args: 参数
-            Returns:
-                高阶偏导数值
-            """
             result_func = func
             for v in var:
                 result_func = get_partial_derivative_func(result_func, v, epsilon)
@@ -83,7 +45,7 @@
         return high_order_partial_derivative_func
     else:
         raise ValueError('Invalid var type')

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/function.html b/en/api/mp_math/function.html index 9e82275..cf6df05 100644 --- a/en/api/mp_math/function.html +++ b/en/api/mp_math/function.html @@ -6,12 +6,12 @@ mbcp.mp_math.function | MBCP docs - + - - + + - + @@ -19,18 +19,6 @@
Skip to content

Module mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

Description: 计算三元函数在某点的梯度向量。

TIP

已知一个函数f(x,y,z),则其在点(x0,y0,z0)处的梯度向量为: f(x0,y0,z0)=(fx,fy,fz)

Arguments:

Return: 梯度

Source code or View on GitHub
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
-    """
-    计算三元函数在某点的梯度向量。
-    > [!tip]
-    > 已知一个函数$f(x, y, z)$,则其在点$(x_0, y_0, z_0)$处的梯度向量为:
-    $\\nabla f(x_0, y_0, z_0) = \\left(\\frac{\\partial f}{\\partial x}, \\frac{\\partial f}{\\partial y}, \\frac{\\partial f}{\\partial z}\\right)$
-    Args:
-        func ([`ThreeSingleVarsFunc`](./mp_math_typing#var-threesinglevarsfunc)): 三元函数
-        p ([`Point3`](./point#class-point3)): 点
-        epsilon: 偏移量
-    Returns:
-        梯度
-    """
     dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
     dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
     dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
@@ -38,29 +26,11 @@
     return a + b + c
 add_curried = curry(add, 1, 2)
 add_curried(3)  # 6
Source code or View on GitHub
python
def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc:
-    """
-    对多参数函数进行柯里化。
-    > [!tip]
-    > 有关函数柯里化,可参考[函数式编程--柯理化(Currying)](https://zhuanlan.zhihu.com/p/355859667)
-    Args:
-        func ([`MultiVarsFunc`](./mp_math_typing#var-multivarsfunc)): 函数
-        *args ([`Var`](./mp_math_typing#var-var)): 参数
-    Returns:
-        柯里化后的函数
-    Examples:
-        ```python
-        def add(a: int, b: int, c: int) -> int:
-            return a + b + c
-        add_curried = curry(add, 1, 2)
-        add_curried(3)  # 6
-        ```
-    """
 
     def curried_func(*args2: Var) -> Var:
-        """@litedoc-hide"""
         return func(*args, *args2)
     return curried_func

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/index.html b/en/api/mp_math/index.html index 5ace721..acd0664 100644 --- a/en/api/mp_math/index.html +++ b/en/api/mp_math/index.html @@ -6,10 +6,10 @@ mbcp.mp_math | MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

Module mbcp.mp_math

本包定义了一些常用的导入,可直接从mbcp.mp_math导入使用 导入的类有:

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/line.html b/en/api/mp_math/line.html index e959851..1eb64e2 100644 --- a/en/api/mp_math/line.html +++ b/en/api/mp_math/line.html @@ -6,12 +6,12 @@ mbcp.mp_math.line | MBCP docs - + - - + + - + @@ -19,40 +19,10 @@
Skip to content

Module mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

Description: 三维空间中的直线。由一个点和一个方向向量确定。

Arguments:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
Source code or View on GitHub
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
-    """
-        三维空间中的直线。由一个点和一个方向向量确定。
-        Args:
-            point ([`Point3`](./point#class-point3)): 直线上的一点
-            direction ([`Vector3`](./vector#class-vector3)): 方向向量
-        """
     self.point = point
     self.direction = direction

method approx(self, other: Line3, epsilon: float = APPROX) -> bool

Description: 判断两条直线是否近似相等。

Arguments:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
-    """
-        判断两条直线是否近似相等。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-            epsilon ([`float`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return self.is_approx_parallel(other, epsilon) and (self.point - other.point).is_approx_parallel(self.direction, epsilon)

method cal_angle(self, other: Line3) -> AnyAngle

Description: 计算直线和直线之间的夹角。

Arguments:

  • other (Line3): 另一条直线

Return: AnyAngle: 夹角

Source code or View on GitHub
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
-    """
-        计算直线和直线之间的夹角。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        """
     return self.direction.cal_angle(other.direction)

method cal_distance(self, other: Line3 | Point3) -> float

Description: 计算直线和直线或点之间的距离。

Arguments:

Return: float: 距离

Raises:

Source code or View on GitHub
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
-    """
-        计算直线和直线或点之间的距离。
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Point3`](./point#class-point3)): 另一条直线或点
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         if self == other:
             return 0
@@ -66,91 +36,19 @@
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
         raise TypeError('Unsupported type.')

method cal_intersection(self, other: Line3) -> Point3

Description: 计算两条直线的交点。

Arguments:

  • other (Line3): 另一条直线

Return: Point3: 交点

Raises:

Source code or View on GitHub
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
-    """
-        计算两条直线的交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`Point3`](./point#class-point3): 交点
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 直线平行
-            `ValueError`: 直线不共面
-        """
     if self.is_parallel(other):
         raise ValueError('Lines are parallel and do not intersect.')
     if not self.is_coplanar(other):
         raise ValueError('Lines are not coplanar and do not intersect.')
     return self.point + self.direction.cross(other.direction) @ other.direction.cross(self.point - other.point) / self.direction.cross(other.direction).length ** 2 * self.direction

method cal_perpendicular(self, point: Point3) -> Line3

Description: 计算直线经过指定点p的垂线。

Arguments:

Return: Line3: 垂线

Source code or View on GitHub
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
-    """
-        计算直线经过指定点p的垂线。
-        Args:
-            point ([`Point3`](./point#class-point3)): 指定点
-        Returns:
-            [`Line3`](./line#class-line3): 垂线
-        """
     return Line3(point, self.direction.cross(point - self.point))

method get_point(self, t: RealNumber) -> Point3

Description: 获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。

Arguments:

Return: Point3: 点

Source code or View on GitHub
python
def get_point(self, t: RealNumber) -> 'Point3':
-    """
-        获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。
-        Args:
-            t ([`RealNumber`](./mp_math_typing#var-realnumber)): 参数t
-        Returns:
-            [`Point3`](./point#class-point3): 点
-        """
     return self.point + t * self.direction

method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]

Description: 获取直线的参数方程。

Return: tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]: 参数方程

Source code or View on GitHub
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
-    """
-        获取直线的参数方程。
-        Returns:
-            [`tuple`](https%3A//docs.python.org/3/library/stdtypes.html#tuple)[[`OneSingleVarFunc`](./mp_math_typing#var-onesinglevarfunc), `OneSingleVarFunc`, `OneSingleVarFunc`]: 参数方程
-        """
     return (lambda t: self.point.x + self.direction.x * t, lambda t: self.point.y + self.direction.y * t, lambda t: self.point.z + self.direction.z * t)

method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool

Description: 判断两条直线是否近似平行。

Arguments:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

Return: bool: 是否近似平行

Source code or View on GitHub
python
def is_approx_parallel(self, other: 'Line3', epsilon: float=1e-06) -> bool:
-    """
-        判断两条直线是否近似平行。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.direction.is_approx_parallel(other.direction, epsilon)

method is_parallel(self, other: Line3) -> bool

Description: 判断两条直线是否平行。

Arguments:

Return: bool: 是否平行

Source code or View on GitHub
python
def is_parallel(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否平行。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.direction.is_parallel(other.direction)

method is_collinear(self, other: Line3) -> bool

Description: 判断两条直线是否共线。

Arguments:

Return: bool: 是否共线

Source code or View on GitHub
python
def is_collinear(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共线。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共线
-        """
     return self.is_parallel(other) and (self.point - other.point).is_parallel(self.direction)

method is_point_on(self, point: Point3) -> bool

Description: 判断点是否在直线上。

Arguments:

Return: bool: 是否在直线上

Source code or View on GitHub
python
def is_point_on(self, point: 'Point3') -> bool:
-    """
-        判断点是否在直线上。
-        Args:
-            point ([`Point3`](./point#class-point3)): 点
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
-        """
     return (point - self.point).is_parallel(self.direction)

method is_coplanar(self, other: Line3) -> bool

Description: 判断两条直线是否共面。 充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。

Arguments:

Return: bool: 是否共面

Source code or View on GitHub
python
def is_coplanar(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共面。
-        充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
-        """
     return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

Description: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

Source code or View on GitHub
python
def simplify(self):
-    """
-        简化直线方程,等价相等。
-        自体简化,不返回值。
-
-        按照可行性一次对x y z 化 0 处理,并对向量单位化
-        """
     self.direction.normalize()
     if self.direction.x == 0:
         self.point.x = 0
@@ -159,40 +57,16 @@
     if self.direction.z == 0:
         self.point.z = 0

@classmethod

method from_two_points(cls, p1: Point3, p2: Point3) -> Line3

Description: 工厂函数 由两点构造直线。

Arguments:

Return: Line3: 直线

Source code or View on GitHub
python
@classmethod
 def from_two_points(cls, p1: 'Point3', p2: 'Point3') -> 'Line3':
-    """
-        工厂函数 由两点构造直线。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 点1
-            p2 ([`Point3`](./point#class-point3)): 点2
-        Returns:
-            [`Line3`](./line#class-line3): 直线
-        """
     direction = p2 - p1
     return cls(p1, direction)

method __and__(self, other: Line3) -> Line3 | Point3 | None

Description: 计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。

Arguments:

  • other (Line3): 另一条直线

Return: Line3 | Point3 | None: 交集

Source code or View on GitHub
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
-    """
-        计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`Line3`](./line#class-line3) | [`Point3`](./point#class-point3) | [`None`](https://docs.python.org/3/library/constants.html#None): 交集
-        """
     if self.is_collinear(other):
         return self
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
         return self.cal_intersection(other)

method __eq__(self, other) -> bool

Description: 判断两条直线是否等价。

v1 // v2 ∧ (p1 - p2) // v1

Arguments:

  • other (Line3): 另一条直线

Return: bool: 是否等价

Source code or View on GitHub
python
def __eq__(self, other) -> bool:
-    """
-        判断两条直线是否等价。
-
-        v1 // v2 ∧ (p1 - p2) // v1
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/mp_math_typing.html b/en/api/mp_math/mp_math_typing.html index a06c404..3652b19 100644 --- a/en/api/mp_math/mp_math_typing.html +++ b/en/api/mp_math/mp_math_typing.html @@ -6,10 +6,10 @@ mbcp.mp_math.mp_math_typing | MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

Module mbcp.mp_math.mp_math_typing

本模块用于内部类型提示

var RealNumber

  • Description: 实数

  • Type: TypeAlias

  • Default: int | float

var Number

  • Description: 数

  • Type: TypeAlias

  • Default: RealNumber | complex

var SingleVar

  • Description: 单变量

  • Default: TypeVar('SingleVar', bound=Number)

var ArrayVar

  • Description: 数组变量

  • Default: TypeVar('ArrayVar', bound=Iterable[Number])

var Var

  • Description: 变量

  • Type: TypeAlias

  • Default: SingleVar | ArrayVar

var OneSingleVarFunc

  • Description: 一元单变量函数

  • Type: TypeAlias

  • Default: Callable[[SingleVar], SingleVar]

var OneArrayFunc

  • Description: 一元数组函数

  • Type: TypeAlias

  • Default: Callable[[ArrayVar], ArrayVar]

var OneVarFunc

  • Description: 一元函数

  • Type: TypeAlias

  • Default: OneSingleVarFunc | OneArrayFunc

var TwoSingleVarsFunc

  • Description: 二元单变量函数

  • Type: TypeAlias

  • Default: Callable[[SingleVar, SingleVar], SingleVar]

var TwoArraysFunc

  • Description: 二元数组函数

  • Type: TypeAlias

  • Default: Callable[[ArrayVar, ArrayVar], ArrayVar]

var TwoVarsFunc

  • Description: 二元函数

  • Type: TypeAlias

  • Default: TwoSingleVarsFunc | TwoArraysFunc

var ThreeSingleVarsFunc

  • Description: 三元单变量函数

  • Type: TypeAlias

  • Default: Callable[[SingleVar, SingleVar, SingleVar], SingleVar]

var ThreeArraysFunc

  • Description: 三元数组函数

  • Type: TypeAlias

  • Default: Callable[[ArrayVar, ArrayVar, ArrayVar], ArrayVar]

var ThreeVarsFunc

  • Description: 三元函数

  • Type: TypeAlias

  • Default: ThreeSingleVarsFunc | ThreeArraysFunc

var MultiSingleVarsFunc

  • Description: 多元单变量函数

  • Type: TypeAlias

  • Default: Callable[..., SingleVar]

var MultiArraysFunc

  • Description: 多元数组函数

  • Type: TypeAlias

  • Default: Callable[..., ArrayVar]

var MultiVarsFunc

  • Description: 多元函数

  • Type: TypeAlias

  • Default: MultiSingleVarsFunc | MultiArraysFunc

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/plane.html b/en/api/mp_math/plane.html index 2f8303e..b245a1d 100644 --- a/en/api/mp_math/plane.html +++ b/en/api/mp_math/plane.html @@ -6,12 +6,12 @@ mbcp.mp_math.plane | MBCP docs - + - - + + - + @@ -19,25 +19,10 @@
Skip to content

Module mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

Description: 平面方程:ax + by + cz + d = 0

Arguments:

  • a (float): x系数
  • b (float): y系数
  • c (float): z系数
  • d (float): 常数项
Source code or View on GitHub
python
def __init__(self, a: float, b: float, c: float, d: float):
-    """
-        平面方程:ax + by + cz + d = 0
-        Args:
-            a ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x系数
-            b (`float`): y系数
-            c (`float`): z系数
-            d (`float`): 常数项
-        """
     self.a = a
     self.b = b
     self.c = c
     self.d = d

method approx(self, other: Plane3) -> bool

Description: 判断两个平面是否近似相等。

Arguments:

  • other (Plane3): 另一个平面

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否近似相等。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     if self.a != 0:
         k = other.a / self.a
         return approx(other.b, self.b * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
@@ -49,66 +34,18 @@
         return approx(other.a, self.a * k) and approx(other.b, self.b * k) and approx(other.d, self.d * k)
     else:
         return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

Description: 计算平面与平面之间的夹角。

TIP

平面间夹角计算公式:

θ=arccos(n1n2|n1||n2|)

其中 n1n2 分别为两个平面的法向量

TIP

平面与直线夹角计算公式:

θ=arccos(nd|n||d|)

其中 n 为平面的法向量,d 为直线的方向向量

Arguments:

Return: AnyAngle: 夹角

Raises:

Source code or View on GitHub
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
-    """
-        计算平面与平面之间的夹角。
-        :::tip
-        平面间夹角计算公式:
-        $$\\theta = \\arccos(\\frac{n1 \\cdot n2}{|n1| \\cdot |n2|})$$
-        其中 $n1$ 和 $n2$ 分别为两个平面的法向量
-        :::
-        :::tip
-        平面与直线夹角计算公式:
-        $$\\theta = \\arccos(\\frac{n \\cdot d}{|n| \\cdot |d|})$$
-        其中 $n$ 为平面的法向量,$d$ 为直线的方向向量
-        :::
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Plane3`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         return self.normal.cal_angle(other.direction).complementary
     elif isinstance(other, Plane3):
         return AnyAngle(math.acos(self.normal @ other.normal / (self.normal.length * other.normal.length)), is_radian=True)
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_distance(self, other: Plane3 | Point3) -> float

Description: 计算平面与平面或点之间的距离。

Arguments:

Return: float: 距离

Raises:

Source code or View on GitHub
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
-    """
-        计算平面与平面或点之间的距离。
-        Args:
-            other ([`Plane3`](./plane#class-plane3) | [`Point3`](./point#class-point3)): 另一个平面或点
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         return 0
     elif isinstance(other, Point3):
         return abs(self.a * other.x + self.b * other.y + self.c * other.z + self.d) / (self.a ** 2 + self.b ** 2 + self.c ** 2) ** 0.5
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

Description: 计算两平面的交线。

TIP

计算两平面交线的一般步骤:

  1. 求两平面的法向量的叉乘得到方向向量
d=n1×n2
  1. 寻找直线上的一点,依次假设x=0, y=0, z=0,并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示
{x=x0+dty=y0+dtz=z0+dt

xx0m=yy0n=zz0p

Arguments:

  • other (Plane3): 另一个平面

Return: Line3: 交线

Raises:

Source code or View on GitHub
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
-    """
-        计算两平面的交线。
-        :::tip
-        计算两平面交线的一般步骤:
-        1. 求两平面的法向量的叉乘得到方向向量
-        $$ d = n1 \\times n2 $$
-        2. 寻找直线上的一点,依次假设$x=0$, $y=0$, $z=0$,并代入两平面方程求出合适的点
-        直线最终可用参数方程或点向式表示
-        $$ \\begin{cases} x = x_0 + dt \\\\ y = y_0 + dt \\\\ z = z_0 + dt \\end{cases} $$
-
-        $$ \\frac{x - x_0}{m} = \\frac{y - y_0}{n} = \\frac{z - z_0}{p} $$
-        :::
-
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`Line3`](./line#class-line3): 交线
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面平行且无交线
-        """
     if self.normal.is_parallel(other.normal):
         raise ValueError('Planes are parallel and have no intersection.')
     direction = self.normal.cross(other.normal)
@@ -126,106 +63,36 @@
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
     return Line3(Point3(x, y, z), direction)

method cal_intersection_point3(self, other: Line3) -> Point3

Description: 计算平面与直线的交点。

Arguments:

Return: Point3: 交点

Raises:

Source code or View on GitHub
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
-    """
-        计算平面与直线的交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 直线
-        Returns:
-            [`Point3`](./point#class-point3): 交点
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面与直线平行或重合
-        """
     if self.normal @ other.direction == 0:
         raise ValueError('The plane and the line are parallel or coincident.')
     x, y, z = other.get_parametric_equations()
     t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)
     return Point3(x(t), y(t), z(t))

method cal_parallel_plane3(self, point: Point3) -> Plane3

Description: 计算平行于该平面且过指定点的平面。

Arguments:

Return: Plane3: 平面

Source code or View on GitHub
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
-    """
-        计算平行于该平面且过指定点的平面。
-        Args:
-            point ([`Point3`](./point#class-point3)): 指定点
-        Returns:
-            [`Plane3`](./plane#class-plane3): 平面
-        """
     return Plane3.from_point_and_normal(point, self.normal)

method is_parallel(self, other: Plane3) -> bool

Description: 判断两个平面是否平行。

Arguments:

  • other (Plane3): 另一个平面

Return: bool: 是否平行

Source code or View on GitHub
python
def is_parallel(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否平行。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.normal.is_parallel(other.normal)

@property

method normal(self) -> Vector3

Description: 平面的法向量。

Return: Vector3: 法向量

Source code or View on GitHub
python
@property
 def normal(self) -> 'Vector3':
-    """
-        平面的法向量。
-        Returns:
-            [`Vector3`](./vector#class-vector3): 法向量
-        """
     return Vector3(self.a, self.b, self.c)

@classmethod

method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3

Description: 工厂函数 由点和法向量构造平面(点法式构造)。

Arguments:

Return: Plane3: 平面

Source code or View on GitHub
python
@classmethod
 def from_point_and_normal(cls, point: 'Point3', normal: 'Vector3') -> 'Plane3':
-    """
-        工厂函数 由点和法向量构造平面(点法式构造)。
-        Args:
-            point ([`Point3`](./point#class-point3)): 平面上一点
-            normal ([`Vector3`](./vector#class-vector3)): 法向量
-        Returns:
-            [`Plane3`](./plane#class-plane3): 平面
-        """
     a, b, c = (normal.x, normal.y, normal.z)
     d = -a * point.x - b * point.y - c * point.z
     return cls(a, b, c, d)

@classmethod

method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3

Description: 工厂函数 由三点构造平面。

Arguments:

  • p1 (Point3): 点1
  • p2 (Point3): 点2
  • p3 (Point3): 点3

Return: 平面

Source code or View on GitHub
python
@classmethod
 def from_three_points(cls, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3':
-    """
-        工厂函数 由三点构造平面。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 点1
-            p2 (`Point3`): 点2
-            p3 (`Point3`): 点3
-        Returns:
-            平面
-        """
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
     return cls.from_point_and_normal(p1, normal)

@classmethod

method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3

Description: 工厂函数 由两直线构造平面。

Arguments:

  • l1 (Line3): 直线
  • l2 (Line3): 直线

Return: 平面

Source code or View on GitHub
python
@classmethod
 def from_two_lines(cls, l1: 'Line3', l2: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由两直线构造平面。
-        Args:
-            l1 ([`Line3`](./line#class-line3)): 直线
-            l2 (`Line3`): 直线
-        Returns:
-            平面
-        """
     v1 = l1.direction
     v2 = l2.point - l1.point
     if v2 == zero_vector3:
         v2 = l2.get_point(1) - l1.point
     return cls.from_point_and_normal(l1.point, v1.cross(v2))

@classmethod

method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3

Description: 工厂函数 由点和直线构造平面。

Arguments:

Return: 平面

Source code or View on GitHub
python
@classmethod
 def from_point_and_line(cls, point: 'Point3', line: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由点和直线构造平面。
-        Args:
-            point ([`Point3`](./point#class-point3)): 平面上一点
-            line ([`Line3`](./line#class-line3)): 直线
-        Returns:
-            平面
-        """
     return cls.from_point_and_normal(point, line.direction)

@overload

method __and__(self, other: Line3) -> Point3 | None

Source code or View on GitHub
python
@overload
 def __and__(self, other: 'Line3') -> 'Point3 | None':
     ...

@overload

method __and__(self, other: Plane3) -> Line3 | None

Source code or View on GitHub
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
     ...

method __and__(self, other)

Description: 取两平面的交集(人话:交线)

Arguments:

Return: Line3 | Point3 | None: 交集

Raises:

Source code or View on GitHub
python
def __and__(self, other):
-    """
-        取两平面的交集(人话:交线)
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Plane3`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [`Line3`](./line#class-line3) | [`Point3`](./point#class-point3) | [`None`](https%3A//docs.python.org/3/library/constants.html#None): 交集
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         if self.normal.is_parallel(other.normal):
             return None
@@ -236,16 +103,9 @@
         return self.cal_intersection_point3(other)
     else:
         raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

method __eq__(self, other) -> bool

Description: 判断两个平面是否等价。

Arguments:

  • other (Plane3): 另一个平面

Return: bool: 是否等价

Source code or View on GitHub
python
def __eq__(self, other) -> bool:
-    """
-        判断两个平面是否等价。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.approx(other)

method __rand__(self, other: Line3) -> Point3

Source code or View on GitHub
python
def __rand__(self, other: 'Line3') -> 'Point3':
     return self.cal_intersection_point3(other)

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/point.html b/en/api/mp_math/point.html index 722dae2..7324d34 100644 --- a/en/api/mp_math/point.html +++ b/en/api/mp_math/point.html @@ -6,12 +6,12 @@ mbcp.mp_math.point | MBCP docs - + - - + + - + @@ -19,58 +19,19 @@
Skip to content

Module mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

Description: 笛卡尔坐标系中的点。

Arguments:

  • x (float): x 坐标
  • y (float): y 坐标
  • z (float): z 坐标
Source code or View on GitHub
python
def __init__(self, x: float, y: float, z: float):
-    """
-        笛卡尔坐标系中的点。
-        Args:
-            x ([`float`](https://docs.python.org/3/library/functions.html#float)): x 坐标
-            y (`float`): y 坐标
-            z (`float`): z 坐标
-        """
     self.x = x
     self.y = y
     self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

Description: 判断两个点是否近似相等。

Arguments:

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个点是否近似相等。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-            epsilon ([`float`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

Source code or View on GitHub
python
@overload
 def __add__(self, other: 'Vector3') -> 'Point3':
     ...

@overload

method self + other: Point3 => Point3

Source code or View on GitHub
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
     ...

method self + other

Description: P + V -> P P + P -> P

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __add__(self, other):
-    """
-        P + V -> P
-        P + P -> P
-        Args:
-            other ([`Vector3`](./vector#class-vector3) | [`Point3`](./point#class-point3)): 另一个点或向量
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

Description: 判断两个点是否相等。

Arguments:

Return: bool: 是否相等

Source code or View on GitHub
python
def __eq__(self, other):
-    """
-        判断两个点是否相等。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否相等
-        """
     return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

Description: P - P -> V

P - V -> P 已在 Vector3 中实现

Arguments:

Return: Vector3: 新的向量

Source code or View on GitHub
python
def __sub__(self, other: 'Point3') -> 'Vector3':
-    """
-        P - P -> V
-
-        P - V -> P  已在 [`Vector3`](./vector#class-vector3) 中实现
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Vector3`](./vector#class-vector3): 新的向量
-        """
     from .vector import Vector3
     return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/segment.html b/en/api/mp_math/segment.html index e8e7451..03a5d14 100644 --- a/en/api/mp_math/segment.html +++ b/en/api/mp_math/segment.html @@ -6,12 +6,12 @@ mbcp.mp_math.segment | MBCP docs - + - - + + - + @@ -19,12 +19,6 @@
Skip to content

Module mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

Description: 三维空间中的线段。

Arguments:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
Source code or View on GitHub
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
-    """
-        三维空间中的线段。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 线段的一个端点
-            p2 ([`Point3`](./point#class-point3)): 线段的另一个端点
-        """
     self.p1 = p1
     self.p2 = p2
     '方向向量'
@@ -33,7 +27,7 @@
     self.length = self.direction.length
     '中心点'
     self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/utils.html b/en/api/mp_math/utils.html index c1c5bdb..ba3c5f6 100644 --- a/en/api/mp_math/utils.html +++ b/en/api/mp_math/utils.html @@ -6,12 +6,12 @@ mbcp.mp_math.utils | MBCP docs - + - - + + - + @@ -19,22 +19,7 @@
Skip to content

Module mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

Description: 区间限定函数

Arguments:

  • x (float): 值
  • min_ (float): 最小值
  • max_ (float): 最大值

Return: float: 限定在区间内的值

Source code or View on GitHub
python
def clamp(x: float, min_: float, max_: float) -> float:
-    """
-    区间限定函数
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 值
-        min_ (`float`): 最小值
-        max_ (`float`): 最大值
-
-    Returns:
-        `float`: 限定在区间内的值
-    """
     return max(min(x, max_), min_)

class Approx

method __init__(self, value: RealNumber)

Description: 用于近似比较对象

Arguments:

Source code or View on GitHub
python
def __init__(self, value: RealNumber):
-    """
-        用于近似比较对象
-        Args:
-            value ([`RealNumber`](./mp_math_typing#realnumber)): 实数
-        """
     self.value = value

method __eq__(self, other)

Source code or View on GitHub
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
@@ -48,46 +33,20 @@
             self.raise_type_error(other)

method raise_type_error(self, other)

Source code or View on GitHub
python
def raise_type_error(self, other):
     raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

method __ne__(self, other)

Source code or View on GitHub
python
def __ne__(self, other):
     return not self.__eq__(other)

func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool

Description: 判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

Arguments:

  • x (float): 数1
  • y (float): 数2
  • epsilon (float): 误差

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
-    """
-    判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数1
-        y (`float`): 数2
-        epsilon (`float`): 误差
-    Returns:
-        [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-    """
     return abs(x - y) < epsilon

func sign(x: float, only_neg: bool = False) -> str

Description: 获取数的符号。

Arguments:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign(x: float, only_neg: bool=False) -> str:
-    """获取数的符号。
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([`bool`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [`str`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return '+' if not only_neg else ''
     elif x < 0:
         return '-'
     else:
         return ''

func sign_format(x: float, only_neg: bool = False) -> str

Description: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

Arguments:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign_format(x: float, only_neg: bool=False) -> str:
-    """格式化符号数
-    -1 -> -1
-    1 -> +1
-    0 -> ""
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([`bool`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [`str`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return f'+{x}' if not only_neg else f'{x}'
     elif x < 0:
         return f'-{abs(x)}'
     else:
         return ''

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/vector.html b/en/api/mp_math/vector.html index f742b9f..a61136e 100644 --- a/en/api/mp_math/vector.html +++ b/en/api/mp_math/vector.html @@ -6,12 +6,12 @@ mbcp.mp_math.vector | MBCP docs - + - - + + - + @@ -19,164 +19,47 @@
Skip to content

Module mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

Description: 3维向量

Arguments:

  • x (float): x轴分量
  • y (float): y轴分量
  • z (float): z轴分量
Source code or View on GitHub
python
def __init__(self, x: float, y: float, z: float):
-    """
-        3维向量
-        Args:
-            x ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x轴分量
-            y (`float`): y轴分量
-            z (`float`): z轴分量
-        """
     self.x = x
     self.y = y
     self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

Description: 判断两个向量是否近似相等。

Arguments:

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似相等。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

Description: 计算两个向量之间的夹角。

TIP

向量夹角计算公式:

θ=arccos(v1v2|v1||v2|)

Arguments:

Return: AnyAngle: 夹角

Source code or View on GitHub
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
-    """
-        计算两个向量之间的夹角。
-        :::tip
-        向量夹角计算公式:
-        $$\\theta = \\arccos(\\frac{v1 \\cdot v2}{|v1| \\cdot |v2|})$$
-        :::
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        """
     return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

Description: 向量积 叉乘:v1 x v2 -> v3

TIP

叉乘运算法则为:

v1×v2=(v1yv2zv1zv2y,v1zv2xv1xv2z,v1xv2yv1yv2x)

转换为行列式形式:

v1×v2=|ijkv1xv1yv1zv2xv2yv2z|

Arguments:

Return: Vector3: 叉乘结果

Source code or View on GitHub
python
def cross(self, other: 'Vector3') -> 'Vector3':
-    """
-        向量积 叉乘:v1 x v2 -> v3
-
-        :::tip
-        叉乘运算法则为:
-        $$ v1 \\times v2 = (v1_y \\cdot v2_z - v1_z \\cdot v2_y, v1_z \\cdot v2_x - v1_x \\cdot v2_z, v1_x \\cdot v2_y - v1_y \\cdot v2_x) $$
-        转换为行列式形式:
-        $$ v1 \\times v2 = \\begin{vmatrix} i & j & k \\\\ v1_x & v1_y & v1_z \\\\ v2_x & v2_y & v2_z \\end{vmatrix} $$
-        :::
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`Vector3`](#class-vector3): 叉乘结果
-        """
     return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

Description: 判断两个向量是否近似平行。

Arguments:

Return: bool: 是否近似平行

Source code or View on GitHub
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似平行。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

Description: 判断两个向量是否平行。

Arguments:

Return: bool: 是否平行

Source code or View on GitHub
python
def is_parallel(self, other: 'Vector3') -> bool:
-    """
-        判断两个向量是否平行。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.cross(other).approx(zero_vector3)

method normalize(self)

Description: 将向量归一化。

自体归一化,不返回值。

Source code or View on GitHub
python
def normalize(self):
-    """
-        将向量归一化。
-
-        自体归一化,不返回值。
-        """
     length = self.length
     self.x /= length
     self.y /= length
     self.z /= length

@property

method np_array(self) -> np.ndarray

Return: np.ndarray: numpy数组

Source code or View on GitHub
python
@property
 def np_array(self) -> 'np.ndarray':
-    """
-        返回numpy数组
-        Returns:
-            [`np.ndarray`](https%3A//numpy.org/doc/stable/reference/generated/numpy.ndarray.html): numpy数组
-        """
     return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

Description: 向量的模。

Return: float: 模

Source code or View on GitHub
python
@property
 def length(self) -> float:
-    """
-        向量的模。
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 模
-        """
     return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

Description: 获取该向量的单位向量。

Return: Vector3: 单位向量

Source code or View on GitHub
python
@property
 def unit(self) -> 'Vector3':
-    """
-        获取该向量的单位向量。
-        Returns:
-            [`Vector3`](#class-vector3): 单位向量
-        """
     return self / self.length

method __abs__(self)

Source code or View on GitHub
python
def __abs__(self):
     return self.length

@overload

method self + other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
 def __add__(self, other: 'Vector3') -> 'Vector3':
     ...

@overload

method self + other: Point3 => Point3

Source code or View on GitHub
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
     ...

method self + other

Description: V + P -> P

V + V -> V

Arguments:

Return: Vector3 | Point3: 新的向量或点

Source code or View on GitHub
python
def __add__(self, other):
-    """
-        V + P -> P
-
-        V + V -> V
-        Args:
-            other ([`Vector3`](#class-vector3) | [`Point3`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [`Vector3`](#class-vector3) | [`Point3`](./point#class-point3): 新的向量或点
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)
     elif isinstance(other, Point3):
         return Point3(self.x + other.x, self.y + other.y, self.z + other.z)
     else:
         raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

Description: 判断两个向量是否相等。

Arguments:

Return: bool: 是否相等

Source code or View on GitHub
python
def __eq__(self, other):
-    """
-        判断两个向量是否相等。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否相等
-        """
     return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

Description: P + V -> P

别去点那边实现了。

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __radd__(self, other: 'Point3') -> 'Point3':
-    """
-        P + V -> P
-
-        别去点那边实现了。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
 def __sub__(self, other: 'Vector3') -> 'Vector3':
     ...

@overload

method self - other: Point3 => Point3

Source code or View on GitHub
python
@overload
 def __sub__(self, other: 'Point3') -> 'Point3':
     ...

method self - other

Description: V - P -> P

V - V -> V

Arguments:

Return: Vector3 | Point3: 新的向量

Source code or View on GitHub
python
def __sub__(self, other):
-    """
-        V - P -> P
-
-        V - V -> V
-        Args:
-            other ([`Vector3`](#class-vector3) | [`Point3`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [`Vector3`](#class-vector3) | [`Point3`](./point#class-point3): 新的向量
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
     elif isinstance(other, Point3):
         return Point3(self.x - other.x, self.y - other.y, self.z - other.z)
     else:
         raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

Description: P - V -> P

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __rsub__(self, other: 'Point3'):
-    """
-        P - V -> P
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     if isinstance(other, Point3):
         return Point3(other.x - self.x, other.y - self.y, other.z - self.z)
     else:
@@ -185,13 +68,6 @@
     ...

@overload

method self * other: RealNumber => Vector3

Source code or View on GitHub
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
     ...

method self * other: int | float | Vector3 => Vector3

Description: 数组运算 非点乘。点乘使用@,叉乘使用cross。

Arguments:

Return: Vector3: 数组运算结果

Source code or View on GitHub
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
-    """
-        数组运算 非点乘。点乘使用@,叉乘使用cross。
-        Args:
-            other ([`Vector3`](#class-vector3) | [`float`](https%3A//docs.python.org/3/library/functions.html#float)): 另一个向量或数
-        Returns:
-            [`Vector3`](#class-vector): 数组运算结果
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)
     elif isinstance(other, (float, int)):
@@ -199,22 +75,10 @@
     else:
         raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

Source code or View on GitHub
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
     return self.__mul__(other)

method self @ other: Vector3 => RealNumber

Description: 点乘。

Arguments:

Return: float: 点乘结果

Source code or View on GitHub
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
-    """
-        点乘。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 点乘结果
-        """
     return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

Source code or View on GitHub
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
     return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

Description: 取负。

Return: Vector3: 负向量

Source code or View on GitHub
python
def __neg__(self) -> 'Vector3':
-    """
-        取负。
-        Returns:
-            [`Vector3`](#class-vector3): 负向量
-        """
     return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • Description: 零向量

  • Type: Vector3

  • Default: Vector3(0, 0, 0)

var x_axis

  • Description: x轴单位向量

  • Type: Vector3

  • Default: Vector3(1, 0, 0)

var y_axis

  • Description: y轴单位向量

  • Type: Vector3

  • Default: Vector3(0, 1, 0)

var z_axis

  • Description: z轴单位向量

  • Type: Vector3

  • Default: Vector3(0, 0, 1)

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/particle/index.html b/en/api/particle/index.html index b108c16..66f46d8 100644 --- a/en/api/particle/index.html +++ b/en/api/particle/index.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP docs - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/en/api/presets/index.html b/en/api/presets/index.html index 8d97d03..7f1ca14 100644 --- a/en/api/presets/index.html +++ b/en/api/presets/index.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP docs - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/en/api/presets/model/index.html b/en/api/presets/model/index.html index d326eb5..adc9d63 100644 --- a/en/api/presets/model/index.html +++ b/en/api/presets/model/index.html @@ -6,12 +6,12 @@ mbcp.presets.model | MBCP docs - + - - + + - + @@ -20,14 +20,6 @@
Skip to content

Module mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

Description: 生成球体上的点集。

Arguments:

  • radius:
  • density:

Return: List[Point3]: 球体上的点集。

Source code or View on GitHub
python
@staticmethod
 def sphere(radius: float, density: float):
-    """
-        生成球体上的点集。
-        Args:
-            radius:
-            density:
-        Returns:
-            List[Point3]: 球体上的点集。
-        """
     area = 4 * np.pi * radius ** 2
     num = int(area * density)
     phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
@@ -36,7 +28,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/demo/best-practice.html b/en/demo/best-practice.html index 33a0a9d..b992f29 100644 --- a/en/demo/best-practice.html +++ b/en/demo/best-practice.html @@ -6,10 +6,10 @@ Best Practice | MBCP docs - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/en/guide/index.html b/en/guide/index.html index b7c052e..6db94d4 100644 --- a/en/guide/index.html +++ b/en/guide/index.html @@ -6,10 +6,10 @@ 开始不了一点 | MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

开始不了一点

12x111

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/index.html b/en/index.html index b3a136c..3380009 100644 --- a/en/index.html +++ b/en/index.html @@ -6,10 +6,10 @@ MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

MBCP

More basic change particle

A Library for Python to create Minecraft particle effects and geometric figures

MBCP logo

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/refer/index.html b/en/refer/index.html index 5efc36c..f5fe29b 100644 --- a/en/refer/index.html +++ b/en/refer/index.html @@ -6,10 +6,10 @@ Reference | MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

Reference

help us to improve the documentation

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/guide/index.html b/guide/index.html index 30ea9ae..ea7f049 100644 --- a/guide/index.html +++ b/guide/index.html @@ -6,10 +6,10 @@ 快速开始 | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

快速开始

TIP

建议:把你项目所使用的Python换成PyPy,这样可以提高性能(兼容性优先)

安装

shell
pip install mbcp

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index e9c53e5..1d07044 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"api_index.md":"BO3OGCZm","api_mp_math_angle.md":"DXjHPMcZ","api_mp_math_const.md":"B_APaY-d","api_mp_math_equation.md":"qaTLbds6","api_mp_math_function.md":"D6Sk-jUO","api_mp_math_index.md":"BfSAi6YB","api_mp_math_line.md":"K-HhIsvU","api_mp_math_mp_math_typing.md":"D0jHaHho","api_mp_math_plane.md":"dDWoDJrS","api_mp_math_point.md":"NLp_Sg9U","api_mp_math_segment.md":"C2PEP6H5","api_mp_math_utils.md":"QB0hGGMg","api_mp_math_vector.md":"BzTv8qws","api_particle_index.md":"BnaJlvrB","api_presets_index.md":"Cn3tbiU4","api_presets_model_index.md":"BH3azKA8","demo_best-practice.md":"CmYjfrxd","demo_index.md":"CVAdlaFI","en_api_index.md":"C0-LRrMB","en_api_mp_math_angle.md":"B5tdtBiM","en_api_mp_math_const.md":"f-2wQHW5","en_api_mp_math_equation.md":"N3oP-7Ua","en_api_mp_math_function.md":"BT0NB_1n","en_api_mp_math_index.md":"BiDCWhuz","en_api_mp_math_line.md":"0bBpZMyn","en_api_mp_math_mp_math_typing.md":"A2oAWINP","en_api_mp_math_plane.md":"BqUredjB","en_api_mp_math_point.md":"Ba_i7dDC","en_api_mp_math_segment.md":"BhIGb9yq","en_api_mp_math_utils.md":"Bz-xJhl3","en_api_mp_math_vector.md":"OzaLDP6e","en_api_particle_index.md":"j3_p5KtY","en_api_presets_index.md":"Bj8HQN_s","en_api_presets_model_index.md":"tRSLY10d","en_demo_best-practice.md":"CmtY105n","en_guide_index.md":"C3kI8f8A","en_index.md":"Cc-Nt9Ot","en_refer_index.md":"Cq6GWi0V","guide_index.md":"CJOqvlSE","index.md":"WVpbC1C1","ja_api_index.md":"CGngNEPX","ja_api_mp_math_angle.md":"BPpenAm_","ja_api_mp_math_const.md":"kKAd6ihV","ja_api_mp_math_equation.md":"Cxc2AyGq","ja_api_mp_math_function.md":"zcK7s9-C","ja_api_mp_math_index.md":"BCReRKfD","ja_api_mp_math_line.md":"BUEG7Qno","ja_api_mp_math_mp_math_typing.md":"CzEPV5Ep","ja_api_mp_math_plane.md":"DmM6KUUe","ja_api_mp_math_point.md":"Bj_wyaCj","ja_api_mp_math_segment.md":"hBKUntDs","ja_api_mp_math_utils.md":"DdrbPY-j","ja_api_mp_math_vector.md":"DuAJ8ZJo","ja_api_particle_index.md":"CW1rqarC","ja_api_presets_index.md":"BFc_PfJb","ja_api_presets_model_index.md":"BqEjZ7IY","ja_demo_best-practice.md":"CBHiF6ec","ja_guide_index.md":"w1Tf2Adm","ja_index.md":"BvjV8RIJ","ja_refer_index.md":"DamUscs8","refer_7-differential-euqtion_index.md":"Dd2-7I9S","refer_function_curry.md":"D_oqRDd3","refer_function_function.md":"Bi_82lIJ","refer_index.md":"yFZW0kI4","zht_api_index.md":"Bh7ICG6U","zht_api_mp_math_angle.md":"mmecNIJM","zht_api_mp_math_const.md":"D9eBwcNw","zht_api_mp_math_equation.md":"B00IWO_d","zht_api_mp_math_function.md":"BnUerglv","zht_api_mp_math_index.md":"DVqLRZhm","zht_api_mp_math_line.md":"Dg3ji_dG","zht_api_mp_math_mp_math_typing.md":"DWzRfFJe","zht_api_mp_math_plane.md":"DHKntbKb","zht_api_mp_math_point.md":"vFMEEeVu","zht_api_mp_math_segment.md":"BuDHbwYP","zht_api_mp_math_utils.md":"DvxTZy5j","zht_api_mp_math_vector.md":"DoP7bI-7","zht_api_particle_index.md":"bdouG1sk","zht_api_presets_index.md":"9wdPAkKN","zht_api_presets_model_index.md":"CyrJscBT","zht_demo_best-practice.md":"CPNbD_Lg","zht_guide_index.md":"BNnMViC8","zht_index.md":"fkOYkZZe","zht_refer_index.md":"B7CQS2UW"} +{"api_index.md":"BO3OGCZm","api_mp_math_angle.md":"DRCLNUJL","api_mp_math_const.md":"B_APaY-d","api_mp_math_equation.md":"Q6tfqPV1","api_mp_math_function.md":"CDW7K4aO","api_mp_math_index.md":"BfSAi6YB","api_mp_math_line.md":"Ld9EytA4","api_mp_math_mp_math_typing.md":"D0jHaHho","api_mp_math_plane.md":"DRZNcHy5","api_mp_math_point.md":"C4s5FhwG","api_mp_math_segment.md":"JYVgLepk","api_mp_math_utils.md":"DuXZd_EC","api_mp_math_vector.md":"FC-qe2-I","api_particle_index.md":"BnaJlvrB","api_presets_index.md":"Cn3tbiU4","api_presets_model_index.md":"DTQNHoYw","demo_best-practice.md":"CmYjfrxd","demo_index.md":"CVAdlaFI","en_api_index.md":"C0-LRrMB","en_api_mp_math_angle.md":"Bd_SmddI","en_api_mp_math_const.md":"f-2wQHW5","en_api_mp_math_equation.md":"B0ThTNcD","en_api_mp_math_function.md":"l19FY4Hu","en_api_mp_math_index.md":"BiDCWhuz","en_api_mp_math_line.md":"Bd5Z3iC3","en_api_mp_math_mp_math_typing.md":"A2oAWINP","en_api_mp_math_plane.md":"D91Vt6aU","en_api_mp_math_point.md":"Dr2bDE6-","en_api_mp_math_segment.md":"D0wpX8Us","en_api_mp_math_utils.md":"n9Hkxc_q","en_api_mp_math_vector.md":"ARDQGWRk","en_api_particle_index.md":"j3_p5KtY","en_api_presets_index.md":"Bj8HQN_s","en_api_presets_model_index.md":"CF6gWxhr","en_demo_best-practice.md":"CmtY105n","en_guide_index.md":"C3kI8f8A","en_index.md":"Cc-Nt9Ot","en_refer_index.md":"Cq6GWi0V","guide_index.md":"CJOqvlSE","index.md":"WVpbC1C1","ja_api_index.md":"CGngNEPX","ja_api_mp_math_angle.md":"DurFoqAy","ja_api_mp_math_const.md":"kKAd6ihV","ja_api_mp_math_equation.md":"ClACMtEE","ja_api_mp_math_function.md":"pJM1NJ2m","ja_api_mp_math_index.md":"BCReRKfD","ja_api_mp_math_line.md":"BbbGydDH","ja_api_mp_math_mp_math_typing.md":"CzEPV5Ep","ja_api_mp_math_plane.md":"BvT51o_C","ja_api_mp_math_point.md":"CevhXWsh","ja_api_mp_math_segment.md":"DZAkmIjJ","ja_api_mp_math_utils.md":"Bk8MHgOd","ja_api_mp_math_vector.md":"c1mtKaM8","ja_api_particle_index.md":"CW1rqarC","ja_api_presets_index.md":"BFc_PfJb","ja_api_presets_model_index.md":"wZZUhvvV","ja_demo_best-practice.md":"CBHiF6ec","ja_guide_index.md":"w1Tf2Adm","ja_index.md":"BvjV8RIJ","ja_refer_index.md":"DamUscs8","refer_7-differential-euqtion_index.md":"Dd2-7I9S","refer_function_curry.md":"D_oqRDd3","refer_function_function.md":"Bi_82lIJ","refer_index.md":"yFZW0kI4","zht_api_index.md":"Bh7ICG6U","zht_api_mp_math_angle.md":"CBKEZciJ","zht_api_mp_math_const.md":"D9eBwcNw","zht_api_mp_math_equation.md":"DckV9F7F","zht_api_mp_math_function.md":"3Rru8vfk","zht_api_mp_math_index.md":"DVqLRZhm","zht_api_mp_math_line.md":"DopGqzVZ","zht_api_mp_math_mp_math_typing.md":"DWzRfFJe","zht_api_mp_math_plane.md":"OnI32y0z","zht_api_mp_math_point.md":"DoQ35q26","zht_api_mp_math_segment.md":"CqQitARa","zht_api_mp_math_utils.md":"itNFG1x8","zht_api_mp_math_vector.md":"Dug1hqAu","zht_api_particle_index.md":"bdouG1sk","zht_api_presets_index.md":"9wdPAkKN","zht_api_presets_model_index.md":"BfmFWGa-","zht_demo_best-practice.md":"CPNbD_Lg","zht_guide_index.md":"BNnMViC8","zht_index.md":"fkOYkZZe","zht_refer_index.md":"B7CQS2UW"} diff --git a/index.html b/index.html index 5c821a1..07fe391 100644 --- a/index.html +++ b/index.html @@ -6,10 +6,10 @@ MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

MBCP

更多基础变换粒子

用于几何运算和Minecraft粒子制作的库

MBCP logo

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/ja/api/index.html b/ja/api/index.html index ae32fba..d988d8a 100644 --- a/ja/api/index.html +++ b/ja/api/index.html @@ -6,10 +6,10 @@ mbcp | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

モジュール mbcp

本模块是主模块,提供了一些工具 可导入

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/angle.html b/ja/api/mp_math/angle.html index 1a8e439..76c5140 100644 --- a/ja/api/mp_math/angle.html +++ b/ja/api/mp_math/angle.html @@ -6,12 +6,12 @@ mbcp.mp_math.angle | MBCP ドキュメント - + - - + + - + @@ -19,92 +19,31 @@
Skip to content

モジュール mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

説明: 任意角度。

引数:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
ソースコード または GitHubで表示
python
def __init__(self, value: float, is_radian: bool=False):
-    """
-        任意角度。
-        Args:
-            value: 角度或弧度值
-            is_radian: 是否为弧度,默认为否
-        """
     if is_radian:
         self.radian = value
     else:
         self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

説明: 余角:两角的和为90°。

戻り値: 余角

ソースコード または GitHubで表示
python
@property
 def complementary(self) -> 'AnyAngle':
-    """
-        余角:两角的和为90°。
-        Returns:
-            余角
-        """
     return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

説明: 补角:两角的和为180°。

戻り値: 补角

ソースコード または GitHubで表示
python
@property
 def supplementary(self) -> 'AnyAngle':
-    """
-        补角:两角的和为180°。
-        Returns:
-            补角
-        """
     return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

説明: 角度。

戻り値: 弧度

ソースコード または GitHubで表示
python
@property
 def degree(self) -> float:
-    """
-        角度。
-        Returns:
-            弧度
-        """
     return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

説明: 最小正角。

戻り値: 最小正角度

ソースコード または GitHubで表示
python
@property
 def minimum_positive(self) -> 'AnyAngle':
-    """
-        最小正角。
-        Returns:
-            最小正角度
-        """
     return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

説明: 最大负角。

戻り値: 最大负角度

ソースコード または GitHubで表示
python
@property
 def maximum_negative(self) -> 'AnyAngle':
-    """
-        最大负角。
-        Returns:
-            最大负角度
-        """
     return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

説明: 正弦值。

戻り値: 正弦值

ソースコード または GitHubで表示
python
@property
 def sin(self) -> float:
-    """
-        正弦值。
-        Returns:
-            正弦值
-        """
     return math.sin(self.radian)

@property

method cos(self) -> float

説明: 余弦值。

戻り値: 余弦值

ソースコード または GitHubで表示
python
@property
 def cos(self) -> float:
-    """
-        余弦值。
-        Returns:
-            余弦值
-        """
     return math.cos(self.radian)

@property

method tan(self) -> float

説明: 正切值。

戻り値: 正切值

ソースコード または GitHubで表示
python
@property
 def tan(self) -> float:
-    """
-        正切值。
-        Returns:
-            正切值
-        """
     return math.tan(self.radian)

@property

method cot(self) -> float

説明: 余切值。

戻り値: 余切值

ソースコード または GitHubで表示
python
@property
 def cot(self) -> float:
-    """
-        余切值。
-        Returns:
-            余切值
-        """
     return 1 / math.tan(self.radian)

@property

method sec(self) -> float

説明: 正割值。

戻り値: 正割值

ソースコード または GitHubで表示
python
@property
 def sec(self) -> float:
-    """
-        正割值。
-        Returns:
-            正割值
-        """
     return 1 / math.cos(self.radian)

@property

method csc(self) -> float

説明: 余割值。

戻り値: 余割值

ソースコード または GitHubで表示
python
@property
 def csc(self) -> float:
-    """
-        余割值。
-        Returns:
-            余割值
-        """
     return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
     return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
     return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
@@ -117,7 +56,7 @@
     if isinstance(other, AnyAngle):
         return self.radian / other.radian
     return AnyAngle(self.radian / other, is_radian=True)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/const.html b/ja/api/mp_math/const.html index a5d82e7..be9bc04 100644 --- a/ja/api/mp_math/const.html +++ b/ja/api/mp_math/const.html @@ -6,10 +6,10 @@ mbcp.mp_math.const | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

モジュール mbcp.mp_math.const

本模块定义了一些常用的常量

var PI

  • 説明: 常量 π

  • デフォルト: math.pi

var E

  • 説明: 自然对数的底 exp(1)

  • デフォルト: math.e

var GOLDEN_RATIO

  • 説明: 黄金分割比

  • デフォルト: (1 + math.sqrt(5)) / 2

var GAMMA

  • 説明: 欧拉常数

  • デフォルト: 0.5772156649015329

var EPSILON

  • 説明: 精度误差

  • デフォルト: 0.0001

var APPROX

  • 説明: 约等于判定误差

  • デフォルト: 0.001

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/equation.html b/ja/api/mp_math/equation.html index 6011cf6..248d038 100644 --- a/ja/api/mp_math/equation.html +++ b/ja/api/mp_math/equation.html @@ -6,12 +6,12 @@ mbcp.mp_math.equation | MBCP ドキュメント - + - - + + - + @@ -19,46 +19,16 @@
Skip to content

モジュール mbcp.mp_math.equation

本模块定义了方程相关的类和函数以及一些常用的数学函数

class CurveEquation

method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)

説明: 曲线方程。

引数:

ソースコード または GitHubで表示
python
def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc):
-    """
-        曲线方程。
-        Args:
-            x_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): x函数
-            y_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): y函数
-            z_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): z函数
-        """
     self.x_func = x_func
     self.y_func = y_func
     self.z_func = z_func

method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

説明: 计算曲线上的点。

引数:

  • *t:
  • 参数:

戻り値: 目标点

ソースコード または GitHubで表示
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
-    """
-        计算曲线上的点。
-        Args:
-            *t:
-                参数
-        Returns:
-            目标点
-        """
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
         return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

説明: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

引数:

  • func (MultiVarsFunc): N元函数
  • var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
  • epsilon: 偏移量

戻り値: 偏导函数

例外:

  • ValueError 无效变量类型
ソースコード または GitHubで表示
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
-    """
-    求N元函数一阶偏导函数。这玩意不太稳定,慎用。
-    > [!warning]
-    > 目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升
-
-    Args:
-        func ([`MultiVarsFunc`](./mp_math_typing#var-multivarsfunc)): N元函数
-        var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
-        epsilon: 偏移量
-    Returns:
-        偏导函数
-    Raises:
-        ValueError: 无效变量类型
-    """
     if isinstance(var, int):
 
         def partial_derivative_func(*args: Var) -> Var:
-            """@litedoc-hide"""
             args_list_plus = list(args)
             args_list_plus[var] += epsilon
             args_list_minus = list(args)
@@ -68,14 +38,6 @@
     elif isinstance(var, tuple):
 
         def high_order_partial_derivative_func(*args: Var) -> Var:
-            """
-            @litedoc-hide
-            求高阶偏导函数
-            Args:
-                *args: 参数
-            Returns:
-                高阶偏导数值
-            """
             result_func = func
             for v in var:
                 result_func = get_partial_derivative_func(result_func, v, epsilon)
@@ -83,7 +45,7 @@
         return high_order_partial_derivative_func
     else:
         raise ValueError('Invalid var type')

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/function.html b/ja/api/mp_math/function.html index 7a56cd1..f63ad62 100644 --- a/ja/api/mp_math/function.html +++ b/ja/api/mp_math/function.html @@ -6,12 +6,12 @@ mbcp.mp_math.function | MBCP ドキュメント - + - - + + - + @@ -19,18 +19,6 @@
Skip to content

モジュール mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

説明: 计算三元函数在某点的梯度向量。

TIP

已知一个函数f(x,y,z),则其在点(x0,y0,z0)处的梯度向量为: f(x0,y0,z0)=(fx,fy,fz)

引数:

戻り値: 梯度

ソースコード または GitHubで表示
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
-    """
-    计算三元函数在某点的梯度向量。
-    > [!tip]
-    > 已知一个函数$f(x, y, z)$,则其在点$(x_0, y_0, z_0)$处的梯度向量为:
-    $\\nabla f(x_0, y_0, z_0) = \\left(\\frac{\\partial f}{\\partial x}, \\frac{\\partial f}{\\partial y}, \\frac{\\partial f}{\\partial z}\\right)$
-    Args:
-        func ([`ThreeSingleVarsFunc`](./mp_math_typing#var-threesinglevarsfunc)): 三元函数
-        p ([`Point3`](./point#class-point3)): 点
-        epsilon: 偏移量
-    Returns:
-        梯度
-    """
     dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
     dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
     dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
@@ -38,29 +26,11 @@
     return a + b + c
 add_curried = curry(add, 1, 2)
 add_curried(3)  # 6
ソースコード または GitHubで表示
python
def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc:
-    """
-    对多参数函数进行柯里化。
-    > [!tip]
-    > 有关函数柯里化,可参考[函数式编程--柯理化(Currying)](https://zhuanlan.zhihu.com/p/355859667)
-    Args:
-        func ([`MultiVarsFunc`](./mp_math_typing#var-multivarsfunc)): 函数
-        *args ([`Var`](./mp_math_typing#var-var)): 参数
-    Returns:
-        柯里化后的函数
-    Examples:
-        ```python
-        def add(a: int, b: int, c: int) -> int:
-            return a + b + c
-        add_curried = curry(add, 1, 2)
-        add_curried(3)  # 6
-        ```
-    """
 
     def curried_func(*args2: Var) -> Var:
-        """@litedoc-hide"""
         return func(*args, *args2)
     return curried_func

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/index.html b/ja/api/mp_math/index.html index 65b7de9..49dc79a 100644 --- a/ja/api/mp_math/index.html +++ b/ja/api/mp_math/index.html @@ -6,10 +6,10 @@ mbcp.mp_math | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

モジュール mbcp.mp_math

本包定义了一些常用的导入,可直接从mbcp.mp_math导入使用 导入的类有:

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/line.html b/ja/api/mp_math/line.html index edaccea..aef19d6 100644 --- a/ja/api/mp_math/line.html +++ b/ja/api/mp_math/line.html @@ -6,12 +6,12 @@ mbcp.mp_math.line | MBCP ドキュメント - + - - + + - + @@ -19,40 +19,10 @@
Skip to content

モジュール mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

説明: 三维空间中的直线。由一个点和一个方向向量确定。

引数:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
ソースコード または GitHubで表示
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
-    """
-        三维空间中的直线。由一个点和一个方向向量确定。
-        Args:
-            point ([`Point3`](./point#class-point3)): 直线上的一点
-            direction ([`Vector3`](./vector#class-vector3)): 方向向量
-        """
     self.point = point
     self.direction = direction

method approx(self, other: Line3, epsilon: float = APPROX) -> bool

説明: 判断两条直线是否近似相等。

引数:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
-    """
-        判断两条直线是否近似相等。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-            epsilon ([`float`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return self.is_approx_parallel(other, epsilon) and (self.point - other.point).is_approx_parallel(self.direction, epsilon)

method cal_angle(self, other: Line3) -> AnyAngle

説明: 计算直线和直线之间的夹角。

引数:

  • other (Line3): 另一条直线

戻り値: AnyAngle: 夹角

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
-    """
-        计算直线和直线之间的夹角。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        """
     return self.direction.cal_angle(other.direction)

method cal_distance(self, other: Line3 | Point3) -> float

説明: 计算直线和直线或点之间的距离。

引数:

戻り値: float: 距离

例外:

ソースコード または GitHubで表示
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
-    """
-        计算直线和直线或点之间的距离。
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Point3`](./point#class-point3)): 另一条直线或点
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         if self == other:
             return 0
@@ -66,91 +36,19 @@
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
         raise TypeError('Unsupported type.')

method cal_intersection(self, other: Line3) -> Point3

説明: 计算两条直线的交点。

引数:

  • other (Line3): 另一条直线

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
-    """
-        计算两条直线的交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`Point3`](./point#class-point3): 交点
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 直线平行
-            `ValueError`: 直线不共面
-        """
     if self.is_parallel(other):
         raise ValueError('Lines are parallel and do not intersect.')
     if not self.is_coplanar(other):
         raise ValueError('Lines are not coplanar and do not intersect.')
     return self.point + self.direction.cross(other.direction) @ other.direction.cross(self.point - other.point) / self.direction.cross(other.direction).length ** 2 * self.direction

method cal_perpendicular(self, point: Point3) -> Line3

説明: 计算直线经过指定点p的垂线。

引数:

戻り値: Line3: 垂线

ソースコード または GitHubで表示
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
-    """
-        计算直线经过指定点p的垂线。
-        Args:
-            point ([`Point3`](./point#class-point3)): 指定点
-        Returns:
-            [`Line3`](./line#class-line3): 垂线
-        """
     return Line3(point, self.direction.cross(point - self.point))

method get_point(self, t: RealNumber) -> Point3

説明: 获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。

引数:

戻り値: Point3: 点

ソースコード または GitHubで表示
python
def get_point(self, t: RealNumber) -> 'Point3':
-    """
-        获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。
-        Args:
-            t ([`RealNumber`](./mp_math_typing#var-realnumber)): 参数t
-        Returns:
-            [`Point3`](./point#class-point3): 点
-        """
     return self.point + t * self.direction

method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]

説明: 获取直线的参数方程。

戻り値: tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]: 参数方程

ソースコード または GitHubで表示
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
-    """
-        获取直线的参数方程。
-        Returns:
-            [`tuple`](https%3A//docs.python.org/3/library/stdtypes.html#tuple)[[`OneSingleVarFunc`](./mp_math_typing#var-onesinglevarfunc), `OneSingleVarFunc`, `OneSingleVarFunc`]: 参数方程
-        """
     return (lambda t: self.point.x + self.direction.x * t, lambda t: self.point.y + self.direction.y * t, lambda t: self.point.z + self.direction.z * t)

method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool

説明: 判断两条直线是否近似平行。

引数:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

戻り値: bool: 是否近似平行

ソースコード または GitHubで表示
python
def is_approx_parallel(self, other: 'Line3', epsilon: float=1e-06) -> bool:
-    """
-        判断两条直线是否近似平行。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.direction.is_approx_parallel(other.direction, epsilon)

method is_parallel(self, other: Line3) -> bool

説明: 判断两条直线是否平行。

引数:

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否平行。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.direction.is_parallel(other.direction)

method is_collinear(self, other: Line3) -> bool

説明: 判断两条直线是否共线。

引数:

戻り値: bool: 是否共线

ソースコード または GitHubで表示
python
def is_collinear(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共线。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共线
-        """
     return self.is_parallel(other) and (self.point - other.point).is_parallel(self.direction)

method is_point_on(self, point: Point3) -> bool

説明: 判断点是否在直线上。

引数:

戻り値: bool: 是否在直线上

ソースコード または GitHubで表示
python
def is_point_on(self, point: 'Point3') -> bool:
-    """
-        判断点是否在直线上。
-        Args:
-            point ([`Point3`](./point#class-point3)): 点
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
-        """
     return (point - self.point).is_parallel(self.direction)

method is_coplanar(self, other: Line3) -> bool

説明: 判断两条直线是否共面。 充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。

引数:

戻り値: bool: 是否共面

ソースコード または GitHubで表示
python
def is_coplanar(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共面。
-        充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
-        """
     return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

説明: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

ソースコード または GitHubで表示
python
def simplify(self):
-    """
-        简化直线方程,等价相等。
-        自体简化,不返回值。
-
-        按照可行性一次对x y z 化 0 处理,并对向量单位化
-        """
     self.direction.normalize()
     if self.direction.x == 0:
         self.point.x = 0
@@ -159,40 +57,16 @@
     if self.direction.z == 0:
         self.point.z = 0

@classmethod

method from_two_points(cls, p1: Point3, p2: Point3) -> Line3

説明: 工厂函数 由两点构造直线。

引数:

戻り値: Line3: 直线

ソースコード または GitHubで表示
python
@classmethod
 def from_two_points(cls, p1: 'Point3', p2: 'Point3') -> 'Line3':
-    """
-        工厂函数 由两点构造直线。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 点1
-            p2 ([`Point3`](./point#class-point3)): 点2
-        Returns:
-            [`Line3`](./line#class-line3): 直线
-        """
     direction = p2 - p1
     return cls(p1, direction)

method __and__(self, other: Line3) -> Line3 | Point3 | None

説明: 计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。

引数:

  • other (Line3): 另一条直线

戻り値: Line3 | Point3 | None: 交集

ソースコード または GitHubで表示
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
-    """
-        计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`Line3`](./line#class-line3) | [`Point3`](./point#class-point3) | [`None`](https://docs.python.org/3/library/constants.html#None): 交集
-        """
     if self.is_collinear(other):
         return self
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
         return self.cal_intersection(other)

method __eq__(self, other) -> bool

説明: 判断两条直线是否等价。

v1 // v2 ∧ (p1 - p2) // v1

引数:

  • other (Line3): 另一条直线

戻り値: bool: 是否等价

ソースコード または GitHubで表示
python
def __eq__(self, other) -> bool:
-    """
-        判断两条直线是否等价。
-
-        v1 // v2 ∧ (p1 - p2) // v1
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/mp_math_typing.html b/ja/api/mp_math/mp_math_typing.html index 5342df3..871504f 100644 --- a/ja/api/mp_math/mp_math_typing.html +++ b/ja/api/mp_math/mp_math_typing.html @@ -6,10 +6,10 @@ mbcp.mp_math.mp_math_typing | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

モジュール mbcp.mp_math.mp_math_typing

本模块用于内部类型提示

var RealNumber

  • 説明: 实数

  • タイプ: TypeAlias

  • デフォルト: int | float

var Number

  • 説明: 数

  • タイプ: TypeAlias

  • デフォルト: RealNumber | complex

var SingleVar

  • 説明: 单变量

  • デフォルト: TypeVar('SingleVar', bound=Number)

var ArrayVar

  • 説明: 数组变量

  • デフォルト: TypeVar('ArrayVar', bound=Iterable[Number])

var Var

  • 説明: 变量

  • タイプ: TypeAlias

  • デフォルト: SingleVar | ArrayVar

var OneSingleVarFunc

  • 説明: 一元单变量函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[SingleVar], SingleVar]

var OneArrayFunc

  • 説明: 一元数组函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[ArrayVar], ArrayVar]

var OneVarFunc

  • 説明: 一元函数

  • タイプ: TypeAlias

  • デフォルト: OneSingleVarFunc | OneArrayFunc

var TwoSingleVarsFunc

  • 説明: 二元单变量函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[SingleVar, SingleVar], SingleVar]

var TwoArraysFunc

  • 説明: 二元数组函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[ArrayVar, ArrayVar], ArrayVar]

var TwoVarsFunc

  • 説明: 二元函数

  • タイプ: TypeAlias

  • デフォルト: TwoSingleVarsFunc | TwoArraysFunc

var ThreeSingleVarsFunc

  • 説明: 三元单变量函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[SingleVar, SingleVar, SingleVar], SingleVar]

var ThreeArraysFunc

  • 説明: 三元数组函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[ArrayVar, ArrayVar, ArrayVar], ArrayVar]

var ThreeVarsFunc

  • 説明: 三元函数

  • タイプ: TypeAlias

  • デフォルト: ThreeSingleVarsFunc | ThreeArraysFunc

var MultiSingleVarsFunc

  • 説明: 多元单变量函数

  • タイプ: TypeAlias

  • デフォルト: Callable[..., SingleVar]

var MultiArraysFunc

  • 説明: 多元数组函数

  • タイプ: TypeAlias

  • デフォルト: Callable[..., ArrayVar]

var MultiVarsFunc

  • 説明: 多元函数

  • タイプ: TypeAlias

  • デフォルト: MultiSingleVarsFunc | MultiArraysFunc

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/plane.html b/ja/api/mp_math/plane.html index b7bfdf0..d2e6d94 100644 --- a/ja/api/mp_math/plane.html +++ b/ja/api/mp_math/plane.html @@ -6,12 +6,12 @@ mbcp.mp_math.plane | MBCP ドキュメント - + - - + + - + @@ -19,25 +19,10 @@
Skip to content

モジュール mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

説明: 平面方程:ax + by + cz + d = 0

引数:

  • a (float): x系数
  • b (float): y系数
  • c (float): z系数
  • d (float): 常数项
ソースコード または GitHubで表示
python
def __init__(self, a: float, b: float, c: float, d: float):
-    """
-        平面方程:ax + by + cz + d = 0
-        Args:
-            a ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x系数
-            b (`float`): y系数
-            c (`float`): z系数
-            d (`float`): 常数项
-        """
     self.a = a
     self.b = b
     self.c = c
     self.d = d

method approx(self, other: Plane3) -> bool

説明: 判断两个平面是否近似相等。

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否近似相等。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     if self.a != 0:
         k = other.a / self.a
         return approx(other.b, self.b * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
@@ -49,66 +34,18 @@
         return approx(other.a, self.a * k) and approx(other.b, self.b * k) and approx(other.d, self.d * k)
     else:
         return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

説明: 计算平面与平面之间的夹角。

TIP

平面间夹角计算公式:

θ=arccos(n1n2|n1||n2|)

其中 n1n2 分别为两个平面的法向量

TIP

平面与直线夹角计算公式:

θ=arccos(nd|n||d|)

其中 n 为平面的法向量,d 为直线的方向向量

引数:

戻り値: AnyAngle: 夹角

例外:

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
-    """
-        计算平面与平面之间的夹角。
-        :::tip
-        平面间夹角计算公式:
-        $$\\theta = \\arccos(\\frac{n1 \\cdot n2}{|n1| \\cdot |n2|})$$
-        其中 $n1$ 和 $n2$ 分别为两个平面的法向量
-        :::
-        :::tip
-        平面与直线夹角计算公式:
-        $$\\theta = \\arccos(\\frac{n \\cdot d}{|n| \\cdot |d|})$$
-        其中 $n$ 为平面的法向量,$d$ 为直线的方向向量
-        :::
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Plane3`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         return self.normal.cal_angle(other.direction).complementary
     elif isinstance(other, Plane3):
         return AnyAngle(math.acos(self.normal @ other.normal / (self.normal.length * other.normal.length)), is_radian=True)
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_distance(self, other: Plane3 | Point3) -> float

説明: 计算平面与平面或点之间的距离。

引数:

戻り値: float: 距离

例外:

ソースコード または GitHubで表示
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
-    """
-        计算平面与平面或点之间的距离。
-        Args:
-            other ([`Plane3`](./plane#class-plane3) | [`Point3`](./point#class-point3)): 另一个平面或点
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         return 0
     elif isinstance(other, Point3):
         return abs(self.a * other.x + self.b * other.y + self.c * other.z + self.d) / (self.a ** 2 + self.b ** 2 + self.c ** 2) ** 0.5
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

説明: 计算两平面的交线。

TIP

计算两平面交线的一般步骤:

  1. 求两平面的法向量的叉乘得到方向向量
d=n1×n2
  1. 寻找直线上的一点,依次假设x=0, y=0, z=0,并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示
{x=x0+dty=y0+dtz=z0+dt

xx0m=yy0n=zz0p

引数:

  • other (Plane3): 另一个平面

戻り値: Line3: 交线

例外:

ソースコード または GitHubで表示
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
-    """
-        计算两平面的交线。
-        :::tip
-        计算两平面交线的一般步骤:
-        1. 求两平面的法向量的叉乘得到方向向量
-        $$ d = n1 \\times n2 $$
-        2. 寻找直线上的一点,依次假设$x=0$, $y=0$, $z=0$,并代入两平面方程求出合适的点
-        直线最终可用参数方程或点向式表示
-        $$ \\begin{cases} x = x_0 + dt \\\\ y = y_0 + dt \\\\ z = z_0 + dt \\end{cases} $$
-
-        $$ \\frac{x - x_0}{m} = \\frac{y - y_0}{n} = \\frac{z - z_0}{p} $$
-        :::
-
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`Line3`](./line#class-line3): 交线
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面平行且无交线
-        """
     if self.normal.is_parallel(other.normal):
         raise ValueError('Planes are parallel and have no intersection.')
     direction = self.normal.cross(other.normal)
@@ -126,106 +63,36 @@
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
     return Line3(Point3(x, y, z), direction)

method cal_intersection_point3(self, other: Line3) -> Point3

説明: 计算平面与直线的交点。

引数:

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
-    """
-        计算平面与直线的交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 直线
-        Returns:
-            [`Point3`](./point#class-point3): 交点
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面与直线平行或重合
-        """
     if self.normal @ other.direction == 0:
         raise ValueError('The plane and the line are parallel or coincident.')
     x, y, z = other.get_parametric_equations()
     t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)
     return Point3(x(t), y(t), z(t))

method cal_parallel_plane3(self, point: Point3) -> Plane3

説明: 计算平行于该平面且过指定点的平面。

引数:

戻り値: Plane3: 平面

ソースコード または GitHubで表示
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
-    """
-        计算平行于该平面且过指定点的平面。
-        Args:
-            point ([`Point3`](./point#class-point3)): 指定点
-        Returns:
-            [`Plane3`](./plane#class-plane3): 平面
-        """
     return Plane3.from_point_and_normal(point, self.normal)

method is_parallel(self, other: Plane3) -> bool

説明: 判断两个平面是否平行。

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否平行。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.normal.is_parallel(other.normal)

@property

method normal(self) -> Vector3

説明: 平面的法向量。

戻り値: Vector3: 法向量

ソースコード または GitHubで表示
python
@property
 def normal(self) -> 'Vector3':
-    """
-        平面的法向量。
-        Returns:
-            [`Vector3`](./vector#class-vector3): 法向量
-        """
     return Vector3(self.a, self.b, self.c)

@classmethod

method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3

説明: 工厂函数 由点和法向量构造平面(点法式构造)。

引数:

戻り値: Plane3: 平面

ソースコード または GitHubで表示
python
@classmethod
 def from_point_and_normal(cls, point: 'Point3', normal: 'Vector3') -> 'Plane3':
-    """
-        工厂函数 由点和法向量构造平面(点法式构造)。
-        Args:
-            point ([`Point3`](./point#class-point3)): 平面上一点
-            normal ([`Vector3`](./vector#class-vector3)): 法向量
-        Returns:
-            [`Plane3`](./plane#class-plane3): 平面
-        """
     a, b, c = (normal.x, normal.y, normal.z)
     d = -a * point.x - b * point.y - c * point.z
     return cls(a, b, c, d)

@classmethod

method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3

説明: 工厂函数 由三点构造平面。

引数:

  • p1 (Point3): 点1
  • p2 (Point3): 点2
  • p3 (Point3): 点3

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
 def from_three_points(cls, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3':
-    """
-        工厂函数 由三点构造平面。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 点1
-            p2 (`Point3`): 点2
-            p3 (`Point3`): 点3
-        Returns:
-            平面
-        """
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
     return cls.from_point_and_normal(p1, normal)

@classmethod

method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3

説明: 工厂函数 由两直线构造平面。

引数:

  • l1 (Line3): 直线
  • l2 (Line3): 直线

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
 def from_two_lines(cls, l1: 'Line3', l2: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由两直线构造平面。
-        Args:
-            l1 ([`Line3`](./line#class-line3)): 直线
-            l2 (`Line3`): 直线
-        Returns:
-            平面
-        """
     v1 = l1.direction
     v2 = l2.point - l1.point
     if v2 == zero_vector3:
         v2 = l2.get_point(1) - l1.point
     return cls.from_point_and_normal(l1.point, v1.cross(v2))

@classmethod

method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3

説明: 工厂函数 由点和直线构造平面。

引数:

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
 def from_point_and_line(cls, point: 'Point3', line: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由点和直线构造平面。
-        Args:
-            point ([`Point3`](./point#class-point3)): 平面上一点
-            line ([`Line3`](./line#class-line3)): 直线
-        Returns:
-            平面
-        """
     return cls.from_point_and_normal(point, line.direction)

@overload

method __and__(self, other: Line3) -> Point3 | None

ソースコード または GitHubで表示
python
@overload
 def __and__(self, other: 'Line3') -> 'Point3 | None':
     ...

@overload

method __and__(self, other: Plane3) -> Line3 | None

ソースコード または GitHubで表示
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
     ...

method __and__(self, other)

説明: 取两平面的交集(人话:交线)

引数:

戻り値: Line3 | Point3 | None: 交集

例外:

ソースコード または GitHubで表示
python
def __and__(self, other):
-    """
-        取两平面的交集(人话:交线)
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Plane3`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [`Line3`](./line#class-line3) | [`Point3`](./point#class-point3) | [`None`](https%3A//docs.python.org/3/library/constants.html#None): 交集
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         if self.normal.is_parallel(other.normal):
             return None
@@ -236,16 +103,9 @@
         return self.cal_intersection_point3(other)
     else:
         raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

method __eq__(self, other) -> bool

説明: 判断两个平面是否等价。

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否等价

ソースコード または GitHubで表示
python
def __eq__(self, other) -> bool:
-    """
-        判断两个平面是否等价。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.approx(other)

method __rand__(self, other: Line3) -> Point3

ソースコード または GitHubで表示
python
def __rand__(self, other: 'Line3') -> 'Point3':
     return self.cal_intersection_point3(other)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/point.html b/ja/api/mp_math/point.html index ac35501..d16ca2a 100644 --- a/ja/api/mp_math/point.html +++ b/ja/api/mp_math/point.html @@ -6,12 +6,12 @@ mbcp.mp_math.point | MBCP ドキュメント - + - - + + - + @@ -19,58 +19,19 @@
Skip to content

モジュール mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

説明: 笛卡尔坐标系中的点。

引数:

  • x (float): x 坐标
  • y (float): y 坐标
  • z (float): z 坐标
ソースコード または GitHubで表示
python
def __init__(self, x: float, y: float, z: float):
-    """
-        笛卡尔坐标系中的点。
-        Args:
-            x ([`float`](https://docs.python.org/3/library/functions.html#float)): x 坐标
-            y (`float`): y 坐标
-            z (`float`): z 坐标
-        """
     self.x = x
     self.y = y
     self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

説明: 判断两个点是否近似相等。

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个点是否近似相等。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-            epsilon ([`float`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Vector3') -> 'Point3':
     ...

@overload

method self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
     ...

method self + other

説明: P + V -> P P + P -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __add__(self, other):
-    """
-        P + V -> P
-        P + P -> P
-        Args:
-            other ([`Vector3`](./vector#class-vector3) | [`Point3`](./point#class-point3)): 另一个点或向量
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

説明: 判断两个点是否相等。

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
-    """
-        判断两个点是否相等。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否相等
-        """
     return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

説明: P - P -> V

P - V -> P 已在 Vector3 中实现

引数:

戻り値: Vector3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other: 'Point3') -> 'Vector3':
-    """
-        P - P -> V
-
-        P - V -> P  已在 [`Vector3`](./vector#class-vector3) 中实现
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Vector3`](./vector#class-vector3): 新的向量
-        """
     from .vector import Vector3
     return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/segment.html b/ja/api/mp_math/segment.html index f5702e4..1db5d68 100644 --- a/ja/api/mp_math/segment.html +++ b/ja/api/mp_math/segment.html @@ -6,12 +6,12 @@ mbcp.mp_math.segment | MBCP ドキュメント - + - - + + - + @@ -19,12 +19,6 @@
Skip to content

モジュール mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

説明: 三维空间中的线段。

引数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
ソースコード または GitHubで表示
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
-    """
-        三维空间中的线段。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 线段的一个端点
-            p2 ([`Point3`](./point#class-point3)): 线段的另一个端点
-        """
     self.p1 = p1
     self.p2 = p2
     '方向向量'
@@ -33,7 +27,7 @@
     self.length = self.direction.length
     '中心点'
     self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/utils.html b/ja/api/mp_math/utils.html index 7923271..fe95f1a 100644 --- a/ja/api/mp_math/utils.html +++ b/ja/api/mp_math/utils.html @@ -6,12 +6,12 @@ mbcp.mp_math.utils | MBCP ドキュメント - + - - + + - + @@ -19,22 +19,7 @@
Skip to content

モジュール mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

説明: 区间限定函数

引数:

  • x (float): 值
  • min_ (float): 最小值
  • max_ (float): 最大值

戻り値: float: 限定在区间内的值

ソースコード または GitHubで表示
python
def clamp(x: float, min_: float, max_: float) -> float:
-    """
-    区间限定函数
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 值
-        min_ (`float`): 最小值
-        max_ (`float`): 最大值
-
-    Returns:
-        `float`: 限定在区间内的值
-    """
     return max(min(x, max_), min_)

class Approx

method __init__(self, value: RealNumber)

説明: 用于近似比较对象

引数:

ソースコード または GitHubで表示
python
def __init__(self, value: RealNumber):
-    """
-        用于近似比较对象
-        Args:
-            value ([`RealNumber`](./mp_math_typing#realnumber)): 实数
-        """
     self.value = value

method __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
@@ -48,46 +33,20 @@
             self.raise_type_error(other)

method raise_type_error(self, other)

ソースコード または GitHubで表示
python
def raise_type_error(self, other):
     raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

method __ne__(self, other)

ソースコード または GitHubで表示
python
def __ne__(self, other):
     return not self.__eq__(other)

func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool

説明: 判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

引数:

  • x (float): 数1
  • y (float): 数2
  • epsilon (float): 误差

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
-    """
-    判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数1
-        y (`float`): 数2
-        epsilon (`float`): 误差
-    Returns:
-        [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-    """
     return abs(x - y) < epsilon

func sign(x: float, only_neg: bool = False) -> str

説明: 获取数的符号。

引数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign(x: float, only_neg: bool=False) -> str:
-    """获取数的符号。
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([`bool`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [`str`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return '+' if not only_neg else ''
     elif x < 0:
         return '-'
     else:
         return ''

func sign_format(x: float, only_neg: bool = False) -> str

説明: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

引数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign_format(x: float, only_neg: bool=False) -> str:
-    """格式化符号数
-    -1 -> -1
-    1 -> +1
-    0 -> ""
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([`bool`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [`str`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return f'+{x}' if not only_neg else f'{x}'
     elif x < 0:
         return f'-{abs(x)}'
     else:
         return ''

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/vector.html b/ja/api/mp_math/vector.html index 3f30e2e..89dc6a9 100644 --- a/ja/api/mp_math/vector.html +++ b/ja/api/mp_math/vector.html @@ -6,12 +6,12 @@ mbcp.mp_math.vector | MBCP ドキュメント - + - - + + - + @@ -19,164 +19,47 @@
Skip to content

モジュール mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

説明: 3维向量

引数:

  • x (float): x轴分量
  • y (float): y轴分量
  • z (float): z轴分量
ソースコード または GitHubで表示
python
def __init__(self, x: float, y: float, z: float):
-    """
-        3维向量
-        Args:
-            x ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x轴分量
-            y (`float`): y轴分量
-            z (`float`): z轴分量
-        """
     self.x = x
     self.y = y
     self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似相等。

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似相等。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

説明: 计算两个向量之间的夹角。

TIP

向量夹角计算公式:

θ=arccos(v1v2|v1||v2|)

引数:

戻り値: AnyAngle: 夹角

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
-    """
-        计算两个向量之间的夹角。
-        :::tip
-        向量夹角计算公式:
-        $$\\theta = \\arccos(\\frac{v1 \\cdot v2}{|v1| \\cdot |v2|})$$
-        :::
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        """
     return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

説明: 向量积 叉乘:v1 x v2 -> v3

TIP

叉乘运算法则为:

v1×v2=(v1yv2zv1zv2y,v1zv2xv1xv2z,v1xv2yv1yv2x)

转换为行列式形式:

v1×v2=|ijkv1xv1yv1zv2xv2yv2z|

引数:

戻り値: Vector3: 叉乘结果

ソースコード または GitHubで表示
python
def cross(self, other: 'Vector3') -> 'Vector3':
-    """
-        向量积 叉乘:v1 x v2 -> v3
-
-        :::tip
-        叉乘运算法则为:
-        $$ v1 \\times v2 = (v1_y \\cdot v2_z - v1_z \\cdot v2_y, v1_z \\cdot v2_x - v1_x \\cdot v2_z, v1_x \\cdot v2_y - v1_y \\cdot v2_x) $$
-        转换为行列式形式:
-        $$ v1 \\times v2 = \\begin{vmatrix} i & j & k \\\\ v1_x & v1_y & v1_z \\\\ v2_x & v2_y & v2_z \\end{vmatrix} $$
-        :::
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`Vector3`](#class-vector3): 叉乘结果
-        """
     return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似平行。

引数:

戻り値: bool: 是否近似平行

ソースコード または GitHubで表示
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似平行。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

説明: 判断两个向量是否平行。

引数:

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Vector3') -> bool:
-    """
-        判断两个向量是否平行。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.cross(other).approx(zero_vector3)

method normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

ソースコード または GitHubで表示
python
def normalize(self):
-    """
-        将向量归一化。
-
-        自体归一化,不返回值。
-        """
     length = self.length
     self.x /= length
     self.y /= length
     self.z /= length

@property

method np_array(self) -> np.ndarray

戻り値: np.ndarray: numpy数组

ソースコード または GitHubで表示
python
@property
 def np_array(self) -> 'np.ndarray':
-    """
-        返回numpy数组
-        Returns:
-            [`np.ndarray`](https%3A//numpy.org/doc/stable/reference/generated/numpy.ndarray.html): numpy数组
-        """
     return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

説明: 向量的模。

戻り値: float: 模

ソースコード または GitHubで表示
python
@property
 def length(self) -> float:
-    """
-        向量的模。
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 模
-        """
     return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

説明: 获取该向量的单位向量。

戻り値: Vector3: 单位向量

ソースコード または GitHubで表示
python
@property
 def unit(self) -> 'Vector3':
-    """
-        获取该向量的单位向量。
-        Returns:
-            [`Vector3`](#class-vector3): 单位向量
-        """
     return self / self.length

method __abs__(self)

ソースコード または GitHubで表示
python
def __abs__(self):
     return self.length

@overload

method self + other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Vector3') -> 'Vector3':
     ...

@overload

method self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
     ...

method self + other

説明: V + P -> P

V + V -> V

引数:

戻り値: Vector3 | Point3: 新的向量或点

ソースコード または GitHubで表示
python
def __add__(self, other):
-    """
-        V + P -> P
-
-        V + V -> V
-        Args:
-            other ([`Vector3`](#class-vector3) | [`Point3`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [`Vector3`](#class-vector3) | [`Point3`](./point#class-point3): 新的向量或点
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)
     elif isinstance(other, Point3):
         return Point3(self.x + other.x, self.y + other.y, self.z + other.z)
     else:
         raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

説明: 判断两个向量是否相等。

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
-    """
-        判断两个向量是否相等。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否相等
-        """
     return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

説明: P + V -> P

别去点那边实现了。

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __radd__(self, other: 'Point3') -> 'Point3':
-    """
-        P + V -> P
-
-        别去点那边实现了。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
 def __sub__(self, other: 'Vector3') -> 'Vector3':
     ...

@overload

method self - other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __sub__(self, other: 'Point3') -> 'Point3':
     ...

method self - other

説明: V - P -> P

V - V -> V

引数:

戻り値: Vector3 | Point3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other):
-    """
-        V - P -> P
-
-        V - V -> V
-        Args:
-            other ([`Vector3`](#class-vector3) | [`Point3`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [`Vector3`](#class-vector3) | [`Point3`](./point#class-point3): 新的向量
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
     elif isinstance(other, Point3):
         return Point3(self.x - other.x, self.y - other.y, self.z - other.z)
     else:
         raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

説明: P - V -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __rsub__(self, other: 'Point3'):
-    """
-        P - V -> P
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     if isinstance(other, Point3):
         return Point3(other.x - self.x, other.y - self.y, other.z - self.z)
     else:
@@ -185,13 +68,6 @@
     ...

@overload

method self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
     ...

method self * other: int | float | Vector3 => Vector3

説明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

引数:

戻り値: Vector3: 数组运算结果

ソースコード または GitHubで表示
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
-    """
-        数组运算 非点乘。点乘使用@,叉乘使用cross。
-        Args:
-            other ([`Vector3`](#class-vector3) | [`float`](https%3A//docs.python.org/3/library/functions.html#float)): 另一个向量或数
-        Returns:
-            [`Vector3`](#class-vector): 数组运算结果
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)
     elif isinstance(other, (float, int)):
@@ -199,22 +75,10 @@
     else:
         raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
     return self.__mul__(other)

method self @ other: Vector3 => RealNumber

説明: 点乘。

引数:

戻り値: float: 点乘结果

ソースコード または GitHubで表示
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
-    """
-        点乘。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 点乘结果
-        """
     return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
     return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

説明: 取负。

戻り値: Vector3: 负向量

ソースコード または GitHubで表示
python
def __neg__(self) -> 'Vector3':
-    """
-        取负。
-        Returns:
-            [`Vector3`](#class-vector3): 负向量
-        """
     return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • 説明: 零向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 0, 0)

var x_axis

  • 説明: x轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(1, 0, 0)

var y_axis

  • 説明: y轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 1, 0)

var z_axis

  • 説明: z轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 0, 1)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/particle/index.html b/ja/api/particle/index.html index 1cd588f..8cb950d 100644 --- a/ja/api/particle/index.html +++ b/ja/api/particle/index.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/ja/api/presets/index.html b/ja/api/presets/index.html index fcc894c..aaa70af 100644 --- a/ja/api/presets/index.html +++ b/ja/api/presets/index.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/ja/api/presets/model/index.html b/ja/api/presets/model/index.html index 21dc400..7814bde 100644 --- a/ja/api/presets/model/index.html +++ b/ja/api/presets/model/index.html @@ -6,12 +6,12 @@ mbcp.presets.model | MBCP ドキュメント - + - - + + - + @@ -20,14 +20,6 @@
Skip to content

モジュール mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

説明: 生成球体上的点集。

引数:

  • radius:
  • density:

戻り値: List[Point3]: 球体上的点集。

ソースコード または GitHubで表示
python
@staticmethod
 def sphere(radius: float, density: float):
-    """
-        生成球体上的点集。
-        Args:
-            radius:
-            density:
-        Returns:
-            List[Point3]: 球体上的点集。
-        """
     area = 4 * np.pi * radius ** 2
     num = int(area * density)
     phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
@@ -36,7 +28,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/demo/best-practice.html b/ja/demo/best-practice.html index 38915d4..8f51e36 100644 --- a/ja/demo/best-practice.html +++ b/ja/demo/best-practice.html @@ -6,10 +6,10 @@ ベストプラクティス | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/ja/guide/index.html b/ja/guide/index.html index 46e139e..0878f75 100644 --- a/ja/guide/index.html +++ b/ja/guide/index.html @@ -6,10 +6,10 @@ 开始不了一点 | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

开始不了一点

12x111

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/index.html b/ja/index.html index 998beb9..59068f5 100644 --- a/ja/index.html +++ b/ja/index.html @@ -6,10 +6,10 @@ MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

MBCP

More basic change particle

ジオメトリ演算とパーティクル作成のためのライブラリ

MBCP logo

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/refer/index.html b/ja/refer/index.html index 388fd38..6d18a83 100644 --- a/ja/refer/index.html +++ b/ja/refer/index.html @@ -6,10 +6,10 @@ Reference | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

Reference

Help us to improve the documentation

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/refer/7-differential-euqtion/index.html b/refer/7-differential-euqtion/index.html index 99a472a..cc7a005 100644 --- a/refer/7-differential-euqtion/index.html +++ b/refer/7-differential-euqtion/index.html @@ -6,10 +6,10 @@ 微分方程 | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

微分方程

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/refer/function/curry.html b/refer/function/curry.html index da0bfa5..58cfad4 100644 --- a/refer/function/curry.html +++ b/refer/function/curry.html @@ -6,10 +6,10 @@ 柯里化 | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/refer/function/function.html b/refer/function/function.html index 00b2b6f..66ac971 100644 --- a/refer/function/function.html +++ b/refer/function/function.html @@ -6,10 +6,10 @@ 函数 | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/refer/index.html b/refer/index.html index 7687578..289a425 100644 --- a/refer/index.html +++ b/refer/index.html @@ -6,10 +6,10 @@ 参考 | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

Reference

Help us to improve the documentation

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/index.html b/zht/api/index.html index eee3661..a3ea43d 100644 --- a/zht/api/index.html +++ b/zht/api/index.html @@ -6,10 +6,10 @@ mbcp | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

模組 mbcp

本模块是主模块,提供了一些工具 可导入

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/angle.html b/zht/api/mp_math/angle.html index c436e7a..a5d60e7 100644 --- a/zht/api/mp_math/angle.html +++ b/zht/api/mp_math/angle.html @@ -6,12 +6,12 @@ mbcp.mp_math.angle | MBCP 文檔 - + - - + + - + @@ -19,92 +19,31 @@
Skip to content

模組 mbcp.mp_math.angle

本模块定义了角度相关的类

class Angle

class AnyAngle(Angle)

method __init__(self, value: float, is_radian: bool = False)

説明: 任意角度。

變數説明:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
源碼於GitHub上查看
python
def __init__(self, value: float, is_radian: bool=False):
-    """
-        任意角度。
-        Args:
-            value: 角度或弧度值
-            is_radian: 是否为弧度,默认为否
-        """
     if is_radian:
         self.radian = value
     else:
         self.radian = value * PI / 180

@property

method complementary(self) -> AnyAngle

説明: 余角:两角的和为90°。

返回: 余角

源碼於GitHub上查看
python
@property
 def complementary(self) -> 'AnyAngle':
-    """
-        余角:两角的和为90°。
-        Returns:
-            余角
-        """
     return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

method supplementary(self) -> AnyAngle

説明: 补角:两角的和为180°。

返回: 补角

源碼於GitHub上查看
python
@property
 def supplementary(self) -> 'AnyAngle':
-    """
-        补角:两角的和为180°。
-        Returns:
-            补角
-        """
     return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

method degree(self) -> float

説明: 角度。

返回: 弧度

源碼於GitHub上查看
python
@property
 def degree(self) -> float:
-    """
-        角度。
-        Returns:
-            弧度
-        """
     return self.radian * 180 / PI

@property

method minimum_positive(self) -> AnyAngle

説明: 最小正角。

返回: 最小正角度

源碼於GitHub上查看
python
@property
 def minimum_positive(self) -> 'AnyAngle':
-    """
-        最小正角。
-        Returns:
-            最小正角度
-        """
     return AnyAngle(self.radian % (2 * PI))

@property

method maximum_negative(self) -> AnyAngle

説明: 最大负角。

返回: 最大负角度

源碼於GitHub上查看
python
@property
 def maximum_negative(self) -> 'AnyAngle':
-    """
-        最大负角。
-        Returns:
-            最大负角度
-        """
     return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

method sin(self) -> float

説明: 正弦值。

返回: 正弦值

源碼於GitHub上查看
python
@property
 def sin(self) -> float:
-    """
-        正弦值。
-        Returns:
-            正弦值
-        """
     return math.sin(self.radian)

@property

method cos(self) -> float

説明: 余弦值。

返回: 余弦值

源碼於GitHub上查看
python
@property
 def cos(self) -> float:
-    """
-        余弦值。
-        Returns:
-            余弦值
-        """
     return math.cos(self.radian)

@property

method tan(self) -> float

説明: 正切值。

返回: 正切值

源碼於GitHub上查看
python
@property
 def tan(self) -> float:
-    """
-        正切值。
-        Returns:
-            正切值
-        """
     return math.tan(self.radian)

@property

method cot(self) -> float

説明: 余切值。

返回: 余切值

源碼於GitHub上查看
python
@property
 def cot(self) -> float:
-    """
-        余切值。
-        Returns:
-            余切值
-        """
     return 1 / math.tan(self.radian)

@property

method sec(self) -> float

説明: 正割值。

返回: 正割值

源碼於GitHub上查看
python
@property
 def sec(self) -> float:
-    """
-        正割值。
-        Returns:
-            正割值
-        """
     return 1 / math.cos(self.radian)

@property

method csc(self) -> float

説明: 余割值。

返回: 余割值

源碼於GitHub上查看
python
@property
 def csc(self) -> float:
-    """
-        余割值。
-        Returns:
-            余割值
-        """
     return 1 / math.sin(self.radian)

method self + other: AnyAngle => AnyAngle

源碼於GitHub上查看
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
     return AnyAngle(self.radian + other.radian, is_radian=True)

method __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
     return approx(self.radian, other.radian)

method self - other: AnyAngle => AnyAngle

源碼於GitHub上查看
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
@@ -117,7 +56,7 @@
     if isinstance(other, AnyAngle):
         return self.radian / other.radian
     return AnyAngle(self.radian / other, is_radian=True)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/const.html b/zht/api/mp_math/const.html index 4732eab..2a48918 100644 --- a/zht/api/mp_math/const.html +++ b/zht/api/mp_math/const.html @@ -6,10 +6,10 @@ mbcp.mp_math.const | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

模組 mbcp.mp_math.const

本模块定义了一些常用的常量

var PI

  • 説明: 常量 π

  • 默認值: math.pi

var E

  • 説明: 自然对数的底 exp(1)

  • 默認值: math.e

var GOLDEN_RATIO

  • 説明: 黄金分割比

  • 默認值: (1 + math.sqrt(5)) / 2

var GAMMA

  • 説明: 欧拉常数

  • 默認值: 0.5772156649015329

var EPSILON

  • 説明: 精度误差

  • 默認值: 0.0001

var APPROX

  • 説明: 约等于判定误差

  • 默認值: 0.001

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/equation.html b/zht/api/mp_math/equation.html index e9c93e3..1ff298d 100644 --- a/zht/api/mp_math/equation.html +++ b/zht/api/mp_math/equation.html @@ -6,12 +6,12 @@ mbcp.mp_math.equation | MBCP 文檔 - + - - + + - + @@ -19,46 +19,16 @@
Skip to content

模組 mbcp.mp_math.equation

本模块定义了方程相关的类和函数以及一些常用的数学函数

class CurveEquation

method __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)

説明: 曲线方程。

變數説明:

源碼於GitHub上查看
python
def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc):
-    """
-        曲线方程。
-        Args:
-            x_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): x函数
-            y_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): y函数
-            z_func ([`OneVarFunc`](./mp_math_typing#var-onevarfunc)): z函数
-        """
     self.x_func = x_func
     self.y_func = y_func
     self.z_func = z_func

method __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

説明: 计算曲线上的点。

變數説明:

  • *t:
  • 参数:

返回: 目标点

源碼於GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
-    """
-        计算曲线上的点。
-        Args:
-            *t:
-                参数
-        Returns:
-            目标点
-        """
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
         return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

説明: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

變數説明:

  • func (MultiVarsFunc): N元函数
  • var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
  • epsilon: 偏移量

返回: 偏导函数

抛出:

  • ValueError 无效变量类型
源碼於GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
-    """
-    求N元函数一阶偏导函数。这玩意不太稳定,慎用。
-    > [!warning]
-    > 目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升
-
-    Args:
-        func ([`MultiVarsFunc`](./mp_math_typing#var-multivarsfunc)): N元函数
-        var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
-        epsilon: 偏移量
-    Returns:
-        偏导函数
-    Raises:
-        ValueError: 无效变量类型
-    """
     if isinstance(var, int):
 
         def partial_derivative_func(*args: Var) -> Var:
-            """@litedoc-hide"""
             args_list_plus = list(args)
             args_list_plus[var] += epsilon
             args_list_minus = list(args)
@@ -68,14 +38,6 @@
     elif isinstance(var, tuple):
 
         def high_order_partial_derivative_func(*args: Var) -> Var:
-            """
-            @litedoc-hide
-            求高阶偏导函数
-            Args:
-                *args: 参数
-            Returns:
-                高阶偏导数值
-            """
             result_func = func
             for v in var:
                 result_func = get_partial_derivative_func(result_func, v, epsilon)
@@ -83,7 +45,7 @@
         return high_order_partial_derivative_func
     else:
         raise ValueError('Invalid var type')

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/function.html b/zht/api/mp_math/function.html index d00474c..80e665d 100644 --- a/zht/api/mp_math/function.html +++ b/zht/api/mp_math/function.html @@ -6,12 +6,12 @@ mbcp.mp_math.function | MBCP 文檔 - + - - + + - + @@ -19,18 +19,6 @@
Skip to content

模組 mbcp.mp_math.function

AAA

func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3

説明: 计算三元函数在某点的梯度向量。

TIP

已知一个函数f(x,y,z),则其在点(x0,y0,z0)处的梯度向量为: f(x0,y0,z0)=(fx,fy,fz)

變數説明:

返回: 梯度

源碼於GitHub上查看
python
def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float=EPSILON) -> Vector3:
-    """
-    计算三元函数在某点的梯度向量。
-    > [!tip]
-    > 已知一个函数$f(x, y, z)$,则其在点$(x_0, y_0, z_0)$处的梯度向量为:
-    $\\nabla f(x_0, y_0, z_0) = \\left(\\frac{\\partial f}{\\partial x}, \\frac{\\partial f}{\\partial y}, \\frac{\\partial f}{\\partial z}\\right)$
-    Args:
-        func ([`ThreeSingleVarsFunc`](./mp_math_typing#var-threesinglevarsfunc)): 三元函数
-        p ([`Point3`](./point#class-point3)): 点
-        epsilon: 偏移量
-    Returns:
-        梯度
-    """
     dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
     dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
     dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
@@ -38,29 +26,11 @@
     return a + b + c
 add_curried = curry(add, 1, 2)
 add_curried(3)  # 6
源碼於GitHub上查看
python
def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc:
-    """
-    对多参数函数进行柯里化。
-    > [!tip]
-    > 有关函数柯里化,可参考[函数式编程--柯理化(Currying)](https://zhuanlan.zhihu.com/p/355859667)
-    Args:
-        func ([`MultiVarsFunc`](./mp_math_typing#var-multivarsfunc)): 函数
-        *args ([`Var`](./mp_math_typing#var-var)): 参数
-    Returns:
-        柯里化后的函数
-    Examples:
-        ```python
-        def add(a: int, b: int, c: int) -> int:
-            return a + b + c
-        add_curried = curry(add, 1, 2)
-        add_curried(3)  # 6
-        ```
-    """
 
     def curried_func(*args2: Var) -> Var:
-        """@litedoc-hide"""
         return func(*args, *args2)
     return curried_func

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/index.html b/zht/api/mp_math/index.html index 5a69c65..7eb9dc0 100644 --- a/zht/api/mp_math/index.html +++ b/zht/api/mp_math/index.html @@ -6,10 +6,10 @@ mbcp.mp_math | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

模組 mbcp.mp_math

本包定义了一些常用的导入,可直接从mbcp.mp_math导入使用 导入的类有:

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/line.html b/zht/api/mp_math/line.html index 98f28ba..fa4b3e1 100644 --- a/zht/api/mp_math/line.html +++ b/zht/api/mp_math/line.html @@ -6,12 +6,12 @@ mbcp.mp_math.line | MBCP 文檔 - + - - + + - + @@ -19,40 +19,10 @@
Skip to content

模組 mbcp.mp_math.line

本模块定义了三维空间中的直线类

class Line3

method __init__(self, point: Point3, direction: Vector3)

説明: 三维空间中的直线。由一个点和一个方向向量确定。

變數説明:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
源碼於GitHub上查看
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
-    """
-        三维空间中的直线。由一个点和一个方向向量确定。
-        Args:
-            point ([`Point3`](./point#class-point3)): 直线上的一点
-            direction ([`Vector3`](./vector#class-vector3)): 方向向量
-        """
     self.point = point
     self.direction = direction

method approx(self, other: Line3, epsilon: float = APPROX) -> bool

説明: 判断两条直线是否近似相等。

變數説明:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
-    """
-        判断两条直线是否近似相等。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-            epsilon ([`float`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return self.is_approx_parallel(other, epsilon) and (self.point - other.point).is_approx_parallel(self.direction, epsilon)

method cal_angle(self, other: Line3) -> AnyAngle

説明: 计算直线和直线之间的夹角。

變數説明:

  • other (Line3): 另一条直线

返回: AnyAngle: 夹角

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
-    """
-        计算直线和直线之间的夹角。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        """
     return self.direction.cal_angle(other.direction)

method cal_distance(self, other: Line3 | Point3) -> float

説明: 计算直线和直线或点之间的距离。

變數説明:

返回: float: 距离

抛出:

源碼於GitHub上查看
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
-    """
-        计算直线和直线或点之间的距离。
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Point3`](./point#class-point3)): 另一条直线或点
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         if self == other:
             return 0
@@ -66,91 +36,19 @@
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
         raise TypeError('Unsupported type.')

method cal_intersection(self, other: Line3) -> Point3

説明: 计算两条直线的交点。

變數説明:

  • other (Line3): 另一条直线

返回: Point3: 交点

抛出:

源碼於GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
-    """
-        计算两条直线的交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`Point3`](./point#class-point3): 交点
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 直线平行
-            `ValueError`: 直线不共面
-        """
     if self.is_parallel(other):
         raise ValueError('Lines are parallel and do not intersect.')
     if not self.is_coplanar(other):
         raise ValueError('Lines are not coplanar and do not intersect.')
     return self.point + self.direction.cross(other.direction) @ other.direction.cross(self.point - other.point) / self.direction.cross(other.direction).length ** 2 * self.direction

method cal_perpendicular(self, point: Point3) -> Line3

説明: 计算直线经过指定点p的垂线。

變數説明:

返回: Line3: 垂线

源碼於GitHub上查看
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
-    """
-        计算直线经过指定点p的垂线。
-        Args:
-            point ([`Point3`](./point#class-point3)): 指定点
-        Returns:
-            [`Line3`](./line#class-line3): 垂线
-        """
     return Line3(point, self.direction.cross(point - self.point))

method get_point(self, t: RealNumber) -> Point3

説明: 获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。

變數説明:

返回: Point3: 点

源碼於GitHub上查看
python
def get_point(self, t: RealNumber) -> 'Point3':
-    """
-        获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。
-        Args:
-            t ([`RealNumber`](./mp_math_typing#var-realnumber)): 参数t
-        Returns:
-            [`Point3`](./point#class-point3): 点
-        """
     return self.point + t * self.direction

method get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]

説明: 获取直线的参数方程。

返回: tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]: 参数方程

源碼於GitHub上查看
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
-    """
-        获取直线的参数方程。
-        Returns:
-            [`tuple`](https%3A//docs.python.org/3/library/stdtypes.html#tuple)[[`OneSingleVarFunc`](./mp_math_typing#var-onesinglevarfunc), `OneSingleVarFunc`, `OneSingleVarFunc`]: 参数方程
-        """
     return (lambda t: self.point.x + self.direction.x * t, lambda t: self.point.y + self.direction.y * t, lambda t: self.point.z + self.direction.z * t)

method is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool

説明: 判断两条直线是否近似平行。

變數説明:

  • other (Line3): 另一条直线
  • epsilon (float): 误差

返回: bool: 是否近似平行

源碼於GitHub上查看
python
def is_approx_parallel(self, other: 'Line3', epsilon: float=1e-06) -> bool:
-    """
-        判断两条直线是否近似平行。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.direction.is_approx_parallel(other.direction, epsilon)

method is_parallel(self, other: Line3) -> bool

説明: 判断两条直线是否平行。

變數説明:

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否平行。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.direction.is_parallel(other.direction)

method is_collinear(self, other: Line3) -> bool

説明: 判断两条直线是否共线。

變數説明:

返回: bool: 是否共线

源碼於GitHub上查看
python
def is_collinear(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共线。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共线
-        """
     return self.is_parallel(other) and (self.point - other.point).is_parallel(self.direction)

method is_point_on(self, point: Point3) -> bool

説明: 判断点是否在直线上。

變數説明:

返回: bool: 是否在直线上

源碼於GitHub上查看
python
def is_point_on(self, point: 'Point3') -> bool:
-    """
-        判断点是否在直线上。
-        Args:
-            point ([`Point3`](./point#class-point3)): 点
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
-        """
     return (point - self.point).is_parallel(self.direction)

method is_coplanar(self, other: Line3) -> bool

説明: 判断两条直线是否共面。 充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。

變數説明:

返回: bool: 是否共面

源碼於GitHub上查看
python
def is_coplanar(self, other: 'Line3') -> bool:
-    """
-        判断两条直线是否共面。
-        充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
-        """
     return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

説明: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

源碼於GitHub上查看
python
def simplify(self):
-    """
-        简化直线方程,等价相等。
-        自体简化,不返回值。
-
-        按照可行性一次对x y z 化 0 处理,并对向量单位化
-        """
     self.direction.normalize()
     if self.direction.x == 0:
         self.point.x = 0
@@ -159,40 +57,16 @@
     if self.direction.z == 0:
         self.point.z = 0

@classmethod

method from_two_points(cls, p1: Point3, p2: Point3) -> Line3

説明: 工厂函数 由两点构造直线。

變數説明:

返回: Line3: 直线

源碼於GitHub上查看
python
@classmethod
 def from_two_points(cls, p1: 'Point3', p2: 'Point3') -> 'Line3':
-    """
-        工厂函数 由两点构造直线。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 点1
-            p2 ([`Point3`](./point#class-point3)): 点2
-        Returns:
-            [`Line3`](./line#class-line3): 直线
-        """
     direction = p2 - p1
     return cls(p1, direction)

method __and__(self, other: Line3) -> Line3 | Point3 | None

説明: 计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。

變數説明:

  • other (Line3): 另一条直线

返回: Line3 | Point3 | None: 交集

源碼於GitHub上查看
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
-    """
-        计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`Line3`](./line#class-line3) | [`Point3`](./point#class-point3) | [`None`](https://docs.python.org/3/library/constants.html#None): 交集
-        """
     if self.is_collinear(other):
         return self
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
         return self.cal_intersection(other)

method __eq__(self, other) -> bool

説明: 判断两条直线是否等价。

v1 // v2 ∧ (p1 - p2) // v1

變數説明:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源碼於GitHub上查看
python
def __eq__(self, other) -> bool:
-    """
-        判断两条直线是否等价。
-
-        v1 // v2 ∧ (p1 - p2) // v1
-        Args:
-            other ([`Line3`](./line#class-line3)): 另一条直线
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/mp_math_typing.html b/zht/api/mp_math/mp_math_typing.html index 0124ece..ce1a5c7 100644 --- a/zht/api/mp_math/mp_math_typing.html +++ b/zht/api/mp_math/mp_math_typing.html @@ -6,10 +6,10 @@ mbcp.mp_math.mp_math_typing | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

模組 mbcp.mp_math.mp_math_typing

本模块用于内部类型提示

var RealNumber

  • 説明: 实数

  • 類型: TypeAlias

  • 默認值: int | float

var Number

  • 説明: 数

  • 類型: TypeAlias

  • 默認值: RealNumber | complex

var SingleVar

  • 説明: 单变量

  • 默認值: TypeVar('SingleVar', bound=Number)

var ArrayVar

  • 説明: 数组变量

  • 默認值: TypeVar('ArrayVar', bound=Iterable[Number])

var Var

  • 説明: 变量

  • 類型: TypeAlias

  • 默認值: SingleVar | ArrayVar

var OneSingleVarFunc

  • 説明: 一元单变量函数

  • 類型: TypeAlias

  • 默認值: Callable[[SingleVar], SingleVar]

var OneArrayFunc

  • 説明: 一元数组函数

  • 類型: TypeAlias

  • 默認值: Callable[[ArrayVar], ArrayVar]

var OneVarFunc

  • 説明: 一元函数

  • 類型: TypeAlias

  • 默認值: OneSingleVarFunc | OneArrayFunc

var TwoSingleVarsFunc

  • 説明: 二元单变量函数

  • 類型: TypeAlias

  • 默認值: Callable[[SingleVar, SingleVar], SingleVar]

var TwoArraysFunc

  • 説明: 二元数组函数

  • 類型: TypeAlias

  • 默認值: Callable[[ArrayVar, ArrayVar], ArrayVar]

var TwoVarsFunc

  • 説明: 二元函数

  • 類型: TypeAlias

  • 默認值: TwoSingleVarsFunc | TwoArraysFunc

var ThreeSingleVarsFunc

  • 説明: 三元单变量函数

  • 類型: TypeAlias

  • 默認值: Callable[[SingleVar, SingleVar, SingleVar], SingleVar]

var ThreeArraysFunc

  • 説明: 三元数组函数

  • 類型: TypeAlias

  • 默認值: Callable[[ArrayVar, ArrayVar, ArrayVar], ArrayVar]

var ThreeVarsFunc

  • 説明: 三元函数

  • 類型: TypeAlias

  • 默認值: ThreeSingleVarsFunc | ThreeArraysFunc

var MultiSingleVarsFunc

  • 説明: 多元单变量函数

  • 類型: TypeAlias

  • 默認值: Callable[..., SingleVar]

var MultiArraysFunc

  • 説明: 多元数组函数

  • 類型: TypeAlias

  • 默認值: Callable[..., ArrayVar]

var MultiVarsFunc

  • 説明: 多元函数

  • 類型: TypeAlias

  • 默認值: MultiSingleVarsFunc | MultiArraysFunc

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/plane.html b/zht/api/mp_math/plane.html index e55ed3c..3fae06a 100644 --- a/zht/api/mp_math/plane.html +++ b/zht/api/mp_math/plane.html @@ -6,12 +6,12 @@ mbcp.mp_math.plane | MBCP 文檔 - + - - + + - + @@ -19,25 +19,10 @@
Skip to content

模組 mbcp.mp_math.plane

本模块定义了三维空间中的平面类

class Plane3

method __init__(self, a: float, b: float, c: float, d: float)

説明: 平面方程:ax + by + cz + d = 0

變數説明:

  • a (float): x系数
  • b (float): y系数
  • c (float): z系数
  • d (float): 常数项
源碼於GitHub上查看
python
def __init__(self, a: float, b: float, c: float, d: float):
-    """
-        平面方程:ax + by + cz + d = 0
-        Args:
-            a ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x系数
-            b (`float`): y系数
-            c (`float`): z系数
-            d (`float`): 常数项
-        """
     self.a = a
     self.b = b
     self.c = c
     self.d = d

method approx(self, other: Plane3) -> bool

説明: 判断两个平面是否近似相等。

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否近似相等。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     if self.a != 0:
         k = other.a / self.a
         return approx(other.b, self.b * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
@@ -49,66 +34,18 @@
         return approx(other.a, self.a * k) and approx(other.b, self.b * k) and approx(other.d, self.d * k)
     else:
         return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

説明: 计算平面与平面之间的夹角。

TIP

平面间夹角计算公式:

θ=arccos(n1n2|n1||n2|)

其中 n1n2 分别为两个平面的法向量

TIP

平面与直线夹角计算公式:

θ=arccos(nd|n||d|)

其中 n 为平面的法向量,d 为直线的方向向量

變數説明:

返回: AnyAngle: 夹角

抛出:

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
-    """
-        计算平面与平面之间的夹角。
-        :::tip
-        平面间夹角计算公式:
-        $$\\theta = \\arccos(\\frac{n1 \\cdot n2}{|n1| \\cdot |n2|})$$
-        其中 $n1$ 和 $n2$ 分别为两个平面的法向量
-        :::
-        :::tip
-        平面与直线夹角计算公式:
-        $$\\theta = \\arccos(\\frac{n \\cdot d}{|n| \\cdot |d|})$$
-        其中 $n$ 为平面的法向量,$d$ 为直线的方向向量
-        :::
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Plane3`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Line3):
         return self.normal.cal_angle(other.direction).complementary
     elif isinstance(other, Plane3):
         return AnyAngle(math.acos(self.normal @ other.normal / (self.normal.length * other.normal.length)), is_radian=True)
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_distance(self, other: Plane3 | Point3) -> float

説明: 计算平面与平面或点之间的距离。

變數説明:

返回: float: 距离

抛出:

源碼於GitHub上查看
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
-    """
-        计算平面与平面或点之间的距离。
-        Args:
-            other ([`Plane3`](./plane#class-plane3) | [`Point3`](./point#class-point3)): 另一个平面或点
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 距离
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         return 0
     elif isinstance(other, Point3):
         return abs(self.a * other.x + self.b * other.y + self.c * other.z + self.d) / (self.a ** 2 + self.b ** 2 + self.c ** 2) ** 0.5
     else:
         raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

説明: 计算两平面的交线。

TIP

计算两平面交线的一般步骤:

  1. 求两平面的法向量的叉乘得到方向向量
d=n1×n2
  1. 寻找直线上的一点,依次假设x=0, y=0, z=0,并代入两平面方程求出合适的点 直线最终可用参数方程或点向式表示
{x=x0+dty=y0+dtz=z0+dt

xx0m=yy0n=zz0p

變數説明:

  • other (Plane3): 另一个平面

返回: Line3: 交线

抛出:

源碼於GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
-    """
-        计算两平面的交线。
-        :::tip
-        计算两平面交线的一般步骤:
-        1. 求两平面的法向量的叉乘得到方向向量
-        $$ d = n1 \\times n2 $$
-        2. 寻找直线上的一点,依次假设$x=0$, $y=0$, $z=0$,并代入两平面方程求出合适的点
-        直线最终可用参数方程或点向式表示
-        $$ \\begin{cases} x = x_0 + dt \\\\ y = y_0 + dt \\\\ z = z_0 + dt \\end{cases} $$
-
-        $$ \\frac{x - x_0}{m} = \\frac{y - y_0}{n} = \\frac{z - z_0}{p} $$
-        :::
-
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`Line3`](./line#class-line3): 交线
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面平行且无交线
-        """
     if self.normal.is_parallel(other.normal):
         raise ValueError('Planes are parallel and have no intersection.')
     direction = self.normal.cross(other.normal)
@@ -126,106 +63,36 @@
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
     return Line3(Point3(x, y, z), direction)

method cal_intersection_point3(self, other: Line3) -> Point3

説明: 计算平面与直线的交点。

變數説明:

返回: Point3: 交点

抛出:

源碼於GitHub上查看
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
-    """
-        计算平面与直线的交点。
-        Args:
-            other ([`Line3`](./line#class-line3)): 直线
-        Returns:
-            [`Point3`](./point#class-point3): 交点
-        Raises:
-            [`ValueError`](https%3A//docs.python.org/3/library/exceptions.html#ValueError): 平面与直线平行或重合
-        """
     if self.normal @ other.direction == 0:
         raise ValueError('The plane and the line are parallel or coincident.')
     x, y, z = other.get_parametric_equations()
     t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)
     return Point3(x(t), y(t), z(t))

method cal_parallel_plane3(self, point: Point3) -> Plane3

説明: 计算平行于该平面且过指定点的平面。

變數説明:

返回: Plane3: 平面

源碼於GitHub上查看
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
-    """
-        计算平行于该平面且过指定点的平面。
-        Args:
-            point ([`Point3`](./point#class-point3)): 指定点
-        Returns:
-            [`Plane3`](./plane#class-plane3): 平面
-        """
     return Plane3.from_point_and_normal(point, self.normal)

method is_parallel(self, other: Plane3) -> bool

説明: 判断两个平面是否平行。

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Plane3') -> bool:
-    """
-        判断两个平面是否平行。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.normal.is_parallel(other.normal)

@property

method normal(self) -> Vector3

説明: 平面的法向量。

返回: Vector3: 法向量

源碼於GitHub上查看
python
@property
 def normal(self) -> 'Vector3':
-    """
-        平面的法向量。
-        Returns:
-            [`Vector3`](./vector#class-vector3): 法向量
-        """
     return Vector3(self.a, self.b, self.c)

@classmethod

method from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3

説明: 工厂函数 由点和法向量构造平面(点法式构造)。

變數説明:

返回: Plane3: 平面

源碼於GitHub上查看
python
@classmethod
 def from_point_and_normal(cls, point: 'Point3', normal: 'Vector3') -> 'Plane3':
-    """
-        工厂函数 由点和法向量构造平面(点法式构造)。
-        Args:
-            point ([`Point3`](./point#class-point3)): 平面上一点
-            normal ([`Vector3`](./vector#class-vector3)): 法向量
-        Returns:
-            [`Plane3`](./plane#class-plane3): 平面
-        """
     a, b, c = (normal.x, normal.y, normal.z)
     d = -a * point.x - b * point.y - c * point.z
     return cls(a, b, c, d)

@classmethod

method from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3

説明: 工厂函数 由三点构造平面。

變數説明:

  • p1 (Point3): 点1
  • p2 (Point3): 点2
  • p3 (Point3): 点3

返回: 平面

源碼於GitHub上查看
python
@classmethod
 def from_three_points(cls, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3':
-    """
-        工厂函数 由三点构造平面。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 点1
-            p2 (`Point3`): 点2
-            p3 (`Point3`): 点3
-        Returns:
-            平面
-        """
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
     return cls.from_point_and_normal(p1, normal)

@classmethod

method from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3

説明: 工厂函数 由两直线构造平面。

變數説明:

  • l1 (Line3): 直线
  • l2 (Line3): 直线

返回: 平面

源碼於GitHub上查看
python
@classmethod
 def from_two_lines(cls, l1: 'Line3', l2: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由两直线构造平面。
-        Args:
-            l1 ([`Line3`](./line#class-line3)): 直线
-            l2 (`Line3`): 直线
-        Returns:
-            平面
-        """
     v1 = l1.direction
     v2 = l2.point - l1.point
     if v2 == zero_vector3:
         v2 = l2.get_point(1) - l1.point
     return cls.from_point_and_normal(l1.point, v1.cross(v2))

@classmethod

method from_point_and_line(cls, point: Point3, line: Line3) -> Plane3

説明: 工厂函数 由点和直线构造平面。

變數説明:

返回: 平面

源碼於GitHub上查看
python
@classmethod
 def from_point_and_line(cls, point: 'Point3', line: 'Line3') -> 'Plane3':
-    """
-        工厂函数 由点和直线构造平面。
-        Args:
-            point ([`Point3`](./point#class-point3)): 平面上一点
-            line ([`Line3`](./line#class-line3)): 直线
-        Returns:
-            平面
-        """
     return cls.from_point_and_normal(point, line.direction)

@overload

method __and__(self, other: Line3) -> Point3 | None

源碼於GitHub上查看
python
@overload
 def __and__(self, other: 'Line3') -> 'Point3 | None':
     ...

@overload

method __and__(self, other: Plane3) -> Line3 | None

源碼於GitHub上查看
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
     ...

method __and__(self, other)

説明: 取两平面的交集(人话:交线)

變數説明:

返回: Line3 | Point3 | None: 交集

抛出:

源碼於GitHub上查看
python
def __and__(self, other):
-    """
-        取两平面的交集(人话:交线)
-        Args:
-            other ([`Line3`](./line#class-line3) | [`Plane3`](./plane#class-plane3)): 另一个平面或直线
-        Returns:
-            [`Line3`](./line#class-line3) | [`Point3`](./point#class-point3) | [`None`](https%3A//docs.python.org/3/library/constants.html#None): 交集
-        Raises:
-            [`TypeError`](https%3A//docs.python.org/3/library/exceptions.html#TypeError): 不支持的类型
-        """
     if isinstance(other, Plane3):
         if self.normal.is_parallel(other.normal):
             return None
@@ -236,16 +103,9 @@
         return self.cal_intersection_point3(other)
     else:
         raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

method __eq__(self, other) -> bool

説明: 判断两个平面是否等价。

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否等价

源碼於GitHub上查看
python
def __eq__(self, other) -> bool:
-    """
-        判断两个平面是否等价。
-        Args:
-            other ([`Plane3`](./plane#class-plane3)): 另一个平面
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
-        """
     return self.approx(other)

method __rand__(self, other: Line3) -> Point3

源碼於GitHub上查看
python
def __rand__(self, other: 'Line3') -> 'Point3':
     return self.cal_intersection_point3(other)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/point.html b/zht/api/mp_math/point.html index 1f4b4cc..d9e16f9 100644 --- a/zht/api/mp_math/point.html +++ b/zht/api/mp_math/point.html @@ -6,12 +6,12 @@ mbcp.mp_math.point | MBCP 文檔 - + - - + + - + @@ -19,58 +19,19 @@
Skip to content

模組 mbcp.mp_math.point

本模块定义了三维空间中点的类。

class Point3

method __init__(self, x: float, y: float, z: float)

説明: 笛卡尔坐标系中的点。

變數説明:

  • x (float): x 坐标
  • y (float): y 坐标
  • z (float): z 坐标
源碼於GitHub上查看
python
def __init__(self, x: float, y: float, z: float):
-    """
-        笛卡尔坐标系中的点。
-        Args:
-            x ([`float`](https://docs.python.org/3/library/functions.html#float)): x 坐标
-            y (`float`): y 坐标
-            z (`float`): z 坐标
-        """
     self.x = x
     self.y = y
     self.z = z

method approx(self, other: Point3, epsilon: float = APPROX) -> bool

説明: 判断两个点是否近似相等。

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个点是否近似相等。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-            epsilon ([`float`](https://docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

@overload

method self + other: Vector3 => Point3

源碼於GitHub上查看
python
@overload
 def __add__(self, other: 'Vector3') -> 'Point3':
     ...

@overload

method self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
     ...

method self + other

説明: P + V -> P P + P -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __add__(self, other):
-    """
-        P + V -> P
-        P + P -> P
-        Args:
-            other ([`Vector3`](./vector#class-vector3) | [`Point3`](./point#class-point3)): 另一个点或向量
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

method __eq__(self, other)

説明: 判断两个点是否相等。

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
-    """
-        判断两个点是否相等。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否相等
-        """
     return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self - other: Point3 => Vector3

説明: P - P -> V

P - V -> P 已在 Vector3 中实现

變數説明:

返回: Vector3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':
-    """
-        P - P -> V
-
-        P - V -> P  已在 [`Vector3`](./vector#class-vector3) 中实现
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Vector3`](./vector#class-vector3): 新的向量
-        """
     from .vector import Vector3
     return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/segment.html b/zht/api/mp_math/segment.html index 3d08a12..8f6425b 100644 --- a/zht/api/mp_math/segment.html +++ b/zht/api/mp_math/segment.html @@ -6,12 +6,12 @@ mbcp.mp_math.segment | MBCP 文檔 - + - - + + - + @@ -19,12 +19,6 @@
Skip to content

模組 mbcp.mp_math.segment

本模块定义了三维空间中的线段类

class Segment3

method __init__(self, p1: Point3, p2: Point3)

説明: 三维空间中的线段。

變數説明:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源碼於GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
-    """
-        三维空间中的线段。
-        Args:
-            p1 ([`Point3`](./point#class-point3)): 线段的一个端点
-            p2 ([`Point3`](./point#class-point3)): 线段的另一个端点
-        """
     self.p1 = p1
     self.p2 = p2
     '方向向量'
@@ -33,7 +27,7 @@
     self.length = self.direction.length
     '中心点'
     self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/utils.html b/zht/api/mp_math/utils.html index 2cd52f2..016a8bf 100644 --- a/zht/api/mp_math/utils.html +++ b/zht/api/mp_math/utils.html @@ -6,12 +6,12 @@ mbcp.mp_math.utils | MBCP 文檔 - + - - + + - + @@ -19,22 +19,7 @@
Skip to content

模組 mbcp.mp_math.utils

本模块定义了一些常用的工具函数

func clamp(x: float, min_: float, max_: float) -> float

説明: 区间限定函数

變數説明:

  • x (float): 值
  • min_ (float): 最小值
  • max_ (float): 最大值

返回: float: 限定在区间内的值

源碼於GitHub上查看
python
def clamp(x: float, min_: float, max_: float) -> float:
-    """
-    区间限定函数
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 值
-        min_ (`float`): 最小值
-        max_ (`float`): 最大值
-
-    Returns:
-        `float`: 限定在区间内的值
-    """
     return max(min(x, max_), min_)

class Approx

method __init__(self, value: RealNumber)

説明: 用于近似比较对象

變數説明:

源碼於GitHub上查看
python
def __init__(self, value: RealNumber):
-    """
-        用于近似比较对象
-        Args:
-            value ([`RealNumber`](./mp_math_typing#realnumber)): 实数
-        """
     self.value = value

method __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
@@ -48,46 +33,20 @@
             self.raise_type_error(other)

method raise_type_error(self, other)

源碼於GitHub上查看
python
def raise_type_error(self, other):
     raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

method __ne__(self, other)

源碼於GitHub上查看
python
def __ne__(self, other):
     return not self.__eq__(other)

func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool

説明: 判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

變數説明:

  • x (float): 数1
  • y (float): 数2
  • epsilon (float): 误差

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
-    """
-    判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数1
-        y (`float`): 数2
-        epsilon (`float`): 误差
-    Returns:
-        [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
-    """
     return abs(x - y) < epsilon

func sign(x: float, only_neg: bool = False) -> str

説明: 获取数的符号。

變數説明:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign(x: float, only_neg: bool=False) -> str:
-    """获取数的符号。
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([`bool`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [`str`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return '+' if not only_neg else ''
     elif x < 0:
         return '-'
     else:
         return ''

func sign_format(x: float, only_neg: bool = False) -> str

説明: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

變數説明:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
-    """格式化符号数
-    -1 -> -1
-    1 -> +1
-    0 -> ""
-    Args:
-        x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数
-        only_neg ([`bool`](https://docs.python.org/3/library/functions.html#bool)): 是否只返回负数的符号
-    Returns:
-        [`str`](https://docs.python.org/3/library/functions.html#str): 符号 + - ""
-    """
     if x > 0:
         return f'+{x}' if not only_neg else f'{x}'
     elif x < 0:
         return f'-{abs(x)}'
     else:
         return ''

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/vector.html b/zht/api/mp_math/vector.html index 93a7007..96c3bf2 100644 --- a/zht/api/mp_math/vector.html +++ b/zht/api/mp_math/vector.html @@ -6,12 +6,12 @@ mbcp.mp_math.vector | MBCP 文檔 - + - - + + - + @@ -19,164 +19,47 @@
Skip to content

模組 mbcp.mp_math.vector

本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

method __init__(self, x: float, y: float, z: float)

説明: 3维向量

變數説明:

  • x (float): x轴分量
  • y (float): y轴分量
  • z (float): z轴分量
源碼於GitHub上查看
python
def __init__(self, x: float, y: float, z: float):
-    """
-        3维向量
-        Args:
-            x ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): x轴分量
-            y (`float`): y轴分量
-            z (`float`): z轴分量
-        """
     self.x = x
     self.y = y
     self.z = z

method approx(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似相等。

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似相等。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似相等
-        """
     return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

method cal_angle(self, other: Vector3) -> AnyAngle

説明: 计算两个向量之间的夹角。

TIP

向量夹角计算公式:

θ=arccos(v1v2|v1||v2|)

變數説明:

返回: AnyAngle: 夹角

源碼於GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
-    """
-        计算两个向量之间的夹角。
-        :::tip
-        向量夹角计算公式:
-        $$\\theta = \\arccos(\\frac{v1 \\cdot v2}{|v1| \\cdot |v2|})$$
-        :::
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`AnyAngle`](./angle#class-anyangle): 夹角
-        """
     return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

説明: 向量积 叉乘:v1 x v2 -> v3

TIP

叉乘运算法则为:

v1×v2=(v1yv2zv1zv2y,v1zv2xv1xv2z,v1xv2yv1yv2x)

转换为行列式形式:

v1×v2=|ijkv1xv1yv1zv2xv2yv2z|

變數説明:

返回: Vector3: 叉乘结果

源碼於GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':
-    """
-        向量积 叉乘:v1 x v2 -> v3
-
-        :::tip
-        叉乘运算法则为:
-        $$ v1 \\times v2 = (v1_y \\cdot v2_z - v1_z \\cdot v2_y, v1_z \\cdot v2_x - v1_x \\cdot v2_z, v1_x \\cdot v2_y - v1_y \\cdot v2_x) $$
-        转换为行列式形式:
-        $$ v1 \\times v2 = \\begin{vmatrix} i & j & k \\\\ v1_x & v1_y & v1_z \\\\ v2_x & v2_y & v2_z \\end{vmatrix} $$
-        :::
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`Vector3`](#class-vector3): 叉乘结果
-        """
     return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

method is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似平行。

變數説明:

返回: bool: 是否近似平行

源碼於GitHub上查看
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
-    """
-        判断两个向量是否近似平行。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-            epsilon ([`float`](https%3A//docs.python.org/3/library/functions.html#float)): 误差
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
-        """
     return self.cross(other).length < epsilon

method is_parallel(self, other: Vector3) -> bool

説明: 判断两个向量是否平行。

變數説明:

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> bool:
-    """
-        判断两个向量是否平行。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
-        """
     return self.cross(other).approx(zero_vector3)

method normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

源碼於GitHub上查看
python
def normalize(self):
-    """
-        将向量归一化。
-
-        自体归一化,不返回值。
-        """
     length = self.length
     self.x /= length
     self.y /= length
     self.z /= length

@property

method np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源碼於GitHub上查看
python
@property
 def np_array(self) -> 'np.ndarray':
-    """
-        返回numpy数组
-        Returns:
-            [`np.ndarray`](https%3A//numpy.org/doc/stable/reference/generated/numpy.ndarray.html): numpy数组
-        """
     return np.array([self.x, self.y, self.z])

@property

method length(self) -> float

説明: 向量的模。

返回: float: 模

源碼於GitHub上查看
python
@property
 def length(self) -> float:
-    """
-        向量的模。
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 模
-        """
     return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

method unit(self) -> Vector3

説明: 获取该向量的单位向量。

返回: Vector3: 单位向量

源碼於GitHub上查看
python
@property
 def unit(self) -> 'Vector3':
-    """
-        获取该向量的单位向量。
-        Returns:
-            [`Vector3`](#class-vector3): 单位向量
-        """
     return self / self.length

method __abs__(self)

源碼於GitHub上查看
python
def __abs__(self):
     return self.length

@overload

method self + other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
 def __add__(self, other: 'Vector3') -> 'Vector3':
     ...

@overload

method self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
     ...

method self + other

説明: V + P -> P

V + V -> V

變數説明:

返回: Vector3 | Point3: 新的向量或点

源碼於GitHub上查看
python
def __add__(self, other):
-    """
-        V + P -> P
-
-        V + V -> V
-        Args:
-            other ([`Vector3`](#class-vector3) | [`Point3`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [`Vector3`](#class-vector3) | [`Point3`](./point#class-point3): 新的向量或点
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)
     elif isinstance(other, Point3):
         return Point3(self.x + other.x, self.y + other.y, self.z + other.z)
     else:
         raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

説明: 判断两个向量是否相等。

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
-    """
-        判断两个向量是否相等。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否相等
-        """
     return approx(self.x, other.x) and approx(self.y, other.y) and approx(self.z, other.z)

method self + other: Point3 => Point3

説明: P + V -> P

别去点那边实现了。

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __radd__(self, other: 'Point3') -> 'Point3':
-    """
-        P + V -> P
-
-        别去点那边实现了。
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

method self - other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
 def __sub__(self, other: 'Vector3') -> 'Vector3':
     ...

@overload

method self - other: Point3 => Point3

源碼於GitHub上查看
python
@overload
 def __sub__(self, other: 'Point3') -> 'Point3':
     ...

method self - other

説明: V - P -> P

V - V -> V

變數説明:

返回: Vector3 | Point3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other):
-    """
-        V - P -> P
-
-        V - V -> V
-        Args:
-            other ([`Vector3`](#class-vector3) | [`Point3`](./point#class-point3)): 另一个向量或点
-        Returns:
-            [`Vector3`](#class-vector3) | [`Point3`](./point#class-point3): 新的向量
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
     elif isinstance(other, Point3):
         return Point3(self.x - other.x, self.y - other.y, self.z - other.z)
     else:
         raise TypeError(f'unsupported operand type(s) for -: "Vector3" and "{type(other)}"')

method self - other: Point3

説明: P - V -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __rsub__(self, other: 'Point3'):
-    """
-        P - V -> P
-        Args:
-            other ([`Point3`](./point#class-point3)): 另一个点
-        Returns:
-            [`Point3`](./point#class-point3): 新的点
-        """
     if isinstance(other, Point3):
         return Point3(other.x - self.x, other.y - self.y, other.z - self.z)
     else:
@@ -185,13 +68,6 @@
     ...

@overload

method self * other: RealNumber => Vector3

源碼於GitHub上查看
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
     ...

method self * other: int | float | Vector3 => Vector3

説明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

變數説明:

返回: Vector3: 数组运算结果

源碼於GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
-    """
-        数组运算 非点乘。点乘使用@,叉乘使用cross。
-        Args:
-            other ([`Vector3`](#class-vector3) | [`float`](https%3A//docs.python.org/3/library/functions.html#float)): 另一个向量或数
-        Returns:
-            [`Vector3`](#class-vector): 数组运算结果
-        """
     if isinstance(other, Vector3):
         return Vector3(self.x * other.x, self.y * other.y, self.z * other.z)
     elif isinstance(other, (float, int)):
@@ -199,22 +75,10 @@
     else:
         raise TypeError(f"unsupported operand type(s) for *: 'Vector3' and '{type(other)}'")

method self * other: RealNumber => Vector3

源碼於GitHub上查看
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
     return self.__mul__(other)

method self @ other: Vector3 => RealNumber

説明: 点乘。

變數説明:

返回: float: 点乘结果

源碼於GitHub上查看
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
-    """
-        点乘。
-        Args:
-            other ([`Vector3`](#class-vector3)): 另一个向量
-        Returns:
-            [`float`](https%3A//docs.python.org/3/library/functions.html#float): 点乘结果
-        """
     return self.x * other.x + self.y * other.y + self.z * other.z

method self / other: RealNumber => Vector3

源碼於GitHub上查看
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
     return Vector3(self.x / other, self.y / other, self.z / other)

method - self => Vector3

説明: 取负。

返回: Vector3: 负向量

源碼於GitHub上查看
python
def __neg__(self) -> 'Vector3':
-    """
-        取负。
-        Returns:
-            [`Vector3`](#class-vector3): 负向量
-        """
     return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • 説明: 零向量

  • 類型: Vector3

  • 默認值: Vector3(0, 0, 0)

var x_axis

  • 説明: x轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(1, 0, 0)

var y_axis

  • 説明: y轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(0, 1, 0)

var z_axis

  • 説明: z轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(0, 0, 1)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/particle/index.html b/zht/api/particle/index.html index a54c0ee..a69cd42 100644 --- a/zht/api/particle/index.html +++ b/zht/api/particle/index.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/zht/api/presets/index.html b/zht/api/presets/index.html index 4fa6fe4..13beff4 100644 --- a/zht/api/presets/index.html +++ b/zht/api/presets/index.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/zht/api/presets/model/index.html b/zht/api/presets/model/index.html index 2b53da5..f7b52d6 100644 --- a/zht/api/presets/model/index.html +++ b/zht/api/presets/model/index.html @@ -6,12 +6,12 @@ mbcp.presets.model | MBCP 文檔 - + - - + + - + @@ -20,14 +20,6 @@
Skip to content

模組 mbcp.presets.model

几何模型点集

class GeometricModels

@staticmethod

method sphere(radius: float, density: float)

説明: 生成球体上的点集。

變數説明:

  • radius:
  • density:

返回: List[Point3]: 球体上的点集。

源碼於GitHub上查看
python
@staticmethod
 def sphere(radius: float, density: float):
-    """
-        生成球体上的点集。
-        Args:
-            radius:
-            density:
-        Returns:
-            List[Point3]: 球体上的点集。
-        """
     area = 4 * np.pi * radius ** 2
     num = int(area * density)
     phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
@@ -36,7 +28,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/demo/best-practice.html b/zht/demo/best-practice.html index 86b66a8..653951a 100644 --- a/zht/demo/best-practice.html +++ b/zht/demo/best-practice.html @@ -6,10 +6,10 @@ 最佳實踐 | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/zht/guide/index.html b/zht/guide/index.html index 0df8272..1dc6287 100644 --- a/zht/guide/index.html +++ b/zht/guide/index.html @@ -6,10 +6,10 @@ 开始不了一点 | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

开始不了一点

12x111

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/index.html b/zht/index.html index 5cab41b..e5af54e 100644 --- a/zht/index.html +++ b/zht/index.html @@ -6,10 +6,10 @@ MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

MBCP

更多基礎變化粒子

用於幾何運算和 當個創世神 粒子製作的軟體庫

MBCP logo

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/refer/index.html b/zht/refer/index.html index aee4029..4545f78 100644 --- a/zht/refer/index.html +++ b/zht/refer/index.html @@ -6,10 +6,10 @@ Reference | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

Reference

Help us to improve the documentation

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file