diff --git a/404.html b/404.html index 7bd7310..32729f2 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/api.html b/api/api.html deleted file mode 100644 index 5b2941e..0000000 --- a/api/api.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp | MBCP 文档 - - - - - - - - - - - - - - -
Skip to content

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

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

- - - - \ No newline at end of file diff --git a/api/index.html b/api/index.html index f4b318e..22a143f 100644 --- a/api/index.html +++ b/api/index.html @@ -6,20 +6,20 @@ mbcp | MBCP 文档 - + - - + + - + -
Skip to content

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

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

- +
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 c09d3ef..0712bef 100644 --- a/api/mp_math/angle.html +++ b/api/mp_math/angle.html @@ -6,19 +6,19 @@ mbcp.mp_math.angle | MBCP 文档 - + - - + + - + -
Skip to content

mbcp.mp_math.angle

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

class Angle

class AnyAngle(Angle)

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

说明: 任意角度。

参数:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
源代码在GitHub上查看
python
def __init__(self, value: float, is_radian: bool=False):
+    
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:
@@ -28,96 +28,96 @@
     if is_radian:
         self.radian = value
     else:
-        self.radian = value * PI / 180

@property

func complementary(self) -> AnyAngle

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

返回: 余角

源代码在GitHub上查看
python
@property
+        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

func supplementary(self) -> AnyAngle

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

返回: 补角

源代码在GitHub上查看
python
@property
+    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

func degree(self) -> float

说明: 角度。

返回: 弧度

源代码在GitHub上查看
python
@property
+    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

func minimum_positive(self) -> AnyAngle

说明: 最小正角。

返回: 最小正角度

源代码在GitHub上查看
python
@property
+    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

func maximum_negative(self) -> AnyAngle

说明: 最大负角。

返回: 最大负角度

源代码在GitHub上查看
python
@property
+    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

func sin(self) -> float

说明: 正弦值。

返回: 正弦值

源代码在GitHub上查看
python
@property
+    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

func cos(self) -> float

说明: 余弦值。

返回: 余弦值

源代码在GitHub上查看
python
@property
+    return math.sin(self.radian)

@property

method cos(self) -> float

说明: 余弦值。

返回: 余弦值

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

@property

func tan(self) -> float

说明: 正切值。

返回: 正切值

源代码在GitHub上查看
python
@property
+    return math.cos(self.radian)

@property

method tan(self) -> float

说明: 正切值。

返回: 正切值

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

@property

func cot(self) -> float

说明: 余切值。

返回: 余切值

源代码在GitHub上查看
python
@property
+    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

func sec(self) -> float

说明: 正割值。

返回: 正割值

源代码在GitHub上查看
python
@property
+    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

func csc(self) -> float

说明: 余割值。

返回: 余割值

源代码在GitHub上查看
python
@property
+    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)

func self + other: AnyAngle => AnyAngle

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

func __eq__(self, other)

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

func self - other: AnyAngle => AnyAngle

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

func self * other: float => AnyAngle

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

@overload

func self / other: float => AnyAngle

源代码在GitHub上查看
python
@overload
+    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

func self / other: AnyAngle => float

源代码在GitHub上查看
python
@overload
+    ...

@overload

method self / other: AnyAngle => float

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

func self / other

源代码在GitHub上查看
python
def __truediv__(self, other):
+    ...

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)

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

- + 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 1af0d3e..3bc2b90 100644 --- a/api/mp_math/const.html +++ b/api/mp_math/const.html @@ -6,20 +6,20 @@ mbcp.mp_math.const | MBCP 文档 - + - - + + - + -
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 生成

- +
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 0304557..94c3c79 100644 --- a/api/mp_math/equation.html +++ b/api/mp_math/equation.html @@ -6,19 +6,19 @@ mbcp.mp_math.equation | MBCP 文档 - + - - + + - + -
Skip to content

mbcp.mp_math.equation

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

class CurveEquation

func __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):
+    
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:
@@ -28,7 +28,7 @@
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

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

说明: 计算曲线上的点。

参数:

  • *t:
  • 参数:

返回: 目标点

源代码在GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    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:
@@ -82,8 +82,8 @@
             return result_func(*args)
         return high_order_partial_derivative_func
     else:
-        raise ValueError('Invalid var type')

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

- + 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 29a614b..a807d4f 100644 --- a/api/mp_math/function.html +++ b/api/mp_math/function.html @@ -6,19 +6,19 @@ mbcp.mp_math.function | MBCP 文档 - + - - + + - + -
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:
+    
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]
@@ -59,8 +59,8 @@
     def curried_func(*args2: Var) -> Var:
         """@litedoc-hide"""
         return func(*args, *args2)
-    return curried_func

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

- + 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 a87d364..f25aab9 100644 --- a/api/mp_math/index.html +++ b/api/mp_math/index.html @@ -6,20 +6,20 @@ mbcp.mp_math | MBCP 文档 - + - - + + - + -
Skip to content

mbcp.mp_math

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

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

- +
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 6dbe441..96163bf 100644 --- a/api/mp_math/line.html +++ b/api/mp_math/line.html @@ -6,19 +6,19 @@ mbcp.mp_math.line | MBCP 文档 - + - - + + - + -
Skip to content

mbcp.mp_math.line

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

class Line3

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

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

参数:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
源代码在GitHub上查看
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
+    
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:
@@ -26,7 +26,7 @@
             direction ([`Vector3`](./vector#class-vector3)): 方向向量
         """
     self.point = point
-    self.direction = direction

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

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

参数:

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

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
+    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:
@@ -35,7 +35,7 @@
         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)

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

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

参数:

  • other (Line3): 另一条直线

返回: AnyAngle: 夹角

源代码在GitHub上查看
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
+    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:
@@ -43,7 +43,7 @@
         Returns:
             [`AnyAngle`](./angle#class-anyangle): 夹角
         """
-    return self.direction.cal_angle(other.direction)

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

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

参数:

返回: float: 距离

引发:

源代码在GitHub上查看
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
+    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:
@@ -65,7 +65,7 @@
     elif isinstance(other, Point3):
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
-        raise TypeError('Unsupported type.')

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

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

参数:

  • other (Line3): 另一条直线

返回: Point3: 交点

引发:

源代码在GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
+        raise TypeError('Unsupported type.')

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

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

参数:

  • other (Line3): 另一条直线

返回: Point3: 交点

引发:

源代码在GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
     """
         计算两条直线的交点。
         Args:
@@ -80,7 +80,7 @@
         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

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

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

参数:

返回: Line3: 垂线

源代码在GitHub上查看
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
+    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:
@@ -88,7 +88,7 @@
         Returns:
             [`Line3`](./line#class-line3): 垂线
         """
-    return Line3(point, self.direction.cross(point - self.point))

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

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

参数:

返回: Point3: 点

源代码在GitHub上查看
python
def get_point(self, t: RealNumber) -> 'Point3':
+    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:
@@ -96,13 +96,13 @@
         Returns:
             [`Point3`](./point#class-point3): 点
         """
-    return self.point + t * self.direction

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

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

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

源代码在GitHub上查看
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
+    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)

func 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:
+    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:
@@ -111,7 +111,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.direction.is_approx_parallel(other.direction, epsilon)

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

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

参数:

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Line3') -> 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:
@@ -119,7 +119,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.direction.is_parallel(other.direction)

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

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

参数:

返回: bool: 是否共线

源代码在GitHub上查看
python
def is_collinear(self, other: 'Line3') -> 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:
@@ -127,7 +127,7 @@
         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)

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

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

参数:

返回: bool: 是否在直线上

源代码在GitHub上查看
python
def is_point_on(self, point: 'Point3') -> 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:
@@ -135,7 +135,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
         """
-    return (point - self.point).is_parallel(self.direction)

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

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

参数:

返回: bool: 是否共面

源代码在GitHub上查看
python
def is_coplanar(self, other: 'Line3') -> 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。
@@ -144,7 +144,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
         """
-    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

func simplify(self)

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

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

源代码在GitHub上查看
python
def simplify(self):
+    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

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

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

源代码在GitHub上查看
python
def simplify(self):
     """
         简化直线方程,等价相等。
         自体简化,不返回值。
@@ -157,7 +157,7 @@
     if self.direction.y == 0:
         self.point.y = 0
     if self.direction.z == 0:
-        self.point.z = 0

@classmethod

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

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

参数:

返回: Line3: 直线

源代码在GitHub上查看
python
@classmethod
+        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':
     """
         工厂函数 由两点构造直线。
@@ -168,7 +168,7 @@
             [`Line3`](./line#class-line3): 直线
         """
     direction = p2 - p1
-    return cls(p1, direction)

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

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

参数:

  • other (Line3): 另一条直线

返回: Line3 | Point3 | None: 交集

源代码在GitHub上查看
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
+    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:
@@ -181,7 +181,7 @@
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
-        return self.cal_intersection(other)

func __eq__(self, other) -> bool

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

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

参数:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源代码在GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
@@ -191,8 +191,8 @@
         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 生成

- + 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.html b/api/mp_math/mp_math.html deleted file mode 100644 index 25041fc..0000000 --- a/api/mp_math/mp_math.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.mp_math | MBCP 文档 - - - - - - - - - - - - - - -
Skip to content

mbcp.mp_math

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

文档由 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 8bea05d..6765457 100644 --- a/api/mp_math/mp_math_typing.html +++ b/api/mp_math/mp_math_typing.html @@ -6,20 +6,20 @@ mbcp.mp_math.mp_math_typing | MBCP 文档 - + - - + + - + -
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 生成

- +
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 91844cd..314a8ce 100644 --- a/api/mp_math/plane.html +++ b/api/mp_math/plane.html @@ -6,19 +6,19 @@ mbcp.mp_math.plane | MBCP 文档 - + - - + + - + -
Skip to content

mbcp.mp_math.plane

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

class Plane3

func __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):
+    
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:
@@ -30,7 +30,7 @@
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

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

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

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
+    self.d = d

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

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

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
     """
         判断两个平面是否近似相等。
         Args:
@@ -48,7 +48,7 @@
         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

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

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

参数:

返回: AnyAngle: 夹角

引发:

源代码在GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+        return False

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

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

参数:

返回: AnyAngle: 夹角

引发:

源代码在GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     """
         计算平面与平面之间的夹角。
         Args:
@@ -63,7 +63,7 @@
     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)}')

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

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

参数:

返回: float: 距离

引发:

源代码在GitHub上查看
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
+        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:
@@ -78,7 +78,7 @@
     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)}')

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

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

参数:

  • other (Plane3): 另一个平面

返回: Line3: 交线

引发:

源代码在GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
+        raise TypeError(f'Unsupported type: {type(other)}')

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

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

参数:

  • other (Plane3): 另一个平面

返回: Line3: 交线

引发:

源代码在GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     """
         计算两平面的交线。
         Args:
@@ -104,7 +104,7 @@
         A = np.array([[self.a, self.b], [other.a, other.b]])
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
-    return Line3(Point3(x, y, z), direction)

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

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

参数:

返回: Point3: 交点

引发:

源代码在GitHub上查看
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
+    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:
@@ -118,7 +118,7 @@
         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))

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

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

参数:

返回: Plane3: 平面

源代码在GitHub上查看
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
+    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:
@@ -126,7 +126,7 @@
         Returns:
             [`Plane3`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

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

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

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Plane3') -> bool:
+    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:
@@ -134,14 +134,14 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.normal.is_parallel(other.normal)

@property

func normal(self) -> Vector3

说明: 平面的法向量。

返回: Vector3: 法向量

源代码在GitHub上查看
python
@property
+    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

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

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

参数:

返回: Plane3: 平面

源代码在GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由点和法向量构造平面(点法式构造)。
@@ -153,7 +153,7 @@
         """
     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

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

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

参数:

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

返回: 平面

源代码在GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由三点构造平面。
@@ -167,7 +167,7 @@
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

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

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

参数:

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

返回: 平面

源代码在GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由两直线构造平面。
@@ -181,7 +181,7 @@
     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

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

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

参数:

返回: 平面

源代码在GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由点和直线构造平面。
@@ -191,11 +191,11 @@
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

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

源代码在GitHub上查看
python
@overload
+    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

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

源代码在GitHub上查看
python
@overload
+    ...

@overload

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

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

func __and__(self, other)

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

参数:

返回: Line3 | Point3 | None: 交集

引发:

源代码在GitHub上查看
python
def __and__(self, other):
+    ...

method __and__(self, other)

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

参数:

返回: Line3 | Point3 | None: 交集

引发:

源代码在GitHub上查看
python
def __and__(self, other):
     """
         取两平面的交集(人话:交线)
         Args:
@@ -214,7 +214,7 @@
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

func __eq__(self, other) -> bool

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

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否等价

源代码在GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
@@ -222,9 +222,9 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

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

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

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

- + 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 183ae2d..cfbf3b8 100644 --- a/api/mp_math/point.html +++ b/api/mp_math/point.html @@ -6,19 +6,19 @@ mbcp.mp_math.point | MBCP 文档 - + - - + + - + -
Skip to content

mbcp.mp_math.point

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

class Point3

func __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):
+    
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:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    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:
@@ -37,11 +37,11 @@
         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

func self + other: Vector3 => Point3

源代码在GitHub上查看
python
@overload
+    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

func self + other: Point3 => Point3

源代码在GitHub上查看
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

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

func self + other

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

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __add__(self, other):
+    ...

method self + other

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

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __add__(self, other):
     """
         P + V -> P
         P + P -> P
@@ -50,7 +50,7 @@
         Returns:
             [`Point3`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

func __eq__(self, other)

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

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):
+    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:
@@ -58,7 +58,7 @@
         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)

func self - other: Point3 => Vector3

说明: P - P -> V

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

参数:

返回: Vector3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':
+    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
 
@@ -69,8 +69,8 @@
             [`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 生成

- + 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 3e45fed..562bfad 100644 --- a/api/mp_math/segment.html +++ b/api/mp_math/segment.html @@ -6,19 +6,19 @@ mbcp.mp_math.segment | MBCP 文档 - + - - + + - + -
Skip to content

mbcp.mp_math.segment

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

class Segment3

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

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

参数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源代码在GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
+    
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:
@@ -32,8 +32,8 @@
     '长度'
     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 生成

- + 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 e21a2f0..9df51f0 100644 --- a/api/mp_math/utils.html +++ b/api/mp_math/utils.html @@ -6,19 +6,19 @@ mbcp.mp_math.utils | MBCP 文档 - + - - + + - + -
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:
+    
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:
@@ -29,13 +29,13 @@
     Returns:
         `float`: 限定在区间内的值
     """
-    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

说明: 用于近似比较对象

参数:

源代码在GitHub上查看
python
def __init__(self, value: RealNumber):
+    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

func __eq__(self, other)

源代码在GitHub上查看
python
def __eq__(self, other):
+    self.value = value

method __eq__(self, other)

源代码在GitHub上查看
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
             return abs(self.value - other) < APPROX
@@ -45,8 +45,8 @@
         if isinstance(other, (Vector3, Point3, Plane3, Line3)):
             return all([approx(self.value.x, other.x), approx(self.value.y, other.y), approx(self.value.z, other.z)])
         else:
-            self.raise_type_error(other)

func raise_type_error(self, other)

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

func __ne__(self, other)

源代码在GitHub上查看
python
def __ne__(self, other):
+            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。
@@ -86,8 +86,8 @@
     elif x < 0:
         return f'-{abs(x)}'
     else:
-        return ''

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

- + 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 cd122ec..c49fe65 100644 --- a/api/mp_math/vector.html +++ b/api/mp_math/vector.html @@ -6,19 +6,19 @@ mbcp.mp_math.vector | MBCP 文档 - + - - + + - + -
Skip to content

mbcp.mp_math.vector

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

class Vector3

func __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):
+    
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:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -38,7 +38,7 @@
         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])

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

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

参数:

返回: AnyAngle: 夹角

源代码在GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
+    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

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

参数:

返回: AnyAngle: 夹角

源代码在GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
     """
         计算两个向量之间的夹角。
         Args:
@@ -46,7 +46,7 @@
         Returns:
             [`AnyAngle`](./angle#class-anyangle): 夹角
         """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

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

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

参数:

返回: Vector3: 叉乘结果

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

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

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

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

参数:

返回: Vector3: 叉乘结果

源代码在GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':
     """
         向量积 叉乘:v1 cross v2 -> v3
 
@@ -66,7 +66,7 @@
         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)

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

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

参数:

返回: bool: 是否近似平行

源代码在GitHub上查看
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -75,7 +75,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

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

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

参数:

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> 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:
@@ -83,7 +83,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.cross(other).approx(zero_vector3)

func normalize(self)

说明: 将向量归一化。

自体归一化,不返回值。

源代码在GitHub上查看
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

method normalize(self)

说明: 将向量归一化。

自体归一化,不返回值。

源代码在GitHub上查看
python
def normalize(self):
     """
         将向量归一化。
 
@@ -92,33 +92,33 @@
     length = self.length
     self.x /= length
     self.y /= length
-    self.z /= length

@property

func np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源代码在GitHub上查看
python
@property
+    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

func length(self) -> float

说明: 向量的模。

返回: float: 模

源代码在GitHub上查看
python
@property
+    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

func unit(self) -> Vector3

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

返回: Vector3: 单位向量

源代码在GitHub上查看
python
@property
+    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

func __abs__(self)

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

@overload

func self + other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
+    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

func self + other: Point3 => Point3

源代码在GitHub上查看
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

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

func self + other

说明: V + P -> P

V + V -> V

参数:

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

源代码在GitHub上查看
python
def __add__(self, other):
+    ...

method self + other

说明: V + P -> P

V + V -> V

参数:

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

源代码在GitHub上查看
python
def __add__(self, other):
     """
         V + P -> P
 
@@ -133,7 +133,7 @@
     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)}'")

func __eq__(self, other)

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

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):
+        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

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

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):
     """
         判断两个向量是否相等。
         Args:
@@ -141,7 +141,7 @@
         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)

func self + other: Point3 => Point3

说明: P + V -> P

别去点那边实现了。

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __radd__(self, other: 'Point3') -> 'Point3':
+    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
 
@@ -151,11 +151,11 @@
         Returns:
             [`Point3`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
+    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

func self - other: Point3 => Point3

源代码在GitHub上查看
python
@overload
+    ...

@overload

method self - other: Point3 => Point3

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

func self - other

说明: V - P -> P

V - V -> V

参数:

返回: Vector3 | Point3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other):
+    ...

method self - other

说明: V - P -> P

V - V -> V

参数:

返回: Vector3 | Point3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other):
     """
         V - P -> P
 
@@ -170,7 +170,7 @@
     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)}"')

func self - other: Point3

说明: P - V -> P

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __rsub__(self, other: 'Point3'):
+        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:
@@ -181,11 +181,11 @@
     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

func self * other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
+        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

func self * other: RealNumber => Vector3

源代码在GitHub上查看
python
@overload
+    ...

@overload

method self * other: RealNumber => Vector3

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

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

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

参数:

返回: Vector3: 数组运算结果

源代码在GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
+    ...

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

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

参数:

返回: Vector3: 数组运算结果

源代码在GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
     """
         数组运算 非点乘。点乘使用@,叉乘使用cross。
         Args:
@@ -198,8 +198,8 @@
     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)}'")

func self * other: RealNumber => Vector3

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

func self @ other: Vector3 => RealNumber

说明: 点乘。

参数:

返回: float: 点乘结果

源代码在GitHub上查看
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
+        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:
@@ -207,15 +207,15 @@
         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

func self / other: RealNumber => Vector3

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

func - self => Vector3

说明: 取负。

返回: Vector3: 负向量

源代码在GitHub上查看
python
def __neg__(self) -> 'Vector3':
+    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 生成

- + 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 74a2f6b..4c45d7f 100644 --- a/api/particle/index.html +++ b/api/particle/index.html @@ -6,20 +6,20 @@ mbcp.particle | MBCP 文档 - + - - + + - + -
Skip to content

mbcp.particle

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

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

- +
Skip to content

mbcp.particle

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

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

+ \ No newline at end of file diff --git a/api/particle/particle.html b/api/particle/particle.html deleted file mode 100644 index 392c032..0000000 --- a/api/particle/particle.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.particle | MBCP 文档 - - - - - - - - - - - - - - -
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 d46bb5f..1dc3dcc 100644 --- a/api/presets/index.html +++ b/api/presets/index.html @@ -6,20 +6,20 @@ mbcp.presets | MBCP 文档 - + - - + + - + -
Skip to content

mbcp.presets

说明: 本模块塞了一些预设

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

- +
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 6e2215a..7f0d9d6 100644 --- a/api/presets/model/index.html +++ b/api/presets/model/index.html @@ -6,19 +6,19 @@ mbcp.presets.model | MBCP 文档 - + - - + + - + -
Skip to content

mbcp.presets.model

说明: 几何模型点集

class GeometricModels

@staticmethod

func sphere(radius: float, density: float)

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

参数:

  • radius:
  • density:

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

源代码在GitHub上查看
python
@staticmethod
+    
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):
     """
         生成球体上的点集。
@@ -35,8 +35,8 @@
     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)]

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

- + 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/api/presets/model/model.html b/api/presets/model/model.html deleted file mode 100644 index eb31c87..0000000 --- a/api/presets/model/model.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - mbcp.presets.model | MBCP 文档 - - - - - - - - - - - - - - -
Skip to content

mbcp.presets.model

说明: 几何模型点集

class GeometricModels

@staticmethod

func 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)])
-    theta_list = np.sqrt(num * np.pi) * phi_list
-    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)]

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

- - - - \ No newline at end of file diff --git a/api/presets/presets.html b/api/presets/presets.html deleted file mode 100644 index 7c104da..0000000 --- a/api/presets/presets.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.presets | MBCP 文档 - - - - - - - - - - - - - - -
Skip to content

mbcp.presets

说明: 本模块塞了一些预设

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

- - - - \ No newline at end of file diff --git a/assets/api_api.md.rnPOv6-O.js b/assets/api_api.md.rnPOv6-O.js deleted file mode 100644 index b7eb5d0..0000000 --- a/assets/api_api.md.rnPOv6-O.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as p}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/api.md","filePath":"zh/api/api.md"}'),c={name:"api/api.md"},o=p('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(_,i,d,m,n,l){return t(),a("div",null,r)}const b=e(c,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/api_api.md.rnPOv6-O.lean.js b/assets/api_api.md.rnPOv6-O.lean.js deleted file mode 100644 index 7435396..0000000 --- a/assets/api_api.md.rnPOv6-O.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as p}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/api.md","filePath":"zh/api/api.md"}'),c={name:"api/api.md"},o=p("",5),r=[o];function s(_,i,d,m,n,l){return t(),a("div",null,r)}const b=e(c,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/api_index.md.YS-zqWwM.js b/assets/api_index.md.YS-zqWwM.js new file mode 100644 index 0000000..18243d2 --- /dev/null +++ b/assets/api_index.md.YS-zqWwM.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/index.md","filePath":"zh/api/index.md"}'),p={name:"api/index.md"},o=c('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(d,_,i,n,m,l){return t(),a("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/api_index.md.qnrSd__i.lean.js b/assets/api_index.md.YS-zqWwM.lean.js similarity index 100% rename from assets/api_index.md.qnrSd__i.lean.js rename to assets/api_index.md.YS-zqWwM.lean.js diff --git a/assets/api_index.md.qnrSd__i.js b/assets/api_index.md.qnrSd__i.js deleted file mode 100644 index 0203e92..0000000 --- a/assets/api_index.md.qnrSd__i.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/index.md","filePath":"zh/api/index.md"}'),p={name:"api/index.md"},o=c('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(d,_,i,n,m,l){return t(),a("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/api_mp_math_angle.md.D0ius2dn.js b/assets/api_mp_math_angle.md.CThQB5nq.js similarity index 60% rename from assets/api_mp_math_angle.md.D0ius2dn.js rename to assets/api_mp_math_angle.md.CThQB5nq.js index 66a9b69..cdd91a9 100644 --- a/assets/api_mp_math_angle.md.D0ius2dn.js +++ b/assets/api_mp_math_angle.md.CThQB5nq.js @@ -1,4 +1,4 @@ -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)

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

说明: 任意角度。

参数:

源代码在GitHub上查看
python
def __init__(self, value: float, is_radian: bool=False):
+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)

说明: 任意角度。

参数:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
源代码在GitHub上查看
python
def __init__(self, value: float, is_radian: bool=False):
     """
         任意角度。
         Args:
@@ -8,92 +8,92 @@ import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     if is_radian:
         self.radian = value
     else:
-        self.radian = value * PI / 180

@property

func complementary(self) -> AnyAngle

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

返回: 余角

源代码在GitHub上查看
python
@property
+        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

func supplementary(self) -> AnyAngle

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

返回: 补角

源代码在GitHub上查看
python
@property
+    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

func degree(self) -> float

说明: 角度。

返回: 弧度

源代码在GitHub上查看
python
@property
+    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

func minimum_positive(self) -> AnyAngle

说明: 最小正角。

返回: 最小正角度

源代码在GitHub上查看
python
@property
+    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

func maximum_negative(self) -> AnyAngle

说明: 最大负角。

返回: 最大负角度

源代码在GitHub上查看
python
@property
+    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

func sin(self) -> float

说明: 正弦值。

返回: 正弦值

源代码在GitHub上查看
python
@property
+    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

func cos(self) -> float

说明: 余弦值。

返回: 余弦值

源代码在GitHub上查看
python
@property
+    return math.sin(self.radian)

@property

method cos(self) -> float

说明: 余弦值。

返回: 余弦值

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

@property

func tan(self) -> float

说明: 正切值。

返回: 正切值

源代码在GitHub上查看
python
@property
+    return math.cos(self.radian)

@property

method tan(self) -> float

说明: 正切值。

返回: 正切值

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

@property

func cot(self) -> float

说明: 余切值。

返回: 余切值

源代码在GitHub上查看
python
@property
+    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

func sec(self) -> float

说明: 正割值。

返回: 正割值

源代码在GitHub上查看
python
@property
+    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

func csc(self) -> float

说明: 余割值。

返回: 余割值

源代码在GitHub上查看
python
@property
+    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)

func self + other: AnyAngle => AnyAngle

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

func __eq__(self, other)

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

func self - other: AnyAngle => AnyAngle

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

func self * other: float => AnyAngle

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

@overload

func self / other: float => AnyAngle

源代码在GitHub上查看
python
@overload
+    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

func self / other: AnyAngle => float

源代码在GitHub上查看
python
@overload
+    ...

@overload

method self / other: AnyAngle => float

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

func self / other

源代码在GitHub上查看
python
def __truediv__(self, other):
+    ...

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.D0ius2dn.lean.js b/assets/api_mp_math_angle.md.CThQB5nq.lean.js similarity index 100% rename from assets/api_mp_math_angle.md.D0ius2dn.lean.js rename to assets/api_mp_math_angle.md.CThQB5nq.lean.js diff --git a/assets/api_mp_math_const.md.DqjQQ6Ym.js b/assets/api_mp_math_const.md.DqjQQ6Ym.js new file mode 100644 index 0000000..da9134c --- /dev/null +++ b/assets/api_mp_math_const.md.DqjQQ6Ym.js @@ -0,0 +1 @@ +import{_ as a,c as o,o as t,a4 as e}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/const.md","filePath":"zh/api/mp_math/const.md"}'),r={name:"api/mp_math/const.md"},l=e('

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

',14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const g=a(r,[["render",i]]);export{u as __pageData,g as default}; diff --git a/assets/api_mp_math_const.md.DqjQQ6Ym.lean.js b/assets/api_mp_math_const.md.DqjQQ6Ym.lean.js new file mode 100644 index 0000000..e5f072c --- /dev/null +++ b/assets/api_mp_math_const.md.DqjQQ6Ym.lean.js @@ -0,0 +1 @@ +import{_ as a,c as o,o as t,a4 as e}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/const.md","filePath":"zh/api/mp_math/const.md"}'),r={name:"api/mp_math/const.md"},l=e("",14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const g=a(r,[["render",i]]);export{u as __pageData,g as default}; diff --git a/assets/api_mp_math_const.md.O6cTulwX.js b/assets/api_mp_math_const.md.O6cTulwX.js deleted file mode 100644 index 3b51c58..0000000 --- a/assets/api_mp_math_const.md.O6cTulwX.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as o,o as t,a4 as r}from"./chunks/framework.DpC1ZpOZ.js";const g=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/const.md","filePath":"zh/api/mp_math/const.md"}'),e={name:"api/mp_math/const.md"},l=r('

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

',14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const u=a(e,[["render",i]]);export{g as __pageData,u as default}; diff --git a/assets/api_mp_math_const.md.O6cTulwX.lean.js b/assets/api_mp_math_const.md.O6cTulwX.lean.js deleted file mode 100644 index f6a9277..0000000 --- a/assets/api_mp_math_const.md.O6cTulwX.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as o,o as t,a4 as r}from"./chunks/framework.DpC1ZpOZ.js";const g=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/const.md","filePath":"zh/api/mp_math/const.md"}'),e={name:"api/mp_math/const.md"},l=r("",14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const u=a(e,[["render",i]]);export{g as __pageData,u as default}; diff --git a/assets/api_mp_math_equation.md.D9gepkm-.js b/assets/api_mp_math_equation.md.C1YMGsIR.js similarity index 83% rename from assets/api_mp_math_equation.md.D9gepkm-.js rename to assets/api_mp_math_equation.md.C1YMGsIR.js index c81ecfd..75fa61d 100644 --- a/assets/api_mp_math_equation.md.D9gepkm-.js +++ b/assets/api_mp_math_equation.md.C1YMGsIR.js @@ -1,4 +1,4 @@ -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

func __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):
+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:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

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

说明: 计算曲线上的点。

参数:

  • *t:
  • 参数:

返回: 目标点

源代码在GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    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:
@@ -62,4 +62,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
             return result_func(*args)
         return high_order_partial_derivative_func
     else:
-        raise ValueError('Invalid var type')
`,23),p=[l];function h(k,e,r,E,c,d){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),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}; diff --git a/assets/api_mp_math_equation.md.D9gepkm-.lean.js b/assets/api_mp_math_equation.md.C1YMGsIR.lean.js similarity index 86% rename from assets/api_mp_math_equation.md.D9gepkm-.lean.js rename to assets/api_mp_math_equation.md.C1YMGsIR.lean.js index 6be3a53..450e361 100644 --- a/assets/api_mp_math_equation.md.D9gepkm-.lean.js +++ b/assets/api_mp_math_equation.md.C1YMGsIR.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(k,e,r,E,c,d){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),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}; diff --git a/assets/api_mp_math_function.md.C0P_-kol.js b/assets/api_mp_math_function.md.C0P_-kol.js new file mode 100644 index 0000000..57804d5 --- /dev/null +++ b/assets/api_mp_math_function.md.C0P_-kol.js @@ -0,0 +1,42 @@ +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:
+        梯度
+    """
+    dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
+    dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
+    dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
+    return Vector3(dx, dy, dz)

func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc

说明: 对多参数函数进行柯里化。

TIP

有关函数柯里化,可参考函数式编程--柯理化(Currying)

参数:

返回: 柯里化后的函数

示例:

python
def add(a: int, b: int, c: int) -> int:
+    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}; diff --git a/assets/api_mp_math_function.md.DCuJC29A.lean.js b/assets/api_mp_math_function.md.C0P_-kol.lean.js similarity index 100% rename from assets/api_mp_math_function.md.DCuJC29A.lean.js rename to assets/api_mp_math_function.md.C0P_-kol.lean.js diff --git a/assets/api_mp_math_function.md.DCuJC29A.js b/assets/api_mp_math_function.md.DCuJC29A.js deleted file mode 100644 index f45ba9b..0000000 --- a/assets/api_mp_math_function.md.DCuJC29A.js +++ /dev/null @@ -1,42 +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('

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:
-        梯度
-    """
-    dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
-    dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
-    dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
-    return Vector3(dx, dy, dz)

func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc

说明: 对多参数函数进行柯里化。

TIP

有关函数柯里化,可参考函数式编程--柯理化(Currying)

参数:

返回: 柯里化后的函数

示例:

python
def add(a: int, b: int, c: int) -> int:
-    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}; diff --git a/assets/api_mp_math_index.md.DHhPNV6R.js b/assets/api_mp_math_index.md.DHhPNV6R.js deleted file mode 100644 index efbf911..0000000 --- a/assets/api_mp_math_index.md.DHhPNV6R.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/mp_math/index.md","filePath":"zh/api/mp_math/index.md"}'),l={name:"api/mp_math/index.md"},o=c('

mbcp.mp_math

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

',3),i=[o];function m(n,s,d,p,r,h){return t(),a("div",null,i)}const u=e(l,[["render",m]]);export{f as __pageData,u as default}; diff --git a/assets/api_mp_math_index.md.yEj9pzOD.js b/assets/api_mp_math_index.md.yEj9pzOD.js new file mode 100644 index 0000000..81b121c --- /dev/null +++ b/assets/api_mp_math_index.md.yEj9pzOD.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/mp_math/index.md","filePath":"zh/api/mp_math/index.md"}'),l={name:"api/mp_math/index.md"},o=c('

mbcp.mp_math

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

',3),i=[o];function m(n,s,d,p,r,h){return t(),a("div",null,i)}const u=e(l,[["render",m]]);export{f as __pageData,u as default}; diff --git a/assets/api_mp_math_index.md.DHhPNV6R.lean.js b/assets/api_mp_math_index.md.yEj9pzOD.lean.js similarity index 100% rename from assets/api_mp_math_index.md.DHhPNV6R.lean.js rename to assets/api_mp_math_index.md.yEj9pzOD.lean.js diff --git a/assets/en_api_mp_math_line.md.CxP-i4OT.js b/assets/api_mp_math_line.md.Okmn0BTW.js similarity index 63% rename from assets/en_api_mp_math_line.md.CxP-i4OT.js rename to assets/api_mp_math_line.md.Okmn0BTW.js index aa92d9f..51f6cbf 100644 --- a/assets/en_api_mp_math_line.md.CxP-i4OT.js +++ b/assets/api_mp_math_line.md.Okmn0BTW.js @@ -1,4 +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.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(`

mbcp.mp_math.line

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

class Line3

func __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'):
+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)

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

参数:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
源代码在GitHub上查看
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
     """
         三维空间中的直线。由一个点和一个方向向量确定。
         Args:
@@ -6,7 +6,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
             direction ([\`Vector3\`](./vector#class-vector3)): 方向向量
         """
     self.point = point
-    self.direction = direction

func 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:
+    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:
@@ -15,7 +15,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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)

func 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':
+    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:
@@ -23,7 +23,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`AnyAngle\`](./angle#class-anyangle): 夹角
         """
-    return self.direction.cal_angle(other.direction)

func 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:
+    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:
@@ -45,7 +45,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif isinstance(other, Point3):
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
-        raise TypeError('Unsupported type.')

func 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':
+        raise TypeError('Unsupported type.')

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

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

参数:

  • other (Line3): 另一条直线

返回: Point3: 交点

引发:

源代码在GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
     """
         计算两条直线的交点。
         Args:
@@ -60,7 +60,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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

func 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':
+    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:
@@ -68,7 +68,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`Line3\`](./line#class-line3): 垂线
         """
-    return Line3(point, self.direction.cross(point - self.point))

func 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':
+    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:
@@ -76,13 +76,13 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`Point3\`](./point#class-point3): 点
         """
-    return self.point + t * self.direction

func 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]:
+    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)

func 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:
+    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:
@@ -91,7 +91,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.direction.is_approx_parallel(other.direction, epsilon)

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

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

Arguments:

Return: bool: 是否平行

Source code or View on GitHub
python
def is_parallel(self, other: 'Line3') -> 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:
@@ -99,7 +99,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.direction.is_parallel(other.direction)

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

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

Arguments:

Return: bool: 是否共线

Source code or View on GitHub
python
def is_collinear(self, other: 'Line3') -> 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:
@@ -107,7 +107,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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)

func 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:
+    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:
@@ -115,7 +115,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
         """
-    return (point - self.point).is_parallel(self.direction)

func 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:
+    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。
@@ -124,7 +124,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
         """
-    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

func simplify(self)

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

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

Source code or View on GitHub
python
def simplify(self):
+    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

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

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

源代码在GitHub上查看
python
def simplify(self):
     """
         简化直线方程,等价相等。
         自体简化,不返回值。
@@ -137,7 +137,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     if self.direction.y == 0:
         self.point.y = 0
     if self.direction.z == 0:
-        self.point.z = 0

@classmethod

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

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

Arguments:

Return: Line3: 直线

Source code or View on GitHub
python
@classmethod
+        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':
     """
         工厂函数 由两点构造直线。
@@ -148,7 +148,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
             [\`Line3\`](./line#class-line3): 直线
         """
     direction = p2 - p1
-    return cls(p1, direction)

func __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':
+    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:
@@ -161,7 +161,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
-        return self.cal_intersection(other)

func __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:
+        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:
     """
         判断两条直线是否等价。
 
@@ -171,4 +171,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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 p(h,k,r,o,d,c){return a(),i("div",null,e)}const E=s(t,[["render",p]]);export{F as __pageData,E as default}; + 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}; diff --git a/assets/api_mp_math_line.md.ByGRRi0A.lean.js b/assets/api_mp_math_line.md.Okmn0BTW.lean.js similarity index 72% rename from assets/api_mp_math_line.md.ByGRRi0A.lean.js rename to assets/api_mp_math_line.md.Okmn0BTW.lean.js index 4509cf2..28b458f 100644 --- a/assets/api_mp_math_line.md.ByGRRi0A.lean.js +++ b/assets/api_mp_math_line.md.Okmn0BTW.lean.js @@ -1 +1 @@ -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 p(h,k,r,o,d,g){return a(),i("div",null,e)}const E=s(t,[["render",p]]);export{F as __pageData,E as default}; +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_mp_math.md.mVabZTHd.js b/assets/api_mp_math_mp_math.md.mVabZTHd.js deleted file mode 100644 index 17a51a4..0000000 --- a/assets/api_mp_math_mp_math.md.mVabZTHd.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/mp_math/mp_math.md","filePath":"zh/api/mp_math/mp_math.md"}'),l={name:"api/mp_math/mp_math.md"},m=c('

mbcp.mp_math

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

',3),o=[m];function i(s,n,p,h,r,_){return t(),a("div",null,o)}const u=e(l,[["render",i]]);export{f as __pageData,u as default}; diff --git a/assets/api_mp_math_mp_math.md.mVabZTHd.lean.js b/assets/api_mp_math_mp_math.md.mVabZTHd.lean.js deleted file mode 100644 index 2e5b11a..0000000 --- a/assets/api_mp_math_mp_math.md.mVabZTHd.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/mp_math/mp_math.md","filePath":"zh/api/mp_math/mp_math.md"}'),l={name:"api/mp_math/mp_math.md"},m=c("",3),o=[m];function i(s,n,p,h,r,_){return t(),a("div",null,o)}const u=e(l,[["render",i]]);export{f as __pageData,u as default}; diff --git a/assets/api_mp_math_mp_math_typing.md.CEryCREV.js b/assets/api_mp_math_mp_math_typing.md.CEryCREV.js deleted file mode 100644 index 44c20ae..0000000 --- a/assets/api_mp_math_mp_math_typing.md.CEryCREV.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as r,o as e,a4 as o}from"./chunks/framework.DpC1ZpOZ.js";const v=JSON.parse('{"title":"mbcp.mp_math.mp_math_typing","description":"","frontmatter":{"title":"mbcp.mp_math.mp_math_typing","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/mp_math_typing.md","filePath":"zh/api/mp_math/mp_math_typing.md"}'),l={name:"api/mp_math/mp_math_typing.md"},n=o('

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

',36),t=[n];function i(s,c,d,p,u,g){return e(),r("div",null,t)}const m=a(l,[["render",i]]);export{v as __pageData,m as default}; diff --git a/assets/api_mp_math_mp_math_typing.md.bdiOSvFy.js b/assets/api_mp_math_mp_math_typing.md.bdiOSvFy.js new file mode 100644 index 0000000..88efb6f --- /dev/null +++ b/assets/api_mp_math_mp_math_typing.md.bdiOSvFy.js @@ -0,0 +1 @@ +import{_ as a,c as r,o as e,a4 as o}from"./chunks/framework.DpC1ZpOZ.js";const v=JSON.parse('{"title":"mbcp.mp_math.mp_math_typing","description":"","frontmatter":{"title":"mbcp.mp_math.mp_math_typing","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/mp_math_typing.md","filePath":"zh/api/mp_math/mp_math_typing.md"}'),l={name:"api/mp_math/mp_math_typing.md"},n=o('

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

',36),t=[n];function i(s,c,d,p,u,g){return e(),r("div",null,t)}const m=a(l,[["render",i]]);export{v as __pageData,m as default}; diff --git a/assets/api_mp_math_mp_math_typing.md.CEryCREV.lean.js b/assets/api_mp_math_mp_math_typing.md.bdiOSvFy.lean.js similarity index 100% rename from assets/api_mp_math_mp_math_typing.md.CEryCREV.lean.js rename to assets/api_mp_math_mp_math_typing.md.bdiOSvFy.lean.js diff --git a/assets/en_api_mp_math_plane.md.BsgpTZdY.js b/assets/api_mp_math_plane.md.Dl-FdXx3.js similarity index 73% rename from assets/en_api_mp_math_plane.md.BsgpTZdY.js rename to assets/api_mp_math_plane.md.Dl-FdXx3.js index 666725f..7b6359d 100644 --- a/assets/en_api_mp_math_plane.md.BsgpTZdY.js +++ b/assets/api_mp_math_plane.md.Dl-FdXx3.js @@ -1,4 +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.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"},t=n(`

mbcp.mp_math.plane

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

class Plane3

func __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):
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y=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"},t=n(`

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:
@@ -10,7 +10,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

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

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

Arguments:

  • other (Plane3): 另一个平面

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Plane3') -> bool:
+    self.d = d

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

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

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
     """
         判断两个平面是否近似相等。
         Args:
@@ -28,7 +28,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         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

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

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

Arguments:

Return: AnyAngle: 夹角

Raises:

Source code or View on GitHub
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+        return False

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

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

参数:

返回: AnyAngle: 夹角

引发:

源代码在GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     """
         计算平面与平面之间的夹角。
         Args:
@@ -43,7 +43,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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)}')

func 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:
+        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:
@@ -58,7 +58,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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)}')

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

Description: 计算两平面的交线。

Arguments:

  • other (Plane3): 另一个平面

Return: Line3: 交线

Raises:

Source code or View on GitHub
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
+        raise TypeError(f'Unsupported type: {type(other)}')

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

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

参数:

  • other (Plane3): 另一个平面

返回: Line3: 交线

引发:

源代码在GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     """
         计算两平面的交线。
         Args:
@@ -84,7 +84,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         A = np.array([[self.a, self.b], [other.a, other.b]])
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
-    return Line3(Point3(x, y, z), direction)

func 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':
+    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:
@@ -98,7 +98,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         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))

func 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':
+    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:
@@ -106,7 +106,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`Plane3\`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

func 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:
+    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:
@@ -114,14 +114,14 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.normal.is_parallel(other.normal)

@property

func normal(self) -> Vector3

Description: 平面的法向量。

Return: Vector3: 法向量

Source code or View on GitHub
python
@property
+    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

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

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

Arguments:

Return: Plane3: 平面

Source code or View on GitHub
python
@classmethod
+    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':
     """
         工厂函数 由点和法向量构造平面(点法式构造)。
@@ -133,7 +133,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         """
     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

func 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
+    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':
     """
         工厂函数 由三点构造平面。
@@ -147,7 +147,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

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

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

Arguments:

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

Return: 平面

Source code or View on GitHub
python
@classmethod
+    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':
     """
         工厂函数 由两直线构造平面。
@@ -161,7 +161,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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

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

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

Arguments:

Return: 平面

Source code or View on GitHub
python
@classmethod
+    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':
     """
         工厂函数 由点和直线构造平面。
@@ -171,11 +171,11 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

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

Source code or View on GitHub
python
@overload
+    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

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

Source code or View on GitHub
python
@overload
+    ...

@overload

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

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

func __and__(self, other)

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

Arguments:

Return: Line3 | Point3 | None: 交集

Raises:

Source code or View on GitHub
python
def __and__(self, other):
+    ...

method __and__(self, other)

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

参数:

返回: Line3 | Point3 | None: 交集

引发:

源代码在GitHub上查看
python
def __and__(self, other):
     """
         取两平面的交集(人话:交线)
         Args:
@@ -194,7 +194,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

func __eq__(self, other) -> bool

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

Arguments:

  • other (Plane3): 另一个平面

Return: bool: 是否等价

Source code or View on GitHub
python
def __eq__(self, other) -> bool:
+        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:
@@ -202,5 +202,5 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

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

Source code or View on GitHub
python
def __rand__(self, other: 'Line3') -> 'Point3':
-    return self.cal_intersection_point3(other)
`,113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const y=s(l,[["render",p]]);export{c as __pageData,y as default}; + return self.approx(other)

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

源代码在GitHub上查看
python
def __rand__(self, other: 'Line3') -> 'Point3':
+    return self.cal_intersection_point3(other)
`,113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const F=s(l,[["render",p]]);export{y as __pageData,F as default}; diff --git a/assets/api_mp_math_plane.md.Ir4HtSn5.lean.js b/assets/api_mp_math_plane.md.Dl-FdXx3.lean.js similarity index 69% rename from assets/api_mp_math_plane.md.Ir4HtSn5.lean.js rename to assets/api_mp_math_plane.md.Dl-FdXx3.lean.js index aff7000..217bc99 100644 --- a/assets/api_mp_math_plane.md.Ir4HtSn5.lean.js +++ b/assets/api_mp_math_plane.md.Dl-FdXx3.lean.js @@ -1 +1 @@ -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.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"},t=n("",113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const y=s(l,[["render",p]]);export{c as __pageData,y as default}; +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y=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"},t=n("",113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const F=s(l,[["render",p]]);export{y as __pageData,F as default}; diff --git a/assets/en_api_mp_math_point.md.DcGqVqiO.js b/assets/api_mp_math_point.md.xU6HjeL2.js similarity index 60% rename from assets/en_api_mp_math_point.md.DcGqVqiO.js rename to assets/api_mp_math_point.md.xU6HjeL2.js index e6a82a0..64febee 100644 --- a/assets/en_api_mp_math_point.md.DcGqVqiO.js +++ b/assets/api_mp_math_point.md.xU6HjeL2.js @@ -1,4 +1,4 @@ -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"},l=t(`

mbcp.mp_math.point

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

class Point3

func __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):
+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)

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

参数:

  • x (float): x 坐标
  • y (float): y 坐标
  • z (float): z 坐标
源代码在GitHub上查看
python
def __init__(self, x: float, y: float, z: float):
     """
         笛卡尔坐标系中的点。
         Args:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         """
     self.x = x
     self.y = y
-    self.z = z

func 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:
+    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:
@@ -17,11 +17,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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

func self + other: Vector3 => Point3

Source code or View on GitHub
python
@overload
+    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

func self + other: Point3 => Point3

Source code or View on GitHub
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

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

func self + other

Description: P + V -> P P + P -> P

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __add__(self, other):
+    ...

method self + other

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

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __add__(self, other):
     """
         P + V -> P
         P + P -> P
@@ -30,7 +30,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`Point3\`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

func __eq__(self, other)

Description: 判断两个点是否相等。

Arguments:

Return: bool: 是否相等

Source code or View on GitHub
python
def __eq__(self, other):
+    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:
@@ -38,7 +38,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

func 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':
+    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
 
@@ -49,4 +49,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
             [\`Vector3\`](./vector#class-vector3): 新的向量
         """
     from .vector import Vector3
-    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
`,39),e=[l];function h(p,o,k,r,d,c){return a(),i("div",null,e)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; + 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.CIRBY4Zg.lean.js b/assets/api_mp_math_point.md.xU6HjeL2.lean.js similarity index 72% rename from assets/api_mp_math_point.md.CIRBY4Zg.lean.js rename to assets/api_mp_math_point.md.xU6HjeL2.lean.js index 47771f4..0ab8c06 100644 --- a/assets/api_mp_math_point.md.CIRBY4Zg.lean.js +++ b/assets/api_mp_math_point.md.xU6HjeL2.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":"api/mp_math/point.md","filePath":"zh/api/mp_math/point.md"}'),n={name:"api/mp_math/point.md"},l=t("",39),h=[l];function p(e,k,o,r,d,c){return a(),i("div",null,h)}const y=s(n,[["render",p]]);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":"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.DFwFkY98.js b/assets/api_mp_math_segment.md.BqloNjdD.js similarity index 73% rename from assets/api_mp_math_segment.md.DFwFkY98.js rename to assets/api_mp_math_segment.md.BqloNjdD.js index d3a0a79..9500797 100644 --- a/assets/api_mp_math_segment.md.DFwFkY98.js +++ b/assets/api_mp_math_segment.md.BqloNjdD.js @@ -1,4 +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

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

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

参数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源代码在GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
+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)

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

参数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源代码在GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
     """
         三维空间中的线段。
         Args:
@@ -12,4 +12,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,E,g){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),h=[p];function l(e,k,r,d,E,o){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.DFwFkY98.lean.js b/assets/api_mp_math_segment.md.BqloNjdD.lean.js similarity index 86% rename from assets/api_mp_math_segment.md.DFwFkY98.lean.js rename to assets/api_mp_math_segment.md.BqloNjdD.lean.js index c74d9ce..5049e34 100644 --- a/assets/api_mp_math_segment.md.DFwFkY98.lean.js +++ b/assets/api_mp_math_segment.md.BqloNjdD.lean.js @@ -1 +1 @@ -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,E,g){return a(),i("div",null,h)}const c=s(t,[["render",l]]);export{F as __pageData,c as default}; +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,E,o){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_utils.md.CFXHDZgH.js b/assets/api_mp_math_utils.md.CGBZjr3t.js similarity index 79% rename from assets/api_mp_math_utils.md.CFXHDZgH.js rename to assets/api_mp_math_utils.md.CGBZjr3t.js index 5904472..d89ff7f 100644 --- a/assets/api_mp_math_utils.md.CFXHDZgH.js +++ b/assets/api_mp_math_utils.md.CGBZjr3t.js @@ -1,4 +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.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

说明: 区间限定函数

参数:

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

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

源代码在GitHub上查看
python
def clamp(x: float, min_: float, max_: float) -> float:
+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

说明: 区间限定函数

参数:

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

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

源代码在GitHub上查看
python
def clamp(x: float, min_: float, max_: float) -> float:
     """
     区间限定函数
     Args:
@@ -9,13 +9,13 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     Returns:
         \`float\`: 限定在区间内的值
     """
-    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

说明: 用于近似比较对象

参数:

源代码在GitHub上查看
python
def __init__(self, value: RealNumber):
+    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

func __eq__(self, other)

源代码在GitHub上查看
python
def __eq__(self, other):
+    self.value = value

method __eq__(self, other)

源代码在GitHub上查看
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
             return abs(self.value - other) < APPROX
@@ -25,8 +25,8 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
         if isinstance(other, (Vector3, Point3, Plane3, Line3)):
             return all([approx(self.value.x, other.x), approx(self.value.y, other.y), approx(self.value.z, other.z)])
         else:
-            self.raise_type_error(other)

func raise_type_error(self, other)

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

func __ne__(self, other)

源代码在GitHub上查看
python
def __ne__(self, other):
+            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。
@@ -66,4 +66,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif x < 0:
         return f'-{abs(x)}'
     else:
-        return ''
`,38),h=[l];function p(e,k,r,o,d,g){return a(),i("div",null,h)}const c=s(n,[["render",p]]);export{F as __pageData,c as default}; + 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}; diff --git a/assets/api_mp_math_utils.md.CFXHDZgH.lean.js b/assets/api_mp_math_utils.md.CGBZjr3t.lean.js similarity index 72% rename from assets/api_mp_math_utils.md.CFXHDZgH.lean.js rename to assets/api_mp_math_utils.md.CGBZjr3t.lean.js index 38c2963..db5f944 100644 --- a/assets/api_mp_math_utils.md.CFXHDZgH.lean.js +++ b/assets/api_mp_math_utils.md.CGBZjr3t.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":"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 p(e,k,r,o,d,g){return a(),i("div",null,h)}const c=s(n,[["render",p]]);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 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.CuQ0WDoP.js b/assets/api_mp_math_vector.md.B443ftAV.js similarity index 62% rename from assets/api_mp_math_vector.md.CuQ0WDoP.js rename to assets/api_mp_math_vector.md.B443ftAV.js index 4a40469..e145449 100644 --- a/assets/api_mp_math_vector.md.CuQ0WDoP.js +++ b/assets/api_mp_math_vector.md.B443ftAV.js @@ -1,4 +1,4 @@ -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.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/vector.md","filePath":"zh/api/mp_math/vector.md"}'),n={name:"api/mp_math/vector.md"},l=t(`

mbcp.mp_math.vector

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

class Vector3

func __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):
+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.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/vector.md","filePath":"zh/api/mp_math/vector.md"}'),n={name:"api/mp_math/vector.md"},e=t(`

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:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -18,7 +18,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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])

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

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

参数:

返回: AnyAngle: 夹角

源代码在GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
+    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

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

参数:

返回: AnyAngle: 夹角

源代码在GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
     """
         计算两个向量之间的夹角。
         Args:
@@ -26,7 +26,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`AnyAngle\`](./angle#class-anyangle): 夹角
         """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

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

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

参数:

返回: Vector3: 叉乘结果

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

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

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

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

参数:

返回: Vector3: 叉乘结果

源代码在GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':
     """
         向量积 叉乘:v1 cross v2 -> v3
 
@@ -46,7 +46,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

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

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

参数:

返回: bool: 是否近似平行

源代码在GitHub上查看
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -55,7 +55,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

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

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

参数:

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> 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:
@@ -63,7 +63,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.cross(other).approx(zero_vector3)

func normalize(self)

说明: 将向量归一化。

自体归一化,不返回值。

源代码在GitHub上查看
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

method normalize(self)

说明: 将向量归一化。

自体归一化,不返回值。

源代码在GitHub上查看
python
def normalize(self):
     """
         将向量归一化。
 
@@ -72,33 +72,33 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     length = self.length
     self.x /= length
     self.y /= length
-    self.z /= length

@property

func np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源代码在GitHub上查看
python
@property
+    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

func length(self) -> float

说明: 向量的模。

返回: float: 模

源代码在GitHub上查看
python
@property
+    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

func unit(self) -> Vector3

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

返回: Vector3: 单位向量

源代码在GitHub上查看
python
@property
+    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

func __abs__(self)

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

@overload

func self + other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
+    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

func self + other: Point3 => Point3

源代码在GitHub上查看
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

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

func self + other

说明: V + P -> P

V + V -> V

参数:

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

源代码在GitHub上查看
python
def __add__(self, other):
+    ...

method self + other

说明: V + P -> P

V + V -> V

参数:

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

源代码在GitHub上查看
python
def __add__(self, other):
     """
         V + P -> P
 
@@ -113,7 +113,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}'")

func __eq__(self, other)

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

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):
+        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

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

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):
     """
         判断两个向量是否相等。
         Args:
@@ -121,7 +121,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

func self + other: Point3 => Point3

说明: P + V -> P

别去点那边实现了。

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __radd__(self, other: 'Point3') -> 'Point3':
+    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
 
@@ -131,11 +131,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`Point3\`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
+    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

func self - other: Point3 => Point3

源代码在GitHub上查看
python
@overload
+    ...

@overload

method self - other: Point3 => Point3

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

func self - other

说明: V - P -> P

V - V -> V

参数:

返回: Vector3 | Point3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other):
+    ...

method self - other

说明: V - P -> P

V - V -> V

参数:

返回: Vector3 | Point3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other):
     """
         V - P -> P
 
@@ -150,7 +150,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}"')

func self - other: Point3

说明: P - V -> P

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __rsub__(self, other: 'Point3'):
+        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:
@@ -161,11 +161,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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

func self * other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
+        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

func self * other: RealNumber => Vector3

源代码在GitHub上查看
python
@overload
+    ...

@overload

method self * other: RealNumber => Vector3

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

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

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

参数:

返回: Vector3: 数组运算结果

源代码在GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
+    ...

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

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

参数:

返回: Vector3: 数组运算结果

源代码在GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
     """
         数组运算 非点乘。点乘使用@,叉乘使用cross。
         Args:
@@ -178,8 +178,8 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}'")

func self * other: RealNumber => Vector3

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

func self @ other: Vector3 => RealNumber

说明: 点乘。

参数:

返回: float: 点乘结果

源代码在GitHub上查看
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
+        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:
@@ -187,11 +187,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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

func self / other: RealNumber => Vector3

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

func - self => Vector3

说明: 取负。

返回: Vector3: 负向量

源代码在GitHub上查看
python
def __neg__(self) -> 'Vector3':
+    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)

`,138),e=[l];function h(p,k,r,o,d,c){return a(),i("div",null,e)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; + 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)

`,138),h=[e];function l(p,k,r,o,d,g){return a(),i("div",null,h)}const y=s(n,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/api_mp_math_vector.md.CuQ0WDoP.lean.js b/assets/api_mp_math_vector.md.B443ftAV.lean.js similarity index 72% rename from assets/api_mp_math_vector.md.CuQ0WDoP.lean.js rename to assets/api_mp_math_vector.md.B443ftAV.lean.js index bc7bcb5..76a19a4 100644 --- a/assets/api_mp_math_vector.md.CuQ0WDoP.lean.js +++ b/assets/api_mp_math_vector.md.B443ftAV.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.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/vector.md","filePath":"zh/api/mp_math/vector.md"}'),n={name:"api/mp_math/vector.md"},l=t("",138),e=[l];function h(p,k,r,o,d,c){return a(),i("div",null,e)}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.vector","description":"","frontmatter":{"title":"mbcp.mp_math.vector","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/vector.md","filePath":"zh/api/mp_math/vector.md"}'),n={name:"api/mp_math/vector.md"},e=t("",138),h=[e];function l(p,k,r,o,d,g){return a(),i("div",null,h)}const y=s(n,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/api_particle_index.md.BxLVuqry.js b/assets/api_particle_index.md.BxLVuqry.js deleted file mode 100644 index 9477dab..0000000 --- a/assets/api_particle_index.md.BxLVuqry.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c,o as r,j as e,a}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/particle/index.md","filePath":"zh/api/particle/index.md"}'),i={name:"api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[a("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),l=e("p",null,[e("strong",null,"说明"),a(": 本模块定义了粒子生成相关的工具")],-1),s=[p,l];function n(o,d,_,m,h,f){return r(),c("div",null,s)}const u=t(i,[["render",n]]);export{b as __pageData,u as default}; diff --git a/assets/api_particle_index.md.BxLVuqry.lean.js b/assets/api_particle_index.md.BxLVuqry.lean.js deleted file mode 100644 index 9477dab..0000000 --- a/assets/api_particle_index.md.BxLVuqry.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c,o as r,j as e,a}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/particle/index.md","filePath":"zh/api/particle/index.md"}'),i={name:"api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[a("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),l=e("p",null,[e("strong",null,"说明"),a(": 本模块定义了粒子生成相关的工具")],-1),s=[p,l];function n(o,d,_,m,h,f){return r(),c("div",null,s)}const u=t(i,[["render",n]]);export{b as __pageData,u as default}; diff --git a/assets/api_particle_index.md.VxgsHiZa.js b/assets/api_particle_index.md.VxgsHiZa.js new file mode 100644 index 0000000..0e6c15b --- /dev/null +++ b/assets/api_particle_index.md.VxgsHiZa.js @@ -0,0 +1 @@ +import{_ as a,c as t,o as c,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/particle/index.md","filePath":"zh/api/particle/index.md"}'),i={name:"api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[r("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),s=e("p",null,"本模块定义了粒子生成相关的工具",-1),l=[p,s];function o(n,d,_,m,h,f){return c(),t("div",null,l)}const u=a(i,[["render",o]]);export{b as __pageData,u as default}; diff --git a/assets/api_particle_index.md.VxgsHiZa.lean.js b/assets/api_particle_index.md.VxgsHiZa.lean.js new file mode 100644 index 0000000..0e6c15b --- /dev/null +++ b/assets/api_particle_index.md.VxgsHiZa.lean.js @@ -0,0 +1 @@ +import{_ as a,c as t,o as c,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/particle/index.md","filePath":"zh/api/particle/index.md"}'),i={name:"api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[r("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),s=e("p",null,"本模块定义了粒子生成相关的工具",-1),l=[p,s];function o(n,d,_,m,h,f){return c(),t("div",null,l)}const u=a(i,[["render",o]]);export{b as __pageData,u as default}; diff --git a/assets/api_particle_particle.md.CioLG9Ab.js b/assets/api_particle_particle.md.CioLG9Ab.js deleted file mode 100644 index 5be86d4..0000000 --- a/assets/api_particle_particle.md.CioLG9Ab.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c,o as r,j as e,a}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/particle/particle.md","filePath":"zh/api/particle/particle.md"}'),p={name:"api/particle/particle.md"},l=e("h1",{id:"mbcp-particle",tabindex:"-1"},[a("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),i=e("p",null,[e("strong",null,"说明"),a(": 本模块定义了粒子生成相关的工具")],-1),s=[l,i];function o(n,d,_,m,h,f){return r(),c("div",null,s)}const x=t(p,[["render",o]]);export{u as __pageData,x as default}; diff --git a/assets/api_particle_particle.md.CioLG9Ab.lean.js b/assets/api_particle_particle.md.CioLG9Ab.lean.js deleted file mode 100644 index 5be86d4..0000000 --- a/assets/api_particle_particle.md.CioLG9Ab.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c,o as r,j as e,a}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/particle/particle.md","filePath":"zh/api/particle/particle.md"}'),p={name:"api/particle/particle.md"},l=e("h1",{id:"mbcp-particle",tabindex:"-1"},[a("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),i=e("p",null,[e("strong",null,"说明"),a(": 本模块定义了粒子生成相关的工具")],-1),s=[l,i];function o(n,d,_,m,h,f){return r(),c("div",null,s)}const x=t(p,[["render",o]]);export{u as __pageData,x as default}; diff --git a/assets/api_presets_index.md.BEZBx6Gj.js b/assets/api_presets_index.md.BEZBx6Gj.js new file mode 100644 index 0000000..ee491b3 --- /dev/null +++ b/assets/api_presets_index.md.BEZBx6Gj.js @@ -0,0 +1 @@ +import{_ as t,c as s,o as a,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/index.md","filePath":"zh/api/presets/index.md"}'),p={name:"api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[r("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,"本模块塞了一些预设",-1),n=[c,o];function d(i,l,_,m,h,f){return a(),s("div",null,n)}const u=t(p,[["render",d]]);export{b as __pageData,u as default}; diff --git a/assets/api_presets_index.md.BEZBx6Gj.lean.js b/assets/api_presets_index.md.BEZBx6Gj.lean.js new file mode 100644 index 0000000..ee491b3 --- /dev/null +++ b/assets/api_presets_index.md.BEZBx6Gj.lean.js @@ -0,0 +1 @@ +import{_ as t,c as s,o as a,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/index.md","filePath":"zh/api/presets/index.md"}'),p={name:"api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[r("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,"本模块塞了一些预设",-1),n=[c,o];function d(i,l,_,m,h,f){return a(),s("div",null,n)}const u=t(p,[["render",d]]);export{b as __pageData,u as default}; diff --git a/assets/api_presets_index.md.C7sBj6Q8.js b/assets/api_presets_index.md.C7sBj6Q8.js deleted file mode 100644 index df120f9..0000000 --- a/assets/api_presets_index.md.C7sBj6Q8.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as a,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/index.md","filePath":"zh/api/presets/index.md"}'),p={name:"api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[t("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),n=e("p",null,[e("strong",null,"说明"),t(": 本模块塞了一些预设")],-1),o=[c,n];function d(i,l,_,m,h,f){return r(),a("div",null,o)}const u=s(p,[["render",d]]);export{b as __pageData,u as default}; diff --git a/assets/api_presets_index.md.C7sBj6Q8.lean.js b/assets/api_presets_index.md.C7sBj6Q8.lean.js deleted file mode 100644 index df120f9..0000000 --- a/assets/api_presets_index.md.C7sBj6Q8.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as a,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/index.md","filePath":"zh/api/presets/index.md"}'),p={name:"api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[t("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),n=e("p",null,[e("strong",null,"说明"),t(": 本模块塞了一些预设")],-1),o=[c,n];function d(i,l,_,m,h,f){return r(),a("div",null,o)}const u=s(p,[["render",d]]);export{b as __pageData,u as default}; diff --git a/assets/api_presets_model_index.md.BcL7qpu8.js b/assets/api_presets_model_index.md.CzrZX1Li.js similarity index 80% rename from assets/api_presets_model_index.md.BcL7qpu8.js rename to assets/api_presets_model_index.md.CzrZX1Li.js index 5fc2697..05acf16 100644 --- a/assets/api_presets_model_index.md.BcL7qpu8.js +++ b/assets/api_presets_model_index.md.CzrZX1Li.js @@ -1,4 +1,4 @@ -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":"api/presets/model/index.md","filePath":"zh/api/presets/model/index.md"}'),t={name:"api/presets/model/index.md"},h=n(`

mbcp.presets.model

说明: 几何模型点集

class GeometricModels

@staticmethod

func 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":"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)

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

参数:

  • radius:
  • density:

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

源代码在GitHub上查看
python
@staticmethod
 def sphere(radius: float, density: float):
     """
         生成球体上的点集。
@@ -15,4 +15,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(k,e,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),l=[h];function p(k,e,r,d,E,o){return a(),i("div",null,l)}const c=s(n,[["render",p]]);export{y as __pageData,c as default}; diff --git a/assets/api_presets_model_index.md.BcL7qpu8.lean.js b/assets/api_presets_model_index.md.CzrZX1Li.lean.js similarity index 61% rename from assets/api_presets_model_index.md.BcL7qpu8.lean.js rename to assets/api_presets_model_index.md.CzrZX1Li.lean.js index e43f650..adb0c48 100644 --- a/assets/api_presets_model_index.md.BcL7qpu8.lean.js +++ b/assets/api_presets_model_index.md.CzrZX1Li.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":"api/presets/model/index.md","filePath":"zh/api/presets/model/index.md"}'),t={name:"api/presets/model/index.md"},h=n("",10),l=[h];function p(k,e,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":"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(k,e,r,d,E,o){return a(),i("div",null,l)}const c=s(n,[["render",p]]);export{y as __pageData,c as default}; diff --git a/assets/api_presets_model_model.md.Ch05JNzT.js b/assets/api_presets_model_model.md.Ch05JNzT.js deleted file mode 100644 index 0fb7911..0000000 --- a/assets/api_presets_model_model.md.Ch05JNzT.js +++ /dev/null @@ -1,18 +0,0 @@ -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":"api/presets/model/model.md","filePath":"zh/api/presets/model/model.md"}'),t={name:"api/presets/model/model.md"},h=n(`

mbcp.presets.model

说明: 几何模型点集

class GeometricModels

@staticmethod

func 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)])
-    theta_list = np.sqrt(num * np.pi) * phi_list
-    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(k,e,r,d,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default}; diff --git a/assets/api_presets_model_model.md.Ch05JNzT.lean.js b/assets/api_presets_model_model.md.Ch05JNzT.lean.js deleted file mode 100644 index 9be95df..0000000 --- a/assets/api_presets_model_model.md.Ch05JNzT.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 y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/model/model.md","filePath":"zh/api/presets/model/model.md"}'),t={name:"api/presets/model/model.md"},h=n("",10),l=[h];function p(k,e,r,d,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default}; diff --git a/assets/api_presets_presets.md.kIUJtfck.js b/assets/api_presets_presets.md.kIUJtfck.js deleted file mode 100644 index 9bc22c3..0000000 --- a/assets/api_presets_presets.md.kIUJtfck.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as a,o as r,j as e,a as s}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/presets.md","filePath":"zh/api/presets/presets.md"}'),p={name:"api/presets/presets.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[s("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,[e("strong",null,"说明"),s(": 本模块塞了一些预设")],-1),n=[c,o];function l(d,i,_,m,h,f){return r(),a("div",null,n)}const x=t(p,[["render",l]]);export{u as __pageData,x as default}; diff --git a/assets/api_presets_presets.md.kIUJtfck.lean.js b/assets/api_presets_presets.md.kIUJtfck.lean.js deleted file mode 100644 index 9bc22c3..0000000 --- a/assets/api_presets_presets.md.kIUJtfck.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as a,o as r,j as e,a as s}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/presets.md","filePath":"zh/api/presets/presets.md"}'),p={name:"api/presets/presets.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[s("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,[e("strong",null,"说明"),s(": 本模块塞了一些预设")],-1),n=[c,o];function l(d,i,_,m,h,f){return r(),a("div",null,n)}const x=t(p,[["render",l]]);export{u as __pageData,x as default}; diff --git a/assets/app.CaA7Rfbk.js b/assets/app.iiidcsxa.js similarity index 95% rename from assets/app.CaA7Rfbk.js rename to assets/app.iiidcsxa.js index 023a2c1..7833e98 100644 --- a/assets/app.CaA7Rfbk.js +++ b/assets/app.iiidcsxa.js @@ -1 +1 @@ -import{t as p}from"./chunks/theme.BhGtk3iD.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.BKKsDm5-.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.CHzCNdBP.js b/assets/chunks/@localSearchIndexen.CHzCNdBP.js new file mode 100644 index 0000000..05fb4b9 --- /dev/null +++ b/assets/chunks/@localSearchIndexen.CHzCNdBP.js @@ -0,0 +1 @@ +const t='{"documentCount":160,"nextId":160,"documentIds":{"0":"/en/api/#mbcp","1":"/en/api/mp_math/angle.html#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#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#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#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/#mbcp-mp-math","39":"/en/api/mp_math/line.html#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#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#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#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#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#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#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/#mbcp-particle","152":"/en/api/presets/#mbcp-presets","153":"/en/api/presets/model/#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":[1,1,12],"1":[4,1,2],"2":[2,4,1],"3":[4,4,1],"4":[11,8,28],"5":[5,8,27],"6":[5,8,26],"7":[5,8,23],"8":[6,8,24],"9":[6,8,26],"10":[5,8,21],"11":[5,8,21],"12":[5,8,21],"13":[5,8,23],"14":[5,8,23],"15":[5,8,23],"16":[7,8,18],"17":[5,8,14],"18":[6,8,17],"19":[7,8,19],"20":[7,8,16],"21":[7,8,16],"22":[3,8,18],"23":[4,1,2],"24":[2,4,7],"25":[2,4,8],"26":[3,4,10],"27":[2,4,6],"28":[2,4,6],"29":[2,4,6],"30":[4,1,2],"31":[2,4,1],"32":[9,6,29],"33":[10,6,38],"34":[14,4,76],"35":[4,1,2],"36":[13,4,72],"37":[7,4,65],"38":[3,1,20],"39":[4,1,2],"40":[2,4,1],"41":[8,6,28],"42":[11,6,46],"43":[8,6,31],"44":[10,6,65],"45":[8,6,62],"46":[8,6,32],"47":[8,6,38],"48":[9,6,45],"49":[14,6,46],"50":[8,6,39],"51":[8,6,42],"52":[8,6,38],"53":[8,6,45],"54":[4,6,30],"55":[10,6,39],"56":[9,6,54],"57":[6,6,47],"58":[4,1,2],"59":[2,4,9],"60":[2,4,9],"61":[2,4,7],"62":[2,4,8],"63":[2,4,9],"64":[2,4,8],"65":[2,4,8],"66":[2,4,9],"67":[2,4,8],"68":[2,4,8],"69":[2,4,9],"70":[2,4,8],"71":[2,4,8],"72":[2,4,9],"73":[2,4,8],"74":[2,4,8],"75":[2,4,9],"76":[4,1,2],"77":[2,4,1],"78":[9,6,39],"79":[7,6,48],"80":[10,6,64],"81":[10,6,68],"82":[9,6,73],"83":[9,6,70],"84":[9,6,33],"85":[8,6,40],"86":[5,6,28],"87":[10,6,48],"88":[11,6,42],"89":[10,6,47],"90":[10,6,38],"91":[9,6,18],"92":[9,6,18],"93":[5,6,72],"94":[6,6,38],"95":[7,6,18],"96":[4,1,2],"97":[2,4,1],"98":[8,6,29],"99":[11,6,48],"100":[8,6,16],"101":[7,6,15],"102":[4,6,37],"103":[5,6,40],"104":[7,6,39],"105":[4,1,2],"106":[2,4,1],"107":[7,6,35],"108":[4,1,2],"109":[7,4,34],"110":[2,4,1],"111":[6,6,23],"112":[5,6,34],"113":[7,6,18],"114":[5,6,14],"115":[11,4,43],"116":[11,4,46],"117":[12,4,52],"118":[4,1,3],"119":[2,4,1],"120":[8,6,32],"121":[11,6,47],"122":[8,6,34],"123":[6,6,46],"124":[13,6,46],"125":[8,6,40],"126":[4,6,20],"127":[6,6,34],"128":[5,6,36],"129":[5,6,24],"130":[4,6,13],"131":[7,6,15],"132":[7,6,15],"133":[4,6,49],"134":[5,6,40],"135":[7,6,34],"136":[6,6,15],"137":[6,6,15],"138":[3,6,48],"139":[4,6,45],"140":[6,6,15],"141":[7,6,16],"142":[9,6,58],"143":[7,6,16],"144":[7,6,41],"145":[7,6,18],"146":[5,6,24],"147":[3,4,7],"148":[3,4,8],"149":[3,4,8],"150":[3,4,8],"151":[2,1,2],"152":[2,1,2],"153":[3,1,2],"154":[2,3,2],"155":[6,5,51],"156":[2,1,1],"157":[1,2,25],"158":[1,1,2],"159":[1,1,7]},"averageFieldLength":[5.6499999999999995,5.056250000000001,24.6625],"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":"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}}],["向量的模",{"2":{"128":2}}],["向量积",{"2":{"123":2}}],["返回numpy数组",{"2":{"127":1}}],["返回如下行列式的结果",{"2":{"123":1}}],["将向量归一化",{"2":{"126":2}}],["j",{"2":{"123":1}}],["其余结果的模为平行四边形的面积",{"2":{"123":2}}],["叉乘使用cross",{"2":{"142":2}}],["叉乘结果",{"2":{"123":2}}],["叉乘为0",{"2":{"123":2}}],["叉乘",{"2":{"123":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":{"115":2}}],["或整数元组",{"2":{"34":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}}],["k``",{"2":{"123":1}}],["k",{"2":{"79":12}}],["常数项",{"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":{"82":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":{"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}}],["则两向量平行",{"2":{"123":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":{"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}}],["best",{"0":{"156":1},"1":{"157":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":2}}],["柯理化",{"2":{"37":2}}],["函数式编程",{"2":{"37":1}}],["函数",{"2":{"37":2}}],["对多参数函数进行柯里化",{"2":{"37":2}}],["d",{"0":{"78":1},"2":{"78":7,"79":6,"81":1,"82":6,"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}}],["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":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}}],["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":{"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":{"56":2}}],["计算两条直线的交点",{"2":{"45":2}}],["计算直线经过指定点p的垂线",{"2":{"46":2}}],["计算直线和直线或点之间的距离",{"2":{"44":2}}],["计算直线和直线之间的夹角",{"2":{"43":2}}],["计算三元函数在某点的梯度向量",{"2":{"36":2}}],["计算曲线上的点",{"2":{"33":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}}],["``x2",{"2":{"123":1}}],["``x1",{"2":{"123":1}}],["``i",{"2":{"123":1}}],["```",{"2":{"37":1}}],["```python",{"2":{"37":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}}],["`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":{"9":1},"2":{"9":1}}],["ne",{"0":{"114":1},"2":{"114":1}}],["np",{"0":{"127":2},"2":{"82":9,"127":4,"155":9}}],["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}}],["|",{"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}}],["z2``",{"2":{"123":1}}],["z1``",{"2":{"123":1}}],["zero",{"0":{"147":1},"2":{"89":1,"125":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":4,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"120":5,"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":2}}],["y2",{"2":{"123":1}}],["y1",{"2":{"123":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":4,"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":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":2}}],["x3c",{"2":{"99":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x26",{"2":{"93":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":4,"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":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}}],["约等于判定误差",{"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":9,"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}}],["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":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}}],["tip",{"2":{"36":2,"37":2}}],["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":{"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":7,"36":12,"42":5,"49":4,"99":6,"115":4,"121":6,"124":4}}],["error",{"0":{"113":1},"2":{"112":2,"113":1}}],["exceptions",{"2":{"44":1,"45":1,"80":1,"81":1,"82":1,"83":1,"93":1}}],["examples",{"2":{"37":2}}],["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,"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,"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}}],["255万个粒子",{"2":{"157":1}}],["2",{"2":{"5":1,"8":1,"9":1,"26":1,"34":1,"36":3,"37":2,"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":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":{"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}}],["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":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":{"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":2,"44":2,"45":2,"80":2,"81":2,"82":2,"83":2,"93":2}}],["ratio",{"0":{"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}}],["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":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":{"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}}],["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":{"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":2}}],["v2",{"2":{"57":2,"88":2,"89":4,"123":2}}],["v1",{"2":{"57":4,"88":2,"89":2,"123":2}}],["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}}],["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":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":3,"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}}],["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}}],["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":{"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":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}}],["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":{"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}}],["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":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}}],["任意角度",{"2":{"4":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}}],["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,"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":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,"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}}],["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}}],["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}}],["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/@localSearchIndexen.DOhc_xuw.js b/assets/chunks/@localSearchIndexen.DOhc_xuw.js deleted file mode 100644 index 06f6ada..0000000 --- a/assets/chunks/@localSearchIndexen.DOhc_xuw.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":167,"nextId":167,"documentIds":{"0":"/en/api/api.html#mbcp","1":"/en/api/mp_math/angle.html#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#func-init-self-value-float-is-radian-bool-false","5":"/en/api/mp_math/angle.html#func-complementary-self-anyangle","6":"/en/api/mp_math/angle.html#func-supplementary-self-anyangle","7":"/en/api/mp_math/angle.html#func-degree-self-float","8":"/en/api/mp_math/angle.html#func-minimum-positive-self-anyangle","9":"/en/api/mp_math/angle.html#func-maximum-negative-self-anyangle","10":"/en/api/mp_math/angle.html#func-sin-self-float","11":"/en/api/mp_math/angle.html#func-cos-self-float","12":"/en/api/mp_math/angle.html#func-tan-self-float","13":"/en/api/mp_math/angle.html#func-cot-self-float","14":"/en/api/mp_math/angle.html#func-sec-self-float","15":"/en/api/mp_math/angle.html#func-csc-self-float","16":"/en/api/mp_math/angle.html#func-self-other-anyangle-anyangle","17":"/en/api/mp_math/angle.html#func-eq-self-other","18":"/en/api/mp_math/angle.html#func-self-other-anyangle-anyangle-1","19":"/en/api/mp_math/angle.html#func-self-other-float-anyangle","20":"/en/api/mp_math/angle.html#func-self-other-float-anyangle-1","21":"/en/api/mp_math/angle.html#func-self-other-anyangle-float","22":"/en/api/mp_math/angle.html#func-self-other","23":"/en/api/#mbcp","24":"/en/api/mp_math/const.html#mbcp-mp-math-const","25":"/en/api/mp_math/const.html#var-pi","26":"/en/api/mp_math/const.html#var-e","27":"/en/api/mp_math/const.html#var-golden-ratio","28":"/en/api/mp_math/const.html#var-gamma","29":"/en/api/mp_math/const.html#var-epsilon","30":"/en/api/mp_math/const.html#var-approx","31":"/en/api/mp_math/equation.html#mbcp-mp-math-equation","32":"/en/api/mp_math/equation.html#class-curveequation","33":"/en/api/mp_math/equation.html#func-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","34":"/en/api/mp_math/equation.html#func-call-self-t-var-point3-tuple-point3","35":"/en/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","36":"/en/api/mp_math/function.html#mbcp-mp-math-function","37":"/en/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","38":"/en/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","39":"/en/api/mp_math/#mbcp-mp-math","40":"/en/api/mp_math/line.html#mbcp-mp-math-line","41":"/en/api/mp_math/line.html#class-line3","42":"/en/api/mp_math/line.html#func-init-self-point-point3-direction-vector3","43":"/en/api/mp_math/line.html#func-approx-self-other-line3-epsilon-float-approx-bool","44":"/en/api/mp_math/line.html#func-cal-angle-self-other-line3-anyangle","45":"/en/api/mp_math/line.html#func-cal-distance-self-other-line3-point3-float","46":"/en/api/mp_math/line.html#func-cal-intersection-self-other-line3-point3","47":"/en/api/mp_math/line.html#func-cal-perpendicular-self-point-point3-line3","48":"/en/api/mp_math/line.html#func-get-point-self-t-realnumber-point3","49":"/en/api/mp_math/line.html#func-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","50":"/en/api/mp_math/line.html#func-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","51":"/en/api/mp_math/line.html#func-is-parallel-self-other-line3-bool","52":"/en/api/mp_math/line.html#func-is-collinear-self-other-line3-bool","53":"/en/api/mp_math/line.html#func-is-point-on-self-point-point3-bool","54":"/en/api/mp_math/line.html#func-is-coplanar-self-other-line3-bool","55":"/en/api/mp_math/line.html#func-simplify-self","56":"/en/api/mp_math/line.html#func-from-two-points-cls-p1-point3-p2-point3-line3","57":"/en/api/mp_math/line.html#func-and-self-other-line3-line3-point3-none","58":"/en/api/mp_math/line.html#func-eq-self-other-bool","59":"/en/api/mp_math/mp_math.html#mbcp-mp-math","60":"/en/api/mp_math/mp_math_typing.html#mbcp-mp-math-mp-math-typing","61":"/en/api/mp_math/mp_math_typing.html#var-realnumber","62":"/en/api/mp_math/mp_math_typing.html#var-number","63":"/en/api/mp_math/mp_math_typing.html#var-singlevar","64":"/en/api/mp_math/mp_math_typing.html#var-arrayvar","65":"/en/api/mp_math/mp_math_typing.html#var-var","66":"/en/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","67":"/en/api/mp_math/mp_math_typing.html#var-onearrayfunc","68":"/en/api/mp_math/mp_math_typing.html#var-onevarfunc","69":"/en/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","70":"/en/api/mp_math/mp_math_typing.html#var-twoarraysfunc","71":"/en/api/mp_math/mp_math_typing.html#var-twovarsfunc","72":"/en/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","73":"/en/api/mp_math/mp_math_typing.html#var-threearraysfunc","74":"/en/api/mp_math/mp_math_typing.html#var-threevarsfunc","75":"/en/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","76":"/en/api/mp_math/mp_math_typing.html#var-multiarraysfunc","77":"/en/api/mp_math/mp_math_typing.html#var-multivarsfunc","78":"/en/api/mp_math/plane.html#mbcp-mp-math-plane","79":"/en/api/mp_math/plane.html#class-plane3","80":"/en/api/mp_math/plane.html#func-init-self-a-float-b-float-c-float-d-float","81":"/en/api/mp_math/plane.html#func-approx-self-other-plane3-bool","82":"/en/api/mp_math/plane.html#func-cal-angle-self-other-line3-plane3-anyangle","83":"/en/api/mp_math/plane.html#func-cal-distance-self-other-plane3-point3-float","84":"/en/api/mp_math/plane.html#func-cal-intersection-line3-self-other-plane3-line3","85":"/en/api/mp_math/plane.html#func-cal-intersection-point3-self-other-line3-point3","86":"/en/api/mp_math/plane.html#func-cal-parallel-plane3-self-point-point3-plane3","87":"/en/api/mp_math/plane.html#func-is-parallel-self-other-plane3-bool","88":"/en/api/mp_math/plane.html#func-normal-self-vector3","89":"/en/api/mp_math/plane.html#func-from-point-and-normal-cls-point-point3-normal-vector3-plane3","90":"/en/api/mp_math/plane.html#func-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","91":"/en/api/mp_math/plane.html#func-from-two-lines-cls-l1-line3-l2-line3-plane3","92":"/en/api/mp_math/plane.html#func-from-point-and-line-cls-point-point3-line-line3-plane3","93":"/en/api/mp_math/plane.html#func-and-self-other-line3-point3-none","94":"/en/api/mp_math/plane.html#func-and-self-other-plane3-line3-none","95":"/en/api/mp_math/plane.html#func-and-self-other","96":"/en/api/mp_math/plane.html#func-eq-self-other-bool","97":"/en/api/mp_math/plane.html#func-rand-self-other-line3-point3","98":"/en/api/mp_math/point.html#mbcp-mp-math-point","99":"/en/api/mp_math/point.html#class-point3","100":"/en/api/mp_math/point.html#func-init-self-x-float-y-float-z-float","101":"/en/api/mp_math/point.html#func-approx-self-other-point3-epsilon-float-approx-bool","102":"/en/api/mp_math/point.html#func-self-other-vector3-point3","103":"/en/api/mp_math/point.html#func-self-other-point3-point3","104":"/en/api/mp_math/point.html#func-self-other","105":"/en/api/mp_math/point.html#func-eq-self-other","106":"/en/api/mp_math/point.html#func-self-other-point3-vector3","107":"/en/api/mp_math/segment.html#mbcp-mp-math-segment","108":"/en/api/mp_math/segment.html#class-segment3","109":"/en/api/mp_math/segment.html#func-init-self-p1-point3-p2-point3","110":"/en/api/mp_math/utils.html#mbcp-mp-math-utils","111":"/en/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","112":"/en/api/mp_math/utils.html#class-approx","113":"/en/api/mp_math/utils.html#func-init-self-value-realnumber","114":"/en/api/mp_math/utils.html#func-eq-self-other","115":"/en/api/mp_math/utils.html#func-raise-type-error-self-other","116":"/en/api/mp_math/utils.html#func-ne-self-other","117":"/en/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","118":"/en/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","119":"/en/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","120":"/en/api/particle/#mbcp-particle","121":"/en/api/mp_math/vector.html#mbcp-mp-math-vector","122":"/en/api/mp_math/vector.html#class-vector3","123":"/en/api/mp_math/vector.html#func-init-self-x-float-y-float-z-float","124":"/en/api/mp_math/vector.html#func-approx-self-other-vector3-epsilon-float-approx-bool","125":"/en/api/mp_math/vector.html#func-cal-angle-self-other-vector3-anyangle","126":"/en/api/mp_math/vector.html#func-cross-self-other-vector3-vector3","127":"/en/api/mp_math/vector.html#func-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","128":"/en/api/mp_math/vector.html#func-is-parallel-self-other-vector3-bool","129":"/en/api/mp_math/vector.html#func-normalize-self","130":"/en/api/mp_math/vector.html#func-np-array-self-np-ndarray","131":"/en/api/mp_math/vector.html#func-length-self-float","132":"/en/api/mp_math/vector.html#func-unit-self-vector3","133":"/en/api/mp_math/vector.html#func-abs-self","134":"/en/api/mp_math/vector.html#func-self-other-vector3-vector3","135":"/en/api/mp_math/vector.html#func-self-other-point3-point3","136":"/en/api/mp_math/vector.html#func-self-other","137":"/en/api/mp_math/vector.html#func-eq-self-other","138":"/en/api/mp_math/vector.html#func-self-other-point3-point3-1","139":"/en/api/mp_math/vector.html#func-self-other-vector3-vector3-1","140":"/en/api/mp_math/vector.html#func-self-other-point3-point3-2","141":"/en/api/mp_math/vector.html#func-self-other-1","142":"/en/api/mp_math/vector.html#func-self-other-point3","143":"/en/api/mp_math/vector.html#func-self-other-vector3-vector3-2","144":"/en/api/mp_math/vector.html#func-self-other-realnumber-vector3","145":"/en/api/mp_math/vector.html#func-self-other-int-float-vector3-vector3","146":"/en/api/mp_math/vector.html#func-self-other-realnumber-vector3-1","147":"/en/api/mp_math/vector.html#func-self-other-vector3-realnumber","148":"/en/api/mp_math/vector.html#func-self-other-realnumber-vector3-2","149":"/en/api/mp_math/vector.html#func-self-vector3","150":"/en/api/mp_math/vector.html#var-zero-vector3","151":"/en/api/mp_math/vector.html#var-x-axis","152":"/en/api/mp_math/vector.html#var-y-axis","153":"/en/api/mp_math/vector.html#var-z-axis","154":"/en/api/particle/particle.html#mbcp-particle","155":"/en/api/presets/#mbcp-presets","156":"/en/api/presets/model/#mbcp-presets-model","157":"/en/api/presets/model/#class-geometricmodels","158":"/en/api/presets/model/#func-sphere-radius-float-density-float","159":"/en/api/presets/model/model.html#mbcp-presets-model","160":"/en/api/presets/model/model.html#class-geometricmodels","161":"/en/api/presets/model/model.html#func-sphere-radius-float-density-float","162":"/en/demo/best-practice.html#best-practice","163":"/en/demo/best-practice.html#works","164":"/en/api/presets/presets.html#mbcp-presets","165":"/en/guide/#开始不了一点","166":"/en/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,13],"1":[4,1,3],"2":[2,4,1],"3":[4,4,1],"4":[11,8,28],"5":[5,8,27],"6":[5,8,26],"7":[5,8,23],"8":[6,8,24],"9":[6,8,26],"10":[5,8,21],"11":[5,8,21],"12":[5,8,21],"13":[5,8,23],"14":[5,8,23],"15":[5,8,23],"16":[7,8,18],"17":[5,8,14],"18":[6,8,17],"19":[7,8,19],"20":[7,8,16],"21":[7,8,16],"22":[3,8,18],"23":[1,1,13],"24":[4,1,3],"25":[2,4,7],"26":[2,4,8],"27":[3,4,10],"28":[2,4,6],"29":[2,4,6],"30":[2,4,6],"31":[4,1,3],"32":[2,4,1],"33":[8,6,29],"34":[10,6,38],"35":[14,4,76],"36":[4,1,3],"37":[13,4,72],"38":[7,4,65],"39":[3,1,21],"40":[4,1,3],"41":[2,4,1],"42":[8,6,28],"43":[11,6,46],"44":[8,6,31],"45":[10,6,65],"46":[8,6,62],"47":[8,6,32],"48":[8,6,38],"49":[9,6,45],"50":[14,6,46],"51":[8,6,39],"52":[8,6,42],"53":[8,6,38],"54":[8,6,45],"55":[4,6,30],"56":[10,6,39],"57":[9,6,54],"58":[6,6,47],"59":[3,1,21],"60":[4,1,3],"61":[2,4,9],"62":[2,4,9],"63":[2,4,7],"64":[2,4,8],"65":[2,4,9],"66":[2,4,8],"67":[2,4,8],"68":[2,4,9],"69":[2,4,8],"70":[2,4,8],"71":[2,4,9],"72":[2,4,8],"73":[2,4,8],"74":[2,4,9],"75":[2,4,8],"76":[2,4,8],"77":[2,4,9],"78":[4,1,3],"79":[2,4,1],"80":[9,6,39],"81":[7,6,48],"82":[10,6,64],"83":[10,6,68],"84":[9,6,73],"85":[9,6,70],"86":[9,6,33],"87":[8,6,40],"88":[5,6,28],"89":[10,6,48],"90":[11,6,42],"91":[10,6,47],"92":[10,6,38],"93":[9,6,18],"94":[9,6,18],"95":[5,6,72],"96":[6,6,38],"97":[7,6,18],"98":[4,1,3],"99":[2,4,1],"100":[8,6,29],"101":[11,6,48],"102":[8,6,16],"103":[7,6,15],"104":[4,6,37],"105":[5,6,40],"106":[7,6,39],"107":[4,1,3],"108":[2,4,1],"109":[7,6,35],"110":[4,1,3],"111":[7,4,34],"112":[2,4,1],"113":[6,6,23],"114":[5,6,34],"115":[7,6,18],"116":[5,6,14],"117":[11,4,43],"118":[11,4,46],"119":[12,4,52],"120":[2,1,3],"121":[4,1,4],"122":[2,4,1],"123":[8,6,32],"124":[11,6,47],"125":[8,6,34],"126":[6,6,46],"127":[13,6,46],"128":[8,6,40],"129":[4,6,20],"130":[6,6,34],"131":[5,6,36],"132":[5,6,24],"133":[4,6,13],"134":[7,6,15],"135":[7,6,15],"136":[4,6,49],"137":[5,6,40],"138":[7,6,34],"139":[6,6,15],"140":[6,6,15],"141":[3,6,48],"142":[4,6,45],"143":[6,6,15],"144":[7,6,16],"145":[9,6,58],"146":[7,6,16],"147":[7,6,41],"148":[7,6,18],"149":[5,6,24],"150":[3,4,7],"151":[3,4,8],"152":[3,4,8],"153":[3,4,8],"154":[2,1,3],"155":[2,1,3],"156":[3,1,3],"157":[2,3,2],"158":[6,5,51],"159":[3,1,3],"160":[2,3,2],"161":[6,5,51],"162":[2,1,1],"163":[1,2,25],"164":[2,1,3],"165":[1,1,2],"166":[1,1,7]},"averageFieldLength":[5.5209580838323316,4.922155688622752,24.29940119760479],"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":"func __init__(self, value: float, is_radian: bool = False)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"5":{"title":"func complementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"func supplementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"func degree(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"func minimum_positive(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"func maximum_negative(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"func sin(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"func cos(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"func tan(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"func cot(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"func sec(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"func csc(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"func self + other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"func self - other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"func self * other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"func self / other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"func self / other: AnyAngle => float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"func self / other","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"mbcp","titles":[]},"24":{"title":"mbcp.mp_math.const","titles":[]},"25":{"title":"var PI","titles":["mbcp.mp_math.const"]},"26":{"title":"var E","titles":["mbcp.mp_math.const"]},"27":{"title":"var GOLDEN_RATIO","titles":["mbcp.mp_math.const"]},"28":{"title":"var GAMMA","titles":["mbcp.mp_math.const"]},"29":{"title":"var EPSILON","titles":["mbcp.mp_math.const"]},"30":{"title":"var APPROX","titles":["mbcp.mp_math.const"]},"31":{"title":"mbcp.mp_math.equation","titles":[]},"32":{"title":"class CurveEquation","titles":["mbcp.mp_math.equation"]},"33":{"title":"func __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"func __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["mbcp.mp_math.equation","class CurveEquation"]},"35":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["mbcp.mp_math.equation"]},"36":{"title":"mbcp.mp_math.function","titles":[]},"37":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["mbcp.mp_math.function"]},"38":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["mbcp.mp_math.function"]},"39":{"title":"mbcp.mp_math","titles":[]},"40":{"title":"mbcp.mp_math.line","titles":[]},"41":{"title":"class Line3","titles":["mbcp.mp_math.line"]},"42":{"title":"func __init__(self, point: Point3, direction: Vector3)","titles":["mbcp.mp_math.line","class Line3"]},"43":{"title":"func approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"44":{"title":"func cal_angle(self, other: Line3) -> AnyAngle","titles":["mbcp.mp_math.line","class Line3"]},"45":{"title":"func cal_distance(self, other: Line3 | Point3) -> float","titles":["mbcp.mp_math.line","class Line3"]},"46":{"title":"func cal_intersection(self, other: Line3) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"47":{"title":"func cal_perpendicular(self, point: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"48":{"title":"func get_point(self, t: RealNumber) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"49":{"title":"func get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["mbcp.mp_math.line","class Line3"]},"50":{"title":"func is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"51":{"title":"func is_parallel(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"52":{"title":"func is_collinear(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"53":{"title":"func is_point_on(self, point: Point3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"54":{"title":"func is_coplanar(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"55":{"title":"func simplify(self)","titles":["mbcp.mp_math.line","class Line3"]},"56":{"title":"func from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"57":{"title":"func __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["mbcp.mp_math.line","class Line3"]},"58":{"title":"func __eq__(self, other) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"59":{"title":"mbcp.mp_math","titles":[]},"60":{"title":"mbcp.mp_math.mp_math_typing","titles":[]},"61":{"title":"var RealNumber","titles":["mbcp.mp_math.mp_math_typing"]},"62":{"title":"var Number","titles":["mbcp.mp_math.mp_math_typing"]},"63":{"title":"var SingleVar","titles":["mbcp.mp_math.mp_math_typing"]},"64":{"title":"var ArrayVar","titles":["mbcp.mp_math.mp_math_typing"]},"65":{"title":"var Var","titles":["mbcp.mp_math.mp_math_typing"]},"66":{"title":"var OneSingleVarFunc","titles":["mbcp.mp_math.mp_math_typing"]},"67":{"title":"var OneArrayFunc","titles":["mbcp.mp_math.mp_math_typing"]},"68":{"title":"var OneVarFunc","titles":["mbcp.mp_math.mp_math_typing"]},"69":{"title":"var TwoSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"70":{"title":"var TwoArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"71":{"title":"var TwoVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"72":{"title":"var ThreeSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"73":{"title":"var ThreeArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"74":{"title":"var ThreeVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"75":{"title":"var MultiSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"76":{"title":"var MultiArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"77":{"title":"var MultiVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"78":{"title":"mbcp.mp_math.plane","titles":[]},"79":{"title":"class Plane3","titles":["mbcp.mp_math.plane"]},"80":{"title":"func __init__(self, a: float, b: float, c: float, d: float)","titles":["mbcp.mp_math.plane","class Plane3"]},"81":{"title":"func approx(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"82":{"title":"func cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["mbcp.mp_math.plane","class Plane3"]},"83":{"title":"func cal_distance(self, other: Plane3 | Point3) -> float","titles":["mbcp.mp_math.plane","class Plane3"]},"84":{"title":"func cal_intersection_line3(self, other: Plane3) -> Line3","titles":["mbcp.mp_math.plane","class Plane3"]},"85":{"title":"func cal_intersection_point3(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"86":{"title":"func cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"87":{"title":"func is_parallel(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"88":{"title":"func normal(self) -> Vector3","titles":["mbcp.mp_math.plane","class Plane3"]},"89":{"title":"func from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"90":{"title":"func from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"91":{"title":"func from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"92":{"title":"func from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"93":{"title":"func __and__(self, other: Line3) -> Point3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"94":{"title":"func __and__(self, other: Plane3) -> Line3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"95":{"title":"func __and__(self, other)","titles":["mbcp.mp_math.plane","class Plane3"]},"96":{"title":"func __eq__(self, other) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"97":{"title":"func __rand__(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"98":{"title":"mbcp.mp_math.point","titles":[]},"99":{"title":"class Point3","titles":["mbcp.mp_math.point"]},"100":{"title":"func __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.point","class Point3"]},"101":{"title":"func approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.point","class Point3"]},"102":{"title":"func self + other: Vector3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"103":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"104":{"title":"func self + other","titles":["mbcp.mp_math.point","class Point3"]},"105":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.point","class Point3"]},"106":{"title":"func self - other: Point3 => Vector3","titles":["mbcp.mp_math.point","class Point3"]},"107":{"title":"mbcp.mp_math.segment","titles":[]},"108":{"title":"class Segment3","titles":["mbcp.mp_math.segment"]},"109":{"title":"func __init__(self, p1: Point3, p2: Point3)","titles":["mbcp.mp_math.segment","class Segment3"]},"110":{"title":"mbcp.mp_math.utils","titles":[]},"111":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["mbcp.mp_math.utils"]},"112":{"title":"class Approx","titles":["mbcp.mp_math.utils"]},"113":{"title":"func __init__(self, value: RealNumber)","titles":["mbcp.mp_math.utils","class Approx"]},"114":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"115":{"title":"func raise_type_error(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"116":{"title":"func __ne__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"117":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.utils"]},"118":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"119":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"120":{"title":"mbcp.particle","titles":[]},"121":{"title":"mbcp.mp_math.vector","titles":[]},"122":{"title":"class Vector3","titles":["mbcp.mp_math.vector"]},"123":{"title":"func __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.vector","class Vector3"]},"124":{"title":"func approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"125":{"title":"func cal_angle(self, other: Vector3) -> AnyAngle","titles":["mbcp.mp_math.vector","class Vector3"]},"126":{"title":"func cross(self, other: Vector3) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"127":{"title":"func is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"128":{"title":"func is_parallel(self, other: Vector3) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"129":{"title":"func normalize(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"130":{"title":"func np_array(self) -> np.ndarray","titles":["mbcp.mp_math.vector","class Vector3"]},"131":{"title":"func length(self) -> float","titles":["mbcp.mp_math.vector","class Vector3"]},"132":{"title":"func unit(self) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"133":{"title":"func __abs__(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"134":{"title":"func self + other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"135":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"136":{"title":"func self + other","titles":["mbcp.mp_math.vector","class Vector3"]},"137":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.vector","class Vector3"]},"138":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"139":{"title":"func self - other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"140":{"title":"func self - other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"141":{"title":"func self - other","titles":["mbcp.mp_math.vector","class Vector3"]},"142":{"title":"func self - other: Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"143":{"title":"func self * other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"144":{"title":"func self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"145":{"title":"func self * other: int | float | Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"146":{"title":"func self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"147":{"title":"func self @ other: Vector3 => RealNumber","titles":["mbcp.mp_math.vector","class Vector3"]},"148":{"title":"func self / other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"149":{"title":"func - self => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"150":{"title":"var zero_vector3","titles":["mbcp.mp_math.vector"]},"151":{"title":"var x_axis","titles":["mbcp.mp_math.vector"]},"152":{"title":"var y_axis","titles":["mbcp.mp_math.vector"]},"153":{"title":"var z_axis","titles":["mbcp.mp_math.vector"]},"154":{"title":"mbcp.particle","titles":[]},"155":{"title":"mbcp.presets","titles":[]},"156":{"title":"mbcp.presets.model","titles":[]},"157":{"title":"class GeometricModels","titles":["mbcp.presets.model"]},"158":{"title":"func sphere(radius: float, density: float)","titles":["mbcp.presets.model","class GeometricModels"]},"159":{"title":"mbcp.presets.model","titles":[]},"160":{"title":"class GeometricModels","titles":["mbcp.presets.model"]},"161":{"title":"func sphere(radius: float, density: float)","titles":["mbcp.presets.model","class GeometricModels"]},"162":{"title":"Best Practice","titles":[]},"163":{"title":"Works","titles":["Best Practice"]},"164":{"title":"mbcp.presets","titles":[]},"165":{"title":"开始不了一点","titles":[]},"166":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["∫12x111",{"2":{"165":1}}],["开始不了一点",{"0":{"165":1}}],["红石音乐",{"2":{"163":1}}],["这么可爱真是抱歉",{"2":{"163":1}}],["这玩意不太稳定",{"2":{"35":2}}],["轻涟",{"2":{"163":1}}],["芙宁娜pv曲",{"2":{"163":1}}],["有点甜~",{"2":{"163":1}}],["有关函数柯里化",{"2":{"38":2}}],["星穹铁道",{"2":{"163":1}}],["崩坏",{"2":{"163":1}}],["使一颗心免于哀伤",{"2":{"163":1}}],["总有一条蜿蜒在童话镇里",{"2":{"163":1}}],["童话镇~",{"2":{"163":1}}],["特效红石音乐",{"2":{"163":2}}],["works",{"0":{"163":1}}],["warning",{"2":{"35":2}}],["4",{"2":{"158":1,"161":1}}],["球体上的点集",{"2":{"158":2,"161":2}}],["生成球体上的点集",{"2":{"158":2,"161":2}}],["几何模型点集",{"2":{"156":1,"159":1}}],["零向量",{"2":{"150":1}}],["负向量",{"2":{"149":2}}],["取负",{"2":{"149":2}}],["取两平面的交集",{"2":{"95":2}}],["非点乘",{"2":{"145":2}}],["别去点那边实现了",{"2":{"138":2}}],["单位向量",{"2":{"132":2}}],["单变量",{"2":{"63":1}}],["模",{"2":{"131":2}}],["向量的模",{"2":{"131":2}}],["向量积",{"2":{"126":2}}],["返回numpy数组",{"2":{"130":1}}],["返回如下行列式的结果",{"2":{"126":1}}],["将向量归一化",{"2":{"129":2}}],["j",{"2":{"126":1}}],["其余结果的模为平行四边形的面积",{"2":{"126":2}}],["叉乘使用cross",{"2":{"145":2}}],["叉乘结果",{"2":{"126":2}}],["叉乘为0",{"2":{"126":2}}],["叉乘",{"2":{"126":2}}],["以及一些常用的向量",{"2":{"121":1}}],["格式化符号数",{"2":{"119":2}}],["quot",{"2":{"118":2,"119":4}}],["符号",{"2":{"118":2,"119":2}}],["获取该向量的单位向量",{"2":{"132":2}}],["获取数的符号",{"2":{"118":2}}],["获取直线的参数方程",{"2":{"49":2}}],["获取直线上的点",{"2":{"48":2}}],["用于判断是否近似于0",{"2":{"117":2}}],["用于近似比较对象",{"2":{"113":2}}],["或包装一个实数",{"2":{"117":2}}],["或整数元组",{"2":{"35":2}}],["限定在区间内的值",{"2":{"111":2}}],["值",{"2":{"111":2}}],["区间限定函数",{"2":{"111":2}}],["us",{"2":{"166":1}}],["unit",{"0":{"132":1},"2":{"132":1}}],["unsupported",{"2":{"45":1,"82":1,"83":1,"95":1,"115":1,"136":1,"141":1,"142":1,"145":1}}],["utils",{"0":{"110":1},"1":{"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1}}],["中心点",{"2":{"109":1}}],["中实现",{"2":{"106":2}}],["长度",{"2":{"109":1}}],["线段的另一个端点",{"2":{"109":2}}],["线段的一个端点",{"2":{"109":2}}],["新的向量或点",{"2":{"136":2}}],["新的向量",{"2":{"106":2,"141":2}}],["新的点",{"2":{"104":2,"138":2,"142":2}}],["已在",{"2":{"106":2}}],["已知一个函数$f",{"2":{"37":1}}],["已知一个函数f",{"2":{"37":1}}],["坐标",{"2":{"100":6}}],["笛卡尔坐标系中的点",{"2":{"100":2}}],["人话",{"2":{"95":2}}],["法向量",{"2":{"88":2,"89":2}}],["k``",{"2":{"126":1}}],["k",{"2":{"81":12}}],["常数项",{"2":{"80":2}}],["常量",{"2":{"25":1}}],["平面上一点",{"2":{"89":2,"92":2}}],["平面的法向量",{"2":{"88":2}}],["平面",{"2":{"86":2,"89":2,"90":2,"91":2,"92":2}}],["平面与直线平行或重合",{"2":{"85":2}}],["平面平行且无交线",{"2":{"84":2}}],["平面方程",{"2":{"80":2}}],["平行线返回none",{"2":{"57":2}}],["多元函数",{"2":{"77":1}}],["多元数组函数",{"2":{"76":1}}],["多元单变量函数",{"2":{"75":1}}],["二元函数",{"2":{"71":1}}],["二元数组函数",{"2":{"70":1}}],["二元单变量函数",{"2":{"69":1}}],["一元函数",{"2":{"68":1}}],["一元数组函数",{"2":{"67":1}}],["一元单变量函数",{"2":{"66":1}}],["一阶偏导",{"2":{"35":2}}],["变量",{"2":{"65":1}}],["变量位置",{"2":{"35":2}}],["数组运算结果",{"2":{"145":2}}],["数组运算",{"2":{"145":2}}],["数组变量",{"2":{"64":1}}],["数2",{"2":{"117":2}}],["数1",{"2":{"117":2}}],["数",{"2":{"62":1,"118":2,"119":2}}],["数学工具",{"2":{"0":1,"23":1}}],["实数",{"2":{"61":1,"113":2}}],["∧",{"2":{"58":2}}],["交线",{"2":{"84":2,"95":2}}],["交线返回交点",{"2":{"57":2}}],["交集",{"2":{"57":2,"95":2}}],["交点",{"2":{"46":2,"85":2}}],["重合线返回自身",{"2":{"57":2}}],["由点和直线构造平面",{"2":{"92":2}}],["由点和法向量构造平面",{"2":{"89":2}}],["由两直线构造平面",{"2":{"91":2}}],["由两点构造直线",{"2":{"56":2}}],["由三点构造平面",{"2":{"90":2}}],["由一个点和一个方向向量确定",{"2":{"42":2}}],["工厂函数",{"2":{"56":2,"89":2,"90":2,"91":2,"92":2}}],["并对向量单位化",{"2":{"55":2}}],["处理",{"2":{"55":2}}],["处的梯度向量为",{"2":{"37":1}}],["化",{"2":{"55":2}}],["按照可行性一次对x",{"2":{"55":2}}],["不返回值",{"2":{"55":2,"129":2}}],["不支持的类型",{"2":{"45":2,"82":2,"83":2,"95":2}}],["自体归一化",{"2":{"129":2}}],["自体简化",{"2":{"55":2}}],["自然对数的底",{"2":{"26":1}}],["等价相等",{"2":{"55":2}}],["简化直线方程",{"2":{"55":2}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"54":2}}],["两角的和为180°",{"2":{"6":2}}],["两角的和为90°",{"2":{"5":2}}],["充要条件",{"2":{"54":2}}],["判断两个向量是否相等",{"2":{"137":2}}],["判断两个向量是否平行",{"2":{"128":2}}],["判断两个向量是否近似平行",{"2":{"127":2}}],["判断两个向量是否近似相等",{"2":{"124":2}}],["判断两个数是否近似相等",{"2":{"117":2}}],["判断两个点是否相等",{"2":{"105":2}}],["判断两个点是否近似相等",{"2":{"101":2}}],["判断两个平面是否等价",{"2":{"96":2}}],["判断两个平面是否平行",{"2":{"87":2}}],["判断两个平面是否近似相等",{"2":{"81":2}}],["判断两条直线是否等价",{"2":{"58":2}}],["判断两条直线是否共面",{"2":{"54":2}}],["判断两条直线是否共线",{"2":{"52":2}}],["判断两条直线是否平行",{"2":{"51":2}}],["判断两条直线是否近似平行",{"2":{"50":2}}],["判断两条直线是否近似相等",{"2":{"43":2}}],["判断点是否在直线上",{"2":{"53":2}}],["另一个向量或数",{"2":{"145":2}}],["另一个向量或点",{"2":{"136":2,"141":2}}],["另一个向量",{"2":{"124":2,"125":2,"126":2,"127":2,"128":2,"137":2,"147":2}}],["另一个点或向量",{"2":{"104":2}}],["另一个点",{"2":{"101":2,"105":2,"106":2,"138":2,"142":2}}],["另一个平面或点",{"2":{"83":2}}],["另一个平面或直线",{"2":{"82":2,"95":2}}],["另一个平面",{"2":{"81":2,"84":2,"87":2,"96":2}}],["另一",{"2":{"51":2,"52":2,"54":2}}],["另一条直线或点",{"2":{"45":2}}],["另一条直线",{"2":{"43":2,"44":2,"46":2,"50":2,"57":2,"58":2}}],["则两向量平行",{"2":{"126":2}}],["则同一个t对应的点不同",{"2":{"48":2}}],["则其在点$",{"2":{"37":1}}],["则其在点",{"2":{"37":1}}],["但起始点和方向向量不同",{"2":{"48":2}}],["同一条直线",{"2":{"48":2}}],["垂线",{"2":{"47":2}}],["指定点",{"2":{"47":2,"86":2}}],["直线",{"2":{"56":2,"85":2,"91":4,"92":2}}],["直线不共面",{"2":{"46":2}}],["直线平行",{"2":{"46":2}}],["直线上的一点",{"2":{"42":2}}],["距离",{"2":{"45":2,"83":2}}],["夹角",{"2":{"44":2,"82":2,"125":2}}],["是否只返回负数的符号",{"2":{"118":2,"119":2}}],["是否相等",{"2":{"105":2,"137":2}}],["是否等价",{"2":{"58":2,"96":2}}],["是否共面",{"2":{"54":2}}],["是否共线",{"2":{"52":2}}],["是否在直线上",{"2":{"53":2}}],["是否平行",{"2":{"51":2,"87":2,"128":2}}],["是否近似平行",{"2":{"50":2,"127":2}}],["是否近似相等",{"2":{"43":2,"81":2,"101":2,"117":2,"124":2}}],["是否为弧度",{"2":{"4":2}}],["误差",{"2":{"43":2,"50":2,"101":2,"117":2,"124":2,"127":2}}],["方向向量",{"2":{"42":2,"109":1}}],["三元数组函数",{"2":{"73":1}}],["三元单变量函数",{"2":{"72":1}}],["三元函数",{"2":{"37":2,"74":1}}],["三维空间中的线段",{"2":{"109":2}}],["三维空间中的直线",{"2":{"42":2}}],["三维向量",{"2":{"39":1,"59":1}}],["三维线段",{"2":{"39":1,"59":1}}],["三维点",{"2":{"39":1,"59":1}}],["三维平面",{"2":{"39":1,"59":1}}],["三维直线",{"2":{"39":1,"59":1}}],["导入的类有",{"2":{"39":1,"59":1}}],["本包定义了一些常用的导入",{"2":{"39":1,"59":1}}],["本模块塞了一些预设",{"2":{"155":1,"164":1}}],["本模块用于内部类型提示",{"2":{"60":1}}],["本模块定义了3维向量的类vector3",{"2":{"121":1}}],["本模块定义了粒子生成相关的工具",{"2":{"120":1,"154":1}}],["本模块定义了一些常用的工具函数",{"2":{"110":1}}],["本模块定义了一些常用的常量",{"2":{"24":1}}],["本模块定义了三维空间中点的类",{"2":{"98":1}}],["本模块定义了三维空间中的线段类",{"2":{"107":1}}],["本模块定义了三维空间中的平面类",{"2":{"78":1}}],["本模块定义了三维空间中的直线类",{"2":{"40":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"31":1}}],["本模块定义了角度相关的类",{"2":{"1":1}}],["本模块是主模块",{"2":{"0":1,"23":1}}],["help",{"2":{"166":1}}],["heart",{"2":{"163":1}}],["have",{"2":{"84":1}}],["html",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"123":1,"124":2,"127":2,"128":1,"130":1,"131":1,"137":1,"145":1,"147":1}}],["https",{"2":{"38":1,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"123":1,"124":2,"127":2,"128":1,"130":1,"131":1,"137":1,"145":1,"147":1}}],["high",{"2":{"35":2}}],["hide",{"2":{"35":2,"38":1}}],["6",{"2":{"38":2}}],["3维向量",{"2":{"123":2}}],["3a",{"2":{"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"58":1,"80":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"123":1,"124":2,"127":2,"128":1,"130":1,"131":1,"137":1,"145":1,"147":1}}],["355859667",{"2":{"38":1}}],["3",{"2":{"38":2,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"123":1,"124":2,"127":2,"128":1,"131":1,"137":1,"145":1,"147":1}}],["3vf",{"0":{"37":1},"2":{"37":1}}],["breaking",{"2":{"163":1}}],["best",{"0":{"162":1},"1":{"163":1}}],["by",{"2":{"80":2}}],["bound=iterable",{"2":{"64":1}}],["bound=number",{"2":{"63":1}}],["bool=false",{"2":{"4":1,"118":1,"119":1}}],["bool",{"0":{"4":1,"43":1,"50":1,"51":1,"52":1,"53":1,"54":1,"58":1,"81":1,"87":1,"96":1,"101":1,"117":1,"118":1,"119":1,"124":1,"127":1,"128":1},"2":{"43":3,"50":3,"51":3,"52":3,"53":3,"54":3,"58":3,"81":3,"87":3,"96":3,"101":3,"105":2,"117":3,"118":2,"119":2,"124":3,"127":3,"128":3,"137":2}}],["b",{"0":{"80":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":12,"85":2,"88":1,"89":3}}],["柯里化后的函数",{"2":{"38":2}}],["柯理化",{"2":{"38":2}}],["函数式编程",{"2":{"38":1}}],["函数",{"2":{"38":2}}],["对多参数函数进行柯里化",{"2":{"38":2}}],["d",{"0":{"80":1},"2":{"80":7,"81":6,"83":1,"84":6,"85":1,"89":2}}],["documentation",{"2":{"166":1}}],["doc",{"2":{"130":1}}],["docs",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"123":1,"124":2,"127":2,"128":1,"131":1,"137":1,"145":1,"147":1}}],["do",{"2":{"46":2}}],["distance",{"0":{"45":1,"83":1},"2":{"45":1,"83":1}}],["direction",{"0":{"42":1},"2":{"42":5,"43":1,"44":2,"45":8,"46":6,"47":1,"48":1,"49":3,"50":2,"51":2,"52":1,"53":1,"54":2,"55":4,"56":2,"58":3,"82":1,"84":2,"85":4,"91":1,"92":1,"95":1,"109":2}}],["dz",{"2":{"37":2}}],["dy",{"2":{"37":2}}],["dx",{"2":{"37":2}}],["density",{"0":{"158":1,"161":1},"2":{"158":4,"161":4}}],["derivative",{"0":{"35":1},"2":{"35":6}}],["degree",{"0":{"7":1},"2":{"7":1}}],["default",{"2":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":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,"76":1,"77":1,"150":1,"151":1,"152":1,"153":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,"35":2,"38":2,"56":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"102":1,"103":1,"130":1,"131":1,"132":1,"134":1,"135":1,"139":1,"140":1,"143":1,"144":1,"158":1,"161":1}}],["description",{"2":{"0":1,"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,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":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,"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,"76":1,"77":1,"78":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,"95":1,"96":1,"98":1,"100":1,"101":1,"104":1,"105":1,"106":1,"107":1,"109":1,"110":1,"111":1,"113":1,"117":1,"118":1,"119":1,"120":1,"121":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"131":1,"132":1,"136":1,"137":1,"138":1,"141":1,"142":1,"145":1,"147":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"158":1,"159":1,"161":1,"164":1}}],["$处的梯度向量为",{"2":{"37":1}}],["$",{"2":{"37":3}}],["梯度",{"2":{"37":2}}],["点乘结果",{"2":{"147":2}}],["点乘",{"2":{"147":2}}],["点乘使用",{"2":{"145":2}}],["点3",{"2":{"90":2}}],["点法式构造",{"2":{"89":2}}],["点2",{"2":{"56":2,"90":2}}],["点1",{"2":{"56":2,"90":2}}],["点",{"2":{"37":2,"48":2,"53":2}}],["∂f∂z",{"2":{"37":1}}],["∂f∂y",{"2":{"37":1}}],["∂f∂x",{"2":{"37":1}}],["∇f",{"2":{"37":1}}],["计算平行于该平面且过指定点的平面",{"2":{"86":2}}],["计算平面与直线的交点",{"2":{"85":2}}],["计算平面与平面或点之间的距离",{"2":{"83":2}}],["计算平面与平面之间的夹角",{"2":{"82":2}}],["计算两个向量之间的夹角",{"2":{"125":2}}],["计算两平面的交线",{"2":{"84":2}}],["计算两条直线点集合的交集",{"2":{"57":2}}],["计算两条直线的交点",{"2":{"46":2}}],["计算直线经过指定点p的垂线",{"2":{"47":2}}],["计算直线和直线或点之间的距离",{"2":{"45":2}}],["计算直线和直线之间的夹角",{"2":{"44":2}}],["计算三元函数在某点的梯度向量",{"2":{"37":2}}],["计算曲线上的点",{"2":{"34":2}}],["求高阶偏导函数",{"2":{"35":1}}],["求n元函数一阶偏导函数",{"2":{"35":2}}],["l2",{"0":{"91":1},"2":{"91":5}}],["l1",{"0":{"91":1},"2":{"91":7}}],["lambda",{"2":{"49":3}}],["left",{"2":{"37":1}}],["length",{"0":{"131":1},"2":{"45":5,"46":1,"82":2,"109":2,"125":2,"127":1,"129":5,"131":1,"132":1,"133":1}}],["len",{"2":{"34":1}}],["linalg",{"2":{"84":3}}],["lines",{"0":{"91":1},"2":{"46":2,"91":1}}],["line",{"0":{"40":1,"92":2},"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,"58":1},"2":{"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"58":1,"82":1,"84":1,"85":2,"91":1,"92":6,"95":2}}],["line3",{"0":{"41":1,"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"82":1,"84":2,"85":1,"91":2,"92":1,"93":1,"94":1,"97":1},"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,"58":1},"2":{"39":1,"43":3,"44":3,"45":4,"46":3,"47":4,"50":3,"51":3,"52":3,"54":3,"56":3,"57":6,"58":2,"59":1,"82":4,"84":5,"85":3,"91":5,"92":3,"93":1,"94":1,"95":6,"97":1,"114":1}}],["library",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"123":1,"124":2,"127":2,"128":1,"131":1,"137":1,"145":1,"147":1}}],["list",{"2":{"35":8,"158":10,"161":10}}],["litedoc",{"2":{"35":2,"38":1}}],["`np",{"2":{"130":1}}],["`none`",{"2":{"57":1,"95":1}}],["``x2",{"2":{"126":1}}],["``x1",{"2":{"126":1}}],["``i",{"2":{"126":1}}],["```",{"2":{"38":1}}],["```python",{"2":{"38":1}}],["`str`",{"2":{"118":1,"119":1}}],["`plane3`",{"2":{"81":1,"82":1,"83":1,"84":1,"86":1,"87":1,"89":1,"95":1,"96":1}}],["`point3`",{"2":{"37":1,"42":1,"45":1,"46":1,"47":1,"48":1,"53":1,"56":2,"57":1,"83":1,"85":1,"86":1,"89":1,"90":3,"92":1,"95":1,"101":1,"104":2,"105":1,"106":1,"109":2,"136":2,"138":2,"141":2,"142":2}}],["`onesinglevarfunc`",{"2":{"49":3}}],["`onevarfunc`",{"2":{"33":3}}],["`realnumber`",{"2":{"48":1,"113":1}}],["`tuple`",{"2":{"49":1}}],["`typeerror`",{"2":{"45":1,"82":1,"83":1,"95":1}}],["`threesinglevarsfunc`",{"2":{"37":1}}],["`anyangle`",{"2":{"44":1,"82":1,"125":1}}],["`bool`",{"2":{"43":1,"50":1,"51":1,"52":1,"53":1,"54":1,"58":1,"81":1,"87":1,"96":1,"101":1,"105":1,"117":1,"118":1,"119":1,"124":1,"127":1,"128":1,"137":1}}],["`float`",{"2":{"43":1,"45":1,"50":1,"80":4,"83":1,"100":3,"101":1,"111":4,"117":3,"118":1,"119":1,"123":3,"124":1,"127":1,"131":1,"145":1,"147":1}}],["`line3`",{"2":{"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"58":1,"82":1,"84":1,"85":1,"91":2,"92":1,"95":2}}],["`valueerror`",{"2":{"46":2,"84":1,"85":1}}],["`var`",{"2":{"38":1}}],["`vector3`",{"2":{"42":1,"88":1,"89":1,"104":1,"106":2,"124":1,"125":1,"126":2,"127":1,"128":1,"132":1,"136":2,"137":1,"141":2,"145":2,"147":1,"149":1}}],["`multivarsfunc`",{"2":{"35":1,"38":1}}],["无效变量类型",{"2":{"35":2}}],["偏导函数",{"2":{"35":2}}],["偏移量",{"2":{"35":2,"37":2}}],["高阶偏导数值",{"2":{"35":1}}],["高阶偏导",{"2":{"35":2}}],["可愛くてごめん",{"2":{"163":1}}],["可直接从mbcp",{"2":{"39":1,"59":1}}],["可参考",{"2":{"38":1}}],["可参考函数式编程",{"2":{"38":1}}],["可为整数",{"2":{"35":2}}],["可导入",{"2":{"0":1,"23":1}}],["因此该函数的稳定性有待提升",{"2":{"35":2}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"35":2}}],["目标点",{"2":{"34":2}}],["慎用",{"2":{"35":2}}],["num",{"2":{"158":5,"161":5}}],["numpy",{"2":{"130":2}}],["numpy数组",{"2":{"130":2}}],["number=epsilon",{"2":{"35":1}}],["number",{"0":{"35":1,"62":1},"2":{"64":1}}],["ndarray`",{"2":{"130":1}}],["ndarray",{"0":{"130":1},"2":{"130":3}}],["neg",{"0":{"118":1,"119":1},"2":{"118":4,"119":4,"149":1}}],["negative",{"0":{"9":1},"2":{"9":1}}],["ne",{"0":{"116":1},"2":{"116":1}}],["np",{"0":{"130":2},"2":{"84":9,"130":4,"158":9,"161":9}}],["no",{"2":{"84":1}}],["normal",{"0":{"88":1,"89":2},"2":{"82":5,"84":4,"85":1,"86":2,"87":2,"88":1,"89":7,"90":3,"91":1,"92":1,"95":3}}],["normalize",{"0":{"129":1},"2":{"55":1,"129":1}}],["none",{"0":{"57":1,"93":1,"94":1},"2":{"57":4,"93":1,"94":1,"95":4}}],["not",{"2":{"45":1,"46":4,"57":1,"116":1,"118":1,"119":1}}],["nabla",{"2":{"37":1}}],["n元函数",{"2":{"35":2}}],["参数方程",{"2":{"49":2}}],["参数t",{"2":{"48":2}}],["参数",{"2":{"34":2,"35":1,"38":2}}],["|",{"0":{"34":1,"35":1,"45":1,"57":2,"82":1,"83":1,"93":1,"94":1,"145":2},"2":{"34":1,"35":1,"45":3,"57":6,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"77":1,"82":3,"83":3,"93":1,"94":1,"95":6,"104":2,"136":4,"141":4,"145":4}}],["曲线方程",{"2":{"33":2,"39":1,"59":1}}],["z轴单位向量",{"2":{"153":1}}],["z轴分量",{"2":{"123":2}}],["z2``",{"2":{"126":1}}],["z1``",{"2":{"126":1}}],["zero",{"0":{"150":1},"2":{"91":1,"128":1}}],["z系数",{"2":{"80":2}}],["zhihu",{"2":{"38":1}}],["zhuanlan",{"2":{"38":1}}],["z0",{"2":{"37":2}}],["zip",{"2":{"34":1}}],["z函数",{"2":{"33":2}}],["z",{"0":{"33":1,"100":1,"123":1,"153":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":4,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"114":2,"123":5,"124":2,"126":4,"129":1,"130":1,"131":1,"136":4,"137":2,"138":2,"141":4,"142":2,"145":3,"147":2,"148":1,"149":1,"158":2,"161":2}}],["y轴单位向量",{"2":{"152":1}}],["y轴分量",{"2":{"123":2}}],["y2",{"2":{"126":1}}],["y1",{"2":{"126":1}}],["y系数",{"2":{"80":2}}],["y0",{"2":{"37":2}}],["y函数",{"2":{"33":2}}],["y",{"0":{"33":1,"100":1,"117":1,"123":1,"152":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":4,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"114":2,"117":4,"123":5,"124":2,"126":4,"129":1,"130":1,"131":1,"136":4,"137":2,"138":2,"141":4,"142":2,"145":3,"147":2,"148":1,"149":1,"158":2,"161":2}}],["x轴单位向量",{"2":{"151":1}}],["x轴分量",{"2":{"123":2}}],["x3c",{"2":{"101":3,"114":1,"117":1,"118":1,"119":1,"124":3,"127":1}}],["x26",{"2":{"95":1}}],["x系数",{"2":{"80":2}}],["x0",{"2":{"37":2}}],["x函数",{"2":{"33":2}}],["x",{"0":{"33":1,"100":1,"111":1,"117":1,"118":1,"119":1,"123":1,"151":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":2,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"111":4,"114":2,"117":4,"118":5,"119":8,"123":5,"124":2,"126":4,"129":1,"130":1,"131":1,"136":4,"137":2,"138":2,"141":4,"142":2,"145":3,"147":2,"148":1,"149":1,"158":2,"161":2}}],["约等于判定误差",{"2":{"30":1}}],["精度误差",{"2":{"29":1}}],["06",{"0":{"50":1},"2":{"50":1}}],["001",{"2":{"30":1}}],["0001",{"2":{"29":1}}],["0",{"0":{"117":2},"2":{"28":1,"29":1,"30":1,"34":3,"37":6,"45":2,"54":1,"55":8,"80":2,"81":3,"83":2,"84":9,"85":1,"95":1,"117":1,"118":2,"119":4,"150":3,"151":2,"152":2,"153":2,"158":2,"161":2}}],["欧拉常数",{"2":{"28":1}}],["5772156649015329",{"2":{"28":1}}],["5",{"2":{"27":1,"83":1}}],["黄金分割比",{"2":{"27":1}}],["π",{"2":{"25":1}}],["to",{"2":{"166":1}}],["theta",{"2":{"158":3,"161":3}}],["the",{"2":{"85":2,"166":1}}],["three",{"0":{"90":1},"2":{"90":1}}],["threevarsfunc",{"0":{"74":1}}],["threearraysfunc",{"0":{"73":1},"2":{"74":1}}],["threesinglevarsfunc",{"0":{"37":1,"72":1},"2":{"37":3,"74":1}}],["twovarsfunc",{"0":{"71":1}}],["twoarraysfunc",{"0":{"70":1},"2":{"71":1}}],["twosinglevarsfunc",{"0":{"69":1},"2":{"71":1}}],["two",{"0":{"56":1,"91":1},"2":{"56":1,"91":1}}],["tip",{"2":{"37":2,"38":2}}],["typevar",{"2":{"63":1,"64":1}}],["typealias",{"2":{"61":1,"62":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1}}],["typeerror",{"2":{"45":3,"46":1,"82":3,"83":3,"95":3,"115":1,"136":1,"141":1,"142":1,"145":1}}],["type",{"0":{"115":1},"2":{"35":1,"45":1,"61":1,"62":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"82":2,"83":2,"95":2,"114":2,"115":4,"136":2,"141":2,"142":2,"145":2,"150":1,"151":1,"152":1,"153":1}}],["typing",{"0":{"60":1},"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,"76":1,"77":1},"2":{"33":3,"35":1,"37":1,"38":2,"48":1,"49":1,"113":1}}],["tuple",{"0":{"34":1,"35":1,"49":1},"2":{"34":2,"35":2,"49":3}}],["t",{"0":{"34":1,"48":1},"2":{"34":10,"48":4,"49":6,"85":4}}],["truediv",{"2":{"20":1,"21":1,"22":1,"148":1}}],["tan",{"0":{"12":1},"2":{"12":2,"13":1}}],["ep",{"2":{"163":1}}],["epsilon",{"0":{"29":1,"35":2,"37":2,"43":1,"50":1,"101":1,"117":1,"124":1,"127":1},"2":{"35":7,"37":12,"43":5,"50":4,"101":6,"117":4,"124":6,"127":4}}],["error",{"0":{"115":1},"2":{"114":2,"115":1}}],["exceptions",{"2":{"45":1,"46":1,"82":1,"83":1,"84":1,"85":1,"95":1}}],["examples",{"2":{"38":2}}],["exp",{"2":{"26":1}}],["elif",{"2":{"35":1,"45":3,"57":1,"81":2,"82":1,"83":1,"84":2,"95":1,"114":1,"118":1,"119":1,"136":1,"141":1,"145":1}}],["else",{"2":{"4":1,"34":1,"35":1,"45":2,"57":1,"81":1,"82":1,"83":1,"95":1,"114":2,"118":2,"119":2,"136":1,"141":1,"142":1,"145":1}}],["e",{"0":{"26":1},"2":{"26":1}}],["equations",{"0":{"49":1},"2":{"49":1,"85":1}}],["equation",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1}}],["eq",{"0":{"17":1,"58":1,"96":1,"105":1,"114":1,"137":1},"2":{"17":1,"58":1,"96":1,"105":1,"114":1,"116":1,"137":1}}],["+1",{"2":{"119":2}}],["+=",{"2":{"35":1}}],["+",{"0":{"16":1,"102":1,"103":1,"104":1,"134":1,"135":1,"136":1,"138":1},"2":{"16":1,"27":1,"37":3,"38":4,"46":1,"48":1,"49":3,"80":6,"83":5,"85":5,"104":7,"109":3,"118":3,"119":3,"131":2,"136":11,"138":5,"147":2,"158":1,"161":1}}],["1e",{"0":{"50":1}}],["1",{"2":{"13":1,"14":1,"15":1,"26":1,"27":1,"34":1,"38":2,"91":1,"119":6,"151":1,"152":1,"153":1,"158":4,"161":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":{"111":2}}],["最大负角度",{"2":{"9":2}}],["最大负角",{"2":{"9":2}}],["最小值",{"2":{"111":2}}],["最小正角度",{"2":{"8":2}}],["最小正角",{"2":{"8":2}}],["弧度",{"2":{"7":2}}],["角度",{"2":{"7":2}}],["角度或弧度值",{"2":{"4":2}}],["补角",{"2":{"6":4}}],["255万个粒子",{"2":{"163":1}}],["2",{"2":{"5":1,"8":1,"9":1,"27":1,"35":1,"37":3,"38":2,"46":1,"83":3,"109":3,"131":3,"158":2,"161":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,"34":1,"35":5,"37":3,"38":6,"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,"58":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,"96":1,"97":1,"101":1,"102":1,"103":1,"104":2,"106":3,"111":1,"117":1,"118":2,"119":5,"124":1,"125":1,"126":2,"127":1,"128":1,"130":1,"131":1,"132":1,"134":1,"135":1,"136":2,"138":2,"139":1,"140":1,"141":2,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1}}],["rmul",{"2":{"146":1}}],["rsub",{"2":{"142":1}}],["right",{"2":{"37":1}}],["reference",{"0":{"166":1},"2":{"130":1}}],["realnumber",{"0":{"48":1,"61":1,"113":1,"144":1,"146":1,"147":1,"148":1},"2":{"48":3,"62":1,"113":3,"144":1,"146":1,"147":1,"148":1}}],["result",{"2":{"35":4}}],["returns",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"34":1,"35":2,"37":1,"38":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,"58":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,"95":1,"96":1,"101":1,"104":1,"105":1,"106":1,"111":1,"117":1,"118":1,"119":1,"124":1,"125":1,"126":1,"127":1,"128":1,"130":1,"131":1,"132":1,"136":1,"137":1,"138":1,"141":1,"142":1,"145":1,"147":1,"149":1,"158":1,"161":1}}],["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,"34":3,"35":5,"37":2,"38":5,"43":2,"44":2,"45":6,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"56":2,"57":4,"58":2,"81":5,"82":3,"83":3,"84":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"91":2,"92":2,"95":5,"96":2,"97":1,"101":2,"104":2,"105":2,"106":2,"111":2,"114":2,"116":1,"117":2,"118":4,"119":4,"124":2,"125":2,"126":2,"127":2,"128":2,"130":2,"131":2,"132":2,"133":1,"136":3,"137":2,"138":2,"141":3,"142":2,"145":3,"146":1,"147":2,"148":1,"149":2,"158":2,"161":2}}],["range",{"2":{"158":2,"161":2}}],["rand",{"0":{"97":1},"2":{"97":1}}],["radius",{"0":{"158":1,"161":1},"2":{"158":7,"161":7}}],["radian=true",{"2":{"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"82":1,"125":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":{"138":1}}],["raise",{"0":{"115":1},"2":{"35":1,"45":1,"46":2,"82":1,"83":1,"84":1,"85":1,"95":1,"114":2,"115":2,"136":1,"141":1,"142":1,"145":1}}],["raises",{"2":{"35":2,"45":2,"46":2,"82":2,"83":2,"84":2,"85":2,"95":2}}],["ratio",{"0":{"27":1}}],["geometricmodels",{"0":{"157":1,"160":1},"1":{"158":1,"161":1}}],["generated",{"2":{"130":1}}],["get",{"0":{"35":1,"48":1,"49":1},"2":{"35":2,"48":1,"49":1,"85":1,"91":1}}],["gradient",{"0":{"37":1},"2":{"37":1}}],["gamma",{"0":{"28":1}}],["golden",{"0":{"27":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,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"101":1,"102":1,"103":1,"106":1,"111":1,"117":1,"118":1,"119":1,"124":1,"125":1,"126":1,"127":1,"128":1,"130":1,"131":1,"132":1,"134":1,"135":1,"138":1,"139":1,"140":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1},"2":{"104":2,"106":2,"119":3,"126":1,"136":2,"138":1,"141":2,"142":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,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["operand",{"2":{"95":1,"136":1,"141":1,"142":1,"145":1}}],["overload",{"2":{"19":1,"20":2,"21":1,"92":1,"93":2,"94":1,"101":1,"102":2,"103":1,"133":1,"134":2,"135":1,"138":1,"139":2,"140":1,"142":1,"143":2,"144":1}}],["other",{"0":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"43":1,"44":1,"45":1,"46":1,"50":1,"51":1,"52":1,"54":1,"57":1,"58":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"93":1,"94":1,"95":1,"96":1,"97":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"114":1,"115":1,"116":1,"124":1,"125":1,"126":1,"127":1,"128":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},"2":{"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":4,"43":5,"44":4,"45":13,"46":9,"50":4,"51":4,"52":5,"54":5,"57":7,"58":5,"81":15,"82":9,"83":9,"84":17,"85":11,"87":4,"93":1,"94":1,"95":10,"96":4,"97":2,"101":6,"102":1,"103":1,"104":6,"105":6,"106":6,"114":9,"115":2,"116":2,"124":6,"125":5,"126":9,"127":4,"128":4,"134":1,"135":1,"136":12,"137":6,"138":6,"139":1,"140":1,"141":12,"142":8,"143":1,"144":1,"145":12,"146":2,"147":6,"148":4}}],["only",{"0":{"118":1,"119":1},"2":{"118":4,"119":4}}],["one",{"2":{"163":1}}],["onearrayfunc",{"0":{"67":1},"2":{"68":1}}],["onesinglevarfunc",{"0":{"49":3,"66":1},"2":{"49":7,"68":1}}],["onevarfunc",{"0":{"33":3,"38":1,"68":1},"2":{"33":9,"38":1}}],["on",{"0":{"53":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,"33":1,"34":1,"35":1,"37":1,"38":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":2,"54":1,"55":1,"56":1,"57":1,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["org",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"123":1,"124":2,"127":2,"128":1,"130":1,"131":1,"137":1,"145":1,"147":1}}],["order",{"2":{"35":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,"33":1,"34":1,"35":1,"37":1,"38":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":2,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":2,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["v3",{"2":{"126":2}}],["v2",{"2":{"58":2,"90":2,"91":4,"126":2}}],["v1",{"2":{"58":4,"90":2,"91":2,"126":2}}],["vector",{"0":{"121":1},"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,"151":1,"152":1,"153":1},"2":{"42":1,"88":1,"89":1,"104":1,"106":3,"145":1}}],["vector3",{"0":{"37":1,"42":1,"88":1,"89":1,"102":1,"106":1,"122":1,"124":1,"125":1,"126":2,"127":1,"128":1,"132":1,"134":2,"139":2,"143":2,"144":1,"145":2,"146":1,"147":1,"148":1,"149":1,"150":1},"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},"2":{"37":2,"39":1,"42":3,"59":1,"88":4,"89":3,"91":1,"102":1,"104":2,"106":7,"114":2,"124":3,"125":3,"126":7,"127":3,"128":4,"132":3,"134":2,"136":7,"137":2,"139":2,"141":7,"142":1,"143":2,"144":1,"145":9,"146":1,"147":3,"148":2,"149":4,"150":2,"151":2,"152":2,"153":2}}],["v",{"2":{"35":2,"104":2,"106":4,"136":8,"138":2,"141":8,"142":2}}],["var",{"0":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"34":1,"35":1,"38":1,"61":1,"62":1,"63":1,"64":1,"65":2,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"150":1,"151":1,"152":1,"153":1},"2":{"33":3,"34":1,"35":14,"37":1,"38":7,"48":1,"49":1}}],["valueerror",{"2":{"35":3,"46":4,"84":3,"85":3}}],["value",{"0":{"4":1,"113":1},"2":{"4":5,"113":5,"114":6,"115":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,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["can",{"2":{"163":1}}],["cal",{"0":{"37":1,"44":1,"45":1,"46":1,"47":1,"82":1,"83":1,"84":1,"85":1,"86":1,"125":1},"2":{"37":1,"44":2,"45":1,"46":1,"47":1,"57":1,"82":2,"83":1,"84":1,"85":1,"86":1,"95":2,"97":1,"125":1}}],["callable",{"2":{"66":1,"67":1,"69":1,"70":1,"72":1,"73":1,"75":1,"76":1}}],["call",{"0":{"34":1},"2":{"34":1}}],["cz",{"2":{"80":2}}],["clamp",{"0":{"111":1},"2":{"111":1,"158":1,"161":1}}],["classmethod",{"2":{"55":1,"56":1,"88":1,"89":2,"90":2,"91":2,"92":1}}],["class",{"0":{"2":1,"3":1,"32":1,"41":1,"79":1,"99":1,"108":1,"112":1,"122":1,"157":1,"160":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,"33":1,"34":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"113":1,"114":1,"115":1,"116":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,"158":1,"161":1},"2":{"37":1,"42":2,"43":1,"44":2,"45":2,"46":2,"47":2,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":3,"57":3,"58":1,"81":1,"82":3,"83":2,"84":2,"85":2,"86":2,"87":1,"88":1,"89":3,"90":1,"91":1,"92":2,"95":4,"96":1,"101":1,"104":3,"105":1,"106":3,"109":2,"124":1,"125":2,"126":2,"127":1,"128":1,"132":1,"136":4,"137":1,"138":2,"141":4,"142":2,"145":2,"147":1,"149":1}}],["cls",{"0":{"56":1,"89":1,"90":1,"91":1,"92":1},"2":{"56":2,"89":2,"90":2,"91":2,"92":2}}],["cross",{"0":{"126":1},"2":{"45":4,"46":3,"47":1,"54":1,"84":1,"90":1,"91":1,"126":3,"127":1,"128":1}}],["c",{"0":{"80":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":6,"85":2,"88":1,"89":3}}],["curried",{"2":{"38":6}}],["currying",{"2":{"38":2}}],["curry",{"0":{"38":1},"2":{"38":3}}],["curveequation",{"0":{"32":1},"1":{"33":1,"34":1},"2":{"39":1,"59":1}}],["csc",{"0":{"15":1},"2":{"15":1}}],["coincident",{"2":{"85":1}}],["collinear",{"0":{"52":1},"2":{"52":1,"57":1}}],["coplanar",{"0":{"54":1},"2":{"45":1,"46":2,"54":1,"57":1}}],["complex",{"2":{"62":1}}],["complementary",{"0":{"5":1},"2":{"5":1,"82":1}}],["com",{"2":{"38":1}}],["constants",{"2":{"57":1,"95":1}}],["const",{"0":{"24":1},"1":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":1}}],["cot",{"0":{"13":1},"2":{"13":1}}],["cos",{"0":{"11":1},"2":{"11":2,"14":1,"158":2,"161":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,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["sphere",{"0":{"158":1,"161":1},"2":{"158":1,"161":1}}],["stop",{"2":{"163":1}}],["staticmethod",{"2":{"157":1,"158":1,"160":1,"161":1}}],["stable",{"2":{"130":1}}],["str",{"0":{"118":1,"119":1},"2":{"118":3,"119":3}}],["stdtypes",{"2":{"49":1}}],["s",{"2":{"95":1,"136":1,"141":1,"142":1,"145":1}}],["solve",{"2":{"84":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,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["sign",{"0":{"118":1,"119":1},"2":{"118":1,"119":1}}],["simplify",{"0":{"55":1},"2":{"55":1}}],["singlevar",{"0":{"63":1},"2":{"63":1,"65":1,"66":2,"69":3,"72":4,"75":1}}],["sin",{"0":{"10":1},"2":{"10":2,"15":1,"158":3,"161":3}}],["sqrt",{"2":{"27":1,"131":1,"158":1,"161":1}}],["sub",{"2":{"18":1,"106":1,"139":1,"140":1,"141":1}}],["supplementary",{"0":{"6":1},"2":{"6":1}}],["segment",{"0":{"107":1},"1":{"108":1,"109":1}}],["segment3",{"0":{"108":1},"1":{"109":1},"2":{"39":1,"59":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,"33":1,"34":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,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"93":1,"94":1,"95":1,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"113":1,"114":1,"115":1,"116":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},"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,"33":4,"34":7,"42":3,"43":4,"44":2,"45":13,"46":8,"47":3,"48":3,"49":7,"50":2,"51":2,"52":4,"53":3,"54":3,"55":8,"57":6,"58":4,"80":5,"81":16,"82":4,"83":8,"84":15,"85":9,"86":2,"87":2,"88":4,"93":1,"94":1,"95":5,"96":2,"97":2,"100":4,"101":4,"102":1,"103":1,"104":4,"105":4,"106":4,"109":15,"113":2,"114":9,"115":2,"116":2,"123":4,"124":4,"125":3,"126":7,"127":2,"128":2,"129":5,"130":4,"131":4,"132":3,"133":2,"134":1,"135":1,"136":7,"137":4,"138":4,"139":1,"140":1,"141":7,"142":4,"143":1,"144":1,"145":7,"146":2,"147":4,"148":4,"149":4}}],["默认为否",{"2":{"4":2}}],["all",{"2":{"101":1,"114":1,"124":1}}],["acos",{"2":{"82":1,"125":1}}],["axis",{"0":{"151":1,"152":1,"153":1}}],["ax",{"2":{"80":2}}],["arccos",{"2":{"158":1,"161":1}}],["array",{"0":{"130":1},"2":{"84":6,"130":2,"158":6,"161":6}}],["arrayvar",{"0":{"64":1},"2":{"64":1,"65":1,"67":2,"70":3,"73":4,"76":1}}],["area",{"2":{"158":2,"161":2}}],["are",{"2":{"46":2,"84":1,"85":1}}],["args2",{"2":{"38":2}}],["args",{"0":{"38":1},"2":{"4":1,"33":1,"34":1,"35":14,"37":1,"38":5,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"90":1,"91":1,"92":1,"95":1,"96":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"136":1,"137":1,"138":1,"141":1,"142":1,"145":1,"147":1,"158":1,"161":1}}],["arguments",{"2":{"4":1,"33":1,"34":1,"35":1,"37":1,"38":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"90":1,"91":1,"92":1,"95":1,"96":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"136":1,"137":1,"138":1,"141":1,"142":1,"145":1,"147":1,"158":1,"161":1}}],["abs",{"0":{"133":1},"2":{"45":1,"83":1,"101":3,"114":1,"117":1,"119":1,"124":3,"133":1}}],["a",{"0":{"80":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":12,"85":2,"88":1,"89":3}}],["aaa",{"2":{"36":1}}],["approx",{"0":{"30":1,"43":2,"50":1,"81":1,"101":2,"112":1,"117":2,"124":2,"127":2},"1":{"113":1,"114":1,"115":1,"116":1},"2":{"17":1,"43":3,"50":2,"81":10,"96":1,"101":1,"105":3,"114":4,"117":1,"124":1,"127":1,"128":1,"137":3}}],["add",{"2":{"16":1,"38":8,"102":1,"103":1,"104":1,"134":1,"135":1,"136":1}}],["and",{"0":{"57":1,"89":1,"92":1,"93":1,"94":1,"95":1},"2":{"43":1,"46":2,"52":1,"57":1,"58":1,"81":6,"84":4,"85":1,"86":1,"89":1,"90":1,"91":1,"92":2,"93":1,"94":1,"95":2,"105":2,"115":1,"136":1,"137":2,"141":1,"142":1,"145":1}}],["anyangle",{"0":{"3":1,"5":1,"6":1,"8":1,"9":1,"16":2,"18":2,"19":1,"20":1,"21":1,"44":1,"82":1,"125":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,"39":1,"44":3,"59":1,"82":4,"125":4}}],["angle",{"0":{"1":1,"2":1,"3":1,"44":1,"82":1,"125":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":{"44":3,"82":3,"125":2}}],["任意角度",{"2":{"4":2,"39":1,"59":1}}],["==",{"2":{"34":1,"45":1,"54":1,"55":3,"85":1,"91":1,"95":1}}],["=",{"0":{"4":1,"16":1,"18":1,"19":1,"20":1,"21":1,"35":1,"37":1,"43":1,"50":1,"101":1,"102":1,"103":1,"106":1,"117":2,"118":1,"119":1,"124":1,"127":1,"134":1,"135":1,"138":1,"139":1,"140":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1},"2":{"4":2,"33":3,"35":5,"37":5,"38":2,"42":2,"55":3,"56":1,"80":6,"81":6,"84":17,"85":2,"89":2,"90":3,"91":3,"100":3,"109":5,"113":1,"123":3,"129":4,"158":7,"161":7}}],["improve",{"2":{"166":1}}],["import",{"2":{"106":1}}],["i",{"2":{"158":4,"161":4,"163":1}}],["invalid",{"2":{"35":1}}],["intersect",{"2":{"46":2}}],["intersection",{"0":{"46":1,"84":1,"85":1},"2":{"46":1,"57":1,"84":2,"85":1,"95":2,"97":1}}],["int",{"0":{"35":2,"145":1},"2":{"35":3,"38":8,"61":1,"114":2,"145":2,"158":1,"161":1}}],["in",{"2":{"34":1,"35":1,"158":2,"161":2}}],["init",{"0":{"4":1,"33":1,"42":1,"80":1,"100":1,"109":1,"113":1,"123":1},"2":{"4":1,"33":1,"42":1,"80":1,"100":1,"109":1,"113":1,"123":1}}],["if",{"2":{"4":1,"22":1,"34":1,"35":1,"45":2,"46":2,"55":3,"57":1,"81":1,"82":1,"83":1,"84":2,"85":1,"91":1,"95":3,"114":3,"118":2,"119":2,"136":1,"141":1,"142":1,"145":1,"163":1}}],["isinstance",{"2":{"22":1,"35":2,"45":2,"82":2,"83":2,"95":2,"114":4,"136":2,"141":2,"142":1,"145":2}}],["is",{"0":{"4":1,"50":1,"51":1,"52":1,"53":1,"54":1,"87":1,"127":1,"128":1},"2":{"4":4,"5":1,"6":1,"9":1,"16":1,"18":1,"19":1,"22":1,"43":2,"45":2,"46":2,"50":2,"51":2,"52":3,"53":2,"54":1,"57":3,"58":2,"82":1,"84":1,"87":2,"95":1,"125":1,"127":1,"128":1}}],["from",{"0":{"56":1,"89":1,"90":1,"91":1,"92":1},"2":{"56":1,"86":1,"89":1,"90":2,"91":2,"92":2,"106":1,"163":1}}],["frac",{"2":{"37":3}}],["f",{"2":{"37":4,"82":1,"83":1,"95":1,"115":1,"119":3,"136":1,"141":1,"142":1,"145":1}}],["format",{"0":{"119":1},"2":{"119":1}}],["for",{"2":{"34":1,"35":1,"95":1,"136":1,"141":1,"142":1,"145":1,"158":2,"161":2}}],["false",{"0":{"4":1,"118":1,"119":1},"2":{"81":1}}],["float=0",{"2":{"117":1}}],["float=1e",{"2":{"50":1}}],["float=approx",{"2":{"43":1,"101":1,"117":1,"124":1,"127":1}}],["float=epsilon",{"2":{"37":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,"37":1,"43":1,"45":1,"50":1,"80":4,"83":1,"100":3,"101":1,"111":4,"117":3,"118":1,"119":1,"123":3,"124":1,"127":1,"131":1,"145":1,"158":2,"161":2},"2":{"4":1,"7":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"19":1,"20":1,"21":1,"43":2,"45":3,"50":2,"61":1,"80":9,"83":3,"100":7,"101":2,"111":9,"114":2,"117":5,"118":3,"119":3,"123":7,"124":2,"127":2,"131":3,"145":4,"147":2,"158":2,"161":2}}],["functions",{"2":{"43":2,"45":1,"50":2,"51":1,"52":1,"53":1,"54":1,"58":1,"80":1,"81":1,"83":1,"87":1,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"123":1,"124":2,"127":2,"128":1,"131":1,"137":1,"145":1,"147":1}}],["function",{"0":{"36":1},"1":{"37":1,"38":1}}],["func",{"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,"33":4,"34":1,"35":3,"37":2,"38":2,"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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1},"2":{"33":15,"34":6,"35":16,"37":9,"38":6}}],["预设",{"2":{"0":1,"23":1}}],["phi",{"2":{"158":5,"161":5}}],["p3",{"0":{"90":1},"2":{"90":4}}],["p2",{"0":{"56":1,"90":1,"109":1},"2":{"56":4,"58":2,"90":4,"109":9}}],["p1",{"0":{"56":1,"90":1,"109":1},"2":{"56":5,"58":2,"90":6,"109":9}}],["perpendicular",{"0":{"47":1},"2":{"47":1}}],["parametric",{"0":{"49":1},"2":{"49":1,"85":1}}],["parallel",{"0":{"50":1,"51":1,"86":1,"87":1,"127":1,"128":1},"2":{"43":2,"45":1,"46":2,"50":2,"51":2,"52":2,"53":1,"57":1,"58":2,"84":2,"85":1,"86":1,"87":2,"95":1,"127":1,"128":1}}],["partial",{"0":{"35":1},"2":{"35":6,"37":6}}],["particle",{"0":{"120":1,"154":1},"2":{"0":1,"23":1}}],["planes",{"2":{"84":1}}],["plane",{"0":{"78":1},"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,"96":1,"97":1},"2":{"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"95":1,"96":1}}],["plane3",{"0":{"79":1,"81":1,"82":1,"83":1,"84":1,"86":2,"87":1,"89":1,"90":1,"91":1,"92":1,"94":1},"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,"96":1,"97":1},"2":{"39":1,"59":1,"81":3,"82":4,"83":4,"84":3,"86":5,"87":3,"89":3,"90":1,"91":1,"92":1,"94":1,"95":4,"96":2,"114":1}}],["plus",{"2":{"35":3}}],["p",{"0":{"37":1},"2":{"37":21,"38":1,"104":10,"106":8,"136":4,"138":4,"141":4,"142":4}}],["points",{"0":{"56":1,"90":1},"2":{"56":1,"90":1}}],["point",{"0":{"42":1,"47":1,"48":1,"53":2,"86":1,"89":2,"92":2,"98":1},"1":{"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1},"2":{"37":1,"42":6,"43":2,"45":6,"46":4,"47":7,"48":3,"49":3,"52":2,"53":7,"54":2,"55":3,"56":2,"57":1,"58":2,"83":1,"85":4,"86":6,"89":8,"90":2,"91":6,"92":7,"95":1,"101":1,"104":2,"105":1,"106":1,"109":2,"136":2,"138":2,"141":2,"142":2}}],["point3",{"0":{"34":2,"37":1,"42":1,"45":1,"46":1,"47":1,"48":1,"53":1,"56":2,"57":1,"83":1,"85":2,"86":1,"89":1,"90":3,"92":1,"93":1,"97":1,"99":1,"101":1,"102":1,"103":2,"106":1,"109":2,"135":2,"138":2,"140":2,"142":1},"1":{"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1},"2":{"34":4,"37":3,"39":1,"42":3,"45":4,"46":3,"47":3,"48":3,"53":3,"56":6,"57":3,"59":1,"83":4,"84":1,"85":5,"86":3,"89":3,"90":7,"92":3,"93":1,"95":3,"97":2,"101":3,"102":1,"103":2,"104":5,"105":2,"106":3,"109":7,"114":1,"135":2,"136":6,"138":7,"140":2,"141":6,"142":7,"158":3,"161":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,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":2,"96":1,"100":1,"101":2,"102":1,"103":1,"105":1,"111":1,"117":2,"118":3,"119":3,"123":1,"124":2,"127":2,"128":1,"130":1,"131":2,"132":1,"134":1,"135":1,"137":1,"139":1,"140":1,"143":1,"144":1,"145":1,"147":1,"158":1,"161":1}}],["pythondef",{"2":{"4":1,"16":1,"17":1,"18":1,"19":1,"22":1,"33":1,"34":1,"35":1,"37":1,"38":2,"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,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"95":1,"96":1,"97":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"133":1,"136":1,"137":1,"138":1,"141":1,"142":1,"145":1,"146":1,"147":1,"148":1,"149":1}}],["practice",{"0":{"162":1},"1":{"163":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,"87":1,"88":1,"129":1,"130":2,"131":2,"132":1}}],["presets",{"0":{"155":1,"156":1,"159":1,"164":1},"1":{"157":1,"158":1,"160":1,"161":1},"2":{"0":1,"23":1}}],["pi",{"0":{"25":1},"2":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"25":1,"158":2,"161":2}}],["粒子生成工具",{"2":{"0":1,"23":1}}],["mc特效红石音乐",{"2":{"163":1}}],["model",{"0":{"156":1,"159":1},"1":{"157":1,"158":1,"160":1,"161":1}}],["midpoint",{"2":{"109":1}}],["minecraft",{"2":{"163":1}}],["min",{"0":{"111":1},"2":{"111":5}}],["minus",{"2":{"35":3}}],["minimum",{"0":{"8":1},"2":{"5":1,"6":1,"8":1}}],["multiarraysfunc",{"0":{"76":1},"2":{"77":1}}],["multisinglevarsfunc",{"0":{"75":1},"2":{"77":1}}],["multivarsfunc",{"0":{"35":2,"38":1,"77":1},"2":{"35":4,"38":3}}],["mul",{"2":{"19":1,"143":1,"144":1,"145":1,"146":1}}],["matmul",{"2":{"147":1}}],["math导入使用",{"2":{"39":1,"59":1}}],["math",{"0":{"1":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":2,"78":1,"98":1,"107":1,"110":1,"121":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,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":1,"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,"76":2,"77":2,"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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1,"153":1},"2":{"0":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"23":1,"25":1,"26":1,"27":1,"33":3,"35":1,"37":1,"38":2,"48":1,"49":1,"82":1,"113":1,"125":1,"131":1}}],["max",{"0":{"111":1},"2":{"111":5}}],["maximum",{"0":{"9":1},"2":{"9":1}}],["mp",{"0":{"1":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":2,"78":1,"98":1,"107":1,"110":1,"121":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,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":1,"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,"76":2,"77":2,"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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1,"153":1},"2":{"0":1,"23":1,"33":3,"35":1,"37":1,"38":2,"39":1,"48":1,"49":1,"59":1,"113":1}}],["mbcp",{"0":{"0":1,"1":1,"23":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":1,"78":1,"98":1,"107":1,"110":1,"120":1,"121":1,"154":1,"155":1,"156":1,"159":1,"164":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,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"76":1,"77":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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1,"153":1,"157":1,"158":1,"160":1,"161":1},"2":{"0":3,"23":3}}],["提供了一些工具",{"2":{"0":1,"23":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexja.DUR797ye.js b/assets/chunks/@localSearchIndexja.DUR797ye.js deleted file mode 100644 index eccf3fd..0000000 --- a/assets/chunks/@localSearchIndexja.DUR797ye.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":167,"nextId":167,"documentIds":{"0":"/ja/api/api.html#mbcp","1":"/ja/api/#mbcp","2":"/ja/api/mp_math/angle.html#mbcp-mp-math-angle","3":"/ja/api/mp_math/angle.html#class-angle","4":"/ja/api/mp_math/angle.html#class-anyangle-angle","5":"/ja/api/mp_math/angle.html#func-init-self-value-float-is-radian-bool-false","6":"/ja/api/mp_math/angle.html#func-complementary-self-anyangle","7":"/ja/api/mp_math/angle.html#func-supplementary-self-anyangle","8":"/ja/api/mp_math/angle.html#func-degree-self-float","9":"/ja/api/mp_math/angle.html#func-minimum-positive-self-anyangle","10":"/ja/api/mp_math/angle.html#func-maximum-negative-self-anyangle","11":"/ja/api/mp_math/angle.html#func-sin-self-float","12":"/ja/api/mp_math/angle.html#func-cos-self-float","13":"/ja/api/mp_math/angle.html#func-tan-self-float","14":"/ja/api/mp_math/angle.html#func-cot-self-float","15":"/ja/api/mp_math/angle.html#func-sec-self-float","16":"/ja/api/mp_math/angle.html#func-csc-self-float","17":"/ja/api/mp_math/angle.html#func-self-other-anyangle-anyangle","18":"/ja/api/mp_math/angle.html#func-eq-self-other","19":"/ja/api/mp_math/angle.html#func-self-other-anyangle-anyangle-1","20":"/ja/api/mp_math/angle.html#func-self-other-float-anyangle","21":"/ja/api/mp_math/angle.html#func-self-other-float-anyangle-1","22":"/ja/api/mp_math/angle.html#func-self-other-anyangle-float","23":"/ja/api/mp_math/angle.html#func-self-other","24":"/ja/api/mp_math/const.html#mbcp-mp-math-const","25":"/ja/api/mp_math/const.html#var-pi","26":"/ja/api/mp_math/const.html#var-e","27":"/ja/api/mp_math/const.html#var-golden-ratio","28":"/ja/api/mp_math/const.html#var-gamma","29":"/ja/api/mp_math/const.html#var-epsilon","30":"/ja/api/mp_math/const.html#var-approx","31":"/ja/api/mp_math/equation.html#mbcp-mp-math-equation","32":"/ja/api/mp_math/equation.html#class-curveequation","33":"/ja/api/mp_math/equation.html#func-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","34":"/ja/api/mp_math/equation.html#func-call-self-t-var-point3-tuple-point3","35":"/ja/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","36":"/ja/api/mp_math/function.html#mbcp-mp-math-function","37":"/ja/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","38":"/ja/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","39":"/ja/api/mp_math/#mbcp-mp-math","40":"/ja/api/mp_math/line.html#mbcp-mp-math-line","41":"/ja/api/mp_math/line.html#class-line3","42":"/ja/api/mp_math/line.html#func-init-self-point-point3-direction-vector3","43":"/ja/api/mp_math/line.html#func-approx-self-other-line3-epsilon-float-approx-bool","44":"/ja/api/mp_math/line.html#func-cal-angle-self-other-line3-anyangle","45":"/ja/api/mp_math/line.html#func-cal-distance-self-other-line3-point3-float","46":"/ja/api/mp_math/line.html#func-cal-intersection-self-other-line3-point3","47":"/ja/api/mp_math/line.html#func-cal-perpendicular-self-point-point3-line3","48":"/ja/api/mp_math/line.html#func-get-point-self-t-realnumber-point3","49":"/ja/api/mp_math/line.html#func-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","50":"/ja/api/mp_math/line.html#func-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","51":"/ja/api/mp_math/line.html#func-is-parallel-self-other-line3-bool","52":"/ja/api/mp_math/line.html#func-is-collinear-self-other-line3-bool","53":"/ja/api/mp_math/line.html#func-is-point-on-self-point-point3-bool","54":"/ja/api/mp_math/line.html#func-is-coplanar-self-other-line3-bool","55":"/ja/api/mp_math/line.html#func-simplify-self","56":"/ja/api/mp_math/line.html#func-from-two-points-cls-p1-point3-p2-point3-line3","57":"/ja/api/mp_math/line.html#func-and-self-other-line3-line3-point3-none","58":"/ja/api/mp_math/line.html#func-eq-self-other-bool","59":"/ja/api/mp_math/mp_math.html#mbcp-mp-math","60":"/ja/api/mp_math/mp_math_typing.html#mbcp-mp-math-mp-math-typing","61":"/ja/api/mp_math/mp_math_typing.html#var-realnumber","62":"/ja/api/mp_math/mp_math_typing.html#var-number","63":"/ja/api/mp_math/mp_math_typing.html#var-singlevar","64":"/ja/api/mp_math/mp_math_typing.html#var-arrayvar","65":"/ja/api/mp_math/mp_math_typing.html#var-var","66":"/ja/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","67":"/ja/api/mp_math/mp_math_typing.html#var-onearrayfunc","68":"/ja/api/mp_math/mp_math_typing.html#var-onevarfunc","69":"/ja/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","70":"/ja/api/mp_math/mp_math_typing.html#var-twoarraysfunc","71":"/ja/api/mp_math/mp_math_typing.html#var-twovarsfunc","72":"/ja/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","73":"/ja/api/mp_math/mp_math_typing.html#var-threearraysfunc","74":"/ja/api/mp_math/mp_math_typing.html#var-threevarsfunc","75":"/ja/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","76":"/ja/api/mp_math/mp_math_typing.html#var-multiarraysfunc","77":"/ja/api/mp_math/mp_math_typing.html#var-multivarsfunc","78":"/ja/api/mp_math/plane.html#mbcp-mp-math-plane","79":"/ja/api/mp_math/plane.html#class-plane3","80":"/ja/api/mp_math/plane.html#func-init-self-a-float-b-float-c-float-d-float","81":"/ja/api/mp_math/plane.html#func-approx-self-other-plane3-bool","82":"/ja/api/mp_math/plane.html#func-cal-angle-self-other-line3-plane3-anyangle","83":"/ja/api/mp_math/plane.html#func-cal-distance-self-other-plane3-point3-float","84":"/ja/api/mp_math/plane.html#func-cal-intersection-line3-self-other-plane3-line3","85":"/ja/api/mp_math/plane.html#func-cal-intersection-point3-self-other-line3-point3","86":"/ja/api/mp_math/plane.html#func-cal-parallel-plane3-self-point-point3-plane3","87":"/ja/api/mp_math/plane.html#func-is-parallel-self-other-plane3-bool","88":"/ja/api/mp_math/plane.html#func-normal-self-vector3","89":"/ja/api/mp_math/plane.html#func-from-point-and-normal-cls-point-point3-normal-vector3-plane3","90":"/ja/api/mp_math/plane.html#func-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","91":"/ja/api/mp_math/plane.html#func-from-two-lines-cls-l1-line3-l2-line3-plane3","92":"/ja/api/mp_math/plane.html#func-from-point-and-line-cls-point-point3-line-line3-plane3","93":"/ja/api/mp_math/plane.html#func-and-self-other-line3-point3-none","94":"/ja/api/mp_math/plane.html#func-and-self-other-plane3-line3-none","95":"/ja/api/mp_math/plane.html#func-and-self-other","96":"/ja/api/mp_math/plane.html#func-eq-self-other-bool","97":"/ja/api/mp_math/plane.html#func-rand-self-other-line3-point3","98":"/ja/api/mp_math/point.html#mbcp-mp-math-point","99":"/ja/api/mp_math/point.html#class-point3","100":"/ja/api/mp_math/point.html#func-init-self-x-float-y-float-z-float","101":"/ja/api/mp_math/point.html#func-approx-self-other-point3-epsilon-float-approx-bool","102":"/ja/api/mp_math/point.html#func-self-other-vector3-point3","103":"/ja/api/mp_math/point.html#func-self-other-point3-point3","104":"/ja/api/mp_math/point.html#func-self-other","105":"/ja/api/mp_math/point.html#func-eq-self-other","106":"/ja/api/mp_math/point.html#func-self-other-point3-vector3","107":"/ja/api/mp_math/segment.html#mbcp-mp-math-segment","108":"/ja/api/mp_math/segment.html#class-segment3","109":"/ja/api/mp_math/segment.html#func-init-self-p1-point3-p2-point3","110":"/ja/api/mp_math/utils.html#mbcp-mp-math-utils","111":"/ja/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","112":"/ja/api/mp_math/utils.html#class-approx","113":"/ja/api/mp_math/utils.html#func-init-self-value-realnumber","114":"/ja/api/mp_math/utils.html#func-eq-self-other","115":"/ja/api/mp_math/utils.html#func-raise-type-error-self-other","116":"/ja/api/mp_math/utils.html#func-ne-self-other","117":"/ja/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","118":"/ja/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","119":"/ja/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","120":"/ja/api/mp_math/vector.html#mbcp-mp-math-vector","121":"/ja/api/mp_math/vector.html#class-vector3","122":"/ja/api/mp_math/vector.html#func-init-self-x-float-y-float-z-float","123":"/ja/api/mp_math/vector.html#func-approx-self-other-vector3-epsilon-float-approx-bool","124":"/ja/api/mp_math/vector.html#func-cal-angle-self-other-vector3-anyangle","125":"/ja/api/mp_math/vector.html#func-cross-self-other-vector3-vector3","126":"/ja/api/mp_math/vector.html#func-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","127":"/ja/api/mp_math/vector.html#func-is-parallel-self-other-vector3-bool","128":"/ja/api/mp_math/vector.html#func-normalize-self","129":"/ja/api/mp_math/vector.html#func-np-array-self-np-ndarray","130":"/ja/api/mp_math/vector.html#func-length-self-float","131":"/ja/api/mp_math/vector.html#func-unit-self-vector3","132":"/ja/api/mp_math/vector.html#func-abs-self","133":"/ja/api/mp_math/vector.html#func-self-other-vector3-vector3","134":"/ja/api/mp_math/vector.html#func-self-other-point3-point3","135":"/ja/api/mp_math/vector.html#func-self-other","136":"/ja/api/mp_math/vector.html#func-eq-self-other","137":"/ja/api/mp_math/vector.html#func-self-other-point3-point3-1","138":"/ja/api/mp_math/vector.html#func-self-other-vector3-vector3-1","139":"/ja/api/mp_math/vector.html#func-self-other-point3-point3-2","140":"/ja/api/mp_math/vector.html#func-self-other-1","141":"/ja/api/mp_math/vector.html#func-self-other-point3","142":"/ja/api/mp_math/vector.html#func-self-other-vector3-vector3-2","143":"/ja/api/mp_math/vector.html#func-self-other-realnumber-vector3","144":"/ja/api/mp_math/vector.html#func-self-other-int-float-vector3-vector3","145":"/ja/api/mp_math/vector.html#func-self-other-realnumber-vector3-1","146":"/ja/api/mp_math/vector.html#func-self-other-vector3-realnumber","147":"/ja/api/mp_math/vector.html#func-self-other-realnumber-vector3-2","148":"/ja/api/mp_math/vector.html#func-self-vector3","149":"/ja/api/mp_math/vector.html#var-zero-vector3","150":"/ja/api/mp_math/vector.html#var-x-axis","151":"/ja/api/mp_math/vector.html#var-y-axis","152":"/ja/api/mp_math/vector.html#var-z-axis","153":"/ja/api/particle/#mbcp-particle","154":"/ja/api/particle/particle.html#mbcp-particle","155":"/ja/api/presets/#mbcp-presets","156":"/ja/api/presets/model/#mbcp-presets-model","157":"/ja/api/presets/model/#class-geometricmodels","158":"/ja/api/presets/model/#func-sphere-radius-float-density-float","159":"/ja/api/presets/model/model.html#mbcp-presets-model","160":"/ja/api/presets/model/model.html#class-geometricmodels","161":"/ja/api/presets/model/model.html#func-sphere-radius-float-density-float","162":"/ja/api/presets/presets.html#mbcp-presets","163":"/ja/demo/best-practice.html#ベストプラクティス","164":"/ja/demo/best-practice.html#作品","165":"/ja/guide/#开始不了一点","166":"/ja/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,13],"1":[1,1,13],"2":[4,1,3],"3":[2,4,1],"4":[4,4,1],"5":[11,8,25],"6":[5,8,24],"7":[5,8,23],"8":[5,8,20],"9":[6,8,21],"10":[6,8,23],"11":[5,8,18],"12":[5,8,18],"13":[5,8,18],"14":[5,8,20],"15":[5,8,20],"16":[5,8,20],"17":[7,8,15],"18":[5,8,11],"19":[6,8,14],"20":[7,8,16],"21":[7,8,13],"22":[7,8,13],"23":[3,8,15],"24":[4,1,3],"25":[2,4,7],"26":[2,4,8],"27":[3,4,10],"28":[2,4,6],"29":[2,4,6],"30":[2,4,6],"31":[4,1,3],"32":[2,4,1],"33":[8,6,26],"34":[10,6,35],"35":[14,4,74],"36":[4,1,3],"37":[13,4,69],"38":[7,4,63],"39":[3,1,21],"40":[4,1,3],"41":[2,4,1],"42":[8,6,25],"43":[11,6,43],"44":[8,6,28],"45":[10,6,63],"46":[8,6,60],"47":[8,6,29],"48":[8,6,35],"49":[9,6,42],"50":[14,6,43],"51":[8,6,36],"52":[8,6,39],"53":[8,6,36],"54":[8,6,42],"55":[4,6,27],"56":[10,6,36],"57":[9,6,52],"58":[6,6,44],"59":[3,1,21],"60":[4,1,3],"61":[2,4,9],"62":[2,4,9],"63":[2,4,7],"64":[2,4,8],"65":[2,4,9],"66":[2,4,8],"67":[2,4,8],"68":[2,4,9],"69":[2,4,8],"70":[2,4,8],"71":[2,4,9],"72":[2,4,8],"73":[2,4,8],"74":[2,4,9],"75":[2,4,8],"76":[2,4,8],"77":[2,4,9],"78":[4,1,3],"79":[2,4,1],"80":[9,6,36],"81":[7,6,45],"82":[10,6,62],"83":[10,6,66],"84":[9,6,71],"85":[9,6,69],"86":[9,6,30],"87":[8,6,37],"88":[5,6,25],"89":[10,6,45],"90":[11,6,39],"91":[10,6,44],"92":[10,6,35],"93":[9,6,15],"94":[9,6,15],"95":[5,6,70],"96":[6,6,35],"97":[7,6,15],"98":[4,1,3],"99":[2,4,1],"100":[8,6,26],"101":[11,6,45],"102":[8,6,13],"103":[7,6,12],"104":[4,6,34],"105":[5,6,37],"106":[7,6,36],"107":[4,1,3],"108":[2,4,1],"109":[7,6,32],"110":[4,1,3],"111":[7,4,31],"112":[2,4,1],"113":[6,6,20],"114":[5,6,31],"115":[7,6,15],"116":[5,6,11],"117":[11,4,40],"118":[11,4,43],"119":[12,4,49],"120":[4,1,4],"121":[2,4,1],"122":[8,6,29],"123":[11,6,44],"124":[8,6,31],"125":[6,6,43],"126":[13,6,43],"127":[8,6,37],"128":[4,6,17],"129":[6,6,31],"130":[5,6,33],"131":[5,6,21],"132":[4,6,10],"133":[7,6,12],"134":[7,6,12],"135":[4,6,46],"136":[5,6,37],"137":[7,6,31],"138":[6,6,12],"139":[6,6,12],"140":[3,6,45],"141":[4,6,42],"142":[6,6,12],"143":[7,6,13],"144":[9,6,55],"145":[7,6,13],"146":[7,6,38],"147":[7,6,15],"148":[5,6,21],"149":[3,4,7],"150":[3,4,8],"151":[3,4,8],"152":[3,4,8],"153":[2,1,3],"154":[2,1,3],"155":[2,1,3],"156":[3,1,3],"157":[2,3,2],"158":[6,5,48],"159":[3,1,3],"160":[2,3,2],"161":[6,5,48],"162":[2,1,3],"163":[1,1,1],"164":[1,1,25],"165":[1,1,2],"166":[1,1,7]},"averageFieldLength":[5.5149700598802385,4.916167664670656,22.50299401197604],"storedFields":{"0":{"title":"mbcp","titles":[]},"1":{"title":"mbcp","titles":[]},"2":{"title":"mbcp.mp_math.angle","titles":[]},"3":{"title":"class Angle","titles":["mbcp.mp_math.angle"]},"4":{"title":"class AnyAngle(Angle)","titles":["mbcp.mp_math.angle"]},"5":{"title":"func __init__(self, value: float, is_radian: bool = False)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"func complementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"func supplementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"func degree(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"func minimum_positive(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"func maximum_negative(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"func sin(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"func cos(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"func tan(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"func cot(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"func sec(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"func csc(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"func self + other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"func self - other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"func self * other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"func self / other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"func self / other: AnyAngle => float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"func self / other","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"24":{"title":"mbcp.mp_math.const","titles":[]},"25":{"title":"var PI","titles":["mbcp.mp_math.const"]},"26":{"title":"var E","titles":["mbcp.mp_math.const"]},"27":{"title":"var GOLDEN_RATIO","titles":["mbcp.mp_math.const"]},"28":{"title":"var GAMMA","titles":["mbcp.mp_math.const"]},"29":{"title":"var EPSILON","titles":["mbcp.mp_math.const"]},"30":{"title":"var APPROX","titles":["mbcp.mp_math.const"]},"31":{"title":"mbcp.mp_math.equation","titles":[]},"32":{"title":"class CurveEquation","titles":["mbcp.mp_math.equation"]},"33":{"title":"func __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"func __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["mbcp.mp_math.equation","class CurveEquation"]},"35":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["mbcp.mp_math.equation"]},"36":{"title":"mbcp.mp_math.function","titles":[]},"37":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["mbcp.mp_math.function"]},"38":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["mbcp.mp_math.function"]},"39":{"title":"mbcp.mp_math","titles":[]},"40":{"title":"mbcp.mp_math.line","titles":[]},"41":{"title":"class Line3","titles":["mbcp.mp_math.line"]},"42":{"title":"func __init__(self, point: Point3, direction: Vector3)","titles":["mbcp.mp_math.line","class Line3"]},"43":{"title":"func approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"44":{"title":"func cal_angle(self, other: Line3) -> AnyAngle","titles":["mbcp.mp_math.line","class Line3"]},"45":{"title":"func cal_distance(self, other: Line3 | Point3) -> float","titles":["mbcp.mp_math.line","class Line3"]},"46":{"title":"func cal_intersection(self, other: Line3) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"47":{"title":"func cal_perpendicular(self, point: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"48":{"title":"func get_point(self, t: RealNumber) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"49":{"title":"func get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["mbcp.mp_math.line","class Line3"]},"50":{"title":"func is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"51":{"title":"func is_parallel(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"52":{"title":"func is_collinear(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"53":{"title":"func is_point_on(self, point: Point3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"54":{"title":"func is_coplanar(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"55":{"title":"func simplify(self)","titles":["mbcp.mp_math.line","class Line3"]},"56":{"title":"func from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"57":{"title":"func __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["mbcp.mp_math.line","class Line3"]},"58":{"title":"func __eq__(self, other) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"59":{"title":"mbcp.mp_math","titles":[]},"60":{"title":"mbcp.mp_math.mp_math_typing","titles":[]},"61":{"title":"var RealNumber","titles":["mbcp.mp_math.mp_math_typing"]},"62":{"title":"var Number","titles":["mbcp.mp_math.mp_math_typing"]},"63":{"title":"var SingleVar","titles":["mbcp.mp_math.mp_math_typing"]},"64":{"title":"var ArrayVar","titles":["mbcp.mp_math.mp_math_typing"]},"65":{"title":"var Var","titles":["mbcp.mp_math.mp_math_typing"]},"66":{"title":"var OneSingleVarFunc","titles":["mbcp.mp_math.mp_math_typing"]},"67":{"title":"var OneArrayFunc","titles":["mbcp.mp_math.mp_math_typing"]},"68":{"title":"var OneVarFunc","titles":["mbcp.mp_math.mp_math_typing"]},"69":{"title":"var TwoSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"70":{"title":"var TwoArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"71":{"title":"var TwoVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"72":{"title":"var ThreeSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"73":{"title":"var ThreeArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"74":{"title":"var ThreeVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"75":{"title":"var MultiSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"76":{"title":"var MultiArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"77":{"title":"var MultiVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"78":{"title":"mbcp.mp_math.plane","titles":[]},"79":{"title":"class Plane3","titles":["mbcp.mp_math.plane"]},"80":{"title":"func __init__(self, a: float, b: float, c: float, d: float)","titles":["mbcp.mp_math.plane","class Plane3"]},"81":{"title":"func approx(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"82":{"title":"func cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["mbcp.mp_math.plane","class Plane3"]},"83":{"title":"func cal_distance(self, other: Plane3 | Point3) -> float","titles":["mbcp.mp_math.plane","class Plane3"]},"84":{"title":"func cal_intersection_line3(self, other: Plane3) -> Line3","titles":["mbcp.mp_math.plane","class Plane3"]},"85":{"title":"func cal_intersection_point3(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"86":{"title":"func cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"87":{"title":"func is_parallel(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"88":{"title":"func normal(self) -> Vector3","titles":["mbcp.mp_math.plane","class Plane3"]},"89":{"title":"func from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"90":{"title":"func from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"91":{"title":"func from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"92":{"title":"func from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"93":{"title":"func __and__(self, other: Line3) -> Point3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"94":{"title":"func __and__(self, other: Plane3) -> Line3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"95":{"title":"func __and__(self, other)","titles":["mbcp.mp_math.plane","class Plane3"]},"96":{"title":"func __eq__(self, other) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"97":{"title":"func __rand__(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"98":{"title":"mbcp.mp_math.point","titles":[]},"99":{"title":"class Point3","titles":["mbcp.mp_math.point"]},"100":{"title":"func __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.point","class Point3"]},"101":{"title":"func approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.point","class Point3"]},"102":{"title":"func self + other: Vector3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"103":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"104":{"title":"func self + other","titles":["mbcp.mp_math.point","class Point3"]},"105":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.point","class Point3"]},"106":{"title":"func self - other: Point3 => Vector3","titles":["mbcp.mp_math.point","class Point3"]},"107":{"title":"mbcp.mp_math.segment","titles":[]},"108":{"title":"class Segment3","titles":["mbcp.mp_math.segment"]},"109":{"title":"func __init__(self, p1: Point3, p2: Point3)","titles":["mbcp.mp_math.segment","class Segment3"]},"110":{"title":"mbcp.mp_math.utils","titles":[]},"111":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["mbcp.mp_math.utils"]},"112":{"title":"class Approx","titles":["mbcp.mp_math.utils"]},"113":{"title":"func __init__(self, value: RealNumber)","titles":["mbcp.mp_math.utils","class Approx"]},"114":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"115":{"title":"func raise_type_error(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"116":{"title":"func __ne__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"117":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.utils"]},"118":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"119":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"120":{"title":"mbcp.mp_math.vector","titles":[]},"121":{"title":"class Vector3","titles":["mbcp.mp_math.vector"]},"122":{"title":"func __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.vector","class Vector3"]},"123":{"title":"func approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"124":{"title":"func cal_angle(self, other: Vector3) -> AnyAngle","titles":["mbcp.mp_math.vector","class Vector3"]},"125":{"title":"func cross(self, other: Vector3) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"126":{"title":"func is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"127":{"title":"func is_parallel(self, other: Vector3) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"128":{"title":"func normalize(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"129":{"title":"func np_array(self) -> np.ndarray","titles":["mbcp.mp_math.vector","class Vector3"]},"130":{"title":"func length(self) -> float","titles":["mbcp.mp_math.vector","class Vector3"]},"131":{"title":"func unit(self) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"132":{"title":"func __abs__(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"133":{"title":"func self + other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"134":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"135":{"title":"func self + other","titles":["mbcp.mp_math.vector","class Vector3"]},"136":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.vector","class Vector3"]},"137":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"138":{"title":"func self - other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"139":{"title":"func self - other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"140":{"title":"func self - other","titles":["mbcp.mp_math.vector","class Vector3"]},"141":{"title":"func self - other: Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"142":{"title":"func self * other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"143":{"title":"func self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"144":{"title":"func self * other: int | float | Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"145":{"title":"func self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"146":{"title":"func self @ other: Vector3 => RealNumber","titles":["mbcp.mp_math.vector","class Vector3"]},"147":{"title":"func self / other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"148":{"title":"func - self => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"149":{"title":"var zero_vector3","titles":["mbcp.mp_math.vector"]},"150":{"title":"var x_axis","titles":["mbcp.mp_math.vector"]},"151":{"title":"var y_axis","titles":["mbcp.mp_math.vector"]},"152":{"title":"var z_axis","titles":["mbcp.mp_math.vector"]},"153":{"title":"mbcp.particle","titles":[]},"154":{"title":"mbcp.particle","titles":[]},"155":{"title":"mbcp.presets","titles":[]},"156":{"title":"mbcp.presets.model","titles":[]},"157":{"title":"class GeometricModels","titles":["mbcp.presets.model"]},"158":{"title":"func sphere(radius: float, density: float)","titles":["mbcp.presets.model","class GeometricModels"]},"159":{"title":"mbcp.presets.model","titles":[]},"160":{"title":"class GeometricModels","titles":["mbcp.presets.model"]},"161":{"title":"func sphere(radius: float, density: float)","titles":["mbcp.presets.model","class GeometricModels"]},"162":{"title":"mbcp.presets","titles":[]},"163":{"title":"ベストプラクティス","titles":[]},"164":{"title":"作品","titles":["ベストプラクティス"]},"165":{"title":"开始不了一点","titles":[]},"166":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["∫12x111",{"2":{"165":1}}],["开始不了一点",{"0":{"165":1}}],["红石音乐",{"2":{"164":1}}],["这么可爱真是抱歉",{"2":{"164":1}}],["这玩意不太稳定",{"2":{"35":2}}],["轻涟",{"2":{"164":1}}],["芙宁娜pv曲",{"2":{"164":1}}],["有点甜~",{"2":{"164":1}}],["有关函数柯里化",{"2":{"38":2}}],["星穹铁道",{"2":{"164":1}}],["崩坏",{"2":{"164":1}}],["使一颗心免于哀伤",{"2":{"164":1}}],["总有一条蜿蜒在童话镇里",{"2":{"164":1}}],["童话镇~",{"2":{"164":1}}],["特效红石音乐",{"2":{"164":2}}],["作品",{"0":{"164":1}}],["ベストプラクティス",{"0":{"163":1},"1":{"164":1}}],["4",{"2":{"158":1,"161":1}}],["球体上的点集",{"2":{"158":2,"161":2}}],["生成球体上的点集",{"2":{"158":2,"161":2}}],["几何模型点集",{"2":{"156":1,"159":1}}],["零向量",{"2":{"149":1}}],["负向量",{"2":{"148":2}}],["取负",{"2":{"148":2}}],["取两平面的交集",{"2":{"95":2}}],["非点乘",{"2":{"144":2}}],["别去点那边实现了",{"2":{"137":2}}],["单位向量",{"2":{"131":2}}],["单变量",{"2":{"63":1}}],["模",{"2":{"130":2}}],["向量的模",{"2":{"130":2}}],["向量积",{"2":{"125":2}}],["返回numpy数组",{"2":{"129":1}}],["返回如下行列式的结果",{"2":{"125":1}}],["将向量归一化",{"2":{"128":2}}],["j",{"2":{"125":1}}],["其余结果的模为平行四边形的面积",{"2":{"125":2}}],["叉乘使用cross",{"2":{"144":2}}],["叉乘结果",{"2":{"125":2}}],["叉乘为0",{"2":{"125":2}}],["叉乘",{"2":{"125":2}}],["以及一些常用的向量",{"2":{"120":1}}],["格式化符号数",{"2":{"119":2}}],["quot",{"2":{"118":2,"119":4}}],["符号",{"2":{"118":2,"119":2}}],["获取该向量的单位向量",{"2":{"131":2}}],["获取数的符号",{"2":{"118":2}}],["获取直线的参数方程",{"2":{"49":2}}],["获取直线上的点",{"2":{"48":2}}],["用于判断是否近似于0",{"2":{"117":2}}],["用于近似比较对象",{"2":{"113":2}}],["或包装一个实数",{"2":{"117":2}}],["或整数元组",{"2":{"35":2}}],["限定在区间内的值",{"2":{"111":2}}],["值",{"2":{"111":2}}],["区间限定函数",{"2":{"111":2}}],["us",{"2":{"166":1}}],["unit",{"0":{"131":1},"2":{"131":1}}],["unsupported",{"2":{"45":1,"82":1,"83":1,"95":1,"115":1,"135":1,"140":1,"141":1,"144":1}}],["utils",{"0":{"110":1},"1":{"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1}}],["中心点",{"2":{"109":1}}],["中实现",{"2":{"106":2}}],["长度",{"2":{"109":1}}],["线段的另一个端点",{"2":{"109":2}}],["线段的一个端点",{"2":{"109":2}}],["新的向量或点",{"2":{"135":2}}],["新的向量",{"2":{"106":2,"140":2}}],["新的点",{"2":{"104":2,"137":2,"141":2}}],["已在",{"2":{"106":2}}],["已知一个函数$f",{"2":{"37":1}}],["已知一个函数f",{"2":{"37":1}}],["坐标",{"2":{"100":6}}],["笛卡尔坐标系中的点",{"2":{"100":2}}],["人话",{"2":{"95":2}}],["法向量",{"2":{"88":2,"89":2}}],["k``",{"2":{"125":1}}],["k",{"2":{"81":12}}],["常数项",{"2":{"80":2}}],["常量",{"2":{"25":1}}],["平面上一点",{"2":{"89":2,"92":2}}],["平面的法向量",{"2":{"88":2}}],["平面",{"2":{"86":2,"89":2,"90":2,"91":2,"92":2}}],["平面与直线平行或重合",{"2":{"85":2}}],["平面平行且无交线",{"2":{"84":2}}],["平面方程",{"2":{"80":2}}],["平行线返回none",{"2":{"57":2}}],["多元函数",{"2":{"77":1}}],["多元数组函数",{"2":{"76":1}}],["多元单变量函数",{"2":{"75":1}}],["二元函数",{"2":{"71":1}}],["二元数组函数",{"2":{"70":1}}],["二元单变量函数",{"2":{"69":1}}],["一元函数",{"2":{"68":1}}],["一元数组函数",{"2":{"67":1}}],["一元单变量函数",{"2":{"66":1}}],["一阶偏导",{"2":{"35":2}}],["变量",{"2":{"65":1}}],["变量位置",{"2":{"35":2}}],["数组运算结果",{"2":{"144":2}}],["数组运算",{"2":{"144":2}}],["数组变量",{"2":{"64":1}}],["数2",{"2":{"117":2}}],["数1",{"2":{"117":2}}],["数",{"2":{"62":1,"118":2,"119":2}}],["数学工具",{"2":{"0":1,"1":1}}],["タイプ",{"2":{"61":1,"62":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"149":1,"150":1,"151":1,"152":1}}],["实数",{"2":{"61":1,"113":2}}],["∧",{"2":{"58":2}}],["交线",{"2":{"84":2,"95":2}}],["交线返回交点",{"2":{"57":2}}],["交集",{"2":{"57":2,"95":2}}],["交点",{"2":{"46":2,"85":2}}],["重合线返回自身",{"2":{"57":2}}],["由点和直线构造平面",{"2":{"92":2}}],["由点和法向量构造平面",{"2":{"89":2}}],["由两直线构造平面",{"2":{"91":2}}],["由两点构造直线",{"2":{"56":2}}],["由三点构造平面",{"2":{"90":2}}],["由一个点和一个方向向量确定",{"2":{"42":2}}],["工厂函数",{"2":{"56":2,"89":2,"90":2,"91":2,"92":2}}],["并对向量单位化",{"2":{"55":2}}],["处理",{"2":{"55":2}}],["处的梯度向量为",{"2":{"37":1}}],["化",{"2":{"55":2}}],["按照可行性一次对x",{"2":{"55":2}}],["不返回值",{"2":{"55":2,"128":2}}],["不支持的类型",{"2":{"45":2,"82":2,"83":2,"95":2}}],["自体归一化",{"2":{"128":2}}],["自体简化",{"2":{"55":2}}],["自然对数的底",{"2":{"26":1}}],["等价相等",{"2":{"55":2}}],["简化直线方程",{"2":{"55":2}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"54":2}}],["两角的和为180°",{"2":{"7":2}}],["两角的和为90°",{"2":{"6":2}}],["充要条件",{"2":{"54":2}}],["判断两个向量是否相等",{"2":{"136":2}}],["判断两个向量是否平行",{"2":{"127":2}}],["判断两个向量是否近似平行",{"2":{"126":2}}],["判断两个向量是否近似相等",{"2":{"123":2}}],["判断两个数是否近似相等",{"2":{"117":2}}],["判断两个点是否相等",{"2":{"105":2}}],["判断两个点是否近似相等",{"2":{"101":2}}],["判断两个平面是否等价",{"2":{"96":2}}],["判断两个平面是否平行",{"2":{"87":2}}],["判断两个平面是否近似相等",{"2":{"81":2}}],["判断两条直线是否等价",{"2":{"58":2}}],["判断两条直线是否共面",{"2":{"54":2}}],["判断两条直线是否共线",{"2":{"52":2}}],["判断两条直线是否平行",{"2":{"51":2}}],["判断两条直线是否近似平行",{"2":{"50":2}}],["判断两条直线是否近似相等",{"2":{"43":2}}],["判断点是否在直线上",{"2":{"53":2}}],["另一个向量或数",{"2":{"144":2}}],["另一个向量或点",{"2":{"135":2,"140":2}}],["另一个向量",{"2":{"123":2,"124":2,"125":2,"126":2,"127":2,"136":2,"146":2}}],["另一个点或向量",{"2":{"104":2}}],["另一个点",{"2":{"101":2,"105":2,"106":2,"137":2,"141":2}}],["另一个平面或点",{"2":{"83":2}}],["另一个平面或直线",{"2":{"82":2,"95":2}}],["另一个平面",{"2":{"81":2,"84":2,"87":2,"96":2}}],["另一",{"2":{"51":2,"52":2,"54":2}}],["另一条直线或点",{"2":{"45":2}}],["另一条直线",{"2":{"43":2,"44":2,"46":2,"50":2,"57":2,"58":2}}],["则两向量平行",{"2":{"125":2}}],["则同一个t对应的点不同",{"2":{"48":2}}],["则其在点$",{"2":{"37":1}}],["则其在点",{"2":{"37":1}}],["但起始点和方向向量不同",{"2":{"48":2}}],["同一条直线",{"2":{"48":2}}],["垂线",{"2":{"47":2}}],["指定点",{"2":{"47":2,"86":2}}],["直线",{"2":{"56":2,"85":2,"91":4,"92":2}}],["直线不共面",{"2":{"46":2}}],["直线平行",{"2":{"46":2}}],["直线上的一点",{"2":{"42":2}}],["距离",{"2":{"45":2,"83":2}}],["夹角",{"2":{"44":2,"82":2,"124":2}}],["是否只返回负数的符号",{"2":{"118":2,"119":2}}],["是否相等",{"2":{"105":2,"136":2}}],["是否等价",{"2":{"58":2,"96":2}}],["是否共面",{"2":{"54":2}}],["是否共线",{"2":{"52":2}}],["是否在直线上",{"2":{"53":2}}],["是否平行",{"2":{"51":2,"87":2,"127":2}}],["是否近似平行",{"2":{"50":2,"126":2}}],["是否近似相等",{"2":{"43":2,"81":2,"101":2,"117":2,"123":2}}],["是否为弧度",{"2":{"5":2}}],["误差",{"2":{"43":2,"50":2,"101":2,"117":2,"123":2,"126":2}}],["方向向量",{"2":{"42":2,"109":1}}],["三元数组函数",{"2":{"73":1}}],["三元单变量函数",{"2":{"72":1}}],["三元函数",{"2":{"37":2,"74":1}}],["三维空间中的线段",{"2":{"109":2}}],["三维空间中的直线",{"2":{"42":2}}],["三维向量",{"2":{"39":1,"59":1}}],["三维线段",{"2":{"39":1,"59":1}}],["三维点",{"2":{"39":1,"59":1}}],["三维平面",{"2":{"39":1,"59":1}}],["三维直线",{"2":{"39":1,"59":1}}],["导入的类有",{"2":{"39":1,"59":1}}],["本包定义了一些常用的导入",{"2":{"39":1,"59":1}}],["本模块塞了一些预设",{"2":{"155":1,"162":1}}],["本模块用于内部类型提示",{"2":{"60":1}}],["本模块定义了粒子生成相关的工具",{"2":{"153":1,"154":1}}],["本模块定义了3维向量的类vector3",{"2":{"120":1}}],["本模块定义了一些常用的工具函数",{"2":{"110":1}}],["本模块定义了一些常用的常量",{"2":{"24":1}}],["本模块定义了三维空间中点的类",{"2":{"98":1}}],["本模块定义了三维空间中的线段类",{"2":{"107":1}}],["本模块定义了三维空间中的平面类",{"2":{"78":1}}],["本模块定义了三维空间中的直线类",{"2":{"40":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"31":1}}],["本模块定义了角度相关的类",{"2":{"2":1}}],["本模块是主模块",{"2":{"0":1,"1":1}}],["help",{"2":{"166":1}}],["heart",{"2":{"164":1}}],["have",{"2":{"84":1}}],["html",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["https",{"2":{"38":1,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["high",{"2":{"35":2}}],["hide",{"2":{"35":2,"38":1}}],["6",{"2":{"38":2}}],["3维向量",{"2":{"122":2}}],["3a",{"2":{"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"58":1,"80":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["355859667",{"2":{"38":1}}],["3",{"2":{"38":2,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["3vf",{"0":{"37":1},"2":{"37":1}}],["breaking",{"2":{"164":1}}],["by",{"2":{"80":2}}],["bound=iterable",{"2":{"64":1}}],["bound=number",{"2":{"63":1}}],["bool=false",{"2":{"5":1,"118":1,"119":1}}],["bool",{"0":{"5":1,"43":1,"50":1,"51":1,"52":1,"53":1,"54":1,"58":1,"81":1,"87":1,"96":1,"101":1,"117":1,"118":1,"119":1,"123":1,"126":1,"127":1},"2":{"43":3,"50":3,"51":3,"52":3,"53":3,"54":3,"58":3,"81":3,"87":3,"96":3,"101":3,"105":2,"117":3,"118":2,"119":2,"123":3,"126":3,"127":3,"136":2}}],["b",{"0":{"80":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":12,"85":2,"88":1,"89":3}}],["例",{"2":{"38":1}}],["例外",{"2":{"35":1,"45":1,"46":1,"82":1,"83":1,"84":1,"85":1,"95":1}}],["柯里化后的函数",{"2":{"38":2}}],["柯理化",{"2":{"38":2}}],["函数式编程",{"2":{"38":1}}],["函数",{"2":{"38":2}}],["对多参数函数进行柯里化",{"2":{"38":2}}],["d",{"0":{"80":1},"2":{"80":7,"81":6,"83":1,"84":6,"85":1,"89":2}}],["documentation",{"2":{"166":1}}],["doc",{"2":{"129":1}}],["docs",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["do",{"2":{"46":2}}],["distance",{"0":{"45":1,"83":1},"2":{"45":1,"83":1}}],["direction",{"0":{"42":1},"2":{"42":5,"43":1,"44":2,"45":8,"46":6,"47":1,"48":1,"49":3,"50":2,"51":2,"52":1,"53":1,"54":2,"55":4,"56":2,"58":3,"82":1,"84":2,"85":4,"91":1,"92":1,"95":1,"109":2}}],["dz",{"2":{"37":2}}],["dy",{"2":{"37":2}}],["dx",{"2":{"37":2}}],["density",{"0":{"158":1,"161":1},"2":{"158":4,"161":4}}],["derivative",{"0":{"35":1},"2":{"35":6}}],["degree",{"0":{"8":1},"2":{"8":1}}],["def",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"21":1,"22":1,"35":2,"38":2,"56":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"102":1,"103":1,"129":1,"130":1,"131":1,"133":1,"134":1,"138":1,"139":1,"142":1,"143":1,"158":1,"161":1}}],["$处的梯度向量为",{"2":{"37":1}}],["$",{"2":{"37":3}}],["梯度",{"2":{"37":2}}],["点乘结果",{"2":{"146":2}}],["点乘",{"2":{"146":2}}],["点乘使用",{"2":{"144":2}}],["点3",{"2":{"90":2}}],["点法式构造",{"2":{"89":2}}],["点2",{"2":{"56":2,"90":2}}],["点1",{"2":{"56":2,"90":2}}],["点",{"2":{"37":2,"48":2,"53":2}}],["∂f∂z",{"2":{"37":1}}],["∂f∂y",{"2":{"37":1}}],["∂f∂x",{"2":{"37":1}}],["∇f",{"2":{"37":1}}],["计算平行于该平面且过指定点的平面",{"2":{"86":2}}],["计算平面与直线的交点",{"2":{"85":2}}],["计算平面与平面或点之间的距离",{"2":{"83":2}}],["计算平面与平面之间的夹角",{"2":{"82":2}}],["计算两个向量之间的夹角",{"2":{"124":2}}],["计算两平面的交线",{"2":{"84":2}}],["计算两条直线点集合的交集",{"2":{"57":2}}],["计算两条直线的交点",{"2":{"46":2}}],["计算直线经过指定点p的垂线",{"2":{"47":2}}],["计算直线和直线或点之间的距离",{"2":{"45":2}}],["计算直线和直线之间的夹角",{"2":{"44":2}}],["计算三元函数在某点的梯度向量",{"2":{"37":2}}],["计算曲线上的点",{"2":{"34":2}}],["v3",{"2":{"125":2}}],["v2",{"2":{"58":2,"90":2,"91":4,"125":2}}],["v1",{"2":{"58":4,"90":2,"91":2,"125":2}}],["vector",{"0":{"120":1},"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,"151":1,"152":1},"2":{"42":1,"88":1,"89":1,"104":1,"106":3,"144":1}}],["vector3",{"0":{"37":1,"42":1,"88":1,"89":1,"102":1,"106":1,"121":1,"123":1,"124":1,"125":2,"126":1,"127":1,"131":1,"133":2,"138":2,"142":2,"143":1,"144":2,"145":1,"146":1,"147":1,"148":1,"149":1},"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},"2":{"37":2,"39":1,"42":3,"59":1,"88":4,"89":3,"91":1,"102":1,"104":2,"106":7,"114":2,"123":3,"124":3,"125":7,"126":3,"127":4,"131":3,"133":2,"135":7,"136":2,"138":2,"140":7,"141":1,"142":2,"143":1,"144":9,"145":1,"146":3,"147":2,"148":4,"149":2,"150":2,"151":2,"152":2}}],["v",{"2":{"35":2,"104":2,"106":4,"135":8,"137":2,"140":8,"141":2}}],["var",{"0":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"34":1,"35":1,"38":1,"61":1,"62":1,"63":1,"64":1,"65":2,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"149":1,"150":1,"151":1,"152":1},"2":{"33":3,"34":1,"35":14,"37":1,"38":7,"48":1,"49":1}}],["valueerror",{"2":{"35":3,"46":4,"84":3,"85":3}}],["value",{"0":{"5":1,"113":1},"2":{"5":5,"113":5,"114":6,"115":1}}],["求高阶偏导函数",{"2":{"35":1}}],["求n元函数一阶偏导函数",{"2":{"35":2}}],["l2",{"0":{"91":1},"2":{"91":5}}],["l1",{"0":{"91":1},"2":{"91":7}}],["lambda",{"2":{"49":3}}],["left",{"2":{"37":1}}],["length",{"0":{"130":1},"2":{"45":5,"46":1,"82":2,"109":2,"124":2,"126":1,"128":5,"130":1,"131":1,"132":1}}],["len",{"2":{"34":1}}],["linalg",{"2":{"84":3}}],["lines",{"0":{"91":1},"2":{"46":2,"91":1}}],["line",{"0":{"40":1,"92":2},"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,"58":1},"2":{"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"58":1,"82":1,"84":1,"85":2,"91":1,"92":6,"95":2}}],["line3",{"0":{"41":1,"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"82":1,"84":2,"85":1,"91":2,"92":1,"93":1,"94":1,"97":1},"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,"58":1},"2":{"39":1,"43":3,"44":3,"45":4,"46":3,"47":4,"50":3,"51":3,"52":3,"54":3,"56":3,"57":6,"58":2,"59":1,"82":4,"84":5,"85":3,"91":5,"92":3,"93":1,"94":1,"95":6,"97":1,"114":1}}],["library",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["list",{"2":{"35":8,"158":10,"161":10}}],["litedoc",{"2":{"35":2,"38":1}}],["`np",{"2":{"129":1}}],["`none`",{"2":{"57":1,"95":1}}],["``x2",{"2":{"125":1}}],["``x1",{"2":{"125":1}}],["``i",{"2":{"125":1}}],["```",{"2":{"38":1}}],["```python",{"2":{"38":1}}],["`str`",{"2":{"118":1,"119":1}}],["`plane3`",{"2":{"81":1,"82":1,"83":1,"84":1,"86":1,"87":1,"89":1,"95":1,"96":1}}],["`point3`",{"2":{"37":1,"42":1,"45":1,"46":1,"47":1,"48":1,"53":1,"56":2,"57":1,"83":1,"85":1,"86":1,"89":1,"90":3,"92":1,"95":1,"101":1,"104":2,"105":1,"106":1,"109":2,"135":2,"137":2,"140":2,"141":2}}],["`onesinglevarfunc`",{"2":{"49":3}}],["`onevarfunc`",{"2":{"33":3}}],["`realnumber`",{"2":{"48":1,"113":1}}],["`tuple`",{"2":{"49":1}}],["`typeerror`",{"2":{"45":1,"82":1,"83":1,"95":1}}],["`threesinglevarsfunc`",{"2":{"37":1}}],["`anyangle`",{"2":{"44":1,"82":1,"124":1}}],["`bool`",{"2":{"43":1,"50":1,"51":1,"52":1,"53":1,"54":1,"58":1,"81":1,"87":1,"96":1,"101":1,"105":1,"117":1,"118":1,"119":1,"123":1,"126":1,"127":1,"136":1}}],["`float`",{"2":{"43":1,"45":1,"50":1,"80":4,"83":1,"100":3,"101":1,"111":4,"117":3,"118":1,"119":1,"122":3,"123":1,"126":1,"130":1,"144":1,"146":1}}],["`line3`",{"2":{"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"58":1,"82":1,"84":1,"85":1,"91":2,"92":1,"95":2}}],["`valueerror`",{"2":{"46":2,"84":1,"85":1}}],["`var`",{"2":{"38":1}}],["`vector3`",{"2":{"42":1,"88":1,"89":1,"104":1,"106":2,"123":1,"124":1,"125":2,"126":1,"127":1,"131":1,"135":2,"136":1,"140":2,"144":2,"146":1,"148":1}}],["`multivarsfunc`",{"2":{"35":1,"38":1}}],["无效变量类型",{"2":{"35":2}}],["偏导函数",{"2":{"35":2}}],["偏移量",{"2":{"35":2,"37":2}}],["高阶偏导数值",{"2":{"35":1}}],["高阶偏导",{"2":{"35":2}}],["可愛くてごめん",{"2":{"164":1}}],["可直接从mbcp",{"2":{"39":1,"59":1}}],["可参考",{"2":{"38":1}}],["可参考函数式编程",{"2":{"38":1}}],["可为整数",{"2":{"35":2}}],["可导入",{"2":{"0":1,"1":1}}],["因此该函数的稳定性有待提升",{"2":{"35":2}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"35":2}}],["目标点",{"2":{"34":2}}],["warning",{"2":{"35":2}}],["慎用",{"2":{"35":2}}],["num",{"2":{"158":5,"161":5}}],["numpy",{"2":{"129":2}}],["numpy数组",{"2":{"129":2}}],["number=epsilon",{"2":{"35":1}}],["number",{"0":{"35":1,"62":1},"2":{"64":1}}],["ndarray`",{"2":{"129":1}}],["ndarray",{"0":{"129":1},"2":{"129":3}}],["neg",{"0":{"118":1,"119":1},"2":{"118":4,"119":4,"148":1}}],["negative",{"0":{"10":1},"2":{"10":1}}],["ne",{"0":{"116":1},"2":{"116":1}}],["np",{"0":{"129":2},"2":{"84":9,"129":4,"158":9,"161":9}}],["no",{"2":{"84":1}}],["normal",{"0":{"88":1,"89":2},"2":{"82":5,"84":4,"85":1,"86":2,"87":2,"88":1,"89":7,"90":3,"91":1,"92":1,"95":3}}],["normalize",{"0":{"128":1},"2":{"55":1,"128":1}}],["none",{"0":{"57":1,"93":1,"94":1},"2":{"57":4,"93":1,"94":1,"95":4}}],["not",{"2":{"45":1,"46":4,"57":1,"116":1,"118":1,"119":1}}],["nabla",{"2":{"37":1}}],["n元函数",{"2":{"35":2}}],["参数方程",{"2":{"49":2}}],["参数t",{"2":{"48":2}}],["参数",{"2":{"34":2,"35":1,"38":2}}],["|",{"0":{"34":1,"35":1,"45":1,"57":2,"82":1,"83":1,"93":1,"94":1,"144":2},"2":{"34":1,"35":1,"45":3,"57":6,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"77":1,"82":3,"83":3,"93":1,"94":1,"95":6,"104":2,"135":4,"140":4,"144":4}}],["曲线方程",{"2":{"33":2,"39":1,"59":1}}],["z轴单位向量",{"2":{"152":1}}],["z轴分量",{"2":{"122":2}}],["z2``",{"2":{"125":1}}],["z1``",{"2":{"125":1}}],["zero",{"0":{"149":1},"2":{"91":1,"127":1}}],["z系数",{"2":{"80":2}}],["zhihu",{"2":{"38":1}}],["zhuanlan",{"2":{"38":1}}],["z0",{"2":{"37":2}}],["zip",{"2":{"34":1}}],["z函数",{"2":{"33":2}}],["z",{"0":{"33":1,"100":1,"122":1,"152":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":4,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"114":2,"122":5,"123":2,"125":4,"128":1,"129":1,"130":1,"135":4,"136":2,"137":2,"140":4,"141":2,"144":3,"146":2,"147":1,"148":1,"158":2,"161":2}}],["y轴单位向量",{"2":{"151":1}}],["y轴分量",{"2":{"122":2}}],["y2",{"2":{"125":1}}],["y1",{"2":{"125":1}}],["y系数",{"2":{"80":2}}],["y0",{"2":{"37":2}}],["y函数",{"2":{"33":2}}],["y",{"0":{"33":1,"100":1,"117":1,"122":1,"151":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":4,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"114":2,"117":4,"122":5,"123":2,"125":4,"128":1,"129":1,"130":1,"135":4,"136":2,"137":2,"140":4,"141":2,"144":3,"146":2,"147":1,"148":1,"158":2,"161":2}}],["x轴单位向量",{"2":{"150":1}}],["x轴分量",{"2":{"122":2}}],["x3c",{"2":{"101":3,"114":1,"117":1,"118":1,"119":1,"123":3,"126":1}}],["x26",{"2":{"95":1}}],["x系数",{"2":{"80":2}}],["x0",{"2":{"37":2}}],["x函数",{"2":{"33":2}}],["x",{"0":{"33":1,"100":1,"111":1,"117":1,"118":1,"119":1,"122":1,"150":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":2,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"111":4,"114":2,"117":4,"118":5,"119":8,"122":5,"123":2,"125":4,"128":1,"129":1,"130":1,"135":4,"136":2,"137":2,"140":4,"141":2,"144":3,"146":2,"147":1,"148":1,"158":2,"161":2}}],["约等于判定误差",{"2":{"30":1}}],["精度误差",{"2":{"29":1}}],["06",{"0":{"50":1},"2":{"50":1}}],["001",{"2":{"30":1}}],["0001",{"2":{"29":1}}],["0",{"0":{"117":2},"2":{"28":1,"29":1,"30":1,"34":3,"37":6,"45":2,"54":1,"55":8,"80":2,"81":3,"83":2,"84":9,"85":1,"95":1,"117":1,"118":2,"119":4,"149":3,"150":2,"151":2,"152":2,"158":2,"161":2}}],["欧拉常数",{"2":{"28":1}}],["5772156649015329",{"2":{"28":1}}],["5",{"2":{"27":1,"83":1}}],["黄金分割比",{"2":{"27":1}}],["デフォルト",{"2":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":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,"76":1,"77":1,"149":1,"150":1,"151":1,"152":1}}],["π",{"2":{"25":1}}],["to",{"2":{"166":1}}],["theta",{"2":{"158":3,"161":3}}],["the",{"2":{"85":2,"166":1}}],["three",{"0":{"90":1},"2":{"90":1}}],["threevarsfunc",{"0":{"74":1}}],["threearraysfunc",{"0":{"73":1},"2":{"74":1}}],["threesinglevarsfunc",{"0":{"37":1,"72":1},"2":{"37":3,"74":1}}],["twovarsfunc",{"0":{"71":1}}],["twoarraysfunc",{"0":{"70":1},"2":{"71":1}}],["twosinglevarsfunc",{"0":{"69":1},"2":{"71":1}}],["two",{"0":{"56":1,"91":1},"2":{"56":1,"91":1}}],["tip",{"2":{"37":2,"38":2}}],["typevar",{"2":{"63":1,"64":1}}],["typealias",{"2":{"61":1,"62":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1}}],["typeerror",{"2":{"45":3,"46":1,"82":3,"83":3,"95":3,"115":1,"135":1,"140":1,"141":1,"144":1}}],["type",{"0":{"115":1},"2":{"35":1,"45":1,"82":2,"83":2,"95":2,"114":2,"115":4,"135":2,"140":2,"141":2,"144":2}}],["typing",{"0":{"60":1},"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,"76":1,"77":1},"2":{"33":3,"35":1,"37":1,"38":2,"48":1,"49":1,"113":1}}],["tuple",{"0":{"34":1,"35":1,"49":1},"2":{"34":2,"35":2,"49":3}}],["t",{"0":{"34":1,"48":1},"2":{"34":10,"48":4,"49":6,"85":4}}],["truediv",{"2":{"21":1,"22":1,"23":1,"147":1}}],["tan",{"0":{"13":1},"2":{"13":2,"14":1}}],["operand",{"2":{"95":1,"135":1,"140":1,"141":1,"144":1}}],["only",{"0":{"118":1,"119":1},"2":{"118":4,"119":4}}],["on",{"0":{"53":1},"2":{"53":1}}],["one",{"2":{"164":1}}],["onearrayfunc",{"0":{"67":1},"2":{"68":1}}],["onesinglevarfunc",{"0":{"49":3,"66":1},"2":{"49":7,"68":1}}],["onevarfunc",{"0":{"33":3,"38":1,"68":1},"2":{"33":9,"38":1}}],["or",{"2":{"57":1,"85":1}}],["org",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["order",{"2":{"35":2}}],["overload",{"2":{"20":1,"21":2,"22":1,"92":1,"93":2,"94":1,"101":1,"102":2,"103":1,"132":1,"133":2,"134":1,"137":1,"138":2,"139":1,"141":1,"142":2,"143":1}}],["other",{"0":{"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"43":1,"44":1,"45":1,"46":1,"50":1,"51":1,"52":1,"54":1,"57":1,"58":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"93":1,"94":1,"95":1,"96":1,"97":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"114":1,"115":1,"116":1,"123":1,"124":1,"125":1,"126":1,"127":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},"2":{"17":2,"18":2,"19":2,"20":2,"21":1,"22":1,"23":4,"43":5,"44":4,"45":13,"46":9,"50":4,"51":4,"52":5,"54":5,"57":7,"58":5,"81":15,"82":9,"83":9,"84":17,"85":11,"87":4,"93":1,"94":1,"95":10,"96":4,"97":2,"101":6,"102":1,"103":1,"104":6,"105":6,"106":6,"114":9,"115":2,"116":2,"123":6,"124":5,"125":9,"126":4,"127":4,"133":1,"134":1,"135":12,"136":6,"137":6,"138":1,"139":1,"140":12,"141":8,"142":1,"143":1,"144":12,"145":2,"146":6,"147":4}}],["ep",{"2":{"164":1}}],["epsilon",{"0":{"29":1,"35":2,"37":2,"43":1,"50":1,"101":1,"117":1,"123":1,"126":1},"2":{"35":7,"37":12,"43":5,"50":4,"101":6,"117":4,"123":6,"126":4}}],["error",{"0":{"115":1},"2":{"114":2,"115":1}}],["exceptions",{"2":{"45":1,"46":1,"82":1,"83":1,"84":1,"85":1,"95":1}}],["examples",{"2":{"38":1}}],["exp",{"2":{"26":1}}],["elif",{"2":{"35":1,"45":3,"57":1,"81":2,"82":1,"83":1,"84":2,"95":1,"114":1,"118":1,"119":1,"135":1,"140":1,"144":1}}],["else",{"2":{"5":1,"34":1,"35":1,"45":2,"57":1,"81":1,"82":1,"83":1,"95":1,"114":2,"118":2,"119":2,"135":1,"140":1,"141":1,"144":1}}],["e",{"0":{"26":1},"2":{"26":1}}],["equations",{"0":{"49":1},"2":{"49":1,"85":1}}],["equation",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1}}],["eq",{"0":{"18":1,"58":1,"96":1,"105":1,"114":1,"136":1},"2":{"18":1,"58":1,"96":1,"105":1,"114":1,"116":1,"136":1}}],["+1",{"2":{"119":2}}],["+=",{"2":{"35":1}}],["+",{"0":{"17":1,"102":1,"103":1,"104":1,"133":1,"134":1,"135":1,"137":1},"2":{"17":1,"27":1,"37":3,"38":4,"46":1,"48":1,"49":3,"80":6,"83":5,"85":5,"104":7,"109":3,"118":3,"119":3,"130":2,"135":11,"137":5,"146":2,"158":1,"161":1}}],["1e",{"0":{"50":1}}],["1",{"2":{"14":1,"15":1,"16":1,"26":1,"27":1,"34":1,"38":2,"91":1,"119":6,"150":1,"151":1,"152":1,"158":4,"161":4}}],["180",{"2":{"5":1,"8":1}}],["正割值",{"2":{"15":4}}],["正切值",{"2":{"13":4}}],["正弦值",{"2":{"11":4}}],["余割值",{"2":{"16":4}}],["余切值",{"2":{"14":4}}],["余弦值",{"2":{"12":4}}],["余角",{"2":{"6":4}}],["最大值",{"2":{"111":2}}],["最大负角度",{"2":{"10":2}}],["最大负角",{"2":{"10":2}}],["最小值",{"2":{"111":2}}],["最小正角度",{"2":{"9":2}}],["最小正角",{"2":{"9":2}}],["弧度",{"2":{"8":2}}],["角度",{"2":{"8":2}}],["角度或弧度值",{"2":{"5":2}}],["补角",{"2":{"7":4}}],["sphere",{"0":{"158":1,"161":1},"2":{"158":1,"161":1}}],["stop",{"2":{"164":1}}],["staticmethod",{"2":{"157":1,"158":1,"160":1,"161":1}}],["stable",{"2":{"129":1}}],["str",{"0":{"118":1,"119":1},"2":{"118":3,"119":3}}],["stdtypes",{"2":{"49":1}}],["s",{"2":{"95":1,"135":1,"140":1,"141":1,"144":1}}],["solve",{"2":{"84":3}}],["sign",{"0":{"118":1,"119":1},"2":{"118":1,"119":1}}],["simplify",{"0":{"55":1},"2":{"55":1}}],["singlevar",{"0":{"63":1},"2":{"63":1,"65":1,"66":2,"69":3,"72":4,"75":1}}],["sin",{"0":{"11":1},"2":{"11":2,"16":1,"158":3,"161":3}}],["sqrt",{"2":{"27":1,"130":1,"158":1,"161":1}}],["sub",{"2":{"19":1,"106":1,"138":1,"139":1,"140":1}}],["supplementary",{"0":{"7":1},"2":{"7":1}}],["segment",{"0":{"107":1},"1":{"108":1,"109":1}}],["segment3",{"0":{"108":1},"1":{"109":1},"2":{"39":1,"59":1}}],["sec",{"0":{"15":1},"2":{"15":1}}],["self",{"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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":1,"34":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,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"93":1,"94":1,"95":1,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"113":1,"114":1,"115":1,"116":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},"2":{"5":3,"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":1,"22":1,"23":3,"33":4,"34":7,"42":3,"43":4,"44":2,"45":13,"46":8,"47":3,"48":3,"49":7,"50":2,"51":2,"52":4,"53":3,"54":3,"55":8,"57":6,"58":4,"80":5,"81":16,"82":4,"83":8,"84":15,"85":9,"86":2,"87":2,"88":4,"93":1,"94":1,"95":5,"96":2,"97":2,"100":4,"101":4,"102":1,"103":1,"104":4,"105":4,"106":4,"109":15,"113":2,"114":9,"115":2,"116":2,"122":4,"123":4,"124":3,"125":7,"126":2,"127":2,"128":5,"129":4,"130":4,"131":3,"132":2,"133":1,"134":1,"135":7,"136":4,"137":4,"138":1,"139":1,"140":7,"141":4,"142":1,"143":1,"144":7,"145":2,"146":4,"147":4,"148":4}}],["255万个粒子",{"2":{"164":1}}],["2",{"2":{"6":1,"9":1,"10":1,"27":1,"35":1,"37":3,"38":2,"46":1,"83":3,"109":3,"130":3,"158":2,"161":2}}],["rmul",{"2":{"145":1}}],["rsub",{"2":{"141":1}}],["right",{"2":{"37":1}}],["reference",{"0":{"166":1},"2":{"129":1}}],["realnumber",{"0":{"48":1,"61":1,"113":1,"143":1,"145":1,"146":1,"147":1},"2":{"48":3,"62":1,"113":3,"143":1,"145":1,"146":1,"147":1}}],["result",{"2":{"35":4}}],["return",{"2":{"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,"23":2,"34":2,"35":4,"37":1,"38":4,"43":1,"44":1,"45":5,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":3,"58":1,"81":4,"82":2,"83":2,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"95":4,"96":1,"97":1,"101":1,"104":1,"105":1,"106":1,"111":1,"114":2,"116":1,"117":1,"118":3,"119":3,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"132":1,"135":2,"136":1,"137":1,"140":2,"141":1,"144":2,"145":1,"146":1,"147":1,"148":1,"158":1,"161":1}}],["returns",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"34":1,"35":2,"37":1,"38":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,"58":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,"95":1,"96":1,"101":1,"104":1,"105":1,"106":1,"111":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"148":1,"158":1,"161":1}}],["range",{"2":{"158":2,"161":2}}],["rand",{"0":{"97":1},"2":{"97":1}}],["radius",{"0":{"158":1,"161":1},"2":{"158":7,"161":7}}],["radian=true",{"2":{"6":1,"7":1,"10":1,"17":1,"19":1,"20":1,"23":1,"82":1,"124":1}}],["radian",{"0":{"5":1},"2":{"5":6,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":2,"18":2,"19":2,"20":1,"23":3}}],["radd",{"2":{"137":1}}],["raise",{"0":{"115":1},"2":{"35":1,"45":1,"46":2,"82":1,"83":1,"84":1,"85":1,"95":1,"114":2,"115":2,"135":1,"140":1,"141":1,"144":1}}],["raises",{"2":{"35":1,"45":1,"46":1,"82":1,"83":1,"84":1,"85":1,"95":1}}],["ratio",{"0":{"27":1}}],[">",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"21":1,"22":1,"34":1,"35":5,"37":3,"38":6,"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,"58":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,"96":1,"97":1,"101":1,"102":1,"103":1,"104":2,"106":3,"111":1,"117":1,"118":2,"119":5,"123":1,"124":1,"125":2,"126":1,"127":1,"129":1,"130":1,"131":1,"133":1,"134":1,"135":2,"137":2,"138":1,"139":1,"140":2,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1}}],["戻り値",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"34":1,"35":1,"37":1,"38":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,"58":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,"95":1,"96":1,"101":1,"104":1,"105":1,"106":1,"111":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"148":1,"158":1,"161":1}}],["geometricmodels",{"0":{"157":1,"160":1},"1":{"158":1,"161":1}}],["generated",{"2":{"129":1}}],["get",{"0":{"35":1,"48":1,"49":1},"2":{"35":2,"48":1,"49":1,"85":1,"91":1}}],["gradient",{"0":{"37":1},"2":{"37":1}}],["gamma",{"0":{"28":1}}],["golden",{"0":{"27":1}}],["gt",{"0":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"21":1,"22":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"101":1,"102":1,"103":1,"106":1,"111":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"133":1,"134":1,"137":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1},"2":{"104":2,"106":2,"119":3,"125":1,"135":2,"137":1,"140":2,"141":1}}],["githubで表示",{"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,"20":1,"21":1,"22":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["can",{"2":{"164":1}}],["cal",{"0":{"37":1,"44":1,"45":1,"46":1,"47":1,"82":1,"83":1,"84":1,"85":1,"86":1,"124":1},"2":{"37":1,"44":2,"45":1,"46":1,"47":1,"57":1,"82":2,"83":1,"84":1,"85":1,"86":1,"95":2,"97":1,"124":1}}],["callable",{"2":{"66":1,"67":1,"69":1,"70":1,"72":1,"73":1,"75":1,"76":1}}],["call",{"0":{"34":1},"2":{"34":1}}],["cz",{"2":{"80":2}}],["clamp",{"0":{"111":1},"2":{"111":1,"158":1,"161":1}}],["classmethod",{"2":{"55":1,"56":1,"88":1,"89":2,"90":2,"91":2,"92":1}}],["class",{"0":{"3":1,"4":1,"32":1,"41":1,"79":1,"99":1,"108":1,"112":1,"121":1,"157":1,"160":1},"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,"23":1,"33":1,"34":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"113":1,"114":1,"115":1,"116":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,"158":1,"161":1},"2":{"37":1,"42":2,"43":1,"44":2,"45":2,"46":2,"47":2,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":3,"57":3,"58":1,"81":1,"82":3,"83":2,"84":2,"85":2,"86":2,"87":1,"88":1,"89":3,"90":1,"91":1,"92":2,"95":4,"96":1,"101":1,"104":3,"105":1,"106":3,"109":2,"123":1,"124":2,"125":2,"126":1,"127":1,"131":1,"135":4,"136":1,"137":2,"140":4,"141":2,"144":2,"146":1,"148":1}}],["cls",{"0":{"56":1,"89":1,"90":1,"91":1,"92":1},"2":{"56":2,"89":2,"90":2,"91":2,"92":2}}],["cross",{"0":{"125":1},"2":{"45":4,"46":3,"47":1,"54":1,"84":1,"90":1,"91":1,"125":3,"126":1,"127":1}}],["c",{"0":{"80":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":6,"85":2,"88":1,"89":3}}],["curried",{"2":{"38":6}}],["currying",{"2":{"38":2}}],["curry",{"0":{"38":1},"2":{"38":3}}],["curveequation",{"0":{"32":1},"1":{"33":1,"34":1},"2":{"39":1,"59":1}}],["csc",{"0":{"16":1},"2":{"16":1}}],["coincident",{"2":{"85":1}}],["collinear",{"0":{"52":1},"2":{"52":1,"57":1}}],["coplanar",{"0":{"54":1},"2":{"45":1,"46":2,"54":1,"57":1}}],["complex",{"2":{"62":1}}],["complementary",{"0":{"6":1},"2":{"6":1,"82":1}}],["com",{"2":{"38":1}}],["constants",{"2":{"57":1,"95":1}}],["const",{"0":{"24":1},"1":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":1}}],["cot",{"0":{"14":1},"2":{"14":1}}],["cos",{"0":{"12":1},"2":{"12":2,"15":1,"158":2,"161":2}}],["all",{"2":{"101":1,"114":1,"123":1}}],["acos",{"2":{"82":1,"124":1}}],["axis",{"0":{"150":1,"151":1,"152":1}}],["ax",{"2":{"80":2}}],["arccos",{"2":{"158":1,"161":1}}],["array",{"0":{"129":1},"2":{"84":6,"129":2,"158":6,"161":6}}],["arrayvar",{"0":{"64":1},"2":{"64":1,"65":1,"67":2,"70":3,"73":4,"76":1}}],["area",{"2":{"158":2,"161":2}}],["are",{"2":{"46":2,"84":1,"85":1}}],["args2",{"2":{"38":2}}],["args",{"0":{"38":1},"2":{"5":1,"33":1,"34":1,"35":14,"37":1,"38":5,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"90":1,"91":1,"92":1,"95":1,"96":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"117":1,"118":1,"119":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"158":1,"161":1}}],["abs",{"0":{"132":1},"2":{"45":1,"83":1,"101":3,"114":1,"117":1,"119":1,"123":3,"132":1}}],["a",{"0":{"80":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":12,"85":2,"88":1,"89":3}}],["aaa",{"2":{"36":1}}],["approx",{"0":{"30":1,"43":2,"50":1,"81":1,"101":2,"112":1,"117":2,"123":2,"126":2},"1":{"113":1,"114":1,"115":1,"116":1},"2":{"18":1,"43":3,"50":2,"81":10,"96":1,"101":1,"105":3,"114":4,"117":1,"123":1,"126":1,"127":1,"136":3}}],["add",{"2":{"17":1,"38":8,"102":1,"103":1,"104":1,"133":1,"134":1,"135":1}}],["and",{"0":{"57":1,"89":1,"92":1,"93":1,"94":1,"95":1},"2":{"43":1,"46":2,"52":1,"57":1,"58":1,"81":6,"84":4,"85":1,"86":1,"89":1,"90":1,"91":1,"92":2,"93":1,"94":1,"95":2,"105":2,"115":1,"135":1,"136":2,"140":1,"141":1,"144":1}}],["anyangle",{"0":{"4":1,"6":1,"7":1,"9":1,"10":1,"17":2,"19":2,"20":1,"21":1,"22":1,"44":1,"82":1,"124":1},"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,"23":1},"2":{"6":2,"7":2,"9":2,"10":2,"17":3,"19":3,"20":2,"21":1,"22":1,"23":2,"39":1,"44":3,"59":1,"82":4,"124":4}}],["angle",{"0":{"2":1,"3":1,"4":1,"44":1,"82":1,"124":1},"1":{"3":1,"4":1,"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,"23":2},"2":{"44":3,"82":3,"124":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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["默认为否",{"2":{"5":2}}],["引数",{"2":{"5":1,"33":1,"34":1,"35":1,"37":1,"38":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"90":1,"91":1,"92":1,"95":1,"96":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"117":1,"118":1,"119":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"158":1,"161":1}}],["任意角度",{"2":{"5":2,"39":1,"59":1}}],["==",{"2":{"34":1,"45":1,"54":1,"55":3,"85":1,"91":1,"95":1}}],["=",{"0":{"5":1,"17":1,"19":1,"20":1,"21":1,"22":1,"35":1,"37":1,"43":1,"50":1,"101":1,"102":1,"103":1,"106":1,"117":2,"118":1,"119":1,"123":1,"126":1,"133":1,"134":1,"137":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1},"2":{"5":2,"33":3,"35":5,"37":5,"38":2,"42":2,"55":3,"56":1,"80":6,"81":6,"84":17,"85":2,"89":2,"90":3,"91":3,"100":3,"109":5,"113":1,"122":3,"128":4,"158":7,"161":7}}],["improve",{"2":{"166":1}}],["import",{"2":{"106":1}}],["i",{"2":{"158":4,"161":4,"164":1}}],["invalid",{"2":{"35":1}}],["intersect",{"2":{"46":2}}],["intersection",{"0":{"46":1,"84":1,"85":1},"2":{"46":1,"57":1,"84":2,"85":1,"95":2,"97":1}}],["int",{"0":{"35":2,"144":1},"2":{"35":3,"38":8,"61":1,"114":2,"144":2,"158":1,"161":1}}],["in",{"2":{"34":1,"35":1,"158":2,"161":2}}],["init",{"0":{"5":1,"33":1,"42":1,"80":1,"100":1,"109":1,"113":1,"122":1},"2":{"5":1,"33":1,"42":1,"80":1,"100":1,"109":1,"113":1,"122":1}}],["if",{"2":{"5":1,"23":1,"34":1,"35":1,"45":2,"46":2,"55":3,"57":1,"81":1,"82":1,"83":1,"84":2,"85":1,"91":1,"95":3,"114":3,"118":2,"119":2,"135":1,"140":1,"141":1,"144":1,"164":1}}],["isinstance",{"2":{"23":1,"35":2,"45":2,"82":2,"83":2,"95":2,"114":4,"135":2,"140":2,"141":1,"144":2}}],["is",{"0":{"5":1,"50":1,"51":1,"52":1,"53":1,"54":1,"87":1,"126":1,"127":1},"2":{"5":4,"6":1,"7":1,"10":1,"17":1,"19":1,"20":1,"23":1,"43":2,"45":2,"46":2,"50":2,"51":2,"52":3,"53":2,"54":1,"57":3,"58":2,"82":1,"84":1,"87":2,"95":1,"124":1,"126":1,"127":1}}],["from",{"0":{"56":1,"89":1,"90":1,"91":1,"92":1},"2":{"56":1,"86":1,"89":1,"90":2,"91":2,"92":2,"106":1,"164":1}}],["frac",{"2":{"37":3}}],["f",{"2":{"37":4,"82":1,"83":1,"95":1,"115":1,"119":3,"135":1,"140":1,"141":1,"144":1}}],["format",{"0":{"119":1},"2":{"119":1}}],["for",{"2":{"34":1,"35":1,"95":1,"135":1,"140":1,"141":1,"144":1,"158":2,"161":2}}],["false",{"0":{"5":1,"118":1,"119":1},"2":{"81":1}}],["float=0",{"2":{"117":1}}],["float=1e",{"2":{"50":1}}],["float=approx",{"2":{"43":1,"101":1,"117":1,"123":1,"126":1}}],["float=epsilon",{"2":{"37":1}}],["float",{"0":{"5":1,"8":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"20":1,"21":1,"22":1,"37":1,"43":1,"45":1,"50":1,"80":4,"83":1,"100":3,"101":1,"111":4,"117":3,"118":1,"119":1,"122":3,"123":1,"126":1,"130":1,"144":1,"158":2,"161":2},"2":{"5":1,"8":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"20":1,"21":1,"22":1,"43":2,"45":3,"50":2,"61":1,"80":9,"83":3,"100":7,"101":2,"111":9,"114":2,"117":5,"118":3,"119":3,"122":7,"123":2,"126":2,"130":3,"144":4,"146":2,"158":2,"161":2}}],["functions",{"2":{"43":2,"45":1,"50":2,"51":1,"52":1,"53":1,"54":1,"58":1,"80":1,"81":1,"83":1,"87":1,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["function",{"0":{"36":1},"1":{"37":1,"38":1}}],["func",{"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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":4,"34":1,"35":3,"37":2,"38":2,"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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1},"2":{"33":15,"34":6,"35":16,"37":9,"38":6}}],["预设",{"2":{"0":1,"1":1}}],["phi",{"2":{"158":5,"161":5}}],["p3",{"0":{"90":1},"2":{"90":4}}],["p2",{"0":{"56":1,"90":1,"109":1},"2":{"56":4,"58":2,"90":4,"109":9}}],["p1",{"0":{"56":1,"90":1,"109":1},"2":{"56":5,"58":2,"90":6,"109":9}}],["perpendicular",{"0":{"47":1},"2":{"47":1}}],["parametric",{"0":{"49":1},"2":{"49":1,"85":1}}],["parallel",{"0":{"50":1,"51":1,"86":1,"87":1,"126":1,"127":1},"2":{"43":2,"45":1,"46":2,"50":2,"51":2,"52":2,"53":1,"57":1,"58":2,"84":2,"85":1,"86":1,"87":2,"95":1,"126":1,"127":1}}],["partial",{"0":{"35":1},"2":{"35":6,"37":6}}],["particle",{"0":{"153":1,"154":1},"2":{"0":1,"1":1}}],["planes",{"2":{"84":1}}],["plane",{"0":{"78":1},"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,"96":1,"97":1},"2":{"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"95":1,"96":1}}],["plane3",{"0":{"79":1,"81":1,"82":1,"83":1,"84":1,"86":2,"87":1,"89":1,"90":1,"91":1,"92":1,"94":1},"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,"96":1,"97":1},"2":{"39":1,"59":1,"81":3,"82":4,"83":4,"84":3,"86":5,"87":3,"89":3,"90":1,"91":1,"92":1,"94":1,"95":4,"96":2,"114":1}}],["plus",{"2":{"35":3}}],["p",{"0":{"37":1},"2":{"37":21,"38":1,"104":10,"106":8,"135":4,"137":4,"140":4,"141":4}}],["points",{"0":{"56":1,"90":1},"2":{"56":1,"90":1}}],["point",{"0":{"42":1,"47":1,"48":1,"53":2,"86":1,"89":2,"92":2,"98":1},"1":{"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1},"2":{"37":1,"42":6,"43":2,"45":6,"46":4,"47":7,"48":3,"49":3,"52":2,"53":7,"54":2,"55":3,"56":2,"57":1,"58":2,"83":1,"85":4,"86":6,"89":8,"90":2,"91":6,"92":7,"95":1,"101":1,"104":2,"105":1,"106":1,"109":2,"135":2,"137":2,"140":2,"141":2}}],["point3",{"0":{"34":2,"37":1,"42":1,"45":1,"46":1,"47":1,"48":1,"53":1,"56":2,"57":1,"83":1,"85":2,"86":1,"89":1,"90":3,"92":1,"93":1,"97":1,"99":1,"101":1,"102":1,"103":2,"106":1,"109":2,"134":2,"137":2,"139":2,"141":1},"1":{"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1},"2":{"34":4,"37":3,"39":1,"42":3,"45":4,"46":3,"47":3,"48":3,"53":3,"56":6,"57":3,"59":1,"83":4,"84":1,"85":5,"86":3,"89":3,"90":7,"92":3,"93":1,"95":3,"97":2,"101":3,"102":1,"103":2,"104":5,"105":2,"106":3,"109":7,"114":1,"134":2,"135":6,"137":7,"139":2,"140":6,"141":7,"158":3,"161":3}}],["positive",{"0":{"9":1},"2":{"6":1,"7":1,"9":1}}],["python",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"21":1,"22":1,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":2,"96":1,"100":1,"101":2,"102":1,"103":1,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":2,"131":1,"133":1,"134":1,"136":1,"138":1,"139":1,"142":1,"143":1,"144":1,"146":1,"158":1,"161":1}}],["pythondef",{"2":{"5":1,"17":1,"18":1,"19":1,"20":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":2,"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,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"95":1,"96":1,"97":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"145":1,"146":1,"147":1,"148":1}}],["property",{"2":{"5":1,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":1,"87":1,"88":1,"128":1,"129":2,"130":2,"131":1}}],["presets",{"0":{"155":1,"156":1,"159":1,"162":1},"1":{"157":1,"158":1,"160":1,"161":1},"2":{"0":1,"1":1}}],["pi",{"0":{"25":1},"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"25":1,"158":2,"161":2}}],["粒子生成工具",{"2":{"0":1,"1":1}}],["mc特效红石音乐",{"2":{"164":1}}],["model",{"0":{"156":1,"159":1},"1":{"157":1,"158":1,"160":1,"161":1}}],["midpoint",{"2":{"109":1}}],["minecraft",{"2":{"164":1}}],["min",{"0":{"111":1},"2":{"111":5}}],["minus",{"2":{"35":3}}],["minimum",{"0":{"9":1},"2":{"6":1,"7":1,"9":1}}],["multiarraysfunc",{"0":{"76":1},"2":{"77":1}}],["multisinglevarsfunc",{"0":{"75":1},"2":{"77":1}}],["multivarsfunc",{"0":{"35":2,"38":1,"77":1},"2":{"35":4,"38":3}}],["mul",{"2":{"20":1,"142":1,"143":1,"144":1,"145":1}}],["matmul",{"2":{"146":1}}],["math导入使用",{"2":{"39":1,"59":1}}],["math",{"0":{"2":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":2,"78":1,"98":1,"107":1,"110":1,"120":1},"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,"23":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":1,"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,"76":2,"77":2,"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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1},"2":{"0":1,"1":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"25":1,"26":1,"27":1,"33":3,"35":1,"37":1,"38":2,"48":1,"49":1,"82":1,"113":1,"124":1,"130":1}}],["max",{"0":{"111":1},"2":{"111":5}}],["maximum",{"0":{"10":1},"2":{"10":1}}],["mp",{"0":{"2":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":2,"78":1,"98":1,"107":1,"110":1,"120":1},"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,"23":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":1,"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,"76":2,"77":2,"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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1},"2":{"0":1,"1":1,"33":3,"35":1,"37":1,"38":2,"39":1,"48":1,"49":1,"59":1,"113":1}}],["mbcp",{"0":{"0":1,"1":1,"2":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":1,"78":1,"98":1,"107":1,"110":1,"120":1,"153":1,"154":1,"155":1,"156":1,"159":1,"162":1},"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,"23":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"76":1,"77":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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1,"157":1,"158":1,"160":1,"161":1},"2":{"0":3,"1":3}}],["提供了一些工具",{"2":{"0":1,"1":1}}],["説明",{"2":{"0":1,"1":1,"2":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,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":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,"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,"76":1,"77":1,"78":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,"95":1,"96":1,"98":1,"100":1,"101":1,"104":1,"105":1,"106":1,"107":1,"109":1,"110":1,"111":1,"113":1,"117":1,"118":1,"119":1,"120":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"130":1,"131":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"158":1,"159":1,"161":1,"162":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexja.dS4NVQXm.js b/assets/chunks/@localSearchIndexja.dS4NVQXm.js new file mode 100644 index 0000000..3c530c6 --- /dev/null +++ b/assets/chunks/@localSearchIndexja.dS4NVQXm.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":[1,1,12],"1":[4,1,2],"2":[2,4,1],"3":[4,4,1],"4":[11,8,25],"5":[5,8,24],"6":[5,8,23],"7":[5,8,20],"8":[6,8,21],"9":[6,8,23],"10":[5,8,18],"11":[5,8,18],"12":[5,8,18],"13":[5,8,20],"14":[5,8,20],"15":[5,8,20],"16":[7,8,15],"17":[5,8,11],"18":[6,8,14],"19":[7,8,16],"20":[7,8,13],"21":[7,8,13],"22":[3,8,15],"23":[4,1,2],"24":[2,4,7],"25":[2,4,8],"26":[3,4,10],"27":[2,4,6],"28":[2,4,6],"29":[2,4,6],"30":[4,1,2],"31":[2,4,1],"32":[9,6,26],"33":[10,6,35],"34":[14,4,74],"35":[4,1,2],"36":[13,4,69],"37":[7,4,63],"38":[3,1,20],"39":[4,1,2],"40":[2,4,1],"41":[8,6,25],"42":[11,6,43],"43":[8,6,28],"44":[10,6,63],"45":[8,6,60],"46":[8,6,29],"47":[8,6,35],"48":[9,6,42],"49":[14,6,43],"50":[8,6,36],"51":[8,6,39],"52":[8,6,36],"53":[8,6,42],"54":[4,6,27],"55":[10,6,36],"56":[9,6,52],"57":[6,6,44],"58":[4,1,2],"59":[2,4,9],"60":[2,4,9],"61":[2,4,7],"62":[2,4,8],"63":[2,4,9],"64":[2,4,8],"65":[2,4,8],"66":[2,4,9],"67":[2,4,8],"68":[2,4,8],"69":[2,4,9],"70":[2,4,8],"71":[2,4,8],"72":[2,4,9],"73":[2,4,8],"74":[2,4,8],"75":[2,4,9],"76":[4,1,2],"77":[2,4,1],"78":[9,6,36],"79":[7,6,45],"80":[10,6,62],"81":[10,6,66],"82":[9,6,71],"83":[9,6,69],"84":[9,6,30],"85":[8,6,37],"86":[5,6,25],"87":[10,6,45],"88":[11,6,39],"89":[10,6,44],"90":[10,6,35],"91":[9,6,15],"92":[9,6,15],"93":[5,6,70],"94":[6,6,35],"95":[7,6,15],"96":[4,1,2],"97":[2,4,1],"98":[8,6,26],"99":[11,6,45],"100":[8,6,13],"101":[7,6,12],"102":[4,6,34],"103":[5,6,37],"104":[7,6,36],"105":[4,1,2],"106":[2,4,1],"107":[7,6,32],"108":[4,1,2],"109":[7,4,31],"110":[2,4,1],"111":[6,6,20],"112":[5,6,31],"113":[7,6,15],"114":[5,6,11],"115":[11,4,40],"116":[11,4,43],"117":[12,4,49],"118":[4,1,3],"119":[2,4,1],"120":[8,6,29],"121":[11,6,44],"122":[8,6,31],"123":[6,6,43],"124":[13,6,43],"125":[8,6,37],"126":[4,6,17],"127":[6,6,31],"128":[5,6,33],"129":[5,6,21],"130":[4,6,10],"131":[7,6,12],"132":[7,6,12],"133":[4,6,46],"134":[5,6,37],"135":[7,6,31],"136":[6,6,12],"137":[6,6,12],"138":[3,6,45],"139":[4,6,42],"140":[6,6,12],"141":[7,6,13],"142":[9,6,55],"143":[7,6,13],"144":[7,6,38],"145":[7,6,15],"146":[5,6,21],"147":[3,4,7],"148":[3,4,8],"149":[3,4,8],"150":[3,4,8],"151":[2,1,2],"152":[2,1,2],"153":[3,1,2],"154":[2,3,2],"155":[6,5,48],"156":[1,1,1],"157":[1,1,25],"158":[1,1,2],"159":[1,1,7]},"averageFieldLength":[5.643749999999999,5.050000000000002,22.806250000000006],"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}}],["ベストプラクティス",{"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":{"61":1}}],["模",{"2":{"128":2}}],["向量的模",{"2":{"128":2}}],["向量积",{"2":{"123":2}}],["返回numpy数组",{"2":{"127":1}}],["返回如下行列式的结果",{"2":{"123":1}}],["将向量归一化",{"2":{"126":2}}],["j",{"2":{"123":1}}],["其余结果的模为平行四边形的面积",{"2":{"123":2}}],["叉乘使用cross",{"2":{"142":2}}],["叉乘结果",{"2":{"123":2}}],["叉乘为0",{"2":{"123":2}}],["叉乘",{"2":{"123":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":{"115":2}}],["或整数元组",{"2":{"34":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}}],["k``",{"2":{"123":1}}],["k",{"2":{"79":12}}],["常数项",{"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":{"82":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":{"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}}],["则两向量平行",{"2":{"123":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":{"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}}],["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":{"34":1,"44":1,"45":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}}],["d",{"0":{"78":1},"2":{"78":7,"79":6,"81":1,"82":6,"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}}],["$处的梯度向量为",{"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":{"56":2}}],["计算两条直线的交点",{"2":{"45":2}}],["计算直线经过指定点p的垂线",{"2":{"46":2}}],["计算直线和直线或点之间的距离",{"2":{"44":2}}],["计算直线和直线之间的夹角",{"2":{"43":2}}],["计算三元函数在某点的梯度向量",{"2":{"36":2}}],["计算曲线上的点",{"2":{"33":2}}],["v3",{"2":{"123":2}}],["v2",{"2":{"57":2,"88":2,"89":4,"123":2}}],["v1",{"2":{"57":4,"88":2,"89":2,"123":2}}],["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":{"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}}],["``x2",{"2":{"123":1}}],["``x1",{"2":{"123":1}}],["``i",{"2":{"123":1}}],["```",{"2":{"37":1}}],["```python",{"2":{"37":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}}],["`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,"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}}],["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}}],["|",{"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}}],["z2``",{"2":{"123":1}}],["z1``",{"2":{"123":1}}],["zero",{"0":{"147":1},"2":{"89":1,"125":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":4,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"120":5,"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":2}}],["y2",{"2":{"123":1}}],["y1",{"2":{"123":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":4,"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":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":2}}],["x3c",{"2":{"99":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x26",{"2":{"93":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":4,"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":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}}],["约等于判定误差",{"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":9,"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,"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":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}}],["tip",{"2":{"36":2,"37":2}}],["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}}],["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,"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,"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":{"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,"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}}],["戻り値",{"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}}],["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}}],["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":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":3,"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}}],["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":{"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}}],["または",{"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":2}}],["引数",{"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}}],["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,"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":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,"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}}],["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/@localSearchIndexroot.7Fn6vDT0.js b/assets/chunks/@localSearchIndexroot.7Fn6vDT0.js deleted file mode 100644 index e2ec7c9..0000000 --- a/assets/chunks/@localSearchIndexroot.7Fn6vDT0.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":172,"nextId":172,"documentIds":{"0":"/api/api.html#mbcp","1":"/api/#mbcp","2":"/api/mp_math/angle.html#mbcp-mp-math-angle","3":"/api/mp_math/angle.html#class-angle","4":"/api/mp_math/angle.html#class-anyangle-angle","5":"/api/mp_math/angle.html#func-init-self-value-float-is-radian-bool-false","6":"/api/mp_math/angle.html#func-complementary-self-anyangle","7":"/api/mp_math/angle.html#func-supplementary-self-anyangle","8":"/api/mp_math/angle.html#func-degree-self-float","9":"/api/mp_math/angle.html#func-minimum-positive-self-anyangle","10":"/api/mp_math/angle.html#func-maximum-negative-self-anyangle","11":"/api/mp_math/angle.html#func-sin-self-float","12":"/api/mp_math/angle.html#func-cos-self-float","13":"/api/mp_math/angle.html#func-tan-self-float","14":"/api/mp_math/angle.html#func-cot-self-float","15":"/api/mp_math/angle.html#func-sec-self-float","16":"/api/mp_math/angle.html#func-csc-self-float","17":"/api/mp_math/angle.html#func-self-other-anyangle-anyangle","18":"/api/mp_math/angle.html#func-eq-self-other","19":"/api/mp_math/angle.html#func-self-other-anyangle-anyangle-1","20":"/api/mp_math/angle.html#func-self-other-float-anyangle","21":"/api/mp_math/angle.html#func-self-other-float-anyangle-1","22":"/api/mp_math/angle.html#func-self-other-anyangle-float","23":"/api/mp_math/angle.html#func-self-other","24":"/api/mp_math/const.html#mbcp-mp-math-const","25":"/api/mp_math/const.html#var-pi","26":"/api/mp_math/const.html#var-e","27":"/api/mp_math/const.html#var-golden-ratio","28":"/api/mp_math/const.html#var-gamma","29":"/api/mp_math/const.html#var-epsilon","30":"/api/mp_math/const.html#var-approx","31":"/api/mp_math/equation.html#mbcp-mp-math-equation","32":"/api/mp_math/equation.html#class-curveequation","33":"/api/mp_math/equation.html#func-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","34":"/api/mp_math/equation.html#func-call-self-t-var-point3-tuple-point3","35":"/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","36":"/api/mp_math/function.html#mbcp-mp-math-function","37":"/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","38":"/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","39":"/api/mp_math/#mbcp-mp-math","40":"/api/mp_math/line.html#mbcp-mp-math-line","41":"/api/mp_math/line.html#class-line3","42":"/api/mp_math/line.html#func-init-self-point-point3-direction-vector3","43":"/api/mp_math/line.html#func-approx-self-other-line3-epsilon-float-approx-bool","44":"/api/mp_math/line.html#func-cal-angle-self-other-line3-anyangle","45":"/api/mp_math/line.html#func-cal-distance-self-other-line3-point3-float","46":"/api/mp_math/line.html#func-cal-intersection-self-other-line3-point3","47":"/api/mp_math/line.html#func-cal-perpendicular-self-point-point3-line3","48":"/api/mp_math/line.html#func-get-point-self-t-realnumber-point3","49":"/api/mp_math/line.html#func-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","50":"/api/mp_math/line.html#func-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","51":"/api/mp_math/line.html#func-is-parallel-self-other-line3-bool","52":"/api/mp_math/line.html#func-is-collinear-self-other-line3-bool","53":"/api/mp_math/line.html#func-is-point-on-self-point-point3-bool","54":"/api/mp_math/line.html#func-is-coplanar-self-other-line3-bool","55":"/api/mp_math/line.html#func-simplify-self","56":"/api/mp_math/line.html#func-from-two-points-cls-p1-point3-p2-point3-line3","57":"/api/mp_math/line.html#func-and-self-other-line3-line3-point3-none","58":"/api/mp_math/line.html#func-eq-self-other-bool","59":"/api/mp_math/mp_math.html#mbcp-mp-math","60":"/api/mp_math/mp_math_typing.html#mbcp-mp-math-mp-math-typing","61":"/api/mp_math/mp_math_typing.html#var-realnumber","62":"/api/mp_math/mp_math_typing.html#var-number","63":"/api/mp_math/mp_math_typing.html#var-singlevar","64":"/api/mp_math/mp_math_typing.html#var-arrayvar","65":"/api/mp_math/mp_math_typing.html#var-var","66":"/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","67":"/api/mp_math/mp_math_typing.html#var-onearrayfunc","68":"/api/mp_math/mp_math_typing.html#var-onevarfunc","69":"/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","70":"/api/mp_math/mp_math_typing.html#var-twoarraysfunc","71":"/api/mp_math/mp_math_typing.html#var-twovarsfunc","72":"/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","73":"/api/mp_math/mp_math_typing.html#var-threearraysfunc","74":"/api/mp_math/mp_math_typing.html#var-threevarsfunc","75":"/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","76":"/api/mp_math/mp_math_typing.html#var-multiarraysfunc","77":"/api/mp_math/mp_math_typing.html#var-multivarsfunc","78":"/api/mp_math/plane.html#mbcp-mp-math-plane","79":"/api/mp_math/plane.html#class-plane3","80":"/api/mp_math/plane.html#func-init-self-a-float-b-float-c-float-d-float","81":"/api/mp_math/plane.html#func-approx-self-other-plane3-bool","82":"/api/mp_math/plane.html#func-cal-angle-self-other-line3-plane3-anyangle","83":"/api/mp_math/plane.html#func-cal-distance-self-other-plane3-point3-float","84":"/api/mp_math/plane.html#func-cal-intersection-line3-self-other-plane3-line3","85":"/api/mp_math/plane.html#func-cal-intersection-point3-self-other-line3-point3","86":"/api/mp_math/plane.html#func-cal-parallel-plane3-self-point-point3-plane3","87":"/api/mp_math/plane.html#func-is-parallel-self-other-plane3-bool","88":"/api/mp_math/plane.html#func-normal-self-vector3","89":"/api/mp_math/plane.html#func-from-point-and-normal-cls-point-point3-normal-vector3-plane3","90":"/api/mp_math/plane.html#func-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","91":"/api/mp_math/plane.html#func-from-two-lines-cls-l1-line3-l2-line3-plane3","92":"/api/mp_math/plane.html#func-from-point-and-line-cls-point-point3-line-line3-plane3","93":"/api/mp_math/plane.html#func-and-self-other-line3-point3-none","94":"/api/mp_math/plane.html#func-and-self-other-plane3-line3-none","95":"/api/mp_math/plane.html#func-and-self-other","96":"/api/mp_math/plane.html#func-eq-self-other-bool","97":"/api/mp_math/plane.html#func-rand-self-other-line3-point3","98":"/api/mp_math/point.html#mbcp-mp-math-point","99":"/api/mp_math/point.html#class-point3","100":"/api/mp_math/point.html#func-init-self-x-float-y-float-z-float","101":"/api/mp_math/point.html#func-approx-self-other-point3-epsilon-float-approx-bool","102":"/api/mp_math/point.html#func-self-other-vector3-point3","103":"/api/mp_math/point.html#func-self-other-point3-point3","104":"/api/mp_math/point.html#func-self-other","105":"/api/mp_math/point.html#func-eq-self-other","106":"/api/mp_math/point.html#func-self-other-point3-vector3","107":"/api/mp_math/segment.html#mbcp-mp-math-segment","108":"/api/mp_math/segment.html#class-segment3","109":"/api/mp_math/segment.html#func-init-self-p1-point3-p2-point3","110":"/api/mp_math/utils.html#mbcp-mp-math-utils","111":"/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","112":"/api/mp_math/utils.html#class-approx","113":"/api/mp_math/utils.html#func-init-self-value-realnumber","114":"/api/mp_math/utils.html#func-eq-self-other","115":"/api/mp_math/utils.html#func-raise-type-error-self-other","116":"/api/mp_math/utils.html#func-ne-self-other","117":"/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","118":"/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","119":"/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","120":"/api/mp_math/vector.html#mbcp-mp-math-vector","121":"/api/mp_math/vector.html#class-vector3","122":"/api/mp_math/vector.html#func-init-self-x-float-y-float-z-float","123":"/api/mp_math/vector.html#func-approx-self-other-vector3-epsilon-float-approx-bool","124":"/api/mp_math/vector.html#func-cal-angle-self-other-vector3-anyangle","125":"/api/mp_math/vector.html#func-cross-self-other-vector3-vector3","126":"/api/mp_math/vector.html#func-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","127":"/api/mp_math/vector.html#func-is-parallel-self-other-vector3-bool","128":"/api/mp_math/vector.html#func-normalize-self","129":"/api/mp_math/vector.html#func-np-array-self-np-ndarray","130":"/api/mp_math/vector.html#func-length-self-float","131":"/api/mp_math/vector.html#func-unit-self-vector3","132":"/api/mp_math/vector.html#func-abs-self","133":"/api/mp_math/vector.html#func-self-other-vector3-vector3","134":"/api/mp_math/vector.html#func-self-other-point3-point3","135":"/api/mp_math/vector.html#func-self-other","136":"/api/mp_math/vector.html#func-eq-self-other","137":"/api/mp_math/vector.html#func-self-other-point3-point3-1","138":"/api/mp_math/vector.html#func-self-other-vector3-vector3-1","139":"/api/mp_math/vector.html#func-self-other-point3-point3-2","140":"/api/mp_math/vector.html#func-self-other-1","141":"/api/mp_math/vector.html#func-self-other-point3","142":"/api/mp_math/vector.html#func-self-other-vector3-vector3-2","143":"/api/mp_math/vector.html#func-self-other-realnumber-vector3","144":"/api/mp_math/vector.html#func-self-other-int-float-vector3-vector3","145":"/api/mp_math/vector.html#func-self-other-realnumber-vector3-1","146":"/api/mp_math/vector.html#func-self-other-vector3-realnumber","147":"/api/mp_math/vector.html#func-self-other-realnumber-vector3-2","148":"/api/mp_math/vector.html#func-self-vector3","149":"/api/mp_math/vector.html#var-zero-vector3","150":"/api/mp_math/vector.html#var-x-axis","151":"/api/mp_math/vector.html#var-y-axis","152":"/api/mp_math/vector.html#var-z-axis","153":"/api/particle/#mbcp-particle","154":"/api/particle/particle.html#mbcp-particle","155":"/api/presets/#mbcp-presets","156":"/api/presets/model/#mbcp-presets-model","157":"/api/presets/model/#class-geometricmodels","158":"/api/presets/model/#func-sphere-radius-float-density-float","159":"/api/presets/model/model.html#mbcp-presets-model","160":"/api/presets/model/model.html#class-geometricmodels","161":"/api/presets/model/model.html#func-sphere-radius-float-density-float","162":"/api/presets/presets.html#mbcp-presets","163":"/demo/best-practice.html#最佳实践","164":"/demo/best-practice.html#作品","165":"/demo/#demo","166":"/guide/#开始不了一点","167":"/guide/#aaa","168":"/guide/#bbb","169":"/guide/#c","170":"/guide/#ddd","171":"/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,13],"1":[1,1,13],"2":[4,1,3],"3":[2,4,1],"4":[4,4,1],"5":[11,8,25],"6":[5,8,24],"7":[5,8,23],"8":[5,8,20],"9":[6,8,21],"10":[6,8,23],"11":[5,8,18],"12":[5,8,18],"13":[5,8,18],"14":[5,8,20],"15":[5,8,20],"16":[5,8,20],"17":[7,8,15],"18":[5,8,11],"19":[6,8,14],"20":[7,8,16],"21":[7,8,13],"22":[7,8,13],"23":[3,8,15],"24":[4,1,3],"25":[2,4,7],"26":[2,4,8],"27":[3,4,10],"28":[2,4,6],"29":[2,4,6],"30":[2,4,6],"31":[4,1,3],"32":[2,4,1],"33":[8,6,26],"34":[10,6,34],"35":[14,4,73],"36":[4,1,3],"37":[13,4,69],"38":[7,4,62],"39":[3,1,21],"40":[4,1,3],"41":[2,4,1],"42":[8,6,25],"43":[11,6,43],"44":[8,6,28],"45":[10,6,63],"46":[8,6,60],"47":[8,6,29],"48":[8,6,35],"49":[9,6,42],"50":[14,6,43],"51":[8,6,36],"52":[8,6,39],"53":[8,6,36],"54":[8,6,42],"55":[4,6,27],"56":[10,6,36],"57":[9,6,52],"58":[6,6,44],"59":[3,1,21],"60":[4,1,3],"61":[2,4,9],"62":[2,4,9],"63":[2,4,7],"64":[2,4,8],"65":[2,4,9],"66":[2,4,8],"67":[2,4,8],"68":[2,4,9],"69":[2,4,8],"70":[2,4,8],"71":[2,4,9],"72":[2,4,8],"73":[2,4,8],"74":[2,4,9],"75":[2,4,8],"76":[2,4,8],"77":[2,4,9],"78":[4,1,3],"79":[2,4,1],"80":[9,6,36],"81":[7,6,45],"82":[10,6,62],"83":[10,6,66],"84":[9,6,71],"85":[9,6,69],"86":[9,6,30],"87":[8,6,37],"88":[5,6,25],"89":[10,6,45],"90":[11,6,39],"91":[10,6,44],"92":[10,6,35],"93":[9,6,15],"94":[9,6,15],"95":[5,6,70],"96":[6,6,35],"97":[7,6,15],"98":[4,1,3],"99":[2,4,1],"100":[8,6,26],"101":[11,6,45],"102":[8,6,13],"103":[7,6,12],"104":[4,6,34],"105":[5,6,37],"106":[7,6,36],"107":[4,1,3],"108":[2,4,1],"109":[7,6,32],"110":[4,1,3],"111":[7,4,31],"112":[2,4,1],"113":[6,6,20],"114":[5,6,31],"115":[7,6,15],"116":[5,6,11],"117":[11,4,40],"118":[11,4,43],"119":[12,4,49],"120":[4,1,4],"121":[2,4,1],"122":[8,6,29],"123":[11,6,44],"124":[8,6,31],"125":[6,6,43],"126":[13,6,43],"127":[8,6,37],"128":[4,6,17],"129":[6,6,31],"130":[5,6,33],"131":[5,6,21],"132":[4,6,10],"133":[7,6,12],"134":[7,6,12],"135":[4,6,46],"136":[5,6,37],"137":[7,6,31],"138":[6,6,12],"139":[6,6,12],"140":[3,6,45],"141":[4,6,42],"142":[6,6,12],"143":[7,6,13],"144":[9,6,55],"145":[7,6,13],"146":[7,6,38],"147":[7,6,15],"148":[5,6,21],"149":[3,4,7],"150":[3,4,8],"151":[3,4,8],"152":[3,4,8],"153":[2,1,3],"154":[2,1,3],"155":[2,1,3],"156":[3,1,3],"157":[2,3,2],"158":[6,5,48],"159":[3,1,3],"160":[2,3,2],"161":[6,5,48],"162":[2,1,3],"163":[1,1,1],"164":[1,1,25],"165":[1,1,1],"166":[1,1,2],"167":[1,1,1],"168":[1,1,1],"169":[1,1,1],"170":[1,1,1],"171":[1,1,7]},"averageFieldLength":[5.383720930232556,4.802325581395347,21.860465116279087],"storedFields":{"0":{"title":"mbcp","titles":[]},"1":{"title":"mbcp","titles":[]},"2":{"title":"mbcp.mp_math.angle","titles":[]},"3":{"title":"class Angle","titles":["mbcp.mp_math.angle"]},"4":{"title":"class AnyAngle(Angle)","titles":["mbcp.mp_math.angle"]},"5":{"title":"func __init__(self, value: float, is_radian: bool = False)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"func complementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"func supplementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"func degree(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"func minimum_positive(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"func maximum_negative(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"func sin(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"func cos(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"func tan(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"func cot(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"func sec(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"func csc(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"func self + other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"func self - other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"func self * other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"func self / other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"func self / other: AnyAngle => float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"func self / other","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"24":{"title":"mbcp.mp_math.const","titles":[]},"25":{"title":"var PI","titles":["mbcp.mp_math.const"]},"26":{"title":"var E","titles":["mbcp.mp_math.const"]},"27":{"title":"var GOLDEN_RATIO","titles":["mbcp.mp_math.const"]},"28":{"title":"var GAMMA","titles":["mbcp.mp_math.const"]},"29":{"title":"var EPSILON","titles":["mbcp.mp_math.const"]},"30":{"title":"var APPROX","titles":["mbcp.mp_math.const"]},"31":{"title":"mbcp.mp_math.equation","titles":[]},"32":{"title":"class CurveEquation","titles":["mbcp.mp_math.equation"]},"33":{"title":"func __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"func __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["mbcp.mp_math.equation","class CurveEquation"]},"35":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["mbcp.mp_math.equation"]},"36":{"title":"mbcp.mp_math.function","titles":[]},"37":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["mbcp.mp_math.function"]},"38":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["mbcp.mp_math.function"]},"39":{"title":"mbcp.mp_math","titles":[]},"40":{"title":"mbcp.mp_math.line","titles":[]},"41":{"title":"class Line3","titles":["mbcp.mp_math.line"]},"42":{"title":"func __init__(self, point: Point3, direction: Vector3)","titles":["mbcp.mp_math.line","class Line3"]},"43":{"title":"func approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"44":{"title":"func cal_angle(self, other: Line3) -> AnyAngle","titles":["mbcp.mp_math.line","class Line3"]},"45":{"title":"func cal_distance(self, other: Line3 | Point3) -> float","titles":["mbcp.mp_math.line","class Line3"]},"46":{"title":"func cal_intersection(self, other: Line3) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"47":{"title":"func cal_perpendicular(self, point: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"48":{"title":"func get_point(self, t: RealNumber) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"49":{"title":"func get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["mbcp.mp_math.line","class Line3"]},"50":{"title":"func is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"51":{"title":"func is_parallel(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"52":{"title":"func is_collinear(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"53":{"title":"func is_point_on(self, point: Point3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"54":{"title":"func is_coplanar(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"55":{"title":"func simplify(self)","titles":["mbcp.mp_math.line","class Line3"]},"56":{"title":"func from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"57":{"title":"func __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["mbcp.mp_math.line","class Line3"]},"58":{"title":"func __eq__(self, other) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"59":{"title":"mbcp.mp_math","titles":[]},"60":{"title":"mbcp.mp_math.mp_math_typing","titles":[]},"61":{"title":"var RealNumber","titles":["mbcp.mp_math.mp_math_typing"]},"62":{"title":"var Number","titles":["mbcp.mp_math.mp_math_typing"]},"63":{"title":"var SingleVar","titles":["mbcp.mp_math.mp_math_typing"]},"64":{"title":"var ArrayVar","titles":["mbcp.mp_math.mp_math_typing"]},"65":{"title":"var Var","titles":["mbcp.mp_math.mp_math_typing"]},"66":{"title":"var OneSingleVarFunc","titles":["mbcp.mp_math.mp_math_typing"]},"67":{"title":"var OneArrayFunc","titles":["mbcp.mp_math.mp_math_typing"]},"68":{"title":"var OneVarFunc","titles":["mbcp.mp_math.mp_math_typing"]},"69":{"title":"var TwoSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"70":{"title":"var TwoArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"71":{"title":"var TwoVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"72":{"title":"var ThreeSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"73":{"title":"var ThreeArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"74":{"title":"var ThreeVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"75":{"title":"var MultiSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"76":{"title":"var MultiArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"77":{"title":"var MultiVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"78":{"title":"mbcp.mp_math.plane","titles":[]},"79":{"title":"class Plane3","titles":["mbcp.mp_math.plane"]},"80":{"title":"func __init__(self, a: float, b: float, c: float, d: float)","titles":["mbcp.mp_math.plane","class Plane3"]},"81":{"title":"func approx(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"82":{"title":"func cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["mbcp.mp_math.plane","class Plane3"]},"83":{"title":"func cal_distance(self, other: Plane3 | Point3) -> float","titles":["mbcp.mp_math.plane","class Plane3"]},"84":{"title":"func cal_intersection_line3(self, other: Plane3) -> Line3","titles":["mbcp.mp_math.plane","class Plane3"]},"85":{"title":"func cal_intersection_point3(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"86":{"title":"func cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"87":{"title":"func is_parallel(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"88":{"title":"func normal(self) -> Vector3","titles":["mbcp.mp_math.plane","class Plane3"]},"89":{"title":"func from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"90":{"title":"func from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"91":{"title":"func from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"92":{"title":"func from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"93":{"title":"func __and__(self, other: Line3) -> Point3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"94":{"title":"func __and__(self, other: Plane3) -> Line3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"95":{"title":"func __and__(self, other)","titles":["mbcp.mp_math.plane","class Plane3"]},"96":{"title":"func __eq__(self, other) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"97":{"title":"func __rand__(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"98":{"title":"mbcp.mp_math.point","titles":[]},"99":{"title":"class Point3","titles":["mbcp.mp_math.point"]},"100":{"title":"func __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.point","class Point3"]},"101":{"title":"func approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.point","class Point3"]},"102":{"title":"func self + other: Vector3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"103":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"104":{"title":"func self + other","titles":["mbcp.mp_math.point","class Point3"]},"105":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.point","class Point3"]},"106":{"title":"func self - other: Point3 => Vector3","titles":["mbcp.mp_math.point","class Point3"]},"107":{"title":"mbcp.mp_math.segment","titles":[]},"108":{"title":"class Segment3","titles":["mbcp.mp_math.segment"]},"109":{"title":"func __init__(self, p1: Point3, p2: Point3)","titles":["mbcp.mp_math.segment","class Segment3"]},"110":{"title":"mbcp.mp_math.utils","titles":[]},"111":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["mbcp.mp_math.utils"]},"112":{"title":"class Approx","titles":["mbcp.mp_math.utils"]},"113":{"title":"func __init__(self, value: RealNumber)","titles":["mbcp.mp_math.utils","class Approx"]},"114":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"115":{"title":"func raise_type_error(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"116":{"title":"func __ne__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"117":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.utils"]},"118":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"119":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"120":{"title":"mbcp.mp_math.vector","titles":[]},"121":{"title":"class Vector3","titles":["mbcp.mp_math.vector"]},"122":{"title":"func __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.vector","class Vector3"]},"123":{"title":"func approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"124":{"title":"func cal_angle(self, other: Vector3) -> AnyAngle","titles":["mbcp.mp_math.vector","class Vector3"]},"125":{"title":"func cross(self, other: Vector3) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"126":{"title":"func is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"127":{"title":"func is_parallel(self, other: Vector3) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"128":{"title":"func normalize(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"129":{"title":"func np_array(self) -> np.ndarray","titles":["mbcp.mp_math.vector","class Vector3"]},"130":{"title":"func length(self) -> float","titles":["mbcp.mp_math.vector","class Vector3"]},"131":{"title":"func unit(self) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"132":{"title":"func __abs__(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"133":{"title":"func self + other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"134":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"135":{"title":"func self + other","titles":["mbcp.mp_math.vector","class Vector3"]},"136":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.vector","class Vector3"]},"137":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"138":{"title":"func self - other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"139":{"title":"func self - other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"140":{"title":"func self - other","titles":["mbcp.mp_math.vector","class Vector3"]},"141":{"title":"func self - other: Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"142":{"title":"func self * other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"143":{"title":"func self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"144":{"title":"func self * other: int | float | Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"145":{"title":"func self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"146":{"title":"func self @ other: Vector3 => RealNumber","titles":["mbcp.mp_math.vector","class Vector3"]},"147":{"title":"func self / other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"148":{"title":"func - self => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"149":{"title":"var zero_vector3","titles":["mbcp.mp_math.vector"]},"150":{"title":"var x_axis","titles":["mbcp.mp_math.vector"]},"151":{"title":"var y_axis","titles":["mbcp.mp_math.vector"]},"152":{"title":"var z_axis","titles":["mbcp.mp_math.vector"]},"153":{"title":"mbcp.particle","titles":[]},"154":{"title":"mbcp.particle","titles":[]},"155":{"title":"mbcp.presets","titles":[]},"156":{"title":"mbcp.presets.model","titles":[]},"157":{"title":"class GeometricModels","titles":["mbcp.presets.model"]},"158":{"title":"func sphere(radius: float, density: float)","titles":["mbcp.presets.model","class GeometricModels"]},"159":{"title":"mbcp.presets.model","titles":[]},"160":{"title":"class GeometricModels","titles":["mbcp.presets.model"]},"161":{"title":"func sphere(radius: float, density: float)","titles":["mbcp.presets.model","class GeometricModels"]},"162":{"title":"mbcp.presets","titles":[]},"163":{"title":"最佳实践","titles":[]},"164":{"title":"作品","titles":["最佳实践"]},"165":{"title":"demo","titles":[]},"166":{"title":"开始不了一点","titles":[]},"167":{"title":"AAA","titles":[]},"168":{"title":"BBB","titles":["AAA"]},"169":{"title":"C","titles":[]},"170":{"title":"ddd","titles":["C"]},"171":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["∫12x111",{"2":{"166":1}}],["开始不了一点",{"0":{"166":1}}],["红石音乐",{"2":{"164":1}}],["这么可爱真是抱歉",{"2":{"164":1}}],["这玩意不太稳定",{"2":{"35":2}}],["轻涟",{"2":{"164":1}}],["芙宁娜pv曲",{"2":{"164":1}}],["有点甜~",{"2":{"164":1}}],["有关函数柯里化",{"2":{"38":2}}],["星穹铁道",{"2":{"164":1}}],["崩坏",{"2":{"164":1}}],["使一颗心免于哀伤",{"2":{"164":1}}],["总有一条蜿蜒在童话镇里",{"2":{"164":1}}],["童话镇~",{"2":{"164":1}}],["特效红石音乐",{"2":{"164":2}}],["作品",{"0":{"164":1}}],["4",{"2":{"158":1,"161":1}}],["球体上的点集",{"2":{"158":2,"161":2}}],["生成球体上的点集",{"2":{"158":2,"161":2}}],["几何模型点集",{"2":{"156":1,"159":1}}],["零向量",{"2":{"149":1}}],["负向量",{"2":{"148":2}}],["取负",{"2":{"148":2}}],["取两平面的交集",{"2":{"95":2}}],["非点乘",{"2":{"144":2}}],["别去点那边实现了",{"2":{"137":2}}],["单位向量",{"2":{"131":2}}],["单变量",{"2":{"63":1}}],["模",{"2":{"130":2}}],["向量的模",{"2":{"130":2}}],["向量积",{"2":{"125":2}}],["将向量归一化",{"2":{"128":2}}],["j",{"2":{"125":1}}],["其余结果的模为平行四边形的面积",{"2":{"125":2}}],["叉乘使用cross",{"2":{"144":2}}],["叉乘结果",{"2":{"125":2}}],["叉乘为0",{"2":{"125":2}}],["叉乘",{"2":{"125":2}}],["以及一些常用的向量",{"2":{"120":1}}],["格式化符号数",{"2":{"119":2}}],["quot",{"2":{"118":2,"119":4}}],["符号",{"2":{"118":2,"119":2}}],["获取该向量的单位向量",{"2":{"131":2}}],["获取数的符号",{"2":{"118":2}}],["获取直线的参数方程",{"2":{"49":2}}],["获取直线上的点",{"2":{"48":2}}],["用于判断是否近似于0",{"2":{"117":2}}],["用于近似比较对象",{"2":{"113":2}}],["限定在区间内的值",{"2":{"111":2}}],["值",{"2":{"111":2}}],["区间限定函数",{"2":{"111":2}}],["us",{"2":{"171":1}}],["unit",{"0":{"131":1},"2":{"131":1}}],["unsupported",{"2":{"45":1,"82":1,"83":1,"95":1,"115":1,"135":1,"140":1,"141":1,"144":1}}],["utils",{"0":{"110":1},"1":{"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1}}],["中心点",{"2":{"109":1}}],["中实现",{"2":{"106":2}}],["长度",{"2":{"109":1}}],["线段的另一个端点",{"2":{"109":2}}],["线段的一个端点",{"2":{"109":2}}],["新的向量或点",{"2":{"135":2}}],["新的向量",{"2":{"106":2,"140":2}}],["新的点",{"2":{"104":2,"137":2,"141":2}}],["已在",{"2":{"106":2}}],["已知一个函数$f",{"2":{"37":1}}],["已知一个函数f",{"2":{"37":1}}],["坐标",{"2":{"100":6}}],["笛卡尔坐标系中的点",{"2":{"100":2}}],["人话",{"2":{"95":2}}],["法向量",{"2":{"88":2,"89":2}}],["k``",{"2":{"125":1}}],["k",{"2":{"81":12}}],["常数项",{"2":{"80":2}}],["常量",{"2":{"25":1}}],["平面上一点",{"2":{"89":2,"92":2}}],["平面的法向量",{"2":{"88":2}}],["平面",{"2":{"86":2,"89":2,"90":2,"91":2,"92":2}}],["平面与直线平行或重合",{"2":{"85":2}}],["平面平行且无交线",{"2":{"84":2}}],["平面方程",{"2":{"80":2}}],["平行线返回none",{"2":{"57":2}}],["多元函数",{"2":{"77":1}}],["多元数组函数",{"2":{"76":1}}],["多元单变量函数",{"2":{"75":1}}],["二元函数",{"2":{"71":1}}],["二元数组函数",{"2":{"70":1}}],["二元单变量函数",{"2":{"69":1}}],["一元函数",{"2":{"68":1}}],["一元数组函数",{"2":{"67":1}}],["一元单变量函数",{"2":{"66":1}}],["一阶偏导",{"2":{"35":2}}],["变量",{"2":{"65":1}}],["变量位置",{"2":{"35":2}}],["数组运算结果",{"2":{"144":2}}],["数组运算",{"2":{"144":2}}],["数组变量",{"2":{"64":1}}],["数2",{"2":{"117":2}}],["数1",{"2":{"117":2}}],["数",{"2":{"62":1,"118":2,"119":2}}],["数学工具",{"2":{"0":1,"1":1}}],["类型",{"2":{"61":1,"62":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"149":1,"150":1,"151":1,"152":1}}],["实数",{"2":{"61":1,"113":2}}],["∧",{"2":{"58":2}}],["交线",{"2":{"84":2,"95":2}}],["交线返回交点",{"2":{"57":2}}],["交集",{"2":{"57":2,"95":2}}],["交点",{"2":{"46":2,"85":2}}],["重合线返回自身",{"2":{"57":2}}],["由点和直线构造平面",{"2":{"92":2}}],["由点和法向量构造平面",{"2":{"89":2}}],["由两直线构造平面",{"2":{"91":2}}],["由两点构造直线",{"2":{"56":2}}],["由三点构造平面",{"2":{"90":2}}],["由一个点和一个方向向量确定",{"2":{"42":2}}],["工厂函数",{"2":{"56":2,"89":2,"90":2,"91":2,"92":2}}],["并对向量单位化",{"2":{"55":2}}],["处理",{"2":{"55":2}}],["处的梯度向量为",{"2":{"37":1}}],["化",{"2":{"55":2}}],["按照可行性一次对x",{"2":{"55":2}}],["不返回值",{"2":{"55":2,"128":2}}],["不支持的类型",{"2":{"45":2,"82":2,"83":2,"95":2}}],["自体归一化",{"2":{"128":2}}],["自体简化",{"2":{"55":2}}],["自然对数的底",{"2":{"26":1}}],["等价相等",{"2":{"55":2}}],["简化直线方程",{"2":{"55":2}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"54":2}}],["两角的和为180°",{"2":{"7":2}}],["两角的和为90°",{"2":{"6":2}}],["充要条件",{"2":{"54":2}}],["判断两个向量是否相等",{"2":{"136":2}}],["判断两个向量是否平行",{"2":{"127":2}}],["判断两个向量是否近似平行",{"2":{"126":2}}],["判断两个向量是否近似相等",{"2":{"123":2}}],["判断两个数是否近似相等",{"2":{"117":2}}],["判断两个点是否相等",{"2":{"105":2}}],["判断两个点是否近似相等",{"2":{"101":2}}],["判断两个平面是否等价",{"2":{"96":2}}],["判断两个平面是否平行",{"2":{"87":2}}],["判断两个平面是否近似相等",{"2":{"81":2}}],["判断两条直线是否等价",{"2":{"58":2}}],["判断两条直线是否共面",{"2":{"54":2}}],["判断两条直线是否共线",{"2":{"52":2}}],["判断两条直线是否平行",{"2":{"51":2}}],["判断两条直线是否近似平行",{"2":{"50":2}}],["判断两条直线是否近似相等",{"2":{"43":2}}],["判断点是否在直线上",{"2":{"53":2}}],["另一个向量或数",{"2":{"144":2}}],["另一个向量或点",{"2":{"135":2,"140":2}}],["另一个向量",{"2":{"123":2,"124":2,"125":2,"126":2,"127":2,"136":2,"146":2}}],["另一个点或向量",{"2":{"104":2}}],["另一个点",{"2":{"101":2,"105":2,"106":2,"137":2,"141":2}}],["另一个平面或点",{"2":{"83":2}}],["另一个平面或直线",{"2":{"82":2,"95":2}}],["另一个平面",{"2":{"81":2,"84":2,"87":2,"96":2}}],["另一",{"2":{"51":2,"52":2,"54":2}}],["另一条直线或点",{"2":{"45":2}}],["另一条直线",{"2":{"43":2,"44":2,"46":2,"50":2,"57":2,"58":2}}],["则两向量平行",{"2":{"125":2}}],["则同一个t对应的点不同",{"2":{"48":2}}],["则其在点$",{"2":{"37":1}}],["则其在点",{"2":{"37":1}}],["但起始点和方向向量不同",{"2":{"48":2}}],["同一条直线",{"2":{"48":2}}],["垂线",{"2":{"47":2}}],["指定点",{"2":{"47":2,"86":2}}],["直线",{"2":{"56":2,"85":2,"91":4,"92":2}}],["直线不共面",{"2":{"46":2}}],["直线平行",{"2":{"46":2}}],["直线上的一点",{"2":{"42":2}}],["距离",{"2":{"45":2,"83":2}}],["夹角",{"2":{"44":2,"82":2,"124":2}}],["是否只返回负数的符号",{"2":{"118":2,"119":2}}],["是否相等",{"2":{"105":2,"136":2}}],["是否等价",{"2":{"58":2,"96":2}}],["是否共面",{"2":{"54":2}}],["是否共线",{"2":{"52":2}}],["是否在直线上",{"2":{"53":2}}],["是否平行",{"2":{"51":2,"87":2,"127":2}}],["是否近似平行",{"2":{"50":2,"126":2}}],["是否近似相等",{"2":{"43":2,"81":2,"101":2,"117":2,"123":2}}],["是否为弧度",{"2":{"5":2}}],["误差",{"2":{"43":2,"50":2,"101":2,"117":2,"123":2,"126":2}}],["方向向量",{"2":{"42":2,"109":1}}],["三元数组函数",{"2":{"73":1}}],["三元单变量函数",{"2":{"72":1}}],["三元函数",{"2":{"37":2,"74":1}}],["三维空间中的线段",{"2":{"109":2}}],["三维空间中的直线",{"2":{"42":2}}],["三维向量",{"2":{"39":1,"59":1}}],["三维线段",{"2":{"39":1,"59":1}}],["三维点",{"2":{"39":1,"59":1}}],["三维平面",{"2":{"39":1,"59":1}}],["三维直线",{"2":{"39":1,"59":1}}],["导入的类有",{"2":{"39":1,"59":1}}],["本包定义了一些常用的导入",{"2":{"39":1,"59":1}}],["本模块塞了一些预设",{"2":{"155":1,"162":1}}],["本模块用于内部类型提示",{"2":{"60":1}}],["本模块定义了粒子生成相关的工具",{"2":{"153":1,"154":1}}],["本模块定义了3维向量的类vector3",{"2":{"120":1}}],["本模块定义了一些常用的工具函数",{"2":{"110":1}}],["本模块定义了一些常用的常量",{"2":{"24":1}}],["本模块定义了三维空间中点的类",{"2":{"98":1}}],["本模块定义了三维空间中的线段类",{"2":{"107":1}}],["本模块定义了三维空间中的平面类",{"2":{"78":1}}],["本模块定义了三维空间中的直线类",{"2":{"40":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"31":1}}],["本模块定义了角度相关的类",{"2":{"2":1}}],["本模块是主模块",{"2":{"0":1,"1":1}}],["help",{"2":{"171":1}}],["heart",{"2":{"164":1}}],["have",{"2":{"84":1}}],["html",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["https",{"2":{"38":1,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["high",{"2":{"35":2}}],["hide",{"2":{"35":2,"38":1}}],["6",{"2":{"38":2}}],["3维向量",{"2":{"122":2}}],["3a",{"2":{"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"58":1,"80":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["355859667",{"2":{"38":1}}],["3",{"2":{"38":2,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["3vf",{"0":{"37":1},"2":{"37":1}}],["bbb",{"0":{"168":1}}],["breaking",{"2":{"164":1}}],["by",{"2":{"80":2}}],["bound=iterable",{"2":{"64":1}}],["bound=number",{"2":{"63":1}}],["bool=false",{"2":{"5":1,"118":1,"119":1}}],["bool",{"0":{"5":1,"43":1,"50":1,"51":1,"52":1,"53":1,"54":1,"58":1,"81":1,"87":1,"96":1,"101":1,"117":1,"118":1,"119":1,"123":1,"126":1,"127":1},"2":{"43":3,"50":3,"51":3,"52":3,"53":3,"54":3,"58":3,"81":3,"87":3,"96":3,"101":3,"105":2,"117":3,"118":2,"119":2,"123":3,"126":3,"127":3,"136":2}}],["b",{"0":{"80":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":12,"85":2,"88":1,"89":3}}],["示例",{"2":{"38":1}}],["柯里化后的函数",{"2":{"38":2}}],["柯理化",{"2":{"38":2}}],["函数式编程",{"2":{"38":1}}],["函数",{"2":{"38":2}}],["对多参数函数进行柯里化",{"2":{"38":2}}],["ddd",{"0":{"170":1}}],["d",{"0":{"80":1},"2":{"80":7,"81":6,"83":1,"84":6,"85":1,"89":2}}],["documentation",{"2":{"171":1}}],["doc",{"2":{"129":1}}],["docs",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["do",{"2":{"46":2}}],["distance",{"0":{"45":1,"83":1},"2":{"45":1,"83":1}}],["direction",{"0":{"42":1},"2":{"42":5,"43":1,"44":2,"45":8,"46":6,"47":1,"48":1,"49":3,"50":2,"51":2,"52":1,"53":1,"54":2,"55":4,"56":2,"58":3,"82":1,"84":2,"85":4,"91":1,"92":1,"95":1,"109":2}}],["dz",{"2":{"37":2}}],["dy",{"2":{"37":2}}],["dx",{"2":{"37":2}}],["demo",{"0":{"165":1}}],["density",{"0":{"158":1,"161":1},"2":{"158":4,"161":4}}],["derivative",{"0":{"35":1},"2":{"35":6}}],["degree",{"0":{"8":1},"2":{"8":1}}],["def",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"21":1,"22":1,"35":2,"38":2,"56":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"102":1,"103":1,"129":1,"130":1,"131":1,"133":1,"134":1,"138":1,"139":1,"142":1,"143":1,"158":1,"161":1}}],["$处的梯度向量为",{"2":{"37":1}}],["$",{"2":{"37":3}}],["梯度",{"2":{"37":2}}],["点乘结果",{"2":{"146":2}}],["点乘",{"2":{"146":2}}],["点乘使用",{"2":{"144":2}}],["点3",{"2":{"90":2}}],["点法式构造",{"2":{"89":2}}],["点2",{"2":{"56":2,"90":2}}],["点1",{"2":{"56":2,"90":2}}],["点",{"2":{"37":2,"48":2,"53":2}}],["∂f∂z",{"2":{"37":1}}],["∂f∂y",{"2":{"37":1}}],["∂f∂x",{"2":{"37":1}}],["∇f",{"2":{"37":1}}],["计算平行于该平面且过指定点的平面",{"2":{"86":2}}],["计算平面与直线的交点",{"2":{"85":2}}],["计算平面与平面或点之间的距离",{"2":{"83":2}}],["计算平面与平面之间的夹角",{"2":{"82":2}}],["计算两个向量之间的夹角",{"2":{"124":2}}],["计算两平面的交线",{"2":{"84":2}}],["计算两条直线点集合的交集",{"2":{"57":2}}],["计算两条直线的交点",{"2":{"46":2}}],["计算直线经过指定点p的垂线",{"2":{"47":2}}],["计算直线和直线或点之间的距离",{"2":{"45":2}}],["计算直线和直线之间的夹角",{"2":{"44":2}}],["计算三元函数在某点的梯度向量",{"2":{"37":2}}],["计算曲线上的点",{"2":{"34":2}}],["v3",{"2":{"125":2}}],["v2",{"2":{"58":2,"90":2,"91":4,"125":2}}],["v1",{"2":{"58":4,"90":2,"91":2,"125":2}}],["vector",{"0":{"120":1},"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,"151":1,"152":1},"2":{"42":1,"88":1,"89":1,"104":1,"106":3,"144":1}}],["vector3",{"0":{"37":1,"42":1,"88":1,"89":1,"102":1,"106":1,"121":1,"123":1,"124":1,"125":2,"126":1,"127":1,"131":1,"133":2,"138":2,"142":2,"143":1,"144":2,"145":1,"146":1,"147":1,"148":1,"149":1},"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},"2":{"37":2,"39":1,"42":3,"59":1,"88":4,"89":3,"91":1,"102":1,"104":2,"106":7,"114":2,"123":3,"124":3,"125":7,"126":3,"127":4,"131":3,"133":2,"135":7,"136":2,"138":2,"140":7,"141":1,"142":2,"143":1,"144":9,"145":1,"146":3,"147":2,"148":4,"149":2,"150":2,"151":2,"152":2}}],["v",{"2":{"35":2,"104":2,"106":4,"135":8,"137":2,"140":8,"141":2}}],["var",{"0":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"34":1,"35":1,"38":1,"61":1,"62":1,"63":1,"64":1,"65":2,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"149":1,"150":1,"151":1,"152":1},"2":{"33":3,"34":1,"35":14,"37":1,"38":7,"48":1,"49":1}}],["valueerror",{"2":{"35":3,"46":4,"84":3,"85":3}}],["value",{"0":{"5":1,"113":1},"2":{"5":5,"113":5,"114":6,"115":1}}],["求高阶偏导函数",{"2":{"35":1}}],["求n元函数一阶偏导函数",{"2":{"35":2}}],["l2",{"0":{"91":1},"2":{"91":5}}],["l1",{"0":{"91":1},"2":{"91":7}}],["lambda",{"2":{"49":3}}],["left",{"2":{"37":1}}],["length",{"0":{"130":1},"2":{"45":5,"46":1,"82":2,"109":2,"124":2,"126":1,"128":5,"130":1,"131":1,"132":1}}],["len",{"2":{"34":1}}],["linalg",{"2":{"84":3}}],["lines",{"0":{"91":1},"2":{"46":2,"91":1}}],["line",{"0":{"40":1,"92":2},"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,"58":1},"2":{"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"58":1,"82":1,"84":1,"85":2,"91":1,"92":6,"95":2}}],["line3",{"0":{"41":1,"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"82":1,"84":2,"85":1,"91":2,"92":1,"93":1,"94":1,"97":1},"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,"58":1},"2":{"39":1,"43":3,"44":3,"45":4,"46":3,"47":4,"50":3,"51":3,"52":3,"54":3,"56":3,"57":6,"58":2,"59":1,"82":4,"84":5,"85":3,"91":5,"92":3,"93":1,"94":1,"95":6,"97":1,"114":1}}],["library",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["list",{"2":{"35":8,"158":10,"161":10}}],["litedoc",{"2":{"35":2,"38":1}}],["`np",{"2":{"129":1}}],["`none`",{"2":{"57":1,"95":1}}],["``x2",{"2":{"125":1}}],["``x1",{"2":{"125":1}}],["``i",{"2":{"125":1}}],["```",{"2":{"38":1}}],["```python",{"2":{"38":1}}],["`str`",{"2":{"118":1,"119":1}}],["`plane3`",{"2":{"81":1,"82":1,"83":1,"84":1,"86":1,"87":1,"89":1,"95":1,"96":1}}],["`point3`",{"2":{"37":1,"42":1,"45":1,"46":1,"47":1,"48":1,"53":1,"56":2,"57":1,"83":1,"85":1,"86":1,"89":1,"90":3,"92":1,"95":1,"101":1,"104":2,"105":1,"106":1,"109":2,"135":2,"137":2,"140":2,"141":2}}],["`onesinglevarfunc`",{"2":{"49":3}}],["`onevarfunc`",{"2":{"33":3}}],["`realnumber`",{"2":{"48":1,"113":1}}],["`tuple`",{"2":{"49":1}}],["`typeerror`",{"2":{"45":1,"82":1,"83":1,"95":1}}],["`threesinglevarsfunc`",{"2":{"37":1}}],["`anyangle`",{"2":{"44":1,"82":1,"124":1}}],["`bool`",{"2":{"43":1,"50":1,"51":1,"52":1,"53":1,"54":1,"58":1,"81":1,"87":1,"96":1,"101":1,"105":1,"117":1,"118":1,"119":1,"123":1,"126":1,"127":1,"136":1}}],["`float`",{"2":{"43":1,"45":1,"50":1,"80":4,"83":1,"100":3,"101":1,"111":4,"117":3,"118":1,"119":1,"122":3,"123":1,"126":1,"130":1,"144":1,"146":1}}],["`line3`",{"2":{"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"58":1,"82":1,"84":1,"85":1,"91":2,"92":1,"95":2}}],["`valueerror`",{"2":{"46":2,"84":1,"85":1}}],["`var`",{"2":{"38":1}}],["`vector3`",{"2":{"42":1,"88":1,"89":1,"104":1,"106":2,"123":1,"124":1,"125":2,"126":1,"127":1,"131":1,"135":2,"136":1,"140":2,"144":2,"146":1,"148":1}}],["`multivarsfunc`",{"2":{"35":1,"38":1}}],["无效变量类型",{"2":{"35":2}}],["引发",{"2":{"35":1,"45":1,"46":1,"82":1,"83":1,"84":1,"85":1,"95":1}}],["偏导函数",{"2":{"35":2}}],["偏移量",{"2":{"35":2,"37":2}}],["高阶偏导数值",{"2":{"35":1}}],["高阶偏导",{"2":{"35":2}}],["可愛くてごめん",{"2":{"164":1}}],["可直接从mbcp",{"2":{"39":1,"59":1}}],["可参考",{"2":{"38":1}}],["可参考函数式编程",{"2":{"38":1}}],["可为整数",{"2":{"35":2}}],["可导入",{"2":{"0":1,"1":1}}],["因此该函数的稳定性有待提升",{"2":{"35":2}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"35":2}}],["目标点",{"2":{"34":2}}],["warning",{"2":{"35":2}}],["慎用",{"2":{"35":2}}],["num",{"2":{"158":5,"161":5}}],["numpy",{"2":{"129":2}}],["numpy数组",{"2":{"129":2}}],["number=epsilon",{"2":{"35":1}}],["number",{"0":{"35":1,"62":1},"2":{"64":1}}],["ndarray`",{"2":{"129":1}}],["ndarray",{"0":{"129":1},"2":{"129":3}}],["neg",{"0":{"118":1,"119":1},"2":{"118":4,"119":4,"148":1}}],["negative",{"0":{"10":1},"2":{"10":1}}],["ne",{"0":{"116":1},"2":{"116":1}}],["np",{"0":{"129":2},"2":{"84":9,"129":4,"158":9,"161":9}}],["no",{"2":{"84":1}}],["normal",{"0":{"88":1,"89":2},"2":{"82":5,"84":4,"85":1,"86":2,"87":2,"88":1,"89":7,"90":3,"91":1,"92":1,"95":3}}],["normalize",{"0":{"128":1},"2":{"55":1,"128":1}}],["none",{"0":{"57":1,"93":1,"94":1},"2":{"57":4,"93":1,"94":1,"95":4}}],["not",{"2":{"45":1,"46":4,"57":1,"116":1,"118":1,"119":1}}],["nabla",{"2":{"37":1}}],["n元函数",{"2":{"35":2}}],["|",{"0":{"34":1,"35":1,"45":1,"57":2,"82":1,"83":1,"93":1,"94":1,"144":2},"2":{"34":1,"35":1,"45":3,"57":6,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"77":1,"82":3,"83":3,"93":1,"94":1,"95":6,"104":2,"135":4,"140":4,"144":4}}],["曲线方程",{"2":{"33":2,"39":1,"59":1}}],["z轴单位向量",{"2":{"152":1}}],["z轴分量",{"2":{"122":2}}],["z2``",{"2":{"125":1}}],["z1``",{"2":{"125":1}}],["zero",{"0":{"149":1},"2":{"91":1,"127":1}}],["z系数",{"2":{"80":2}}],["zhihu",{"2":{"38":1}}],["zhuanlan",{"2":{"38":1}}],["z0",{"2":{"37":2}}],["zip",{"2":{"34":1}}],["z函数",{"2":{"33":2}}],["z",{"0":{"33":1,"100":1,"122":1,"152":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":4,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"114":2,"122":5,"123":2,"125":4,"128":1,"129":1,"130":1,"135":4,"136":2,"137":2,"140":4,"141":2,"144":3,"146":2,"147":1,"148":1,"158":2,"161":2}}],["y轴单位向量",{"2":{"151":1}}],["y轴分量",{"2":{"122":2}}],["y2",{"2":{"125":1}}],["y1",{"2":{"125":1}}],["y系数",{"2":{"80":2}}],["y0",{"2":{"37":2}}],["y函数",{"2":{"33":2}}],["y",{"0":{"33":1,"100":1,"117":1,"122":1,"151":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":4,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"114":2,"117":4,"122":5,"123":2,"125":4,"128":1,"129":1,"130":1,"135":4,"136":2,"137":2,"140":4,"141":2,"144":3,"146":2,"147":1,"148":1,"158":2,"161":2}}],["x轴单位向量",{"2":{"150":1}}],["x轴分量",{"2":{"122":2}}],["x3c",{"2":{"101":3,"114":1,"117":1,"118":1,"119":1,"123":3,"126":1}}],["x26",{"2":{"95":1}}],["x系数",{"2":{"80":2}}],["x0",{"2":{"37":2}}],["x函数",{"2":{"33":2}}],["x",{"0":{"33":1,"100":1,"111":1,"117":1,"118":1,"119":1,"122":1,"150":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":2,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"111":4,"114":2,"117":4,"118":5,"119":8,"122":5,"123":2,"125":4,"128":1,"129":1,"130":1,"135":4,"136":2,"137":2,"140":4,"141":2,"144":3,"146":2,"147":1,"148":1,"158":2,"161":2}}],["约等于判定误差",{"2":{"30":1}}],["精度误差",{"2":{"29":1}}],["06",{"0":{"50":1},"2":{"50":1}}],["001",{"2":{"30":1}}],["0001",{"2":{"29":1}}],["0",{"0":{"117":2},"2":{"28":1,"29":1,"30":1,"34":3,"37":6,"45":2,"54":1,"55":8,"80":2,"81":3,"83":2,"84":9,"85":1,"95":1,"117":1,"118":2,"119":4,"149":3,"150":2,"151":2,"152":2,"158":2,"161":2}}],["欧拉常数",{"2":{"28":1}}],["5772156649015329",{"2":{"28":1}}],["5",{"2":{"27":1,"83":1}}],["黄金分割比",{"2":{"27":1}}],["geometricmodels",{"0":{"157":1,"160":1},"1":{"158":1,"161":1}}],["generated",{"2":{"129":1}}],["get",{"0":{"35":1,"48":1,"49":1},"2":{"35":2,"48":1,"49":1,"85":1,"91":1}}],["gradient",{"0":{"37":1},"2":{"37":1}}],["gamma",{"0":{"28":1}}],["golden",{"0":{"27":1}}],["gt",{"0":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"21":1,"22":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"101":1,"102":1,"103":1,"106":1,"111":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"133":1,"134":1,"137":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1},"2":{"104":2,"106":2,"119":3,"125":1,"135":2,"137":1,"140":2,"141":1}}],["默认值",{"2":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":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,"76":1,"77":1,"149":1,"150":1,"151":1,"152":1}}],["默认为否",{"2":{"5":2}}],["π",{"2":{"25":1}}],["to",{"2":{"171":1}}],["theta",{"2":{"158":3,"161":3}}],["the",{"2":{"85":2,"171":1}}],["three",{"0":{"90":1},"2":{"90":1}}],["threevarsfunc",{"0":{"74":1}}],["threearraysfunc",{"0":{"73":1},"2":{"74":1}}],["threesinglevarsfunc",{"0":{"37":1,"72":1},"2":{"37":3,"74":1}}],["twovarsfunc",{"0":{"71":1}}],["twoarraysfunc",{"0":{"70":1},"2":{"71":1}}],["twosinglevarsfunc",{"0":{"69":1},"2":{"71":1}}],["two",{"0":{"56":1,"91":1},"2":{"56":1,"91":1}}],["tip",{"2":{"37":2,"38":2}}],["typevar",{"2":{"63":1,"64":1}}],["typealias",{"2":{"61":1,"62":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1}}],["typeerror",{"2":{"45":3,"46":1,"82":3,"83":3,"95":3,"115":1,"135":1,"140":1,"141":1,"144":1}}],["type",{"0":{"115":1},"2":{"35":1,"45":1,"82":2,"83":2,"95":2,"114":2,"115":4,"135":2,"140":2,"141":2,"144":2}}],["typing",{"0":{"60":1},"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,"76":1,"77":1},"2":{"33":3,"35":1,"37":1,"38":2,"48":1,"49":1,"113":1}}],["tuple",{"0":{"34":1,"35":1,"49":1},"2":{"34":2,"35":2,"49":3}}],["t",{"0":{"34":1,"48":1},"2":{"34":10,"48":4,"49":6,"85":4}}],["truediv",{"2":{"21":1,"22":1,"23":1,"147":1}}],["tan",{"0":{"13":1},"2":{"13":2,"14":1}}],["operand",{"2":{"95":1,"135":1,"140":1,"141":1,"144":1}}],["only",{"0":{"118":1,"119":1},"2":{"118":4,"119":4}}],["on",{"0":{"53":1},"2":{"53":1}}],["one",{"2":{"164":1}}],["onearrayfunc",{"0":{"67":1},"2":{"68":1}}],["onesinglevarfunc",{"0":{"49":3,"66":1},"2":{"49":7,"68":1}}],["onevarfunc",{"0":{"33":3,"38":1,"68":1},"2":{"33":9,"38":1}}],["or",{"2":{"57":1,"85":1}}],["org",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["order",{"2":{"35":2}}],["overload",{"2":{"20":1,"21":2,"22":1,"92":1,"93":2,"94":1,"101":1,"102":2,"103":1,"132":1,"133":2,"134":1,"137":1,"138":2,"139":1,"141":1,"142":2,"143":1}}],["other",{"0":{"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"43":1,"44":1,"45":1,"46":1,"50":1,"51":1,"52":1,"54":1,"57":1,"58":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"93":1,"94":1,"95":1,"96":1,"97":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"114":1,"115":1,"116":1,"123":1,"124":1,"125":1,"126":1,"127":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},"2":{"17":2,"18":2,"19":2,"20":2,"21":1,"22":1,"23":4,"43":5,"44":4,"45":13,"46":9,"50":4,"51":4,"52":5,"54":5,"57":7,"58":5,"81":15,"82":9,"83":9,"84":17,"85":11,"87":4,"93":1,"94":1,"95":10,"96":4,"97":2,"101":6,"102":1,"103":1,"104":6,"105":6,"106":6,"114":9,"115":2,"116":2,"123":6,"124":5,"125":9,"126":4,"127":4,"133":1,"134":1,"135":12,"136":6,"137":6,"138":1,"139":1,"140":12,"141":8,"142":1,"143":1,"144":12,"145":2,"146":6,"147":4}}],["ep",{"2":{"164":1}}],["epsilon",{"0":{"29":1,"35":2,"37":2,"43":1,"50":1,"101":1,"117":1,"123":1,"126":1},"2":{"35":7,"37":12,"43":5,"50":4,"101":6,"117":4,"123":6,"126":4}}],["error",{"0":{"115":1},"2":{"114":2,"115":1}}],["exceptions",{"2":{"45":1,"46":1,"82":1,"83":1,"84":1,"85":1,"95":1}}],["examples",{"2":{"38":1}}],["exp",{"2":{"26":1}}],["elif",{"2":{"35":1,"45":3,"57":1,"81":2,"82":1,"83":1,"84":2,"95":1,"114":1,"118":1,"119":1,"135":1,"140":1,"144":1}}],["else",{"2":{"5":1,"34":1,"35":1,"45":2,"57":1,"81":1,"82":1,"83":1,"95":1,"114":2,"118":2,"119":2,"135":1,"140":1,"141":1,"144":1}}],["e",{"0":{"26":1},"2":{"26":1}}],["equations",{"0":{"49":1},"2":{"49":1,"85":1}}],["equation",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1}}],["eq",{"0":{"18":1,"58":1,"96":1,"105":1,"114":1,"136":1},"2":{"18":1,"58":1,"96":1,"105":1,"114":1,"116":1,"136":1}}],["+1",{"2":{"119":2}}],["+=",{"2":{"35":1}}],["+",{"0":{"17":1,"102":1,"103":1,"104":1,"133":1,"134":1,"135":1,"137":1},"2":{"17":1,"27":1,"37":3,"38":4,"46":1,"48":1,"49":3,"80":6,"83":5,"85":5,"104":7,"109":3,"118":3,"119":3,"130":2,"135":11,"137":5,"146":2,"158":1,"161":1}}],["1e",{"0":{"50":1}}],["1",{"2":{"14":1,"15":1,"16":1,"26":1,"27":1,"34":1,"38":2,"91":1,"119":6,"150":1,"151":1,"152":1,"158":4,"161":4}}],["180",{"2":{"5":1,"8":1}}],["正割值",{"2":{"15":4}}],["正切值",{"2":{"13":4}}],["正弦值",{"2":{"11":4}}],["余割值",{"2":{"16":4}}],["余切值",{"2":{"14":4}}],["余弦值",{"2":{"12":4}}],["余角",{"2":{"6":4}}],["最佳实践",{"0":{"163":1},"1":{"164":1}}],["最大值",{"2":{"111":2}}],["最大负角度",{"2":{"10":2}}],["最大负角",{"2":{"10":2}}],["最小值",{"2":{"111":2}}],["最小正角度",{"2":{"9":2}}],["最小正角",{"2":{"9":2}}],["弧度",{"2":{"8":2}}],["角度",{"2":{"8":2}}],["角度或弧度值",{"2":{"5":2}}],["补角",{"2":{"7":4}}],["sphere",{"0":{"158":1,"161":1},"2":{"158":1,"161":1}}],["stop",{"2":{"164":1}}],["staticmethod",{"2":{"157":1,"158":1,"160":1,"161":1}}],["stable",{"2":{"129":1}}],["str",{"0":{"118":1,"119":1},"2":{"118":3,"119":3}}],["stdtypes",{"2":{"49":1}}],["s",{"2":{"95":1,"135":1,"140":1,"141":1,"144":1}}],["solve",{"2":{"84":3}}],["sign",{"0":{"118":1,"119":1},"2":{"118":1,"119":1}}],["simplify",{"0":{"55":1},"2":{"55":1}}],["singlevar",{"0":{"63":1},"2":{"63":1,"65":1,"66":2,"69":3,"72":4,"75":1}}],["sin",{"0":{"11":1},"2":{"11":2,"16":1,"158":3,"161":3}}],["sqrt",{"2":{"27":1,"130":1,"158":1,"161":1}}],["sub",{"2":{"19":1,"106":1,"138":1,"139":1,"140":1}}],["supplementary",{"0":{"7":1},"2":{"7":1}}],["segment",{"0":{"107":1},"1":{"108":1,"109":1}}],["segment3",{"0":{"108":1},"1":{"109":1},"2":{"39":1,"59":1}}],["sec",{"0":{"15":1},"2":{"15":1}}],["self",{"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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":1,"34":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,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"93":1,"94":1,"95":1,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"113":1,"114":1,"115":1,"116":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},"2":{"5":3,"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":1,"22":1,"23":3,"33":4,"34":7,"42":3,"43":4,"44":2,"45":13,"46":8,"47":3,"48":3,"49":7,"50":2,"51":2,"52":4,"53":3,"54":3,"55":8,"57":6,"58":4,"80":5,"81":16,"82":4,"83":8,"84":15,"85":9,"86":2,"87":2,"88":4,"93":1,"94":1,"95":5,"96":2,"97":2,"100":4,"101":4,"102":1,"103":1,"104":4,"105":4,"106":4,"109":15,"113":2,"114":9,"115":2,"116":2,"122":4,"123":4,"124":3,"125":7,"126":2,"127":2,"128":5,"129":4,"130":4,"131":3,"132":2,"133":1,"134":1,"135":7,"136":4,"137":4,"138":1,"139":1,"140":7,"141":4,"142":1,"143":1,"144":7,"145":2,"146":4,"147":4,"148":4}}],["255万个粒子",{"2":{"164":1}}],["2",{"2":{"6":1,"9":1,"10":1,"27":1,"35":1,"37":3,"38":2,"46":1,"83":3,"109":3,"130":3,"158":2,"161":2}}],["rmul",{"2":{"145":1}}],["rsub",{"2":{"141":1}}],["right",{"2":{"37":1}}],["reference",{"0":{"171":1},"2":{"129":1}}],["realnumber",{"0":{"48":1,"61":1,"113":1,"143":1,"145":1,"146":1,"147":1},"2":{"48":3,"62":1,"113":3,"143":1,"145":1,"146":1,"147":1}}],["result",{"2":{"35":4}}],["return",{"2":{"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,"23":2,"34":2,"35":4,"37":1,"38":4,"43":1,"44":1,"45":5,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":3,"58":1,"81":4,"82":2,"83":2,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"95":4,"96":1,"97":1,"101":1,"104":1,"105":1,"106":1,"111":1,"114":2,"116":1,"117":1,"118":3,"119":3,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"132":1,"135":2,"136":1,"137":1,"140":2,"141":1,"144":2,"145":1,"146":1,"147":1,"148":1,"158":1,"161":1}}],["returns",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"34":1,"35":2,"37":1,"38":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,"58":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,"95":1,"96":1,"101":1,"104":1,"105":1,"106":1,"111":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"148":1,"158":1,"161":1}}],["range",{"2":{"158":2,"161":2}}],["rand",{"0":{"97":1},"2":{"97":1}}],["radius",{"0":{"158":1,"161":1},"2":{"158":7,"161":7}}],["radian=true",{"2":{"6":1,"7":1,"10":1,"17":1,"19":1,"20":1,"23":1,"82":1,"124":1}}],["radian",{"0":{"5":1},"2":{"5":6,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":2,"18":2,"19":2,"20":1,"23":3}}],["radd",{"2":{"137":1}}],["raise",{"0":{"115":1},"2":{"35":1,"45":1,"46":2,"82":1,"83":1,"84":1,"85":1,"95":1,"114":2,"115":2,"135":1,"140":1,"141":1,"144":1}}],["raises",{"2":{"35":1,"45":1,"46":1,"82":1,"83":1,"84":1,"85":1,"95":1}}],["ratio",{"0":{"27":1}}],[">",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"21":1,"22":1,"34":1,"35":5,"37":3,"38":6,"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,"58":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,"96":1,"97":1,"101":1,"102":1,"103":1,"104":2,"106":3,"111":1,"117":1,"118":2,"119":5,"123":1,"124":1,"125":2,"126":1,"127":1,"129":1,"130":1,"131":1,"133":1,"134":1,"135":2,"137":2,"138":1,"139":1,"140":2,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1}}],["返回numpy数组",{"2":{"129":1}}],["返回如下行列式的结果",{"2":{"125":1}}],["返回",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"34":1,"35":1,"37":1,"38":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,"58":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,"95":1,"96":1,"101":1,"104":1,"105":1,"106":1,"111":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"148":1,"158":1,"161":1}}],["can",{"2":{"164":1}}],["cal",{"0":{"37":1,"44":1,"45":1,"46":1,"47":1,"82":1,"83":1,"84":1,"85":1,"86":1,"124":1},"2":{"37":1,"44":2,"45":1,"46":1,"47":1,"57":1,"82":2,"83":1,"84":1,"85":1,"86":1,"95":2,"97":1,"124":1}}],["callable",{"2":{"66":1,"67":1,"69":1,"70":1,"72":1,"73":1,"75":1,"76":1}}],["call",{"0":{"34":1},"2":{"34":1}}],["cz",{"2":{"80":2}}],["clamp",{"0":{"111":1},"2":{"111":1,"158":1,"161":1}}],["classmethod",{"2":{"55":1,"56":1,"88":1,"89":2,"90":2,"91":2,"92":1}}],["class",{"0":{"3":1,"4":1,"32":1,"41":1,"79":1,"99":1,"108":1,"112":1,"121":1,"157":1,"160":1},"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,"23":1,"33":1,"34":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"113":1,"114":1,"115":1,"116":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,"158":1,"161":1},"2":{"37":1,"42":2,"43":1,"44":2,"45":2,"46":2,"47":2,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":3,"57":3,"58":1,"81":1,"82":3,"83":2,"84":2,"85":2,"86":2,"87":1,"88":1,"89":3,"90":1,"91":1,"92":2,"95":4,"96":1,"101":1,"104":3,"105":1,"106":3,"109":2,"123":1,"124":2,"125":2,"126":1,"127":1,"131":1,"135":4,"136":1,"137":2,"140":4,"141":2,"144":2,"146":1,"148":1}}],["cls",{"0":{"56":1,"89":1,"90":1,"91":1,"92":1},"2":{"56":2,"89":2,"90":2,"91":2,"92":2}}],["cross",{"0":{"125":1},"2":{"45":4,"46":3,"47":1,"54":1,"84":1,"90":1,"91":1,"125":3,"126":1,"127":1}}],["c",{"0":{"80":1,"169":1},"1":{"170":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":6,"85":2,"88":1,"89":3}}],["curried",{"2":{"38":6}}],["currying",{"2":{"38":2}}],["curry",{"0":{"38":1},"2":{"38":3}}],["curveequation",{"0":{"32":1},"1":{"33":1,"34":1},"2":{"39":1,"59":1}}],["csc",{"0":{"16":1},"2":{"16":1}}],["coincident",{"2":{"85":1}}],["collinear",{"0":{"52":1},"2":{"52":1,"57":1}}],["coplanar",{"0":{"54":1},"2":{"45":1,"46":2,"54":1,"57":1}}],["complex",{"2":{"62":1}}],["complementary",{"0":{"6":1},"2":{"6":1,"82":1}}],["com",{"2":{"38":1}}],["constants",{"2":{"57":1,"95":1}}],["const",{"0":{"24":1},"1":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":1}}],["cot",{"0":{"14":1},"2":{"14":1}}],["cos",{"0":{"12":1},"2":{"12":2,"15":1,"158":2,"161":2}}],["all",{"2":{"101":1,"114":1,"123":1}}],["acos",{"2":{"82":1,"124":1}}],["axis",{"0":{"150":1,"151":1,"152":1}}],["ax",{"2":{"80":2}}],["arccos",{"2":{"158":1,"161":1}}],["array",{"0":{"129":1},"2":{"84":6,"129":2,"158":6,"161":6}}],["arrayvar",{"0":{"64":1},"2":{"64":1,"65":1,"67":2,"70":3,"73":4,"76":1}}],["area",{"2":{"158":2,"161":2}}],["are",{"2":{"46":2,"84":1,"85":1}}],["args2",{"2":{"38":2}}],["args",{"0":{"38":1},"2":{"5":1,"33":1,"34":1,"35":14,"37":1,"38":5,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"90":1,"91":1,"92":1,"95":1,"96":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"117":1,"118":1,"119":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"158":1,"161":1}}],["abs",{"0":{"132":1},"2":{"45":1,"83":1,"101":3,"114":1,"117":1,"119":1,"123":3,"132":1}}],["a",{"0":{"80":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":12,"85":2,"88":1,"89":3}}],["aaa",{"0":{"167":1},"1":{"168":1},"2":{"36":1}}],["approx",{"0":{"30":1,"43":2,"50":1,"81":1,"101":2,"112":1,"117":2,"123":2,"126":2},"1":{"113":1,"114":1,"115":1,"116":1},"2":{"18":1,"43":3,"50":2,"81":10,"96":1,"101":1,"105":3,"114":4,"117":1,"123":1,"126":1,"127":1,"136":3}}],["add",{"2":{"17":1,"38":8,"102":1,"103":1,"104":1,"133":1,"134":1,"135":1}}],["and",{"0":{"57":1,"89":1,"92":1,"93":1,"94":1,"95":1},"2":{"43":1,"46":2,"52":1,"57":1,"58":1,"81":6,"84":4,"85":1,"86":1,"89":1,"90":1,"91":1,"92":2,"93":1,"94":1,"95":2,"105":2,"115":1,"135":1,"136":2,"140":1,"141":1,"144":1}}],["anyangle",{"0":{"4":1,"6":1,"7":1,"9":1,"10":1,"17":2,"19":2,"20":1,"21":1,"22":1,"44":1,"82":1,"124":1},"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,"23":1},"2":{"6":2,"7":2,"9":2,"10":2,"17":3,"19":3,"20":2,"21":1,"22":1,"23":2,"39":1,"44":3,"59":1,"82":4,"124":4}}],["angle",{"0":{"2":1,"3":1,"4":1,"44":1,"82":1,"124":1},"1":{"3":1,"4":1,"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,"23":2},"2":{"44":3,"82":3,"124":2}}],["在github上查看",{"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,"20":1,"21":1,"22":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["或包装一个实数",{"2":{"117":2}}],["或整数元组",{"2":{"35":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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["参数方程",{"2":{"49":2}}],["参数t",{"2":{"48":2}}],["参数",{"2":{"5":1,"33":1,"34":3,"35":2,"37":1,"38":3,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"90":1,"91":1,"92":1,"95":1,"96":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"117":1,"118":1,"119":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"158":1,"161":1}}],["任意角度",{"2":{"5":2,"39":1,"59":1}}],["==",{"2":{"34":1,"45":1,"54":1,"55":3,"85":1,"91":1,"95":1}}],["=",{"0":{"5":1,"17":1,"19":1,"20":1,"21":1,"22":1,"35":1,"37":1,"43":1,"50":1,"101":1,"102":1,"103":1,"106":1,"117":2,"118":1,"119":1,"123":1,"126":1,"133":1,"134":1,"137":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1},"2":{"5":2,"33":3,"35":5,"37":5,"38":2,"42":2,"55":3,"56":1,"80":6,"81":6,"84":17,"85":2,"89":2,"90":3,"91":3,"100":3,"109":5,"113":1,"122":3,"128":4,"158":7,"161":7}}],["improve",{"2":{"171":1}}],["import",{"2":{"106":1}}],["i",{"2":{"158":4,"161":4,"164":1}}],["invalid",{"2":{"35":1}}],["intersect",{"2":{"46":2}}],["intersection",{"0":{"46":1,"84":1,"85":1},"2":{"46":1,"57":1,"84":2,"85":1,"95":2,"97":1}}],["int",{"0":{"35":2,"144":1},"2":{"35":3,"38":8,"61":1,"114":2,"144":2,"158":1,"161":1}}],["in",{"2":{"34":1,"35":1,"158":2,"161":2}}],["init",{"0":{"5":1,"33":1,"42":1,"80":1,"100":1,"109":1,"113":1,"122":1},"2":{"5":1,"33":1,"42":1,"80":1,"100":1,"109":1,"113":1,"122":1}}],["if",{"2":{"5":1,"23":1,"34":1,"35":1,"45":2,"46":2,"55":3,"57":1,"81":1,"82":1,"83":1,"84":2,"85":1,"91":1,"95":3,"114":3,"118":2,"119":2,"135":1,"140":1,"141":1,"144":1,"164":1}}],["isinstance",{"2":{"23":1,"35":2,"45":2,"82":2,"83":2,"95":2,"114":4,"135":2,"140":2,"141":1,"144":2}}],["is",{"0":{"5":1,"50":1,"51":1,"52":1,"53":1,"54":1,"87":1,"126":1,"127":1},"2":{"5":4,"6":1,"7":1,"10":1,"17":1,"19":1,"20":1,"23":1,"43":2,"45":2,"46":2,"50":2,"51":2,"52":3,"53":2,"54":1,"57":3,"58":2,"82":1,"84":1,"87":2,"95":1,"124":1,"126":1,"127":1}}],["from",{"0":{"56":1,"89":1,"90":1,"91":1,"92":1},"2":{"56":1,"86":1,"89":1,"90":2,"91":2,"92":2,"106":1,"164":1}}],["frac",{"2":{"37":3}}],["f",{"2":{"37":4,"82":1,"83":1,"95":1,"115":1,"119":3,"135":1,"140":1,"141":1,"144":1}}],["format",{"0":{"119":1},"2":{"119":1}}],["for",{"2":{"34":1,"35":1,"95":1,"135":1,"140":1,"141":1,"144":1,"158":2,"161":2}}],["false",{"0":{"5":1,"118":1,"119":1},"2":{"81":1}}],["float=0",{"2":{"117":1}}],["float=1e",{"2":{"50":1}}],["float=approx",{"2":{"43":1,"101":1,"117":1,"123":1,"126":1}}],["float=epsilon",{"2":{"37":1}}],["float",{"0":{"5":1,"8":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"20":1,"21":1,"22":1,"37":1,"43":1,"45":1,"50":1,"80":4,"83":1,"100":3,"101":1,"111":4,"117":3,"118":1,"119":1,"122":3,"123":1,"126":1,"130":1,"144":1,"158":2,"161":2},"2":{"5":1,"8":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"20":1,"21":1,"22":1,"43":2,"45":3,"50":2,"61":1,"80":9,"83":3,"100":7,"101":2,"111":9,"114":2,"117":5,"118":3,"119":3,"122":7,"123":2,"126":2,"130":3,"144":4,"146":2,"158":2,"161":2}}],["functions",{"2":{"43":2,"45":1,"50":2,"51":1,"52":1,"53":1,"54":1,"58":1,"80":1,"81":1,"83":1,"87":1,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["function",{"0":{"36":1},"1":{"37":1,"38":1}}],["func",{"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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":4,"34":1,"35":3,"37":2,"38":2,"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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1},"2":{"33":15,"34":6,"35":16,"37":9,"38":6}}],["预设",{"2":{"0":1,"1":1}}],["phi",{"2":{"158":5,"161":5}}],["p3",{"0":{"90":1},"2":{"90":4}}],["p2",{"0":{"56":1,"90":1,"109":1},"2":{"56":4,"58":2,"90":4,"109":9}}],["p1",{"0":{"56":1,"90":1,"109":1},"2":{"56":5,"58":2,"90":6,"109":9}}],["perpendicular",{"0":{"47":1},"2":{"47":1}}],["parametric",{"0":{"49":1},"2":{"49":1,"85":1}}],["parallel",{"0":{"50":1,"51":1,"86":1,"87":1,"126":1,"127":1},"2":{"43":2,"45":1,"46":2,"50":2,"51":2,"52":2,"53":1,"57":1,"58":2,"84":2,"85":1,"86":1,"87":2,"95":1,"126":1,"127":1}}],["partial",{"0":{"35":1},"2":{"35":6,"37":6}}],["particle",{"0":{"153":1,"154":1},"2":{"0":1,"1":1}}],["planes",{"2":{"84":1}}],["plane",{"0":{"78":1},"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,"96":1,"97":1},"2":{"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"95":1,"96":1}}],["plane3",{"0":{"79":1,"81":1,"82":1,"83":1,"84":1,"86":2,"87":1,"89":1,"90":1,"91":1,"92":1,"94":1},"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,"96":1,"97":1},"2":{"39":1,"59":1,"81":3,"82":4,"83":4,"84":3,"86":5,"87":3,"89":3,"90":1,"91":1,"92":1,"94":1,"95":4,"96":2,"114":1}}],["plus",{"2":{"35":3}}],["p",{"0":{"37":1},"2":{"37":21,"38":1,"104":10,"106":8,"135":4,"137":4,"140":4,"141":4}}],["points",{"0":{"56":1,"90":1},"2":{"56":1,"90":1}}],["point",{"0":{"42":1,"47":1,"48":1,"53":2,"86":1,"89":2,"92":2,"98":1},"1":{"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1},"2":{"37":1,"42":6,"43":2,"45":6,"46":4,"47":7,"48":3,"49":3,"52":2,"53":7,"54":2,"55":3,"56":2,"57":1,"58":2,"83":1,"85":4,"86":6,"89":8,"90":2,"91":6,"92":7,"95":1,"101":1,"104":2,"105":1,"106":1,"109":2,"135":2,"137":2,"140":2,"141":2}}],["point3",{"0":{"34":2,"37":1,"42":1,"45":1,"46":1,"47":1,"48":1,"53":1,"56":2,"57":1,"83":1,"85":2,"86":1,"89":1,"90":3,"92":1,"93":1,"97":1,"99":1,"101":1,"102":1,"103":2,"106":1,"109":2,"134":2,"137":2,"139":2,"141":1},"1":{"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1},"2":{"34":4,"37":3,"39":1,"42":3,"45":4,"46":3,"47":3,"48":3,"53":3,"56":6,"57":3,"59":1,"83":4,"84":1,"85":5,"86":3,"89":3,"90":7,"92":3,"93":1,"95":3,"97":2,"101":3,"102":1,"103":2,"104":5,"105":2,"106":3,"109":7,"114":1,"134":2,"135":6,"137":7,"139":2,"140":6,"141":7,"158":3,"161":3}}],["positive",{"0":{"9":1},"2":{"6":1,"7":1,"9":1}}],["python",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"21":1,"22":1,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":2,"96":1,"100":1,"101":2,"102":1,"103":1,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":2,"131":1,"133":1,"134":1,"136":1,"138":1,"139":1,"142":1,"143":1,"144":1,"146":1,"158":1,"161":1}}],["pythondef",{"2":{"5":1,"17":1,"18":1,"19":1,"20":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":2,"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,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"95":1,"96":1,"97":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"145":1,"146":1,"147":1,"148":1}}],["property",{"2":{"5":1,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":1,"87":1,"88":1,"128":1,"129":2,"130":2,"131":1}}],["presets",{"0":{"155":1,"156":1,"159":1,"162":1},"1":{"157":1,"158":1,"160":1,"161":1},"2":{"0":1,"1":1}}],["pi",{"0":{"25":1},"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"25":1,"158":2,"161":2}}],["粒子生成工具",{"2":{"0":1,"1":1}}],["mc特效红石音乐",{"2":{"164":1}}],["model",{"0":{"156":1,"159":1},"1":{"157":1,"158":1,"160":1,"161":1}}],["midpoint",{"2":{"109":1}}],["minecraft",{"2":{"164":1}}],["min",{"0":{"111":1},"2":{"111":5}}],["minus",{"2":{"35":3}}],["minimum",{"0":{"9":1},"2":{"6":1,"7":1,"9":1}}],["multiarraysfunc",{"0":{"76":1},"2":{"77":1}}],["multisinglevarsfunc",{"0":{"75":1},"2":{"77":1}}],["multivarsfunc",{"0":{"35":2,"38":1,"77":1},"2":{"35":4,"38":3}}],["mul",{"2":{"20":1,"142":1,"143":1,"144":1,"145":1}}],["matmul",{"2":{"146":1}}],["math导入使用",{"2":{"39":1,"59":1}}],["math",{"0":{"2":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":2,"78":1,"98":1,"107":1,"110":1,"120":1},"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,"23":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":1,"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,"76":2,"77":2,"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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1},"2":{"0":1,"1":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"25":1,"26":1,"27":1,"33":3,"35":1,"37":1,"38":2,"48":1,"49":1,"82":1,"113":1,"124":1,"130":1}}],["max",{"0":{"111":1},"2":{"111":5}}],["maximum",{"0":{"10":1},"2":{"10":1}}],["mp",{"0":{"2":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":2,"78":1,"98":1,"107":1,"110":1,"120":1},"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,"23":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":1,"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,"76":2,"77":2,"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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1},"2":{"0":1,"1":1,"33":3,"35":1,"37":1,"38":2,"39":1,"48":1,"49":1,"59":1,"113":1}}],["mbcp",{"0":{"0":1,"1":1,"2":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":1,"78":1,"98":1,"107":1,"110":1,"120":1,"153":1,"154":1,"155":1,"156":1,"159":1,"162":1},"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,"23":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"76":1,"77":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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1,"157":1,"158":1,"160":1,"161":1},"2":{"0":3,"1":3}}],["提供了一些工具",{"2":{"0":1,"1":1}}],["说明",{"2":{"0":1,"1":1,"2":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,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":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,"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,"76":1,"77":1,"78":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,"95":1,"96":1,"98":1,"100":1,"101":1,"104":1,"105":1,"106":1,"107":1,"109":1,"110":1,"111":1,"113":1,"117":1,"118":1,"119":1,"120":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"130":1,"131":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"158":1,"159":1,"161":1,"162":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexroot.BRV9Iu4R.js b/assets/chunks/@localSearchIndexroot.BRV9Iu4R.js new file mode 100644 index 0000000..caf65a2 --- /dev/null +++ b/assets/chunks/@localSearchIndexroot.BRV9Iu4R.js @@ -0,0 +1 @@ +const t='{"documentCount":162,"nextId":162,"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/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,12],"1":[4,1,2],"2":[2,4,1],"3":[4,4,1],"4":[11,8,25],"5":[5,8,24],"6":[5,8,23],"7":[5,8,20],"8":[6,8,21],"9":[6,8,23],"10":[5,8,18],"11":[5,8,18],"12":[5,8,18],"13":[5,8,20],"14":[5,8,20],"15":[5,8,20],"16":[7,8,15],"17":[5,8,11],"18":[6,8,14],"19":[7,8,16],"20":[7,8,13],"21":[7,8,13],"22":[3,8,15],"23":[4,1,2],"24":[2,4,7],"25":[2,4,8],"26":[3,4,10],"27":[2,4,6],"28":[2,4,6],"29":[2,4,6],"30":[4,1,2],"31":[2,4,1],"32":[9,6,26],"33":[10,6,34],"34":[14,4,73],"35":[4,1,2],"36":[13,4,69],"37":[7,4,62],"38":[3,1,20],"39":[4,1,2],"40":[2,4,1],"41":[8,6,25],"42":[11,6,43],"43":[8,6,28],"44":[10,6,63],"45":[8,6,60],"46":[8,6,29],"47":[8,6,35],"48":[9,6,42],"49":[14,6,43],"50":[8,6,36],"51":[8,6,39],"52":[8,6,36],"53":[8,6,42],"54":[4,6,27],"55":[10,6,36],"56":[9,6,52],"57":[6,6,44],"58":[4,1,2],"59":[2,4,9],"60":[2,4,9],"61":[2,4,7],"62":[2,4,8],"63":[2,4,9],"64":[2,4,8],"65":[2,4,8],"66":[2,4,9],"67":[2,4,8],"68":[2,4,8],"69":[2,4,9],"70":[2,4,8],"71":[2,4,8],"72":[2,4,9],"73":[2,4,8],"74":[2,4,8],"75":[2,4,9],"76":[4,1,2],"77":[2,4,1],"78":[9,6,36],"79":[7,6,45],"80":[10,6,62],"81":[10,6,66],"82":[9,6,71],"83":[9,6,69],"84":[9,6,30],"85":[8,6,37],"86":[5,6,25],"87":[10,6,45],"88":[11,6,39],"89":[10,6,44],"90":[10,6,35],"91":[9,6,15],"92":[9,6,15],"93":[5,6,70],"94":[6,6,35],"95":[7,6,15],"96":[4,1,2],"97":[2,4,1],"98":[8,6,26],"99":[11,6,45],"100":[8,6,13],"101":[7,6,12],"102":[4,6,34],"103":[5,6,37],"104":[7,6,36],"105":[4,1,2],"106":[2,4,1],"107":[7,6,32],"108":[4,1,2],"109":[7,4,31],"110":[2,4,1],"111":[6,6,20],"112":[5,6,31],"113":[7,6,15],"114":[5,6,11],"115":[11,4,40],"116":[11,4,43],"117":[12,4,49],"118":[4,1,3],"119":[2,4,1],"120":[8,6,29],"121":[11,6,44],"122":[8,6,31],"123":[6,6,43],"124":[13,6,43],"125":[8,6,37],"126":[4,6,17],"127":[6,6,31],"128":[5,6,33],"129":[5,6,21],"130":[4,6,10],"131":[7,6,12],"132":[7,6,12],"133":[4,6,46],"134":[5,6,37],"135":[7,6,31],"136":[6,6,12],"137":[6,6,12],"138":[3,6,45],"139":[4,6,42],"140":[6,6,12],"141":[7,6,13],"142":[9,6,55],"143":[7,6,13],"144":[7,6,38],"145":[7,6,15],"146":[5,6,21],"147":[3,4,7],"148":[3,4,8],"149":[3,4,8],"150":[3,4,8],"151":[2,1,2],"152":[2,1,2],"153":[3,1,2],"154":[2,3,2],"155":[6,5,48],"156":[1,1,1],"157":[1,1,25],"158":[1,1,1],"159":[1,1,6],"160":[1,1,4],"161":[1,1,7]},"averageFieldLength":[5.5864197530864175,5.000000000000002,22.561728395061724],"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":"Reference","titles":[]}},"dirtCount":0,"index":[["安装",{"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}}],["向量的模",{"2":{"128":2}}],["向量积",{"2":{"123":2}}],["将向量归一化",{"2":{"126":2}}],["j",{"2":{"123":1}}],["其余结果的模为平行四边形的面积",{"2":{"123":2}}],["叉乘使用cross",{"2":{"142":2}}],["叉乘结果",{"2":{"123":2}}],["叉乘为0",{"2":{"123":2}}],["叉乘",{"2":{"123":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":{"161":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}}],["k``",{"2":{"123":1}}],["k",{"2":{"79":12}}],["常数项",{"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":{"82":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":{"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}}],["则两向量平行",{"2":{"123":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":{"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":{"161":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}}],["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}}],["d",{"0":{"78":1},"2":{"78":7,"79":6,"81":1,"82":6,"83":1,"87":2}}],["documentation",{"2":{"161":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}}],["$处的梯度向量为",{"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":{"56":2}}],["计算两条直线的交点",{"2":{"45":2}}],["计算直线经过指定点p的垂线",{"2":{"46":2}}],["计算直线和直线或点之间的距离",{"2":{"44":2}}],["计算直线和直线之间的夹角",{"2":{"43":2}}],["计算三元函数在某点的梯度向量",{"2":{"36":2}}],["计算曲线上的点",{"2":{"33":2}}],["v3",{"2":{"123":2}}],["v2",{"2":{"57":2,"88":2,"89":4,"123":2}}],["v1",{"2":{"57":4,"88":2,"89":2,"123":2}}],["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":{"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}}],["``x2",{"2":{"123":1}}],["``x1",{"2":{"123":1}}],["``i",{"2":{"123":1}}],["```",{"2":{"37":1}}],["```python",{"2":{"37":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}}],["`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}}],["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}}],["|",{"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}}],["z2``",{"2":{"123":1}}],["z1``",{"2":{"123":1}}],["zero",{"0":{"147":1},"2":{"89":1,"125":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":4,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"120":5,"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":2}}],["y2",{"2":{"123":1}}],["y1",{"2":{"123":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":4,"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":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":2}}],["x3c",{"2":{"99":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x26",{"2":{"93":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":4,"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":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}}],["约等于判定误差",{"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":9,"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":{"161":1}}],["theta",{"2":{"155":3}}],["the",{"2":{"83":2,"161":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":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}}],["tip",{"2":{"36":2,"37":2,"159":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}}],["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,"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,"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,"107":3,"128":3,"155":2}}],["rmul",{"2":{"143":1}}],["rsub",{"2":{"139":1}}],["right",{"2":{"36":1}}],["reference",{"0":{"161":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":{"123":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}}],["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":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":3,"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}}],["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":{"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":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":{"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}}],["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,"82":17,"83":2,"87":2,"88":3,"89":3,"98":3,"107":5,"111":1,"120":3,"126":4,"155":7}}],["improve",{"2":{"161":1}}],["import",{"2":{"104":1}}],["i",{"2":{"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,"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}}],["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/@localSearchIndexzht.hQCregVn.js b/assets/chunks/@localSearchIndexzht.hQCregVn.js new file mode 100644 index 0000000..a966d88 --- /dev/null +++ b/assets/chunks/@localSearchIndexzht.hQCregVn.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/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/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/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":[1,1,12],"1":[4,1,2],"2":[2,4,1],"3":[4,4,1],"4":[11,8,25],"5":[5,8,24],"6":[5,8,23],"7":[5,8,20],"8":[6,8,21],"9":[6,8,23],"10":[5,8,18],"11":[5,8,18],"12":[5,8,18],"13":[5,8,20],"14":[5,8,20],"15":[5,8,20],"16":[7,8,15],"17":[5,8,11],"18":[6,8,14],"19":[7,8,16],"20":[7,8,13],"21":[7,8,13],"22":[3,8,15],"23":[4,1,2],"24":[2,4,7],"25":[2,4,8],"26":[3,4,10],"27":[2,4,6],"28":[2,4,6],"29":[2,4,6],"30":[4,1,2],"31":[2,4,1],"32":[9,6,26],"33":[10,6,35],"34":[14,4,74],"35":[4,1,2],"36":[13,4,69],"37":[7,4,63],"38":[3,1,20],"39":[4,1,2],"40":[2,4,9],"41":[2,4,9],"42":[2,4,7],"43":[2,4,8],"44":[2,4,9],"45":[2,4,8],"46":[2,4,8],"47":[2,4,9],"48":[2,4,8],"49":[2,4,8],"50":[2,4,9],"51":[2,4,8],"52":[2,4,8],"53":[2,4,9],"54":[2,4,8],"55":[2,4,8],"56":[2,4,9],"57":[4,1,2],"58":[2,4,1],"59":[8,6,25],"60":[11,6,43],"61":[8,6,28],"62":[10,6,63],"63":[8,6,60],"64":[8,6,29],"65":[8,6,35],"66":[9,6,42],"67":[14,6,43],"68":[8,6,36],"69":[8,6,39],"70":[8,6,36],"71":[8,6,42],"72":[4,6,27],"73":[10,6,36],"74":[9,6,52],"75":[6,6,44],"76":[4,1,2],"77":[2,4,1],"78":[9,6,36],"79":[7,6,45],"80":[10,6,62],"81":[10,6,66],"82":[9,6,71],"83":[9,6,69],"84":[9,6,30],"85":[8,6,37],"86":[5,6,25],"87":[10,6,45],"88":[11,6,39],"89":[10,6,44],"90":[10,6,35],"91":[9,6,15],"92":[9,6,15],"93":[5,6,70],"94":[6,6,35],"95":[7,6,15],"96":[4,1,2],"97":[2,4,1],"98":[8,6,26],"99":[11,6,45],"100":[8,6,13],"101":[7,6,12],"102":[4,6,34],"103":[5,6,37],"104":[7,6,36],"105":[4,1,2],"106":[2,4,1],"107":[7,6,32],"108":[4,1,2],"109":[7,4,31],"110":[2,4,1],"111":[6,6,20],"112":[5,6,31],"113":[7,6,15],"114":[5,6,11],"115":[11,4,40],"116":[11,4,43],"117":[12,4,49],"118":[4,1,3],"119":[2,4,1],"120":[8,6,29],"121":[11,6,44],"122":[8,6,31],"123":[6,6,43],"124":[13,6,43],"125":[8,6,37],"126":[4,6,17],"127":[6,6,31],"128":[5,6,33],"129":[5,6,21],"130":[4,6,10],"131":[7,6,12],"132":[7,6,12],"133":[4,6,46],"134":[5,6,37],"135":[7,6,31],"136":[6,6,12],"137":[6,6,12],"138":[3,6,45],"139":[4,6,42],"140":[6,6,12],"141":[7,6,13],"142":[9,6,55],"143":[7,6,13],"144":[7,6,38],"145":[7,6,15],"146":[5,6,21],"147":[3,4,7],"148":[3,4,8],"149":[3,4,8],"150":[3,4,8],"151":[2,1,2],"152":[2,1,2],"153":[3,1,2],"154":[2,3,2],"155":[6,5,48],"156":[1,1,1],"157":[1,1,25],"158":[1,1,2],"159":[1,1,7]},"averageFieldLength":[5.6437500000000025,5.049999999999998,22.806250000000006],"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}}],["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}}],["向量的模",{"2":{"128":2}}],["向量积",{"2":{"123":2}}],["将向量归一化",{"2":{"126":2}}],["j",{"2":{"123":1}}],["其余结果的模为平行四边形的面积",{"2":{"123":2}}],["叉乘使用cross",{"2":{"142":2}}],["叉乘结果",{"2":{"123":2}}],["叉乘为0",{"2":{"123":2}}],["叉乘",{"2":{"123":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}}],["k``",{"2":{"123":1}}],["k",{"2":{"79":12}}],["常数项",{"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":{"82":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":{"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}}],["则两向量平行",{"2":{"123":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":{"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}}],["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":{"37":2}}],["柯理化",{"2":{"37":2}}],["函数式编程",{"2":{"37":1}}],["函数",{"2":{"37":2}}],["对多参数函数进行柯里化",{"2":{"37":2}}],["d",{"0":{"78":1},"2":{"78":7,"79":6,"81":1,"82":6,"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}}],["$处的梯度向量为",{"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":{"74":2}}],["计算两条直线的交点",{"2":{"63":2}}],["计算直线经过指定点p的垂线",{"2":{"64":2}}],["计算直线和直线或点之间的距离",{"2":{"62":2}}],["计算直线和直线之间的夹角",{"2":{"61":2}}],["计算三元函数在某点的梯度向量",{"2":{"36":2}}],["计算曲线上的点",{"2":{"33":2}}],["v3",{"2":{"123":2}}],["v2",{"2":{"75":2,"88":2,"89":4,"123":2}}],["v1",{"2":{"75":4,"88":2,"89":2,"123":2}}],["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":{"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}}],["``x2",{"2":{"123":1}}],["``x1",{"2":{"123":1}}],["``i",{"2":{"123":1}}],["```",{"2":{"37":1}}],["```python",{"2":{"37":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}}],["`multivarsfunc`",{"2":{"34":1,"37":1}}],["无效变量类型",{"2":{"34":2}}],["抛出",{"2":{"34":1,"62":1,"63":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,"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}}],["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}}],["|",{"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}}],["z2``",{"2":{"123":1}}],["z1``",{"2":{"123":1}}],["zero",{"0":{"147":1},"2":{"89":1,"125":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":4,"83":4,"87":2,"98":7,"99":2,"102":2,"103":2,"104":2,"107":2,"112":2,"120":5,"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":2}}],["y2",{"2":{"123":1}}],["y1",{"2":{"123":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":4,"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":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":2}}],["x3c",{"2":{"99":3,"112":1,"115":1,"116":1,"117":1,"121":3,"124":1}}],["x26",{"2":{"93":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":4,"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":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}}],["约等于判定误差",{"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":9,"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,"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}}],["默認值",{"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":2}}],["π",{"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":{"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}}],["tip",{"2":{"36":2,"37":2}}],["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}}],["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,"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,"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":{"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,"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}}],["返回numpy数组",{"2":{"127":1}}],["返回如下行列式的结果",{"2":{"123":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}}],["can",{"2":{"157":1}}],["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}}],["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":3,"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}}],["arccos",{"2":{"155":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}}],["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}}],["於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}}],["或包装一个实数",{"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,"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":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}}],["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,"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":{"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,"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}}],["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}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexzht.nVtnMKQr.js b/assets/chunks/@localSearchIndexzht.nVtnMKQr.js deleted file mode 100644 index 7f2e1ce..0000000 --- a/assets/chunks/@localSearchIndexzht.nVtnMKQr.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":167,"nextId":167,"documentIds":{"0":"/zht/api/api.html#mbcp","1":"/zht/api/#mbcp","2":"/zht/api/mp_math/angle.html#mbcp-mp-math-angle","3":"/zht/api/mp_math/angle.html#class-angle","4":"/zht/api/mp_math/angle.html#class-anyangle-angle","5":"/zht/api/mp_math/angle.html#func-init-self-value-float-is-radian-bool-false","6":"/zht/api/mp_math/angle.html#func-complementary-self-anyangle","7":"/zht/api/mp_math/angle.html#func-supplementary-self-anyangle","8":"/zht/api/mp_math/angle.html#func-degree-self-float","9":"/zht/api/mp_math/angle.html#func-minimum-positive-self-anyangle","10":"/zht/api/mp_math/angle.html#func-maximum-negative-self-anyangle","11":"/zht/api/mp_math/angle.html#func-sin-self-float","12":"/zht/api/mp_math/angle.html#func-cos-self-float","13":"/zht/api/mp_math/angle.html#func-tan-self-float","14":"/zht/api/mp_math/angle.html#func-cot-self-float","15":"/zht/api/mp_math/angle.html#func-sec-self-float","16":"/zht/api/mp_math/angle.html#func-csc-self-float","17":"/zht/api/mp_math/angle.html#func-self-other-anyangle-anyangle","18":"/zht/api/mp_math/angle.html#func-eq-self-other","19":"/zht/api/mp_math/angle.html#func-self-other-anyangle-anyangle-1","20":"/zht/api/mp_math/angle.html#func-self-other-float-anyangle","21":"/zht/api/mp_math/angle.html#func-self-other-float-anyangle-1","22":"/zht/api/mp_math/angle.html#func-self-other-anyangle-float","23":"/zht/api/mp_math/angle.html#func-self-other","24":"/zht/api/mp_math/const.html#mbcp-mp-math-const","25":"/zht/api/mp_math/const.html#var-pi","26":"/zht/api/mp_math/const.html#var-e","27":"/zht/api/mp_math/const.html#var-golden-ratio","28":"/zht/api/mp_math/const.html#var-gamma","29":"/zht/api/mp_math/const.html#var-epsilon","30":"/zht/api/mp_math/const.html#var-approx","31":"/zht/api/mp_math/equation.html#mbcp-mp-math-equation","32":"/zht/api/mp_math/equation.html#class-curveequation","33":"/zht/api/mp_math/equation.html#func-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","34":"/zht/api/mp_math/equation.html#func-call-self-t-var-point3-tuple-point3","35":"/zht/api/mp_math/equation.html#func-get-partial-derivative-func-func-multivarsfunc-var-int-tuple-int-epsilon-number-epsilon-multivarsfunc","36":"/zht/api/mp_math/function.html#mbcp-mp-math-function","37":"/zht/api/mp_math/function.html#func-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","38":"/zht/api/mp_math/function.html#func-curry-func-multivarsfunc-args-var-onevarfunc","39":"/zht/api/mp_math/#mbcp-mp-math","40":"/zht/api/mp_math/line.html#mbcp-mp-math-line","41":"/zht/api/mp_math/line.html#class-line3","42":"/zht/api/mp_math/line.html#func-init-self-point-point3-direction-vector3","43":"/zht/api/mp_math/line.html#func-approx-self-other-line3-epsilon-float-approx-bool","44":"/zht/api/mp_math/line.html#func-cal-angle-self-other-line3-anyangle","45":"/zht/api/mp_math/line.html#func-cal-distance-self-other-line3-point3-float","46":"/zht/api/mp_math/line.html#func-cal-intersection-self-other-line3-point3","47":"/zht/api/mp_math/line.html#func-cal-perpendicular-self-point-point3-line3","48":"/zht/api/mp_math/line.html#func-get-point-self-t-realnumber-point3","49":"/zht/api/mp_math/line.html#func-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","50":"/zht/api/mp_math/line.html#func-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","51":"/zht/api/mp_math/line.html#func-is-parallel-self-other-line3-bool","52":"/zht/api/mp_math/line.html#func-is-collinear-self-other-line3-bool","53":"/zht/api/mp_math/line.html#func-is-point-on-self-point-point3-bool","54":"/zht/api/mp_math/line.html#func-is-coplanar-self-other-line3-bool","55":"/zht/api/mp_math/line.html#func-simplify-self","56":"/zht/api/mp_math/line.html#func-from-two-points-cls-p1-point3-p2-point3-line3","57":"/zht/api/mp_math/line.html#func-and-self-other-line3-line3-point3-none","58":"/zht/api/mp_math/line.html#func-eq-self-other-bool","59":"/zht/api/mp_math/mp_math.html#mbcp-mp-math","60":"/zht/api/mp_math/mp_math_typing.html#mbcp-mp-math-mp-math-typing","61":"/zht/api/mp_math/mp_math_typing.html#var-realnumber","62":"/zht/api/mp_math/mp_math_typing.html#var-number","63":"/zht/api/mp_math/mp_math_typing.html#var-singlevar","64":"/zht/api/mp_math/mp_math_typing.html#var-arrayvar","65":"/zht/api/mp_math/mp_math_typing.html#var-var","66":"/zht/api/mp_math/mp_math_typing.html#var-onesinglevarfunc","67":"/zht/api/mp_math/mp_math_typing.html#var-onearrayfunc","68":"/zht/api/mp_math/mp_math_typing.html#var-onevarfunc","69":"/zht/api/mp_math/mp_math_typing.html#var-twosinglevarsfunc","70":"/zht/api/mp_math/mp_math_typing.html#var-twoarraysfunc","71":"/zht/api/mp_math/mp_math_typing.html#var-twovarsfunc","72":"/zht/api/mp_math/mp_math_typing.html#var-threesinglevarsfunc","73":"/zht/api/mp_math/mp_math_typing.html#var-threearraysfunc","74":"/zht/api/mp_math/mp_math_typing.html#var-threevarsfunc","75":"/zht/api/mp_math/mp_math_typing.html#var-multisinglevarsfunc","76":"/zht/api/mp_math/mp_math_typing.html#var-multiarraysfunc","77":"/zht/api/mp_math/mp_math_typing.html#var-multivarsfunc","78":"/zht/api/mp_math/plane.html#mbcp-mp-math-plane","79":"/zht/api/mp_math/plane.html#class-plane3","80":"/zht/api/mp_math/plane.html#func-init-self-a-float-b-float-c-float-d-float","81":"/zht/api/mp_math/plane.html#func-approx-self-other-plane3-bool","82":"/zht/api/mp_math/plane.html#func-cal-angle-self-other-line3-plane3-anyangle","83":"/zht/api/mp_math/plane.html#func-cal-distance-self-other-plane3-point3-float","84":"/zht/api/mp_math/plane.html#func-cal-intersection-line3-self-other-plane3-line3","85":"/zht/api/mp_math/plane.html#func-cal-intersection-point3-self-other-line3-point3","86":"/zht/api/mp_math/plane.html#func-cal-parallel-plane3-self-point-point3-plane3","87":"/zht/api/mp_math/plane.html#func-is-parallel-self-other-plane3-bool","88":"/zht/api/mp_math/plane.html#func-normal-self-vector3","89":"/zht/api/mp_math/plane.html#func-from-point-and-normal-cls-point-point3-normal-vector3-plane3","90":"/zht/api/mp_math/plane.html#func-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","91":"/zht/api/mp_math/plane.html#func-from-two-lines-cls-l1-line3-l2-line3-plane3","92":"/zht/api/mp_math/plane.html#func-from-point-and-line-cls-point-point3-line-line3-plane3","93":"/zht/api/mp_math/plane.html#func-and-self-other-line3-point3-none","94":"/zht/api/mp_math/plane.html#func-and-self-other-plane3-line3-none","95":"/zht/api/mp_math/plane.html#func-and-self-other","96":"/zht/api/mp_math/plane.html#func-eq-self-other-bool","97":"/zht/api/mp_math/plane.html#func-rand-self-other-line3-point3","98":"/zht/api/mp_math/point.html#mbcp-mp-math-point","99":"/zht/api/mp_math/point.html#class-point3","100":"/zht/api/mp_math/point.html#func-init-self-x-float-y-float-z-float","101":"/zht/api/mp_math/point.html#func-approx-self-other-point3-epsilon-float-approx-bool","102":"/zht/api/mp_math/point.html#func-self-other-vector3-point3","103":"/zht/api/mp_math/point.html#func-self-other-point3-point3","104":"/zht/api/mp_math/point.html#func-self-other","105":"/zht/api/mp_math/point.html#func-eq-self-other","106":"/zht/api/mp_math/point.html#func-self-other-point3-vector3","107":"/zht/api/mp_math/segment.html#mbcp-mp-math-segment","108":"/zht/api/mp_math/segment.html#class-segment3","109":"/zht/api/mp_math/segment.html#func-init-self-p1-point3-p2-point3","110":"/zht/api/mp_math/utils.html#mbcp-mp-math-utils","111":"/zht/api/mp_math/utils.html#func-clamp-x-float-min-float-max-float-float","112":"/zht/api/mp_math/utils.html#class-approx","113":"/zht/api/mp_math/utils.html#func-init-self-value-realnumber","114":"/zht/api/mp_math/utils.html#func-eq-self-other","115":"/zht/api/mp_math/utils.html#func-raise-type-error-self-other","116":"/zht/api/mp_math/utils.html#func-ne-self-other","117":"/zht/api/mp_math/utils.html#func-approx-x-float-y-float-0-0-epsilon-float-approx-bool","118":"/zht/api/mp_math/utils.html#func-sign-x-float-only-neg-bool-false-str","119":"/zht/api/mp_math/utils.html#func-sign-format-x-float-only-neg-bool-false-str","120":"/zht/api/mp_math/vector.html#mbcp-mp-math-vector","121":"/zht/api/mp_math/vector.html#class-vector3","122":"/zht/api/mp_math/vector.html#func-init-self-x-float-y-float-z-float","123":"/zht/api/mp_math/vector.html#func-approx-self-other-vector3-epsilon-float-approx-bool","124":"/zht/api/mp_math/vector.html#func-cal-angle-self-other-vector3-anyangle","125":"/zht/api/mp_math/vector.html#func-cross-self-other-vector3-vector3","126":"/zht/api/mp_math/vector.html#func-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","127":"/zht/api/mp_math/vector.html#func-is-parallel-self-other-vector3-bool","128":"/zht/api/mp_math/vector.html#func-normalize-self","129":"/zht/api/mp_math/vector.html#func-np-array-self-np-ndarray","130":"/zht/api/mp_math/vector.html#func-length-self-float","131":"/zht/api/mp_math/vector.html#func-unit-self-vector3","132":"/zht/api/mp_math/vector.html#func-abs-self","133":"/zht/api/mp_math/vector.html#func-self-other-vector3-vector3","134":"/zht/api/mp_math/vector.html#func-self-other-point3-point3","135":"/zht/api/mp_math/vector.html#func-self-other","136":"/zht/api/mp_math/vector.html#func-eq-self-other","137":"/zht/api/mp_math/vector.html#func-self-other-point3-point3-1","138":"/zht/api/mp_math/vector.html#func-self-other-vector3-vector3-1","139":"/zht/api/mp_math/vector.html#func-self-other-point3-point3-2","140":"/zht/api/mp_math/vector.html#func-self-other-1","141":"/zht/api/mp_math/vector.html#func-self-other-point3","142":"/zht/api/mp_math/vector.html#func-self-other-vector3-vector3-2","143":"/zht/api/mp_math/vector.html#func-self-other-realnumber-vector3","144":"/zht/api/mp_math/vector.html#func-self-other-int-float-vector3-vector3","145":"/zht/api/mp_math/vector.html#func-self-other-realnumber-vector3-1","146":"/zht/api/mp_math/vector.html#func-self-other-vector3-realnumber","147":"/zht/api/mp_math/vector.html#func-self-other-realnumber-vector3-2","148":"/zht/api/mp_math/vector.html#func-self-vector3","149":"/zht/api/mp_math/vector.html#var-zero-vector3","150":"/zht/api/mp_math/vector.html#var-x-axis","151":"/zht/api/mp_math/vector.html#var-y-axis","152":"/zht/api/mp_math/vector.html#var-z-axis","153":"/zht/api/particle/#mbcp-particle","154":"/zht/api/particle/particle.html#mbcp-particle","155":"/zht/api/presets/#mbcp-presets","156":"/zht/api/presets/model/#mbcp-presets-model","157":"/zht/api/presets/model/#class-geometricmodels","158":"/zht/api/presets/model/#func-sphere-radius-float-density-float","159":"/zht/api/presets/model/model.html#mbcp-presets-model","160":"/zht/api/presets/model/model.html#class-geometricmodels","161":"/zht/api/presets/model/model.html#func-sphere-radius-float-density-float","162":"/zht/api/presets/presets.html#mbcp-presets","163":"/zht/demo/best-practice.html#最佳實踐","164":"/zht/demo/best-practice.html#作品","165":"/zht/guide/#开始不了一点","166":"/zht/refer/#reference"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,13],"1":[1,1,13],"2":[4,1,3],"3":[2,4,1],"4":[4,4,1],"5":[11,8,25],"6":[5,8,24],"7":[5,8,23],"8":[5,8,20],"9":[6,8,21],"10":[6,8,23],"11":[5,8,18],"12":[5,8,18],"13":[5,8,18],"14":[5,8,20],"15":[5,8,20],"16":[5,8,20],"17":[7,8,15],"18":[5,8,11],"19":[6,8,14],"20":[7,8,16],"21":[7,8,13],"22":[7,8,13],"23":[3,8,15],"24":[4,1,3],"25":[2,4,7],"26":[2,4,8],"27":[3,4,10],"28":[2,4,6],"29":[2,4,6],"30":[2,4,6],"31":[4,1,3],"32":[2,4,1],"33":[8,6,26],"34":[10,6,35],"35":[14,4,74],"36":[4,1,3],"37":[13,4,69],"38":[7,4,63],"39":[3,1,21],"40":[4,1,3],"41":[2,4,1],"42":[8,6,25],"43":[11,6,43],"44":[8,6,28],"45":[10,6,63],"46":[8,6,60],"47":[8,6,29],"48":[8,6,35],"49":[9,6,42],"50":[14,6,43],"51":[8,6,36],"52":[8,6,39],"53":[8,6,36],"54":[8,6,42],"55":[4,6,27],"56":[10,6,36],"57":[9,6,52],"58":[6,6,44],"59":[3,1,21],"60":[4,1,3],"61":[2,4,9],"62":[2,4,9],"63":[2,4,7],"64":[2,4,8],"65":[2,4,9],"66":[2,4,8],"67":[2,4,8],"68":[2,4,9],"69":[2,4,8],"70":[2,4,8],"71":[2,4,9],"72":[2,4,8],"73":[2,4,8],"74":[2,4,9],"75":[2,4,8],"76":[2,4,8],"77":[2,4,9],"78":[4,1,3],"79":[2,4,1],"80":[9,6,36],"81":[7,6,45],"82":[10,6,62],"83":[10,6,66],"84":[9,6,71],"85":[9,6,69],"86":[9,6,30],"87":[8,6,37],"88":[5,6,25],"89":[10,6,45],"90":[11,6,39],"91":[10,6,44],"92":[10,6,35],"93":[9,6,15],"94":[9,6,15],"95":[5,6,70],"96":[6,6,35],"97":[7,6,15],"98":[4,1,3],"99":[2,4,1],"100":[8,6,26],"101":[11,6,45],"102":[8,6,13],"103":[7,6,12],"104":[4,6,34],"105":[5,6,37],"106":[7,6,36],"107":[4,1,3],"108":[2,4,1],"109":[7,6,32],"110":[4,1,3],"111":[7,4,31],"112":[2,4,1],"113":[6,6,20],"114":[5,6,31],"115":[7,6,15],"116":[5,6,11],"117":[11,4,40],"118":[11,4,43],"119":[12,4,49],"120":[4,1,4],"121":[2,4,1],"122":[8,6,29],"123":[11,6,44],"124":[8,6,31],"125":[6,6,43],"126":[13,6,43],"127":[8,6,37],"128":[4,6,17],"129":[6,6,31],"130":[5,6,33],"131":[5,6,21],"132":[4,6,10],"133":[7,6,12],"134":[7,6,12],"135":[4,6,46],"136":[5,6,37],"137":[7,6,31],"138":[6,6,12],"139":[6,6,12],"140":[3,6,45],"141":[4,6,42],"142":[6,6,12],"143":[7,6,13],"144":[9,6,55],"145":[7,6,13],"146":[7,6,38],"147":[7,6,15],"148":[5,6,21],"149":[3,4,7],"150":[3,4,8],"151":[3,4,8],"152":[3,4,8],"153":[2,1,3],"154":[2,1,3],"155":[2,1,3],"156":[3,1,3],"157":[2,3,2],"158":[6,5,48],"159":[3,1,3],"160":[2,3,2],"161":[6,5,48],"162":[2,1,3],"163":[1,1,1],"164":[1,1,25],"165":[1,1,2],"166":[1,1,7]},"averageFieldLength":[5.5149700598802385,4.916167664670656,22.50299401197604],"storedFields":{"0":{"title":"mbcp","titles":[]},"1":{"title":"mbcp","titles":[]},"2":{"title":"mbcp.mp_math.angle","titles":[]},"3":{"title":"class Angle","titles":["mbcp.mp_math.angle"]},"4":{"title":"class AnyAngle(Angle)","titles":["mbcp.mp_math.angle"]},"5":{"title":"func __init__(self, value: float, is_radian: bool = False)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"func complementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"func supplementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"func degree(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"func minimum_positive(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"func maximum_negative(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"func sin(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"func cos(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"func tan(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"func cot(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"func sec(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"func csc(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"func self + other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"func self - other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"func self * other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"func self / other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"func self / other: AnyAngle => float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"func self / other","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"24":{"title":"mbcp.mp_math.const","titles":[]},"25":{"title":"var PI","titles":["mbcp.mp_math.const"]},"26":{"title":"var E","titles":["mbcp.mp_math.const"]},"27":{"title":"var GOLDEN_RATIO","titles":["mbcp.mp_math.const"]},"28":{"title":"var GAMMA","titles":["mbcp.mp_math.const"]},"29":{"title":"var EPSILON","titles":["mbcp.mp_math.const"]},"30":{"title":"var APPROX","titles":["mbcp.mp_math.const"]},"31":{"title":"mbcp.mp_math.equation","titles":[]},"32":{"title":"class CurveEquation","titles":["mbcp.mp_math.equation"]},"33":{"title":"func __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"func __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["mbcp.mp_math.equation","class CurveEquation"]},"35":{"title":"func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc","titles":["mbcp.mp_math.equation"]},"36":{"title":"mbcp.mp_math.function","titles":[]},"37":{"title":"func cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["mbcp.mp_math.function"]},"38":{"title":"func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc","titles":["mbcp.mp_math.function"]},"39":{"title":"mbcp.mp_math","titles":[]},"40":{"title":"mbcp.mp_math.line","titles":[]},"41":{"title":"class Line3","titles":["mbcp.mp_math.line"]},"42":{"title":"func __init__(self, point: Point3, direction: Vector3)","titles":["mbcp.mp_math.line","class Line3"]},"43":{"title":"func approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"44":{"title":"func cal_angle(self, other: Line3) -> AnyAngle","titles":["mbcp.mp_math.line","class Line3"]},"45":{"title":"func cal_distance(self, other: Line3 | Point3) -> float","titles":["mbcp.mp_math.line","class Line3"]},"46":{"title":"func cal_intersection(self, other: Line3) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"47":{"title":"func cal_perpendicular(self, point: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"48":{"title":"func get_point(self, t: RealNumber) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"49":{"title":"func get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["mbcp.mp_math.line","class Line3"]},"50":{"title":"func is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"51":{"title":"func is_parallel(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"52":{"title":"func is_collinear(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"53":{"title":"func is_point_on(self, point: Point3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"54":{"title":"func is_coplanar(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"55":{"title":"func simplify(self)","titles":["mbcp.mp_math.line","class Line3"]},"56":{"title":"func from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"57":{"title":"func __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["mbcp.mp_math.line","class Line3"]},"58":{"title":"func __eq__(self, other) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"59":{"title":"mbcp.mp_math","titles":[]},"60":{"title":"mbcp.mp_math.mp_math_typing","titles":[]},"61":{"title":"var RealNumber","titles":["mbcp.mp_math.mp_math_typing"]},"62":{"title":"var Number","titles":["mbcp.mp_math.mp_math_typing"]},"63":{"title":"var SingleVar","titles":["mbcp.mp_math.mp_math_typing"]},"64":{"title":"var ArrayVar","titles":["mbcp.mp_math.mp_math_typing"]},"65":{"title":"var Var","titles":["mbcp.mp_math.mp_math_typing"]},"66":{"title":"var OneSingleVarFunc","titles":["mbcp.mp_math.mp_math_typing"]},"67":{"title":"var OneArrayFunc","titles":["mbcp.mp_math.mp_math_typing"]},"68":{"title":"var OneVarFunc","titles":["mbcp.mp_math.mp_math_typing"]},"69":{"title":"var TwoSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"70":{"title":"var TwoArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"71":{"title":"var TwoVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"72":{"title":"var ThreeSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"73":{"title":"var ThreeArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"74":{"title":"var ThreeVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"75":{"title":"var MultiSingleVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"76":{"title":"var MultiArraysFunc","titles":["mbcp.mp_math.mp_math_typing"]},"77":{"title":"var MultiVarsFunc","titles":["mbcp.mp_math.mp_math_typing"]},"78":{"title":"mbcp.mp_math.plane","titles":[]},"79":{"title":"class Plane3","titles":["mbcp.mp_math.plane"]},"80":{"title":"func __init__(self, a: float, b: float, c: float, d: float)","titles":["mbcp.mp_math.plane","class Plane3"]},"81":{"title":"func approx(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"82":{"title":"func cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["mbcp.mp_math.plane","class Plane3"]},"83":{"title":"func cal_distance(self, other: Plane3 | Point3) -> float","titles":["mbcp.mp_math.plane","class Plane3"]},"84":{"title":"func cal_intersection_line3(self, other: Plane3) -> Line3","titles":["mbcp.mp_math.plane","class Plane3"]},"85":{"title":"func cal_intersection_point3(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"86":{"title":"func cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"87":{"title":"func is_parallel(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"88":{"title":"func normal(self) -> Vector3","titles":["mbcp.mp_math.plane","class Plane3"]},"89":{"title":"func from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"90":{"title":"func from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"91":{"title":"func from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"92":{"title":"func from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"93":{"title":"func __and__(self, other: Line3) -> Point3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"94":{"title":"func __and__(self, other: Plane3) -> Line3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"95":{"title":"func __and__(self, other)","titles":["mbcp.mp_math.plane","class Plane3"]},"96":{"title":"func __eq__(self, other) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"97":{"title":"func __rand__(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"98":{"title":"mbcp.mp_math.point","titles":[]},"99":{"title":"class Point3","titles":["mbcp.mp_math.point"]},"100":{"title":"func __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.point","class Point3"]},"101":{"title":"func approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.point","class Point3"]},"102":{"title":"func self + other: Vector3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"103":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"104":{"title":"func self + other","titles":["mbcp.mp_math.point","class Point3"]},"105":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.point","class Point3"]},"106":{"title":"func self - other: Point3 => Vector3","titles":["mbcp.mp_math.point","class Point3"]},"107":{"title":"mbcp.mp_math.segment","titles":[]},"108":{"title":"class Segment3","titles":["mbcp.mp_math.segment"]},"109":{"title":"func __init__(self, p1: Point3, p2: Point3)","titles":["mbcp.mp_math.segment","class Segment3"]},"110":{"title":"mbcp.mp_math.utils","titles":[]},"111":{"title":"func clamp(x: float, min_: float, max_: float) -> float","titles":["mbcp.mp_math.utils"]},"112":{"title":"class Approx","titles":["mbcp.mp_math.utils"]},"113":{"title":"func __init__(self, value: RealNumber)","titles":["mbcp.mp_math.utils","class Approx"]},"114":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"115":{"title":"func raise_type_error(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"116":{"title":"func __ne__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"117":{"title":"func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.utils"]},"118":{"title":"func sign(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"119":{"title":"func sign_format(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"120":{"title":"mbcp.mp_math.vector","titles":[]},"121":{"title":"class Vector3","titles":["mbcp.mp_math.vector"]},"122":{"title":"func __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.vector","class Vector3"]},"123":{"title":"func approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"124":{"title":"func cal_angle(self, other: Vector3) -> AnyAngle","titles":["mbcp.mp_math.vector","class Vector3"]},"125":{"title":"func cross(self, other: Vector3) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"126":{"title":"func is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"127":{"title":"func is_parallel(self, other: Vector3) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"128":{"title":"func normalize(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"129":{"title":"func np_array(self) -> np.ndarray","titles":["mbcp.mp_math.vector","class Vector3"]},"130":{"title":"func length(self) -> float","titles":["mbcp.mp_math.vector","class Vector3"]},"131":{"title":"func unit(self) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"132":{"title":"func __abs__(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"133":{"title":"func self + other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"134":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"135":{"title":"func self + other","titles":["mbcp.mp_math.vector","class Vector3"]},"136":{"title":"func __eq__(self, other)","titles":["mbcp.mp_math.vector","class Vector3"]},"137":{"title":"func self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"138":{"title":"func self - other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"139":{"title":"func self - other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"140":{"title":"func self - other","titles":["mbcp.mp_math.vector","class Vector3"]},"141":{"title":"func self - other: Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"142":{"title":"func self * other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"143":{"title":"func self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"144":{"title":"func self * other: int | float | Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"145":{"title":"func self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"146":{"title":"func self @ other: Vector3 => RealNumber","titles":["mbcp.mp_math.vector","class Vector3"]},"147":{"title":"func self / other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"148":{"title":"func - self => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"149":{"title":"var zero_vector3","titles":["mbcp.mp_math.vector"]},"150":{"title":"var x_axis","titles":["mbcp.mp_math.vector"]},"151":{"title":"var y_axis","titles":["mbcp.mp_math.vector"]},"152":{"title":"var z_axis","titles":["mbcp.mp_math.vector"]},"153":{"title":"mbcp.particle","titles":[]},"154":{"title":"mbcp.particle","titles":[]},"155":{"title":"mbcp.presets","titles":[]},"156":{"title":"mbcp.presets.model","titles":[]},"157":{"title":"class GeometricModels","titles":["mbcp.presets.model"]},"158":{"title":"func sphere(radius: float, density: float)","titles":["mbcp.presets.model","class GeometricModels"]},"159":{"title":"mbcp.presets.model","titles":[]},"160":{"title":"class GeometricModels","titles":["mbcp.presets.model"]},"161":{"title":"func sphere(radius: float, density: float)","titles":["mbcp.presets.model","class GeometricModels"]},"162":{"title":"mbcp.presets","titles":[]},"163":{"title":"最佳實踐","titles":[]},"164":{"title":"作品","titles":["最佳實踐"]},"165":{"title":"开始不了一点","titles":[]},"166":{"title":"Reference","titles":[]}},"dirtCount":0,"index":[["∫12x111",{"2":{"165":1}}],["开始不了一点",{"0":{"165":1}}],["红石音乐",{"2":{"164":1}}],["这么可爱真是抱歉",{"2":{"164":1}}],["这玩意不太稳定",{"2":{"35":2}}],["轻涟",{"2":{"164":1}}],["芙宁娜pv曲",{"2":{"164":1}}],["有点甜~",{"2":{"164":1}}],["有关函数柯里化",{"2":{"38":2}}],["星穹铁道",{"2":{"164":1}}],["崩坏",{"2":{"164":1}}],["使一颗心免于哀伤",{"2":{"164":1}}],["总有一条蜿蜒在童话镇里",{"2":{"164":1}}],["童话镇~",{"2":{"164":1}}],["特效红石音乐",{"2":{"164":2}}],["作品",{"0":{"164":1}}],["4",{"2":{"158":1,"161":1}}],["球体上的点集",{"2":{"158":2,"161":2}}],["生成球体上的点集",{"2":{"158":2,"161":2}}],["几何模型点集",{"2":{"156":1,"159":1}}],["零向量",{"2":{"149":1}}],["负向量",{"2":{"148":2}}],["取负",{"2":{"148":2}}],["取两平面的交集",{"2":{"95":2}}],["非点乘",{"2":{"144":2}}],["别去点那边实现了",{"2":{"137":2}}],["单位向量",{"2":{"131":2}}],["单变量",{"2":{"63":1}}],["模",{"2":{"130":2}}],["向量的模",{"2":{"130":2}}],["向量积",{"2":{"125":2}}],["将向量归一化",{"2":{"128":2}}],["j",{"2":{"125":1}}],["其余结果的模为平行四边形的面积",{"2":{"125":2}}],["叉乘使用cross",{"2":{"144":2}}],["叉乘结果",{"2":{"125":2}}],["叉乘为0",{"2":{"125":2}}],["叉乘",{"2":{"125":2}}],["以及一些常用的向量",{"2":{"120":1}}],["格式化符号数",{"2":{"119":2}}],["quot",{"2":{"118":2,"119":4}}],["符号",{"2":{"118":2,"119":2}}],["获取该向量的单位向量",{"2":{"131":2}}],["获取数的符号",{"2":{"118":2}}],["获取直线的参数方程",{"2":{"49":2}}],["获取直线上的点",{"2":{"48":2}}],["用于判断是否近似于0",{"2":{"117":2}}],["用于近似比较对象",{"2":{"113":2}}],["限定在区间内的值",{"2":{"111":2}}],["值",{"2":{"111":2}}],["区间限定函数",{"2":{"111":2}}],["us",{"2":{"166":1}}],["unit",{"0":{"131":1},"2":{"131":1}}],["unsupported",{"2":{"45":1,"82":1,"83":1,"95":1,"115":1,"135":1,"140":1,"141":1,"144":1}}],["utils",{"0":{"110":1},"1":{"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1}}],["中心点",{"2":{"109":1}}],["中实现",{"2":{"106":2}}],["长度",{"2":{"109":1}}],["线段的另一个端点",{"2":{"109":2}}],["线段的一个端点",{"2":{"109":2}}],["新的向量或点",{"2":{"135":2}}],["新的向量",{"2":{"106":2,"140":2}}],["新的点",{"2":{"104":2,"137":2,"141":2}}],["已在",{"2":{"106":2}}],["已知一个函数$f",{"2":{"37":1}}],["已知一个函数f",{"2":{"37":1}}],["坐标",{"2":{"100":6}}],["笛卡尔坐标系中的点",{"2":{"100":2}}],["人话",{"2":{"95":2}}],["法向量",{"2":{"88":2,"89":2}}],["k``",{"2":{"125":1}}],["k",{"2":{"81":12}}],["常数项",{"2":{"80":2}}],["常量",{"2":{"25":1}}],["平面上一点",{"2":{"89":2,"92":2}}],["平面的法向量",{"2":{"88":2}}],["平面",{"2":{"86":2,"89":2,"90":2,"91":2,"92":2}}],["平面与直线平行或重合",{"2":{"85":2}}],["平面平行且无交线",{"2":{"84":2}}],["平面方程",{"2":{"80":2}}],["平行线返回none",{"2":{"57":2}}],["多元函数",{"2":{"77":1}}],["多元数组函数",{"2":{"76":1}}],["多元单变量函数",{"2":{"75":1}}],["二元函数",{"2":{"71":1}}],["二元数组函数",{"2":{"70":1}}],["二元单变量函数",{"2":{"69":1}}],["一元函数",{"2":{"68":1}}],["一元数组函数",{"2":{"67":1}}],["一元单变量函数",{"2":{"66":1}}],["一阶偏导",{"2":{"35":2}}],["变量",{"2":{"65":1}}],["变量位置",{"2":{"35":2}}],["数组运算结果",{"2":{"144":2}}],["数组运算",{"2":{"144":2}}],["数组变量",{"2":{"64":1}}],["数2",{"2":{"117":2}}],["数1",{"2":{"117":2}}],["数",{"2":{"62":1,"118":2,"119":2}}],["数学工具",{"2":{"0":1,"1":1}}],["類型",{"2":{"61":1,"62":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"149":1,"150":1,"151":1,"152":1}}],["实数",{"2":{"61":1,"113":2}}],["∧",{"2":{"58":2}}],["交线",{"2":{"84":2,"95":2}}],["交线返回交点",{"2":{"57":2}}],["交集",{"2":{"57":2,"95":2}}],["交点",{"2":{"46":2,"85":2}}],["重合线返回自身",{"2":{"57":2}}],["由点和直线构造平面",{"2":{"92":2}}],["由点和法向量构造平面",{"2":{"89":2}}],["由两直线构造平面",{"2":{"91":2}}],["由两点构造直线",{"2":{"56":2}}],["由三点构造平面",{"2":{"90":2}}],["由一个点和一个方向向量确定",{"2":{"42":2}}],["工厂函数",{"2":{"56":2,"89":2,"90":2,"91":2,"92":2}}],["并对向量单位化",{"2":{"55":2}}],["处理",{"2":{"55":2}}],["处的梯度向量为",{"2":{"37":1}}],["化",{"2":{"55":2}}],["按照可行性一次对x",{"2":{"55":2}}],["不返回值",{"2":{"55":2,"128":2}}],["不支持的类型",{"2":{"45":2,"82":2,"83":2,"95":2}}],["自体归一化",{"2":{"128":2}}],["自体简化",{"2":{"55":2}}],["自然对数的底",{"2":{"26":1}}],["等价相等",{"2":{"55":2}}],["简化直线方程",{"2":{"55":2}}],["两直线方向向量的叉乘与两直线上任意一点的向量的点积为0",{"2":{"54":2}}],["两角的和为180°",{"2":{"7":2}}],["两角的和为90°",{"2":{"6":2}}],["充要条件",{"2":{"54":2}}],["判断两个向量是否相等",{"2":{"136":2}}],["判断两个向量是否平行",{"2":{"127":2}}],["判断两个向量是否近似平行",{"2":{"126":2}}],["判断两个向量是否近似相等",{"2":{"123":2}}],["判断两个数是否近似相等",{"2":{"117":2}}],["判断两个点是否相等",{"2":{"105":2}}],["判断两个点是否近似相等",{"2":{"101":2}}],["判断两个平面是否等价",{"2":{"96":2}}],["判断两个平面是否平行",{"2":{"87":2}}],["判断两个平面是否近似相等",{"2":{"81":2}}],["判断两条直线是否等价",{"2":{"58":2}}],["判断两条直线是否共面",{"2":{"54":2}}],["判断两条直线是否共线",{"2":{"52":2}}],["判断两条直线是否平行",{"2":{"51":2}}],["判断两条直线是否近似平行",{"2":{"50":2}}],["判断两条直线是否近似相等",{"2":{"43":2}}],["判断点是否在直线上",{"2":{"53":2}}],["另一个向量或数",{"2":{"144":2}}],["另一个向量或点",{"2":{"135":2,"140":2}}],["另一个向量",{"2":{"123":2,"124":2,"125":2,"126":2,"127":2,"136":2,"146":2}}],["另一个点或向量",{"2":{"104":2}}],["另一个点",{"2":{"101":2,"105":2,"106":2,"137":2,"141":2}}],["另一个平面或点",{"2":{"83":2}}],["另一个平面或直线",{"2":{"82":2,"95":2}}],["另一个平面",{"2":{"81":2,"84":2,"87":2,"96":2}}],["另一",{"2":{"51":2,"52":2,"54":2}}],["另一条直线或点",{"2":{"45":2}}],["另一条直线",{"2":{"43":2,"44":2,"46":2,"50":2,"57":2,"58":2}}],["则两向量平行",{"2":{"125":2}}],["则同一个t对应的点不同",{"2":{"48":2}}],["则其在点$",{"2":{"37":1}}],["则其在点",{"2":{"37":1}}],["但起始点和方向向量不同",{"2":{"48":2}}],["同一条直线",{"2":{"48":2}}],["垂线",{"2":{"47":2}}],["指定点",{"2":{"47":2,"86":2}}],["直线",{"2":{"56":2,"85":2,"91":4,"92":2}}],["直线不共面",{"2":{"46":2}}],["直线平行",{"2":{"46":2}}],["直线上的一点",{"2":{"42":2}}],["距离",{"2":{"45":2,"83":2}}],["夹角",{"2":{"44":2,"82":2,"124":2}}],["是否只返回负数的符号",{"2":{"118":2,"119":2}}],["是否相等",{"2":{"105":2,"136":2}}],["是否等价",{"2":{"58":2,"96":2}}],["是否共面",{"2":{"54":2}}],["是否共线",{"2":{"52":2}}],["是否在直线上",{"2":{"53":2}}],["是否平行",{"2":{"51":2,"87":2,"127":2}}],["是否近似平行",{"2":{"50":2,"126":2}}],["是否近似相等",{"2":{"43":2,"81":2,"101":2,"117":2,"123":2}}],["是否为弧度",{"2":{"5":2}}],["误差",{"2":{"43":2,"50":2,"101":2,"117":2,"123":2,"126":2}}],["方向向量",{"2":{"42":2,"109":1}}],["三元数组函数",{"2":{"73":1}}],["三元单变量函数",{"2":{"72":1}}],["三元函数",{"2":{"37":2,"74":1}}],["三维空间中的线段",{"2":{"109":2}}],["三维空间中的直线",{"2":{"42":2}}],["三维向量",{"2":{"39":1,"59":1}}],["三维线段",{"2":{"39":1,"59":1}}],["三维点",{"2":{"39":1,"59":1}}],["三维平面",{"2":{"39":1,"59":1}}],["三维直线",{"2":{"39":1,"59":1}}],["导入的类有",{"2":{"39":1,"59":1}}],["本包定义了一些常用的导入",{"2":{"39":1,"59":1}}],["本模块塞了一些预设",{"2":{"155":1,"162":1}}],["本模块用于内部类型提示",{"2":{"60":1}}],["本模块定义了粒子生成相关的工具",{"2":{"153":1,"154":1}}],["本模块定义了3维向量的类vector3",{"2":{"120":1}}],["本模块定义了一些常用的工具函数",{"2":{"110":1}}],["本模块定义了一些常用的常量",{"2":{"24":1}}],["本模块定义了三维空间中点的类",{"2":{"98":1}}],["本模块定义了三维空间中的线段类",{"2":{"107":1}}],["本模块定义了三维空间中的平面类",{"2":{"78":1}}],["本模块定义了三维空间中的直线类",{"2":{"40":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"31":1}}],["本模块定义了角度相关的类",{"2":{"2":1}}],["本模块是主模块",{"2":{"0":1,"1":1}}],["help",{"2":{"166":1}}],["heart",{"2":{"164":1}}],["have",{"2":{"84":1}}],["html",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["https",{"2":{"38":1,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["high",{"2":{"35":2}}],["hide",{"2":{"35":2,"38":1}}],["6",{"2":{"38":2}}],["3维向量",{"2":{"122":2}}],["3a",{"2":{"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"58":1,"80":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["355859667",{"2":{"38":1}}],["3",{"2":{"38":2,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["3vf",{"0":{"37":1},"2":{"37":1}}],["breaking",{"2":{"164":1}}],["by",{"2":{"80":2}}],["bound=iterable",{"2":{"64":1}}],["bound=number",{"2":{"63":1}}],["bool=false",{"2":{"5":1,"118":1,"119":1}}],["bool",{"0":{"5":1,"43":1,"50":1,"51":1,"52":1,"53":1,"54":1,"58":1,"81":1,"87":1,"96":1,"101":1,"117":1,"118":1,"119":1,"123":1,"126":1,"127":1},"2":{"43":3,"50":3,"51":3,"52":3,"53":3,"54":3,"58":3,"81":3,"87":3,"96":3,"101":3,"105":2,"117":3,"118":2,"119":2,"123":3,"126":3,"127":3,"136":2}}],["b",{"0":{"80":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":12,"85":2,"88":1,"89":3}}],["範例",{"2":{"38":1}}],["柯里化后的函数",{"2":{"38":2}}],["柯理化",{"2":{"38":2}}],["函数式编程",{"2":{"38":1}}],["函数",{"2":{"38":2}}],["对多参数函数进行柯里化",{"2":{"38":2}}],["d",{"0":{"80":1},"2":{"80":7,"81":6,"83":1,"84":6,"85":1,"89":2}}],["documentation",{"2":{"166":1}}],["doc",{"2":{"129":1}}],["docs",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["do",{"2":{"46":2}}],["distance",{"0":{"45":1,"83":1},"2":{"45":1,"83":1}}],["direction",{"0":{"42":1},"2":{"42":5,"43":1,"44":2,"45":8,"46":6,"47":1,"48":1,"49":3,"50":2,"51":2,"52":1,"53":1,"54":2,"55":4,"56":2,"58":3,"82":1,"84":2,"85":4,"91":1,"92":1,"95":1,"109":2}}],["dz",{"2":{"37":2}}],["dy",{"2":{"37":2}}],["dx",{"2":{"37":2}}],["density",{"0":{"158":1,"161":1},"2":{"158":4,"161":4}}],["derivative",{"0":{"35":1},"2":{"35":6}}],["degree",{"0":{"8":1},"2":{"8":1}}],["def",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"21":1,"22":1,"35":2,"38":2,"56":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"102":1,"103":1,"129":1,"130":1,"131":1,"133":1,"134":1,"138":1,"139":1,"142":1,"143":1,"158":1,"161":1}}],["$处的梯度向量为",{"2":{"37":1}}],["$",{"2":{"37":3}}],["梯度",{"2":{"37":2}}],["点乘结果",{"2":{"146":2}}],["点乘",{"2":{"146":2}}],["点乘使用",{"2":{"144":2}}],["点3",{"2":{"90":2}}],["点法式构造",{"2":{"89":2}}],["点2",{"2":{"56":2,"90":2}}],["点1",{"2":{"56":2,"90":2}}],["点",{"2":{"37":2,"48":2,"53":2}}],["∂f∂z",{"2":{"37":1}}],["∂f∂y",{"2":{"37":1}}],["∂f∂x",{"2":{"37":1}}],["∇f",{"2":{"37":1}}],["计算平行于该平面且过指定点的平面",{"2":{"86":2}}],["计算平面与直线的交点",{"2":{"85":2}}],["计算平面与平面或点之间的距离",{"2":{"83":2}}],["计算平面与平面之间的夹角",{"2":{"82":2}}],["计算两个向量之间的夹角",{"2":{"124":2}}],["计算两平面的交线",{"2":{"84":2}}],["计算两条直线点集合的交集",{"2":{"57":2}}],["计算两条直线的交点",{"2":{"46":2}}],["计算直线经过指定点p的垂线",{"2":{"47":2}}],["计算直线和直线或点之间的距离",{"2":{"45":2}}],["计算直线和直线之间的夹角",{"2":{"44":2}}],["计算三元函数在某点的梯度向量",{"2":{"37":2}}],["计算曲线上的点",{"2":{"34":2}}],["v3",{"2":{"125":2}}],["v2",{"2":{"58":2,"90":2,"91":4,"125":2}}],["v1",{"2":{"58":4,"90":2,"91":2,"125":2}}],["vector",{"0":{"120":1},"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,"151":1,"152":1},"2":{"42":1,"88":1,"89":1,"104":1,"106":3,"144":1}}],["vector3",{"0":{"37":1,"42":1,"88":1,"89":1,"102":1,"106":1,"121":1,"123":1,"124":1,"125":2,"126":1,"127":1,"131":1,"133":2,"138":2,"142":2,"143":1,"144":2,"145":1,"146":1,"147":1,"148":1,"149":1},"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},"2":{"37":2,"39":1,"42":3,"59":1,"88":4,"89":3,"91":1,"102":1,"104":2,"106":7,"114":2,"123":3,"124":3,"125":7,"126":3,"127":4,"131":3,"133":2,"135":7,"136":2,"138":2,"140":7,"141":1,"142":2,"143":1,"144":9,"145":1,"146":3,"147":2,"148":4,"149":2,"150":2,"151":2,"152":2}}],["v",{"2":{"35":2,"104":2,"106":4,"135":8,"137":2,"140":8,"141":2}}],["var",{"0":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"34":1,"35":1,"38":1,"61":1,"62":1,"63":1,"64":1,"65":2,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"149":1,"150":1,"151":1,"152":1},"2":{"33":3,"34":1,"35":14,"37":1,"38":7,"48":1,"49":1}}],["valueerror",{"2":{"35":3,"46":4,"84":3,"85":3}}],["value",{"0":{"5":1,"113":1},"2":{"5":5,"113":5,"114":6,"115":1}}],["求高阶偏导函数",{"2":{"35":1}}],["求n元函数一阶偏导函数",{"2":{"35":2}}],["l2",{"0":{"91":1},"2":{"91":5}}],["l1",{"0":{"91":1},"2":{"91":7}}],["lambda",{"2":{"49":3}}],["left",{"2":{"37":1}}],["length",{"0":{"130":1},"2":{"45":5,"46":1,"82":2,"109":2,"124":2,"126":1,"128":5,"130":1,"131":1,"132":1}}],["len",{"2":{"34":1}}],["linalg",{"2":{"84":3}}],["lines",{"0":{"91":1},"2":{"46":2,"91":1}}],["line",{"0":{"40":1,"92":2},"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,"58":1},"2":{"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"58":1,"82":1,"84":1,"85":2,"91":1,"92":6,"95":2}}],["line3",{"0":{"41":1,"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"82":1,"84":2,"85":1,"91":2,"92":1,"93":1,"94":1,"97":1},"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,"58":1},"2":{"39":1,"43":3,"44":3,"45":4,"46":3,"47":4,"50":3,"51":3,"52":3,"54":3,"56":3,"57":6,"58":2,"59":1,"82":4,"84":5,"85":3,"91":5,"92":3,"93":1,"94":1,"95":6,"97":1,"114":1}}],["library",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["list",{"2":{"35":8,"158":10,"161":10}}],["litedoc",{"2":{"35":2,"38":1}}],["`np",{"2":{"129":1}}],["`none`",{"2":{"57":1,"95":1}}],["``x2",{"2":{"125":1}}],["``x1",{"2":{"125":1}}],["``i",{"2":{"125":1}}],["```",{"2":{"38":1}}],["```python",{"2":{"38":1}}],["`str`",{"2":{"118":1,"119":1}}],["`plane3`",{"2":{"81":1,"82":1,"83":1,"84":1,"86":1,"87":1,"89":1,"95":1,"96":1}}],["`point3`",{"2":{"37":1,"42":1,"45":1,"46":1,"47":1,"48":1,"53":1,"56":2,"57":1,"83":1,"85":1,"86":1,"89":1,"90":3,"92":1,"95":1,"101":1,"104":2,"105":1,"106":1,"109":2,"135":2,"137":2,"140":2,"141":2}}],["`onesinglevarfunc`",{"2":{"49":3}}],["`onevarfunc`",{"2":{"33":3}}],["`realnumber`",{"2":{"48":1,"113":1}}],["`tuple`",{"2":{"49":1}}],["`typeerror`",{"2":{"45":1,"82":1,"83":1,"95":1}}],["`threesinglevarsfunc`",{"2":{"37":1}}],["`anyangle`",{"2":{"44":1,"82":1,"124":1}}],["`bool`",{"2":{"43":1,"50":1,"51":1,"52":1,"53":1,"54":1,"58":1,"81":1,"87":1,"96":1,"101":1,"105":1,"117":1,"118":1,"119":1,"123":1,"126":1,"127":1,"136":1}}],["`float`",{"2":{"43":1,"45":1,"50":1,"80":4,"83":1,"100":3,"101":1,"111":4,"117":3,"118":1,"119":1,"122":3,"123":1,"126":1,"130":1,"144":1,"146":1}}],["`line3`",{"2":{"43":1,"44":1,"45":1,"46":1,"47":1,"50":1,"51":1,"52":1,"54":1,"56":1,"57":2,"58":1,"82":1,"84":1,"85":1,"91":2,"92":1,"95":2}}],["`valueerror`",{"2":{"46":2,"84":1,"85":1}}],["`var`",{"2":{"38":1}}],["`vector3`",{"2":{"42":1,"88":1,"89":1,"104":1,"106":2,"123":1,"124":1,"125":2,"126":1,"127":1,"131":1,"135":2,"136":1,"140":2,"144":2,"146":1,"148":1}}],["`multivarsfunc`",{"2":{"35":1,"38":1}}],["无效变量类型",{"2":{"35":2}}],["抛出",{"2":{"35":1,"45":1,"46":1,"82":1,"83":1,"84":1,"85":1,"95":1}}],["偏导函数",{"2":{"35":2}}],["偏移量",{"2":{"35":2,"37":2}}],["高阶偏导数值",{"2":{"35":1}}],["高阶偏导",{"2":{"35":2}}],["可愛くてごめん",{"2":{"164":1}}],["可直接从mbcp",{"2":{"39":1,"59":1}}],["可参考",{"2":{"38":1}}],["可参考函数式编程",{"2":{"38":1}}],["可为整数",{"2":{"35":2}}],["可导入",{"2":{"0":1,"1":1}}],["因此该函数的稳定性有待提升",{"2":{"35":2}}],["目前数学界对于一个函数的导函数并没有通解的说法",{"2":{"35":2}}],["目标点",{"2":{"34":2}}],["warning",{"2":{"35":2}}],["慎用",{"2":{"35":2}}],["num",{"2":{"158":5,"161":5}}],["numpy",{"2":{"129":2}}],["numpy数组",{"2":{"129":2}}],["number=epsilon",{"2":{"35":1}}],["number",{"0":{"35":1,"62":1},"2":{"64":1}}],["ndarray`",{"2":{"129":1}}],["ndarray",{"0":{"129":1},"2":{"129":3}}],["neg",{"0":{"118":1,"119":1},"2":{"118":4,"119":4,"148":1}}],["negative",{"0":{"10":1},"2":{"10":1}}],["ne",{"0":{"116":1},"2":{"116":1}}],["np",{"0":{"129":2},"2":{"84":9,"129":4,"158":9,"161":9}}],["no",{"2":{"84":1}}],["normal",{"0":{"88":1,"89":2},"2":{"82":5,"84":4,"85":1,"86":2,"87":2,"88":1,"89":7,"90":3,"91":1,"92":1,"95":3}}],["normalize",{"0":{"128":1},"2":{"55":1,"128":1}}],["none",{"0":{"57":1,"93":1,"94":1},"2":{"57":4,"93":1,"94":1,"95":4}}],["not",{"2":{"45":1,"46":4,"57":1,"116":1,"118":1,"119":1}}],["nabla",{"2":{"37":1}}],["n元函数",{"2":{"35":2}}],["参数方程",{"2":{"49":2}}],["参数t",{"2":{"48":2}}],["参数",{"2":{"34":2,"35":1,"38":2}}],["|",{"0":{"34":1,"35":1,"45":1,"57":2,"82":1,"83":1,"93":1,"94":1,"144":2},"2":{"34":1,"35":1,"45":3,"57":6,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"77":1,"82":3,"83":3,"93":1,"94":1,"95":6,"104":2,"135":4,"140":4,"144":4}}],["曲线方程",{"2":{"33":2,"39":1,"59":1}}],["z轴单位向量",{"2":{"152":1}}],["z轴分量",{"2":{"122":2}}],["z2``",{"2":{"125":1}}],["z1``",{"2":{"125":1}}],["zero",{"0":{"149":1},"2":{"91":1,"127":1}}],["z系数",{"2":{"80":2}}],["zhihu",{"2":{"38":1}}],["zhuanlan",{"2":{"38":1}}],["z0",{"2":{"37":2}}],["zip",{"2":{"34":1}}],["z函数",{"2":{"33":2}}],["z",{"0":{"33":1,"100":1,"122":1,"152":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":4,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"114":2,"122":5,"123":2,"125":4,"128":1,"129":1,"130":1,"135":4,"136":2,"137":2,"140":4,"141":2,"144":3,"146":2,"147":1,"148":1,"158":2,"161":2}}],["y轴单位向量",{"2":{"151":1}}],["y轴分量",{"2":{"122":2}}],["y2",{"2":{"125":1}}],["y1",{"2":{"125":1}}],["y系数",{"2":{"80":2}}],["y0",{"2":{"37":2}}],["y函数",{"2":{"33":2}}],["y",{"0":{"33":1,"100":1,"117":1,"122":1,"151":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":4,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"114":2,"117":4,"122":5,"123":2,"125":4,"128":1,"129":1,"130":1,"135":4,"136":2,"137":2,"140":4,"141":2,"144":3,"146":2,"147":1,"148":1,"158":2,"161":2}}],["x轴单位向量",{"2":{"150":1}}],["x轴分量",{"2":{"122":2}}],["x3c",{"2":{"101":3,"114":1,"117":1,"118":1,"119":1,"123":3,"126":1}}],["x26",{"2":{"95":1}}],["x系数",{"2":{"80":2}}],["x0",{"2":{"37":2}}],["x函数",{"2":{"33":2}}],["x",{"0":{"33":1,"100":1,"111":1,"117":1,"118":1,"119":1,"122":1,"150":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":2,"83":1,"84":4,"85":4,"89":2,"100":7,"101":2,"104":2,"105":2,"106":2,"109":2,"111":4,"114":2,"117":4,"118":5,"119":8,"122":5,"123":2,"125":4,"128":1,"129":1,"130":1,"135":4,"136":2,"137":2,"140":4,"141":2,"144":3,"146":2,"147":1,"148":1,"158":2,"161":2}}],["约等于判定误差",{"2":{"30":1}}],["精度误差",{"2":{"29":1}}],["06",{"0":{"50":1},"2":{"50":1}}],["001",{"2":{"30":1}}],["0001",{"2":{"29":1}}],["0",{"0":{"117":2},"2":{"28":1,"29":1,"30":1,"34":3,"37":6,"45":2,"54":1,"55":8,"80":2,"81":3,"83":2,"84":9,"85":1,"95":1,"117":1,"118":2,"119":4,"149":3,"150":2,"151":2,"152":2,"158":2,"161":2}}],["欧拉常数",{"2":{"28":1}}],["5772156649015329",{"2":{"28":1}}],["5",{"2":{"27":1,"83":1}}],["黄金分割比",{"2":{"27":1}}],["geometricmodels",{"0":{"157":1,"160":1},"1":{"158":1,"161":1}}],["generated",{"2":{"129":1}}],["get",{"0":{"35":1,"48":1,"49":1},"2":{"35":2,"48":1,"49":1,"85":1,"91":1}}],["gradient",{"0":{"37":1},"2":{"37":1}}],["gamma",{"0":{"28":1}}],["golden",{"0":{"27":1}}],["gt",{"0":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"21":1,"22":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"101":1,"102":1,"103":1,"106":1,"111":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"133":1,"134":1,"137":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1},"2":{"104":2,"106":2,"119":3,"125":1,"135":2,"137":1,"140":2,"141":1}}],["默認值",{"2":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":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,"76":1,"77":1,"149":1,"150":1,"151":1,"152":1}}],["默认为否",{"2":{"5":2}}],["π",{"2":{"25":1}}],["to",{"2":{"166":1}}],["theta",{"2":{"158":3,"161":3}}],["the",{"2":{"85":2,"166":1}}],["three",{"0":{"90":1},"2":{"90":1}}],["threevarsfunc",{"0":{"74":1}}],["threearraysfunc",{"0":{"73":1},"2":{"74":1}}],["threesinglevarsfunc",{"0":{"37":1,"72":1},"2":{"37":3,"74":1}}],["twovarsfunc",{"0":{"71":1}}],["twoarraysfunc",{"0":{"70":1},"2":{"71":1}}],["twosinglevarsfunc",{"0":{"69":1},"2":{"71":1}}],["two",{"0":{"56":1,"91":1},"2":{"56":1,"91":1}}],["tip",{"2":{"37":2,"38":2}}],["typevar",{"2":{"63":1,"64":1}}],["typealias",{"2":{"61":1,"62":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1}}],["typeerror",{"2":{"45":3,"46":1,"82":3,"83":3,"95":3,"115":1,"135":1,"140":1,"141":1,"144":1}}],["type",{"0":{"115":1},"2":{"35":1,"45":1,"82":2,"83":2,"95":2,"114":2,"115":4,"135":2,"140":2,"141":2,"144":2}}],["typing",{"0":{"60":1},"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,"76":1,"77":1},"2":{"33":3,"35":1,"37":1,"38":2,"48":1,"49":1,"113":1}}],["tuple",{"0":{"34":1,"35":1,"49":1},"2":{"34":2,"35":2,"49":3}}],["t",{"0":{"34":1,"48":1},"2":{"34":10,"48":4,"49":6,"85":4}}],["truediv",{"2":{"21":1,"22":1,"23":1,"147":1}}],["tan",{"0":{"13":1},"2":{"13":2,"14":1}}],["operand",{"2":{"95":1,"135":1,"140":1,"141":1,"144":1}}],["only",{"0":{"118":1,"119":1},"2":{"118":4,"119":4}}],["on",{"0":{"53":1},"2":{"53":1}}],["one",{"2":{"164":1}}],["onearrayfunc",{"0":{"67":1},"2":{"68":1}}],["onesinglevarfunc",{"0":{"49":3,"66":1},"2":{"49":7,"68":1}}],["onevarfunc",{"0":{"33":3,"38":1,"68":1},"2":{"33":9,"38":1}}],["or",{"2":{"57":1,"85":1}}],["org",{"2":{"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"95":2,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":1,"136":1,"144":1,"146":1}}],["order",{"2":{"35":2}}],["overload",{"2":{"20":1,"21":2,"22":1,"92":1,"93":2,"94":1,"101":1,"102":2,"103":1,"132":1,"133":2,"134":1,"137":1,"138":2,"139":1,"141":1,"142":2,"143":1}}],["other",{"0":{"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"43":1,"44":1,"45":1,"46":1,"50":1,"51":1,"52":1,"54":1,"57":1,"58":1,"81":1,"82":1,"83":1,"84":1,"85":1,"87":1,"93":1,"94":1,"95":1,"96":1,"97":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"114":1,"115":1,"116":1,"123":1,"124":1,"125":1,"126":1,"127":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},"2":{"17":2,"18":2,"19":2,"20":2,"21":1,"22":1,"23":4,"43":5,"44":4,"45":13,"46":9,"50":4,"51":4,"52":5,"54":5,"57":7,"58":5,"81":15,"82":9,"83":9,"84":17,"85":11,"87":4,"93":1,"94":1,"95":10,"96":4,"97":2,"101":6,"102":1,"103":1,"104":6,"105":6,"106":6,"114":9,"115":2,"116":2,"123":6,"124":5,"125":9,"126":4,"127":4,"133":1,"134":1,"135":12,"136":6,"137":6,"138":1,"139":1,"140":12,"141":8,"142":1,"143":1,"144":12,"145":2,"146":6,"147":4}}],["ep",{"2":{"164":1}}],["epsilon",{"0":{"29":1,"35":2,"37":2,"43":1,"50":1,"101":1,"117":1,"123":1,"126":1},"2":{"35":7,"37":12,"43":5,"50":4,"101":6,"117":4,"123":6,"126":4}}],["error",{"0":{"115":1},"2":{"114":2,"115":1}}],["exceptions",{"2":{"45":1,"46":1,"82":1,"83":1,"84":1,"85":1,"95":1}}],["examples",{"2":{"38":1}}],["exp",{"2":{"26":1}}],["elif",{"2":{"35":1,"45":3,"57":1,"81":2,"82":1,"83":1,"84":2,"95":1,"114":1,"118":1,"119":1,"135":1,"140":1,"144":1}}],["else",{"2":{"5":1,"34":1,"35":1,"45":2,"57":1,"81":1,"82":1,"83":1,"95":1,"114":2,"118":2,"119":2,"135":1,"140":1,"141":1,"144":1}}],["e",{"0":{"26":1},"2":{"26":1}}],["equations",{"0":{"49":1},"2":{"49":1,"85":1}}],["equation",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1}}],["eq",{"0":{"18":1,"58":1,"96":1,"105":1,"114":1,"136":1},"2":{"18":1,"58":1,"96":1,"105":1,"114":1,"116":1,"136":1}}],["+1",{"2":{"119":2}}],["+=",{"2":{"35":1}}],["+",{"0":{"17":1,"102":1,"103":1,"104":1,"133":1,"134":1,"135":1,"137":1},"2":{"17":1,"27":1,"37":3,"38":4,"46":1,"48":1,"49":3,"80":6,"83":5,"85":5,"104":7,"109":3,"118":3,"119":3,"130":2,"135":11,"137":5,"146":2,"158":1,"161":1}}],["1e",{"0":{"50":1}}],["1",{"2":{"14":1,"15":1,"16":1,"26":1,"27":1,"34":1,"38":2,"91":1,"119":6,"150":1,"151":1,"152":1,"158":4,"161":4}}],["180",{"2":{"5":1,"8":1}}],["正割值",{"2":{"15":4}}],["正切值",{"2":{"13":4}}],["正弦值",{"2":{"11":4}}],["余割值",{"2":{"16":4}}],["余切值",{"2":{"14":4}}],["余弦值",{"2":{"12":4}}],["余角",{"2":{"6":4}}],["最佳實踐",{"0":{"163":1},"1":{"164":1}}],["最大值",{"2":{"111":2}}],["最大负角度",{"2":{"10":2}}],["最大负角",{"2":{"10":2}}],["最小值",{"2":{"111":2}}],["最小正角度",{"2":{"9":2}}],["最小正角",{"2":{"9":2}}],["弧度",{"2":{"8":2}}],["角度",{"2":{"8":2}}],["角度或弧度值",{"2":{"5":2}}],["补角",{"2":{"7":4}}],["sphere",{"0":{"158":1,"161":1},"2":{"158":1,"161":1}}],["stop",{"2":{"164":1}}],["staticmethod",{"2":{"157":1,"158":1,"160":1,"161":1}}],["stable",{"2":{"129":1}}],["str",{"0":{"118":1,"119":1},"2":{"118":3,"119":3}}],["stdtypes",{"2":{"49":1}}],["s",{"2":{"95":1,"135":1,"140":1,"141":1,"144":1}}],["solve",{"2":{"84":3}}],["sign",{"0":{"118":1,"119":1},"2":{"118":1,"119":1}}],["simplify",{"0":{"55":1},"2":{"55":1}}],["singlevar",{"0":{"63":1},"2":{"63":1,"65":1,"66":2,"69":3,"72":4,"75":1}}],["sin",{"0":{"11":1},"2":{"11":2,"16":1,"158":3,"161":3}}],["sqrt",{"2":{"27":1,"130":1,"158":1,"161":1}}],["sub",{"2":{"19":1,"106":1,"138":1,"139":1,"140":1}}],["supplementary",{"0":{"7":1},"2":{"7":1}}],["segment",{"0":{"107":1},"1":{"108":1,"109":1}}],["segment3",{"0":{"108":1},"1":{"109":1},"2":{"39":1,"59":1}}],["sec",{"0":{"15":1},"2":{"15":1}}],["self",{"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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":1,"34":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,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"93":1,"94":1,"95":1,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"113":1,"114":1,"115":1,"116":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},"2":{"5":3,"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":1,"22":1,"23":3,"33":4,"34":7,"42":3,"43":4,"44":2,"45":13,"46":8,"47":3,"48":3,"49":7,"50":2,"51":2,"52":4,"53":3,"54":3,"55":8,"57":6,"58":4,"80":5,"81":16,"82":4,"83":8,"84":15,"85":9,"86":2,"87":2,"88":4,"93":1,"94":1,"95":5,"96":2,"97":2,"100":4,"101":4,"102":1,"103":1,"104":4,"105":4,"106":4,"109":15,"113":2,"114":9,"115":2,"116":2,"122":4,"123":4,"124":3,"125":7,"126":2,"127":2,"128":5,"129":4,"130":4,"131":3,"132":2,"133":1,"134":1,"135":7,"136":4,"137":4,"138":1,"139":1,"140":7,"141":4,"142":1,"143":1,"144":7,"145":2,"146":4,"147":4,"148":4}}],["255万个粒子",{"2":{"164":1}}],["2",{"2":{"6":1,"9":1,"10":1,"27":1,"35":1,"37":3,"38":2,"46":1,"83":3,"109":3,"130":3,"158":2,"161":2}}],["rmul",{"2":{"145":1}}],["rsub",{"2":{"141":1}}],["right",{"2":{"37":1}}],["reference",{"0":{"166":1},"2":{"129":1}}],["realnumber",{"0":{"48":1,"61":1,"113":1,"143":1,"145":1,"146":1,"147":1},"2":{"48":3,"62":1,"113":3,"143":1,"145":1,"146":1,"147":1}}],["result",{"2":{"35":4}}],["return",{"2":{"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,"23":2,"34":2,"35":4,"37":1,"38":4,"43":1,"44":1,"45":5,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":3,"58":1,"81":4,"82":2,"83":2,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"95":4,"96":1,"97":1,"101":1,"104":1,"105":1,"106":1,"111":1,"114":2,"116":1,"117":1,"118":3,"119":3,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"132":1,"135":2,"136":1,"137":1,"140":2,"141":1,"144":2,"145":1,"146":1,"147":1,"148":1,"158":1,"161":1}}],["returns",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"34":1,"35":2,"37":1,"38":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,"58":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,"95":1,"96":1,"101":1,"104":1,"105":1,"106":1,"111":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"148":1,"158":1,"161":1}}],["range",{"2":{"158":2,"161":2}}],["rand",{"0":{"97":1},"2":{"97":1}}],["radius",{"0":{"158":1,"161":1},"2":{"158":7,"161":7}}],["radian=true",{"2":{"6":1,"7":1,"10":1,"17":1,"19":1,"20":1,"23":1,"82":1,"124":1}}],["radian",{"0":{"5":1},"2":{"5":6,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":2,"18":2,"19":2,"20":1,"23":3}}],["radd",{"2":{"137":1}}],["raise",{"0":{"115":1},"2":{"35":1,"45":1,"46":2,"82":1,"83":1,"84":1,"85":1,"95":1,"114":2,"115":2,"135":1,"140":1,"141":1,"144":1}}],["raises",{"2":{"35":1,"45":1,"46":1,"82":1,"83":1,"84":1,"85":1,"95":1}}],["ratio",{"0":{"27":1}}],[">",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"21":1,"22":1,"34":1,"35":5,"37":3,"38":6,"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,"58":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,"96":1,"97":1,"101":1,"102":1,"103":1,"104":2,"106":3,"111":1,"117":1,"118":2,"119":5,"123":1,"124":1,"125":2,"126":1,"127":1,"129":1,"130":1,"131":1,"133":1,"134":1,"135":2,"137":2,"138":1,"139":1,"140":2,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1}}],["返回numpy数组",{"2":{"129":1}}],["返回如下行列式的结果",{"2":{"125":1}}],["返回",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"34":1,"35":1,"37":1,"38":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,"58":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,"95":1,"96":1,"101":1,"104":1,"105":1,"106":1,"111":1,"117":1,"118":1,"119":1,"123":1,"124":1,"125":1,"126":1,"127":1,"129":1,"130":1,"131":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"148":1,"158":1,"161":1}}],["can",{"2":{"164":1}}],["cal",{"0":{"37":1,"44":1,"45":1,"46":1,"47":1,"82":1,"83":1,"84":1,"85":1,"86":1,"124":1},"2":{"37":1,"44":2,"45":1,"46":1,"47":1,"57":1,"82":2,"83":1,"84":1,"85":1,"86":1,"95":2,"97":1,"124":1}}],["callable",{"2":{"66":1,"67":1,"69":1,"70":1,"72":1,"73":1,"75":1,"76":1}}],["call",{"0":{"34":1},"2":{"34":1}}],["cz",{"2":{"80":2}}],["clamp",{"0":{"111":1},"2":{"111":1,"158":1,"161":1}}],["classmethod",{"2":{"55":1,"56":1,"88":1,"89":2,"90":2,"91":2,"92":1}}],["class",{"0":{"3":1,"4":1,"32":1,"41":1,"79":1,"99":1,"108":1,"112":1,"121":1,"157":1,"160":1},"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,"23":1,"33":1,"34":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"113":1,"114":1,"115":1,"116":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,"158":1,"161":1},"2":{"37":1,"42":2,"43":1,"44":2,"45":2,"46":2,"47":2,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":3,"57":3,"58":1,"81":1,"82":3,"83":2,"84":2,"85":2,"86":2,"87":1,"88":1,"89":3,"90":1,"91":1,"92":2,"95":4,"96":1,"101":1,"104":3,"105":1,"106":3,"109":2,"123":1,"124":2,"125":2,"126":1,"127":1,"131":1,"135":4,"136":1,"137":2,"140":4,"141":2,"144":2,"146":1,"148":1}}],["cls",{"0":{"56":1,"89":1,"90":1,"91":1,"92":1},"2":{"56":2,"89":2,"90":2,"91":2,"92":2}}],["cross",{"0":{"125":1},"2":{"45":4,"46":3,"47":1,"54":1,"84":1,"90":1,"91":1,"125":3,"126":1,"127":1}}],["c",{"0":{"80":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":6,"85":2,"88":1,"89":3}}],["curried",{"2":{"38":6}}],["currying",{"2":{"38":2}}],["curry",{"0":{"38":1},"2":{"38":3}}],["curveequation",{"0":{"32":1},"1":{"33":1,"34":1},"2":{"39":1,"59":1}}],["csc",{"0":{"16":1},"2":{"16":1}}],["coincident",{"2":{"85":1}}],["collinear",{"0":{"52":1},"2":{"52":1,"57":1}}],["coplanar",{"0":{"54":1},"2":{"45":1,"46":2,"54":1,"57":1}}],["complex",{"2":{"62":1}}],["complementary",{"0":{"6":1},"2":{"6":1,"82":1}}],["com",{"2":{"38":1}}],["constants",{"2":{"57":1,"95":1}}],["const",{"0":{"24":1},"1":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":1}}],["cot",{"0":{"14":1},"2":{"14":1}}],["cos",{"0":{"12":1},"2":{"12":2,"15":1,"158":2,"161":2}}],["all",{"2":{"101":1,"114":1,"123":1}}],["acos",{"2":{"82":1,"124":1}}],["axis",{"0":{"150":1,"151":1,"152":1}}],["ax",{"2":{"80":2}}],["arccos",{"2":{"158":1,"161":1}}],["array",{"0":{"129":1},"2":{"84":6,"129":2,"158":6,"161":6}}],["arrayvar",{"0":{"64":1},"2":{"64":1,"65":1,"67":2,"70":3,"73":4,"76":1}}],["area",{"2":{"158":2,"161":2}}],["are",{"2":{"46":2,"84":1,"85":1}}],["args2",{"2":{"38":2}}],["args",{"0":{"38":1},"2":{"5":1,"33":1,"34":1,"35":14,"37":1,"38":5,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"90":1,"91":1,"92":1,"95":1,"96":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"117":1,"118":1,"119":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"158":1,"161":1}}],["abs",{"0":{"132":1},"2":{"45":1,"83":1,"101":3,"114":1,"117":1,"119":1,"123":3,"132":1}}],["a",{"0":{"80":1},"2":{"38":4,"80":5,"81":7,"83":2,"84":12,"85":2,"88":1,"89":3}}],["aaa",{"2":{"36":1}}],["approx",{"0":{"30":1,"43":2,"50":1,"81":1,"101":2,"112":1,"117":2,"123":2,"126":2},"1":{"113":1,"114":1,"115":1,"116":1},"2":{"18":1,"43":3,"50":2,"81":10,"96":1,"101":1,"105":3,"114":4,"117":1,"123":1,"126":1,"127":1,"136":3}}],["add",{"2":{"17":1,"38":8,"102":1,"103":1,"104":1,"133":1,"134":1,"135":1}}],["and",{"0":{"57":1,"89":1,"92":1,"93":1,"94":1,"95":1},"2":{"43":1,"46":2,"52":1,"57":1,"58":1,"81":6,"84":4,"85":1,"86":1,"89":1,"90":1,"91":1,"92":2,"93":1,"94":1,"95":2,"105":2,"115":1,"135":1,"136":2,"140":1,"141":1,"144":1}}],["anyangle",{"0":{"4":1,"6":1,"7":1,"9":1,"10":1,"17":2,"19":2,"20":1,"21":1,"22":1,"44":1,"82":1,"124":1},"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,"23":1},"2":{"6":2,"7":2,"9":2,"10":2,"17":3,"19":3,"20":2,"21":1,"22":1,"23":2,"39":1,"44":3,"59":1,"82":4,"124":4}}],["angle",{"0":{"2":1,"3":1,"4":1,"44":1,"82":1,"124":1},"1":{"3":1,"4":1,"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,"23":2},"2":{"44":3,"82":3,"124":2}}],["於github上查看",{"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,"20":1,"21":1,"22":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["或包装一个实数",{"2":{"117":2}}],["或整数元组",{"2":{"35":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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1}}],["變數説明",{"2":{"5":1,"33":1,"34":1,"35":1,"37":1,"38":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"90":1,"91":1,"92":1,"95":1,"96":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"117":1,"118":1,"119":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"158":1,"161":1}}],["任意角度",{"2":{"5":2,"39":1,"59":1}}],["==",{"2":{"34":1,"45":1,"54":1,"55":3,"85":1,"91":1,"95":1}}],["=",{"0":{"5":1,"17":1,"19":1,"20":1,"21":1,"22":1,"35":1,"37":1,"43":1,"50":1,"101":1,"102":1,"103":1,"106":1,"117":2,"118":1,"119":1,"123":1,"126":1,"133":1,"134":1,"137":1,"138":1,"139":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1},"2":{"5":2,"33":3,"35":5,"37":5,"38":2,"42":2,"55":3,"56":1,"80":6,"81":6,"84":17,"85":2,"89":2,"90":3,"91":3,"100":3,"109":5,"113":1,"122":3,"128":4,"158":7,"161":7}}],["improve",{"2":{"166":1}}],["import",{"2":{"106":1}}],["i",{"2":{"158":4,"161":4,"164":1}}],["invalid",{"2":{"35":1}}],["intersect",{"2":{"46":2}}],["intersection",{"0":{"46":1,"84":1,"85":1},"2":{"46":1,"57":1,"84":2,"85":1,"95":2,"97":1}}],["int",{"0":{"35":2,"144":1},"2":{"35":3,"38":8,"61":1,"114":2,"144":2,"158":1,"161":1}}],["in",{"2":{"34":1,"35":1,"158":2,"161":2}}],["init",{"0":{"5":1,"33":1,"42":1,"80":1,"100":1,"109":1,"113":1,"122":1},"2":{"5":1,"33":1,"42":1,"80":1,"100":1,"109":1,"113":1,"122":1}}],["if",{"2":{"5":1,"23":1,"34":1,"35":1,"45":2,"46":2,"55":3,"57":1,"81":1,"82":1,"83":1,"84":2,"85":1,"91":1,"95":3,"114":3,"118":2,"119":2,"135":1,"140":1,"141":1,"144":1,"164":1}}],["isinstance",{"2":{"23":1,"35":2,"45":2,"82":2,"83":2,"95":2,"114":4,"135":2,"140":2,"141":1,"144":2}}],["is",{"0":{"5":1,"50":1,"51":1,"52":1,"53":1,"54":1,"87":1,"126":1,"127":1},"2":{"5":4,"6":1,"7":1,"10":1,"17":1,"19":1,"20":1,"23":1,"43":2,"45":2,"46":2,"50":2,"51":2,"52":3,"53":2,"54":1,"57":3,"58":2,"82":1,"84":1,"87":2,"95":1,"124":1,"126":1,"127":1}}],["from",{"0":{"56":1,"89":1,"90":1,"91":1,"92":1},"2":{"56":1,"86":1,"89":1,"90":2,"91":2,"92":2,"106":1,"164":1}}],["frac",{"2":{"37":3}}],["f",{"2":{"37":4,"82":1,"83":1,"95":1,"115":1,"119":3,"135":1,"140":1,"141":1,"144":1}}],["format",{"0":{"119":1},"2":{"119":1}}],["for",{"2":{"34":1,"35":1,"95":1,"135":1,"140":1,"141":1,"144":1,"158":2,"161":2}}],["false",{"0":{"5":1,"118":1,"119":1},"2":{"81":1}}],["float=0",{"2":{"117":1}}],["float=1e",{"2":{"50":1}}],["float=approx",{"2":{"43":1,"101":1,"117":1,"123":1,"126":1}}],["float=epsilon",{"2":{"37":1}}],["float",{"0":{"5":1,"8":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"20":1,"21":1,"22":1,"37":1,"43":1,"45":1,"50":1,"80":4,"83":1,"100":3,"101":1,"111":4,"117":3,"118":1,"119":1,"122":3,"123":1,"126":1,"130":1,"144":1,"158":2,"161":2},"2":{"5":1,"8":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"20":1,"21":1,"22":1,"43":2,"45":3,"50":2,"61":1,"80":9,"83":3,"100":7,"101":2,"111":9,"114":2,"117":5,"118":3,"119":3,"122":7,"123":2,"126":2,"130":3,"144":4,"146":2,"158":2,"161":2}}],["functions",{"2":{"43":2,"45":1,"50":2,"51":1,"52":1,"53":1,"54":1,"58":1,"80":1,"81":1,"83":1,"87":1,"96":1,"100":1,"101":2,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"130":1,"136":1,"144":1,"146":1}}],["function",{"0":{"36":1},"1":{"37":1,"38":1}}],["func",{"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,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"33":4,"34":1,"35":3,"37":2,"38":2,"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,"58":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,"96":1,"97":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"158":1,"161":1},"2":{"33":15,"34":6,"35":16,"37":9,"38":6}}],["预设",{"2":{"0":1,"1":1}}],["phi",{"2":{"158":5,"161":5}}],["p3",{"0":{"90":1},"2":{"90":4}}],["p2",{"0":{"56":1,"90":1,"109":1},"2":{"56":4,"58":2,"90":4,"109":9}}],["p1",{"0":{"56":1,"90":1,"109":1},"2":{"56":5,"58":2,"90":6,"109":9}}],["perpendicular",{"0":{"47":1},"2":{"47":1}}],["parametric",{"0":{"49":1},"2":{"49":1,"85":1}}],["parallel",{"0":{"50":1,"51":1,"86":1,"87":1,"126":1,"127":1},"2":{"43":2,"45":1,"46":2,"50":2,"51":2,"52":2,"53":1,"57":1,"58":2,"84":2,"85":1,"86":1,"87":2,"95":1,"126":1,"127":1}}],["partial",{"0":{"35":1},"2":{"35":6,"37":6}}],["particle",{"0":{"153":1,"154":1},"2":{"0":1,"1":1}}],["planes",{"2":{"84":1}}],["plane",{"0":{"78":1},"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,"96":1,"97":1},"2":{"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"89":1,"95":1,"96":1}}],["plane3",{"0":{"79":1,"81":1,"82":1,"83":1,"84":1,"86":2,"87":1,"89":1,"90":1,"91":1,"92":1,"94":1},"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,"96":1,"97":1},"2":{"39":1,"59":1,"81":3,"82":4,"83":4,"84":3,"86":5,"87":3,"89":3,"90":1,"91":1,"92":1,"94":1,"95":4,"96":2,"114":1}}],["plus",{"2":{"35":3}}],["p",{"0":{"37":1},"2":{"37":21,"38":1,"104":10,"106":8,"135":4,"137":4,"140":4,"141":4}}],["points",{"0":{"56":1,"90":1},"2":{"56":1,"90":1}}],["point",{"0":{"42":1,"47":1,"48":1,"53":2,"86":1,"89":2,"92":2,"98":1},"1":{"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1},"2":{"37":1,"42":6,"43":2,"45":6,"46":4,"47":7,"48":3,"49":3,"52":2,"53":7,"54":2,"55":3,"56":2,"57":1,"58":2,"83":1,"85":4,"86":6,"89":8,"90":2,"91":6,"92":7,"95":1,"101":1,"104":2,"105":1,"106":1,"109":2,"135":2,"137":2,"140":2,"141":2}}],["point3",{"0":{"34":2,"37":1,"42":1,"45":1,"46":1,"47":1,"48":1,"53":1,"56":2,"57":1,"83":1,"85":2,"86":1,"89":1,"90":3,"92":1,"93":1,"97":1,"99":1,"101":1,"102":1,"103":2,"106":1,"109":2,"134":2,"137":2,"139":2,"141":1},"1":{"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1},"2":{"34":4,"37":3,"39":1,"42":3,"45":4,"46":3,"47":3,"48":3,"53":3,"56":6,"57":3,"59":1,"83":4,"84":1,"85":5,"86":3,"89":3,"90":7,"92":3,"93":1,"95":3,"97":2,"101":3,"102":1,"103":2,"104":5,"105":2,"106":3,"109":7,"114":1,"134":2,"135":6,"137":7,"139":2,"140":6,"141":7,"158":3,"161":3}}],["positive",{"0":{"9":1},"2":{"6":1,"7":1,"9":1}}],["python",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"21":1,"22":1,"43":2,"45":2,"46":1,"49":1,"50":2,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"80":1,"81":1,"82":1,"83":2,"84":1,"85":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":2,"96":1,"100":1,"101":2,"102":1,"103":1,"105":1,"111":1,"117":2,"118":3,"119":3,"122":1,"123":2,"126":2,"127":1,"129":1,"130":2,"131":1,"133":1,"134":1,"136":1,"138":1,"139":1,"142":1,"143":1,"144":1,"146":1,"158":1,"161":1}}],["pythondef",{"2":{"5":1,"17":1,"18":1,"19":1,"20":1,"23":1,"33":1,"34":1,"35":1,"37":1,"38":2,"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,"57":1,"58":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"95":1,"96":1,"97":1,"100":1,"101":1,"104":1,"105":1,"106":1,"109":1,"111":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"132":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"145":1,"146":1,"147":1,"148":1}}],["property",{"2":{"5":1,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":1,"87":1,"88":1,"128":1,"129":2,"130":2,"131":1}}],["presets",{"0":{"155":1,"156":1,"159":1,"162":1},"1":{"157":1,"158":1,"160":1,"161":1},"2":{"0":1,"1":1}}],["pi",{"0":{"25":1},"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"25":1,"158":2,"161":2}}],["粒子生成工具",{"2":{"0":1,"1":1}}],["mc特效红石音乐",{"2":{"164":1}}],["model",{"0":{"156":1,"159":1},"1":{"157":1,"158":1,"160":1,"161":1}}],["midpoint",{"2":{"109":1}}],["minecraft",{"2":{"164":1}}],["min",{"0":{"111":1},"2":{"111":5}}],["minus",{"2":{"35":3}}],["minimum",{"0":{"9":1},"2":{"6":1,"7":1,"9":1}}],["multiarraysfunc",{"0":{"76":1},"2":{"77":1}}],["multisinglevarsfunc",{"0":{"75":1},"2":{"77":1}}],["multivarsfunc",{"0":{"35":2,"38":1,"77":1},"2":{"35":4,"38":3}}],["mul",{"2":{"20":1,"142":1,"143":1,"144":1,"145":1}}],["matmul",{"2":{"146":1}}],["math导入使用",{"2":{"39":1,"59":1}}],["math",{"0":{"2":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":2,"78":1,"98":1,"107":1,"110":1,"120":1},"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,"23":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":1,"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,"76":2,"77":2,"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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1},"2":{"0":1,"1":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"25":1,"26":1,"27":1,"33":3,"35":1,"37":1,"38":2,"48":1,"49":1,"82":1,"113":1,"124":1,"130":1}}],["max",{"0":{"111":1},"2":{"111":5}}],["maximum",{"0":{"10":1},"2":{"10":1}}],["mp",{"0":{"2":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":2,"78":1,"98":1,"107":1,"110":1,"120":1},"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,"23":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":1,"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,"76":2,"77":2,"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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1},"2":{"0":1,"1":1,"33":3,"35":1,"37":1,"38":2,"39":1,"48":1,"49":1,"59":1,"113":1}}],["mbcp",{"0":{"0":1,"1":1,"2":1,"24":1,"31":1,"36":1,"39":1,"40":1,"59":1,"60":1,"78":1,"98":1,"107":1,"110":1,"120":1,"153":1,"154":1,"155":1,"156":1,"159":1,"162":1},"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,"23":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"32":1,"33":1,"34":1,"35":1,"37":1,"38":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,"58":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,"76":1,"77":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,"96":1,"97":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"108":1,"109":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":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,"151":1,"152":1,"157":1,"158":1,"160":1,"161":1},"2":{"0":3,"1":3}}],["提供了一些工具",{"2":{"0":1,"1":1}}],["説明",{"2":{"0":1,"1":1,"2":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,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":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,"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,"76":1,"77":1,"78":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,"95":1,"96":1,"98":1,"100":1,"101":1,"104":1,"105":1,"106":1,"107":1,"109":1,"110":1,"111":1,"113":1,"117":1,"118":1,"119":1,"120":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"130":1,"131":1,"135":1,"136":1,"137":1,"140":1,"141":1,"144":1,"146":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"158":1,"159":1,"161":1,"162":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/VPLocalSearchBox.CohV5IPn.js b/assets/chunks/VPLocalSearchBox.BDQvHkQW.js similarity index 99% rename from assets/chunks/VPLocalSearchBox.CohV5IPn.js rename to assets/chunks/VPLocalSearchBox.BDQvHkQW.js index 08bdbd1..f341a65 100644 --- a/assets/chunks/VPLocalSearchBox.CohV5IPn.js +++ b/assets/chunks/VPLocalSearchBox.BDQvHkQW.js @@ -1,7 +1,7 @@ -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.BhGtk3iD.js";const as={en:()=>ye(()=>import("./@localSearchIndexen.DOhc_xuw.js"),[]),ja:()=>ye(()=>import("./@localSearchIndexja.DUR797ye.js"),[]),root:()=>ye(()=>import("./@localSearchIndexroot.7Fn6vDT0.js"),[]),zht:()=>ye(()=>import("./@localSearchIndexzht.nVtnMKQr.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.BKKsDm5-.js";const as={en:()=>ye(()=>import("./@localSearchIndexen.CHzCNdBP.js"),[]),ja:()=>ye(()=>import("./@localSearchIndexja.dS4NVQXm.js"),[]),root:()=>ye(()=>import("./@localSearchIndexroot.BRV9Iu4R.js"),[]),zht:()=>ye(()=>import("./@localSearchIndexzht.hQCregVn.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)};/*! * focus-trap 7.5.4 * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE -*/function ct(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(a,n).enumerable})),t.push.apply(t,s)}return t}function lt(a){for(var e=1;e0){var s=e[e.length-1];s!==t&&s.pause()}var n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var s=e.indexOf(t);s!==-1&&e.splice(s,1),e.length>0&&e[e.length-1].unpause()}},Ns=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},ks=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},me=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},Fs=function(e){return me(e)&&!e.shiftKey},Os=function(e){return me(e)&&e.shiftKey},dt=function(e){return setTimeout(e,0)},ht=function(e,t){var s=-1;return e.every(function(n,r){return t(n)?(s=r,!1):!0}),s},pe=function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),n=1;n1?m-1:0),E=1;E=0)u=s.activeElement;else{var d=i.tabbableGroups[0],m=d&&d.firstTabbableNode;u=m||h("fallbackFocus")}if(!u)throw new Error("Your focus-trap needs to have at least one focusable element");return u},f=function(){if(i.containerGroups=i.containers.map(function(u){var d=_s(u,r.tabbableOptions),m=xs(u,r.tabbableOptions),S=d.length>0?d[0]:void 0,E=d.length>0?d[d.length-1]:void 0,k=m.find(function(p){return ae(p)}),F=m.slice().reverse().find(function(p){return ae(p)}),M=!!d.find(function(p){return ie(p)>0});return{container:u,tabbableNodes:d,focusableNodes:m,posTabIndexesFound:M,firstTabbableNode:S,lastTabbableNode:E,firstDomTabbableNode:k,lastDomTabbableNode:F,nextTabbableNode:function(g){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,O=d.indexOf(g);return O<0?N?m.slice(m.indexOf(g)+1).find(function(P){return ae(P)}):m.slice(0,m.indexOf(g)).reverse().find(function(P){return ae(P)}):d[O+(N?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(u){return u.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!h("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(u){return u.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},b=function T(u){var d=u.activeElement;if(d)return d.shadowRoot&&d.shadowRoot.activeElement!==null?T(d.shadowRoot):d},y=function T(u){if(u!==!1&&u!==b(document)){if(!u||!u.focus){T(v());return}u.focus({preventScroll:!!r.preventScroll}),i.mostRecentlyFocusedNode=u,Ns(u)&&u.select()}},_=function(u){var d=h("setReturnFocus",u);return d||(d===!1?!1:u)},w=function(u){var d=u.target,m=u.event,S=u.isBackward,E=S===void 0?!1:S;d=d||Se(m),f();var k=null;if(i.tabbableGroups.length>0){var F=l(d,m),M=F>=0?i.containerGroups[F]:void 0;if(F<0)E?k=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:k=i.tabbableGroups[0].firstTabbableNode;else if(E){var p=ht(i.tabbableGroups,function(I){var L=I.firstTabbableNode;return d===L});if(p<0&&(M.container===d||Le(d,r.tabbableOptions)&&!ae(d,r.tabbableOptions)&&!M.nextTabbableNode(d,!1))&&(p=F),p>=0){var g=p===0?i.tabbableGroups.length-1:p-1,N=i.tabbableGroups[g];k=ie(d)>=0?N.lastTabbableNode:N.lastDomTabbableNode}else me(m)||(k=M.nextTabbableNode(d,!1))}else{var O=ht(i.tabbableGroups,function(I){var L=I.lastTabbableNode;return d===L});if(O<0&&(M.container===d||Le(d,r.tabbableOptions)&&!ae(d,r.tabbableOptions)&&!M.nextTabbableNode(d))&&(O=F),O>=0){var P=O===i.tabbableGroups.length-1?0:O+1,V=i.tabbableGroups[P];k=ie(d)>=0?V.firstTabbableNode:V.firstDomTabbableNode}else me(m)||(k=M.nextTabbableNode(d))}}else k=h("fallbackFocus");return k},R=function(u){var d=Se(u);if(!(l(d,u)>=0)){if(pe(r.clickOutsideDeactivates,u)){o.deactivate({returnFocus:r.returnFocusOnDeactivate});return}pe(r.allowOutsideClick,u)||u.preventDefault()}},C=function(u){var d=Se(u),m=l(d,u)>=0;if(m||d instanceof Document)m&&(i.mostRecentlyFocusedNode=d);else{u.stopImmediatePropagation();var S,E=!0;if(i.mostRecentlyFocusedNode)if(ie(i.mostRecentlyFocusedNode)>0){var k=l(i.mostRecentlyFocusedNode),F=i.containerGroups[k].tabbableNodes;if(F.length>0){var M=F.findIndex(function(p){return p===i.mostRecentlyFocusedNode});M>=0&&(r.isKeyForward(i.recentNavEvent)?M+1=0&&(S=F[M-1],E=!1))}}else i.containerGroups.some(function(p){return p.tabbableNodes.some(function(g){return ie(g)>0})})||(E=!1);else E=!1;E&&(S=w({target:i.mostRecentlyFocusedNode,isBackward:r.isKeyBackward(i.recentNavEvent)})),y(S||i.mostRecentlyFocusedNode||v())}i.recentNavEvent=void 0},J=function(u){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=u;var m=w({event:u,isBackward:d});m&&(me(u)&&u.preventDefault(),y(m))},H=function(u){if(ks(u)&&pe(r.escapeDeactivates,u)!==!1){u.preventDefault(),o.deactivate();return}(r.isKeyForward(u)||r.isKeyBackward(u))&&J(u,r.isKeyBackward(u))},W=function(u){var d=Se(u);l(d,u)>=0||pe(r.clickOutsideDeactivates,u)||pe(r.allowOutsideClick,u)||(u.preventDefault(),u.stopImmediatePropagation())},j=function(){if(i.active)return ut.activateTrap(n,o),i.delayInitialFocusTimer=r.delayInitialFocus?dt(function(){y(v())}):y(v()),s.addEventListener("focusin",C,!0),s.addEventListener("mousedown",R,{capture:!0,passive:!1}),s.addEventListener("touchstart",R,{capture:!0,passive:!1}),s.addEventListener("click",W,{capture:!0,passive:!1}),s.addEventListener("keydown",H,{capture:!0,passive:!1}),o},$=function(){if(i.active)return s.removeEventListener("focusin",C,!0),s.removeEventListener("mousedown",R,!0),s.removeEventListener("touchstart",R,!0),s.removeEventListener("click",W,!0),s.removeEventListener("keydown",H,!0),o},Ce=function(u){var d=u.some(function(m){var S=Array.from(m.removedNodes);return S.some(function(E){return E===i.mostRecentlyFocusedNode})});d&&y(v())},A=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(Ce):void 0,U=function(){A&&(A.disconnect(),i.active&&!i.paused&&i.containers.map(function(u){A.observe(u,{subtree:!0,childList:!0})}))};return o={get active(){return i.active},get paused(){return i.paused},activate:function(u){if(i.active)return this;var d=c(u,"onActivate"),m=c(u,"onPostActivate"),S=c(u,"checkCanFocusTrap");S||f(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=s.activeElement,d==null||d();var E=function(){S&&f(),j(),U(),m==null||m()};return S?(S(i.containers.concat()).then(E,E),this):(E(),this)},deactivate:function(u){if(!i.active)return this;var d=lt({onDeactivate:r.onDeactivate,onPostDeactivate:r.onPostDeactivate,checkCanReturnFocus:r.checkCanReturnFocus},u);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,$(),i.active=!1,i.paused=!1,U(),ut.deactivateTrap(n,o);var m=c(d,"onDeactivate"),S=c(d,"onPostDeactivate"),E=c(d,"checkCanReturnFocus"),k=c(d,"returnFocus","returnFocusOnDeactivate");m==null||m();var F=function(){dt(function(){k&&y(_(i.nodeFocusedBeforeActivation)),S==null||S()})};return k&&E?(E(_(i.nodeFocusedBeforeActivation)).then(F,F),this):(F(),this)},pause:function(u){if(i.paused||!i.active)return this;var d=c(u,"onPause"),m=c(u,"onPostPause");return i.paused=!0,d==null||d(),$(),U(),m==null||m(),this},unpause:function(u){if(!i.paused||!i.active)return this;var d=c(u,"onUnpause"),m=c(u,"onPostUnpause");return i.paused=!1,d==null||d(),f(),j(),U(),m==null||m(),this},updateContainerElements:function(u){var d=[].concat(u).filter(Boolean);return i.containers=d.map(function(m){return typeof m=="string"?s.querySelector(m):m}),i.active&&f(),U(),this}},o.updateContainerElements(e),o};function Ms(a,e={}){let t;const{immediate:s,...n}=e,r=ne(!1),i=ne(!1),o=f=>t&&t.activate(f),c=f=>t&&t.deactivate(f),l=()=>{t&&(t.pause(),i.value=!0)},h=()=>{t&&(t.unpause(),i.value=!1)},v=ve(()=>{const f=tt(a);return(Array.isArray(f)?f:[f]).map(b=>{const y=tt(b);return typeof y=="string"?y:Ct(y)}).filter(Mt)});return $e(v,f=>{f.length&&(t=Cs(f,{...n,onActivate(){r.value=!0,e.onActivate&&e.onActivate()},onDeactivate(){r.value=!1,e.onDeactivate&&e.onDeactivate()}}),s&&o())},{flush:"post"}),At(()=>c()),{hasFocus:r,isPaused:i,activate:o,deactivate:c,pause:l,unpause:h}}class ce{constructor(e,t=!0,s=[],n=5e3){this.ctx=e,this.iframes=t,this.exclude=s,this.iframesTimeout=n}static matches(e,t){const s=typeof t=="string"?[t]:t,n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(n){let r=!1;return s.every(i=>n.call(e,i)?(r=!0,!1):!0),r}else return!1}getContexts(){let e,t=[];return typeof this.ctx>"u"||!this.ctx?e=[]:NodeList.prototype.isPrototypeOf(this.ctx)?e=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?e=this.ctx:typeof this.ctx=="string"?e=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):e=[this.ctx],e.forEach(s=>{const n=t.filter(r=>r.contains(s)).length>0;t.indexOf(s)===-1&&!n&&t.push(s)}),t}getIframeContents(e,t,s=()=>{}){let n;try{const r=e.contentWindow;if(n=r.document,!r||!n)throw new Error("iframe inaccessible")}catch{s()}n&&t(n)}isIframeBlank(e){const t="about:blank",s=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&s!==t&&s}observeIframeLoad(e,t,s){let n=!1,r=null;const i=()=>{if(!n){n=!0,clearTimeout(r);try{this.isIframeBlank(e)||(e.removeEventListener("load",i),this.getIframeContents(e,t,s))}catch{s()}}};e.addEventListener("load",i),r=setTimeout(i,this.iframesTimeout)}onIframeReady(e,t,s){try{e.contentWindow.document.readyState==="complete"?this.isIframeBlank(e)?this.observeIframeLoad(e,t,s):this.getIframeContents(e,t,s):this.observeIframeLoad(e,t,s)}catch{s()}}waitForIframes(e,t){let s=0;this.forEachIframe(e,()=>!0,n=>{s++,this.waitForIframes(n.querySelector("html"),()=>{--s||t()})},n=>{n||t()})}forEachIframe(e,t,s,n=()=>{}){let r=e.querySelectorAll("iframe"),i=r.length,o=0;r=Array.prototype.slice.call(r);const c=()=>{--i<=0&&n(o)};i||c(),r.forEach(l=>{ce.matches(l,this.exclude)?c():this.onIframeReady(l,h=>{t(l)&&(o++,s(h)),c()},c)})}createIterator(e,t,s){return document.createNodeIterator(e,t,s,!1)}createInstanceOnIframe(e){return new ce(e.querySelector("html"),this.iframes)}compareNodeIframe(e,t,s){const n=e.compareDocumentPosition(s),r=Node.DOCUMENT_POSITION_PRECEDING;if(n&r)if(t!==null){const i=t.compareDocumentPosition(s),o=Node.DOCUMENT_POSITION_FOLLOWING;if(i&o)return!0}else return!0;return!1}getIteratorNode(e){const t=e.previousNode();let s;return t===null?s=e.nextNode():s=e.nextNode()&&e.nextNode(),{prevNode:t,node:s}}checkIframeFilter(e,t,s,n){let r=!1,i=!1;return n.forEach((o,c)=>{o.val===s&&(r=c,i=o.handled)}),this.compareNodeIframe(e,t,s)?(r===!1&&!i?n.push({val:s,handled:!0}):r!==!1&&!i&&(n[r].handled=!0),!0):(r===!1&&n.push({val:s,handled:!1}),!1)}handleOpenIframes(e,t,s,n){e.forEach(r=>{r.handled||this.getIframeContents(r.val,i=>{this.createInstanceOnIframe(i).forEachNode(t,s,n)})})}iterateThroughNodes(e,t,s,n,r){const i=this.createIterator(t,e,n);let o=[],c=[],l,h,v=()=>({prevNode:h,node:l}=this.getIteratorNode(i),l);for(;v();)this.iframes&&this.forEachIframe(t,f=>this.checkIframeFilter(l,h,f,o),f=>{this.createInstanceOnIframe(f).forEachNode(e,b=>c.push(b),n)}),c.push(l);c.forEach(f=>{s(f)}),this.iframes&&this.handleOpenIframes(o,e,s,n),r()}forEachNode(e,t,s,n=()=>{}){const r=this.getContexts();let i=r.length;i||n(),r.forEach(o=>{const c=()=>{this.iterateThroughNodes(e,o,t,s,()=>{--i<=0&&n()})};this.iframes?this.waitForIframes(o,c):c()})}}let As=class{constructor(e){this.ctx=e,this.ie=!1;const t=window.navigator.userAgent;(t.indexOf("MSIE")>-1||t.indexOf("Trident")>-1)&&(this.ie=!0)}set opt(e){this._opt=Object.assign({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:()=>{},noMatch:()=>{},filter:()=>!0,done:()=>{},debug:!1,log:window.console},e)}get opt(){return this._opt}get iterator(){return new ce(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}log(e,t="debug"){const s=this.opt.log;this.opt.debug&&typeof s=="object"&&typeof s[t]=="function"&&s[t](`mark.js: ${e}`)}escapeStr(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}createRegExp(e){return this.opt.wildcards!=="disabled"&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),this.opt.wildcards!=="disabled"&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),e}createSynonymsRegExp(e){const t=this.opt.synonyms,s=this.opt.caseSensitive?"":"i",n=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(let r in t)if(t.hasOwnProperty(r)){const i=t[r],o=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(r):this.escapeStr(r),c=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(i):this.escapeStr(i);o!==""&&c!==""&&(e=e.replace(new RegExp(`(${this.escapeStr(o)}|${this.escapeStr(c)})`,`gm${s}`),n+`(${this.processSynomyms(o)}|${this.processSynomyms(c)})`+n))}return e}processSynomyms(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}setupWildcardsRegExp(e){return e=e.replace(/(?:\\)*\?/g,t=>t.charAt(0)==="\\"?"?":""),e.replace(/(?:\\)*\*/g,t=>t.charAt(0)==="\\"?"*":"")}createWildcardsRegExp(e){let t=this.opt.wildcards==="withSpaces";return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}setupIgnoreJoinersRegExp(e){return e.replace(/[^(|)\\]/g,(t,s,n)=>{let r=n.charAt(s+1);return/[(|)\\]/.test(r)||r===""?t:t+"\0"})}createJoinersRegExp(e){let t=[];const s=this.opt.ignorePunctuation;return Array.isArray(s)&&s.length&&t.push(this.escapeStr(s.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join(`[${t.join("")}]*`):e}createDiacriticsRegExp(e){const t=this.opt.caseSensitive?"":"i",s=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"];let n=[];return e.split("").forEach(r=>{s.every(i=>{if(i.indexOf(r)!==-1){if(n.indexOf(i)>-1)return!1;e=e.replace(new RegExp(`[${i}]`,`gm${t}`),`[${i}]`),n.push(i)}return!0})}),e}createMergedBlanksRegExp(e){return e.replace(/[\s]+/gmi,"[\\s]+")}createAccuracyRegExp(e){const t="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿";let s=this.opt.accuracy,n=typeof s=="string"?s:s.value,r=typeof s=="string"?[]:s.limiters,i="";switch(r.forEach(o=>{i+=`|${this.escapeStr(o)}`}),n){case"partially":default:return`()(${e})`;case"complementary":return i="\\s"+(i||this.escapeStr(t)),`()([^${i}]*${e}[^${i}]*)`;case"exactly":return`(^|\\s${i})(${e})(?=$|\\s${i})`}}getSeparatedKeywords(e){let t=[];return e.forEach(s=>{this.opt.separateWordSearch?s.split(" ").forEach(n=>{n.trim()&&t.indexOf(n)===-1&&t.push(n)}):s.trim()&&t.indexOf(s)===-1&&t.push(s)}),{keywords:t.sort((s,n)=>n.length-s.length),length:t.length}}isNumeric(e){return Number(parseFloat(e))==e}checkRanges(e){if(!Array.isArray(e)||Object.prototype.toString.call(e[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];const t=[];let s=0;return e.sort((n,r)=>n.start-r.start).forEach(n=>{let{start:r,end:i,valid:o}=this.callNoMatchOnInvalidRanges(n,s);o&&(n.start=r,n.length=i-r,t.push(n),s=i)}),t}callNoMatchOnInvalidRanges(e,t){let s,n,r=!1;return e&&typeof e.start<"u"?(s=parseInt(e.start,10),n=s+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&n-t>0&&n-s>0?r=!0:(this.log(`Ignoring invalid or overlapping range: ${JSON.stringify(e)}`),this.opt.noMatch(e))):(this.log(`Ignoring invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)),{start:s,end:n,valid:r}}checkWhitespaceRanges(e,t,s){let n,r=!0,i=s.length,o=t-i,c=parseInt(e.start,10)-o;return c=c>i?i:c,n=c+parseInt(e.length,10),n>i&&(n=i,this.log(`End range automatically set to the max value of ${i}`)),c<0||n-c<0||c>i||n>i?(r=!1,this.log(`Invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)):s.substring(c,n).replace(/\s+/g,"")===""&&(r=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:c,end:n,valid:r}}getTextNodes(e){let t="",s=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,n=>{s.push({start:t.length,end:(t+=n.textContent).length,node:n})},n=>this.matchesExclude(n.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT,()=>{e({value:t,nodes:s})})}matchesExclude(e){return ce.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}wrapRangeInTextNode(e,t,s){const n=this.opt.element?this.opt.element:"mark",r=e.splitText(t),i=r.splitText(s-t);let o=document.createElement(n);return o.setAttribute("data-markjs","true"),this.opt.className&&o.setAttribute("class",this.opt.className),o.textContent=r.textContent,r.parentNode.replaceChild(o,r),i}wrapRangeInMappedTextNode(e,t,s,n,r){e.nodes.every((i,o)=>{const c=e.nodes[o+1];if(typeof c>"u"||c.start>t){if(!n(i.node))return!1;const l=t-i.start,h=(s>i.end?i.end:s)-i.start,v=e.value.substr(0,i.start),f=e.value.substr(h+i.start);if(i.node=this.wrapRangeInTextNode(i.node,l,h),e.value=v+f,e.nodes.forEach((b,y)=>{y>=o&&(e.nodes[y].start>0&&y!==o&&(e.nodes[y].start-=h),e.nodes[y].end-=h)}),s-=h,r(i.node.previousSibling,i.start),s>i.end)t=i.end;else return!1}return!0})}wrapMatches(e,t,s,n,r){const i=t===0?0:t+1;this.getTextNodes(o=>{o.nodes.forEach(c=>{c=c.node;let l;for(;(l=e.exec(c.textContent))!==null&&l[i]!=="";){if(!s(l[i],c))continue;let h=l.index;if(i!==0)for(let v=1;v{let c;for(;(c=e.exec(o.value))!==null&&c[i]!=="";){let l=c.index;if(i!==0)for(let v=1;vs(c[i],v),(v,f)=>{e.lastIndex=f,n(v)})}r()})}wrapRangeFromIndex(e,t,s,n){this.getTextNodes(r=>{const i=r.value.length;e.forEach((o,c)=>{let{start:l,end:h,valid:v}=this.checkWhitespaceRanges(o,i,r.value);v&&this.wrapRangeInMappedTextNode(r,l,h,f=>t(f,o,r.value.substring(l,h),c),f=>{s(f,o)})}),n()})}unwrapMatches(e){const t=e.parentNode;let s=document.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.removeChild(e.firstChild));t.replaceChild(s,e),this.ie?this.normalizeTextNode(t):t.normalize()}normalizeTextNode(e){if(e){if(e.nodeType===3)for(;e.nextSibling&&e.nextSibling.nodeType===3;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}markRegExp(e,t){this.opt=t,this.log(`Searching with expression "${e}"`);let s=0,n="wrapMatches";const r=i=>{s++,this.opt.each(i)};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),this[n](e,this.opt.ignoreGroups,(i,o)=>this.opt.filter(o,i,s),r,()=>{s===0&&this.opt.noMatch(e),this.opt.done(s)})}mark(e,t){this.opt=t;let s=0,n="wrapMatches";const{keywords:r,length:i}=this.getSeparatedKeywords(typeof e=="string"?[e]:e),o=this.opt.caseSensitive?"":"i",c=l=>{let h=new RegExp(this.createRegExp(l),`gm${o}`),v=0;this.log(`Searching with expression "${h}"`),this[n](h,1,(f,b)=>this.opt.filter(b,l,s,v),f=>{v++,s++,this.opt.each(f)},()=>{v===0&&this.opt.noMatch(l),r[i-1]===l?this.opt.done(s):c(r[r.indexOf(l)+1])})};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),i===0?this.opt.done(s):c(r[0])}markRanges(e,t){this.opt=t;let s=0,n=this.checkRanges(e);n&&n.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(n)),this.wrapRangeFromIndex(n,(r,i,o,c)=>this.opt.filter(r,i,o,c),(r,i)=>{s++,this.opt.each(r,i)},()=>{this.opt.done(s)})):this.opt.done(s)}unmark(e){this.opt=e;let t=this.opt.element?this.opt.element:"*";t+="[data-markjs]",this.opt.className&&(t+=`.${this.opt.className}`),this.log(`Removal selector "${t}"`),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,s=>{this.unwrapMatches(s)},s=>{const n=ce.matches(s,t),r=this.matchesExclude(s);return!n||r?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}};function Ls(a){const e=new As(a);return this.mark=(t,s)=>(e.mark(t,s),this),this.markRegExp=(t,s)=>(e.markRegExp(t,s),this),this.markRanges=(t,s)=>(e.markRanges(t,s),this),this.unmark=t=>(e.unmark(t),this),this}function Ie(a,e,t,s){function n(r){return r instanceof t?r:new t(function(i){i(r)})}return new(t||(t=Promise))(function(r,i){function o(h){try{l(s.next(h))}catch(v){i(v)}}function c(h){try{l(s.throw(h))}catch(v){i(v)}}function l(h){h.done?r(h.value):n(h.value).then(o,c)}l((s=s.apply(a,[])).next())})}const Ds="ENTRIES",St="KEYS",Et="VALUES",z="";class De{constructor(e,t){const s=e._tree,n=Array.from(s.keys());this.set=e,this._type=t,this._path=n.length>0?[{node:s,keys:n}]:[]}next(){const e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:e,keys:t}=oe(this._path);if(oe(t)===z)return{done:!1,value:this.result()};const s=e.get(oe(t));return this._path.push({node:s,keys:Array.from(s.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=oe(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>oe(e)).filter(e=>e!==z).join("")}value(){return oe(this._path).node.get(z)}result(){switch(this._type){case Et:return this.value();case St:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const oe=a=>a[a.length-1],zs=(a,e,t)=>{const s=new Map;if(e===void 0)return s;const n=e.length+1,r=n+t,i=new Uint8Array(r*n).fill(t+1);for(let o=0;o{const c=r*i;e:for(const l of a.keys())if(l===z){const h=n[c-1];h<=t&&s.set(o,[a.get(l),h])}else{let h=r;for(let v=0;vt)continue e}Tt(a.get(l),e,t,s,n,h,i,o+l)}};class X{constructor(e=new Map,t=""){this._size=void 0,this._tree=e,this._prefix=t}atPrefix(e){if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");const[t,s]=Re(this._tree,e.slice(this._prefix.length));if(t===void 0){const[n,r]=Ue(s);for(const i of n.keys())if(i!==z&&i.startsWith(r)){const o=new Map;return o.set(i.slice(r.length),n.get(i)),new X(o,e)}}return new X(t,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,Ps(this._tree,e)}entries(){return new De(this,Ds)}forEach(e){for(const[t,s]of this)e(t,s,this)}fuzzyGet(e,t){return zs(this._tree,e,t)}get(e){const t=We(this._tree,e);return t!==void 0?t.get(z):void 0}has(e){const t=We(this._tree,e);return t!==void 0&&t.has(z)}keys(){return new De(this,St)}set(e,t){if(typeof e!="string")throw new Error("key must be a string");return this._size=void 0,ze(this._tree,e).set(z,t),this}get size(){if(this._size)return this._size;this._size=0;const e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const s=ze(this._tree,e);return s.set(z,t(s.get(z))),this}fetch(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const s=ze(this._tree,e);let n=s.get(z);return n===void 0&&s.set(z,n=t()),n}values(){return new De(this,Et)}[Symbol.iterator](){return this.entries()}static from(e){const t=new X;for(const[s,n]of e)t.set(s,n);return t}static fromObject(e){return X.from(Object.entries(e))}}const Re=(a,e,t=[])=>{if(e.length===0||a==null)return[a,t];for(const s of a.keys())if(s!==z&&e.startsWith(s))return t.push([a,s]),Re(a.get(s),e.slice(s.length),t);return t.push([a,e]),Re(void 0,"",t)},We=(a,e)=>{if(e.length===0||a==null)return a;for(const t of a.keys())if(t!==z&&e.startsWith(t))return We(a.get(t),e.slice(t.length))},ze=(a,e)=>{const t=e.length;e:for(let s=0;a&&s{const[t,s]=Re(a,e);if(t!==void 0){if(t.delete(z),t.size===0)It(s);else if(t.size===1){const[n,r]=t.entries().next().value;Nt(s,n,r)}}},It=a=>{if(a.length===0)return;const[e,t]=Ue(a);if(e.delete(t),e.size===0)It(a.slice(0,-1));else if(e.size===1){const[s,n]=e.entries().next().value;s!==z&&Nt(a.slice(0,-1),s,n)}},Nt=(a,e,t)=>{if(a.length===0)return;const[s,n]=Ue(a);s.set(n+e,t),s.delete(n)},Ue=a=>a[a.length-1],qe="or",kt="and",Vs="and_not";class le{constructor(e){if((e==null?void 0:e.fields)==null)throw new Error('MiniSearch: option "fields" must be provided');const t=e.autoVacuum==null||e.autoVacuum===!0?je:e.autoVacuum;this._options=Object.assign(Object.assign(Object.assign({},Ve),e),{autoVacuum:t,searchOptions:Object.assign(Object.assign({},ft),e.searchOptions||{}),autoSuggestOptions:Object.assign(Object.assign({},Ks),e.autoSuggestOptions||{})}),this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=Je,this.addFields(this._options.fields)}add(e){const{extractField:t,tokenize:s,processTerm:n,fields:r,idField:i}=this._options,o=t(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);if(this._idToShortId.has(o))throw new Error(`MiniSearch: duplicate ID ${o}`);const c=this.addDocumentId(o);this.saveStoredFields(c,e);for(const l of r){const h=t(e,l);if(h==null)continue;const v=s(h.toString(),l),f=this._fieldIds[l],b=new Set(v).size;this.addFieldLength(c,f,this._documentCount-1,b);for(const y of v){const _=n(y,l);if(Array.isArray(_))for(const w of _)this.addTerm(f,c,w);else _&&this.addTerm(f,c,_)}}}addAll(e){for(const t of e)this.add(t)}addAllAsync(e,t={}){const{chunkSize:s=10}=t,n={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:o,promise:c},l,h)=>(o.push(l),(h+1)%s===0?{chunk:[],promise:c.then(()=>new Promise(v=>setTimeout(v,0))).then(()=>this.addAll(o))}:{chunk:o,promise:c}),n);return i.then(()=>this.addAll(r))}remove(e){const{tokenize:t,processTerm:s,extractField:n,fields:r,idField:i}=this._options,o=n(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);const c=this._idToShortId.get(o);if(c==null)throw new Error(`MiniSearch: cannot remove document with ID ${o}: it is not in the index`);for(const l of r){const h=n(e,l);if(h==null)continue;const v=t(h.toString(),l),f=this._fieldIds[l],b=new Set(v).size;this.removeFieldLength(c,f,this._documentCount,b);for(const y of v){const _=s(y,l);if(Array.isArray(_))for(const w of _)this.removeTerm(f,c,w);else _&&this.removeTerm(f,c,_)}}this._storedFields.delete(c),this._documentIds.delete(c),this._idToShortId.delete(o),this._fieldLength.delete(c),this._documentCount-=1}removeAll(e){if(e)for(const t of e)this.remove(t);else{if(arguments.length>0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}}discard(e){const t=this._idToShortId.get(e);if(t==null)throw new Error(`MiniSearch: cannot discard document with ID ${e}: it is not in the index`);this._idToShortId.delete(e),this._documentIds.delete(t),this._storedFields.delete(t),(this._fieldLength.get(t)||[]).forEach((s,n)=>{this.removeFieldLength(t,n,this._documentCount,s)}),this._fieldLength.delete(t),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()}maybeAutoVacuum(){if(this._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:t,batchSize:s,batchWait:n}=this._options.autoVacuum;this.conditionalVacuum({batchSize:s,batchWait:n},{minDirtCount:t,minDirtFactor:e})}discardAll(e){const t=this._options.autoVacuum;try{this._options.autoVacuum=!1;for(const s of e)this.discard(s)}finally{this._options.autoVacuum=t}this.maybeAutoVacuum()}replace(e){const{idField:t,extractField:s}=this._options,n=s(e,t);this.discard(n),this.add(e)}vacuum(e={}){return this.conditionalVacuum(e)}conditionalVacuum(e,t){return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(()=>{const s=this._enqueuedVacuumConditions;return this._enqueuedVacuumConditions=Je,this.performVacuuming(e,s)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)}performVacuuming(e,t){return Ie(this,void 0,void 0,function*(){const s=this._dirtCount;if(this.vacuumConditionsMet(t)){const n=e.batchSize||Ke.batchSize,r=e.batchWait||Ke.batchWait;let i=1;for(const[o,c]of this._index){for(const[l,h]of c)for(const[v]of h)this._documentIds.has(v)||(h.size<=1?c.delete(l):h.delete(v));this._index.get(o).size===0&&this._index.delete(o),i%n===0&&(yield new Promise(l=>setTimeout(l,r))),i+=1}this._dirtCount-=s}yield null,this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null})}vacuumConditionsMet(e){if(e==null)return!0;let{minDirtCount:t,minDirtFactor:s}=e;return t=t||je.minDirtCount,s=s||je.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=s}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}has(e){return this._idToShortId.has(e)}getStoredFields(e){const t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)}search(e,t={}){const s=this.executeQuery(e,t),n=[];for(const[r,{score:i,terms:o,match:c}]of s){const l=o.length||1,h={id:this._documentIds.get(r),score:i*l,terms:Object.keys(c),queryTerms:o,match:c};Object.assign(h,this._storedFields.get(r)),(t.filter==null||t.filter(h))&&n.push(h)}return e===le.wildcard&&t.boostDocument==null&&this._options.searchOptions.boostDocument==null||n.sort(vt),n}autoSuggest(e,t={}){t=Object.assign(Object.assign({},this._options.autoSuggestOptions),t);const s=new Map;for(const{score:r,terms:i}of this.search(e,t)){const o=i.join(" "),c=s.get(o);c!=null?(c.score+=r,c.count+=1):s.set(o,{score:r,terms:i,count:1})}const n=[];for(const[r,{score:i,terms:o,count:c}]of s)n.push({suggestion:r,terms:o,score:i/c});return n.sort(vt),n}get documentCount(){return this._documentCount}get termCount(){return this._index.size}static loadJSON(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)}static loadJSONAsync(e,t){return Ie(this,void 0,void 0,function*(){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJSAsync(JSON.parse(e),t)})}static getDefault(e){if(Ve.hasOwnProperty(e))return Pe(Ve,e);throw new Error(`MiniSearch: unknown option "${e}"`)}static loadJS(e,t){const{index:s,documentIds:n,fieldLength:r,storedFields:i,serializationVersion:o}=e,c=this.instantiateMiniSearch(e,t);c._documentIds=Ee(n),c._fieldLength=Ee(r),c._storedFields=Ee(i);for(const[l,h]of c._documentIds)c._idToShortId.set(h,l);for(const[l,h]of s){const v=new Map;for(const f of Object.keys(h)){let b=h[f];o===1&&(b=b.ds),v.set(parseInt(f,10),Ee(b))}c._index.set(l,v)}return c}static loadJSAsync(e,t){return Ie(this,void 0,void 0,function*(){const{index:s,documentIds:n,fieldLength:r,storedFields:i,serializationVersion:o}=e,c=this.instantiateMiniSearch(e,t);c._documentIds=yield Te(n),c._fieldLength=yield Te(r),c._storedFields=yield Te(i);for(const[h,v]of c._documentIds)c._idToShortId.set(v,h);let l=0;for(const[h,v]of s){const f=new Map;for(const b of Object.keys(v)){let y=v[b];o===1&&(y=y.ds),f.set(parseInt(b,10),yield Te(y))}++l%1e3===0&&(yield Ft(0)),c._index.set(h,f)}return c})}static instantiateMiniSearch(e,t){const{documentCount:s,nextId:n,fieldIds:r,averageFieldLength:i,dirtCount:o,serializationVersion:c}=e;if(c!==1&&c!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");const l=new le(t);return l._documentCount=s,l._nextId=n,l._idToShortId=new Map,l._fieldIds=r,l._avgFieldLength=i,l._dirtCount=o||0,l._index=new X,l}executeQuery(e,t={}){if(e===le.wildcard)return this.executeWildcardQuery(t);if(typeof e!="string"){const f=Object.assign(Object.assign(Object.assign({},t),e),{queries:void 0}),b=e.queries.map(y=>this.executeQuery(y,f));return this.combineResults(b,f.combineWith)}const{tokenize:s,processTerm:n,searchOptions:r}=this._options,i=Object.assign(Object.assign({tokenize:s,processTerm:n},r),t),{tokenize:o,processTerm:c}=i,v=o(e).flatMap(f=>c(f)).filter(f=>!!f).map(Ws(i)).map(f=>this.executeQuerySpec(f,i));return this.combineResults(v,i.combineWith)}executeQuerySpec(e,t){const s=Object.assign(Object.assign({},this._options.searchOptions),t),n=(s.fields||this._options.fields).reduce((_,w)=>Object.assign(Object.assign({},_),{[w]:Pe(s.boost,w)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:o,bm25:c}=s,{fuzzy:l,prefix:h}=Object.assign(Object.assign({},ft.weights),i),v=this._index.get(e.term),f=this.termResults(e.term,e.term,1,e.termBoost,v,n,r,c);let b,y;if(e.prefix&&(b=this._index.atPrefix(e.term)),e.fuzzy){const _=e.fuzzy===!0?.2:e.fuzzy,w=_<1?Math.min(o,Math.round(e.term.length*_)):_;w&&(y=this._index.fuzzyGet(e.term,w))}if(b)for(const[_,w]of b){const R=_.length-e.term.length;if(!R)continue;y==null||y.delete(_);const C=h*_.length/(_.length+.3*R);this.termResults(e.term,_,C,e.termBoost,w,n,r,c,f)}if(y)for(const _ of y.keys()){const[w,R]=y.get(_);if(!R)continue;const C=l*_.length/(_.length+R);this.termResults(e.term,_,C,e.termBoost,w,n,r,c,f)}return f}executeWildcardQuery(e){const t=new Map,s=Object.assign(Object.assign({},this._options.searchOptions),e);for(const[n,r]of this._documentIds){const i=s.boostDocument?s.boostDocument(r,"",this._storedFields.get(n)):1;t.set(n,{score:i,terms:[],match:{}})}return t}combineResults(e,t=qe){if(e.length===0)return new Map;const s=t.toLowerCase(),n=js[s];if(!n)throw new Error(`Invalid combination operator: ${t}`);return e.reduce(n)||new Map}toJSON(){const e=[];for(const[t,s]of this._index){const n={};for(const[r,i]of s)n[r]=Object.fromEntries(i);e.push([t,n])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,serializationVersion:2}}termResults(e,t,s,n,r,i,o,c,l=new Map){if(r==null)return l;for(const h of Object.keys(i)){const v=i[h],f=this._fieldIds[h],b=r.get(f);if(b==null)continue;let y=b.size;const _=this._avgFieldLength[f];for(const w of b.keys()){if(!this._documentIds.has(w)){this.removeTerm(f,w,t),y-=1;continue}const R=o?o(this._documentIds.get(w),t,this._storedFields.get(w)):1;if(!R)continue;const C=b.get(w),J=this._fieldLength.get(w)[f],H=Bs(C,y,this._documentCount,J,_,c),W=s*n*v*R*H,j=l.get(w);if(j){j.score+=W,Js(j.terms,e);const $=Pe(j.match,t);$?$.push(h):j.match[t]=[h]}else l.set(w,{score:W,terms:[e],match:{[t]:[h]}})}}return l}addTerm(e,t,s){const n=this._index.fetch(s,mt);let r=n.get(e);if(r==null)r=new Map,r.set(t,1),n.set(e,r);else{const i=r.get(t);r.set(t,(i||0)+1)}}removeTerm(e,t,s){if(!this._index.has(s)){this.warnDocumentChanged(t,e,s);return}const n=this._index.fetch(s,mt),r=n.get(e);r==null||r.get(t)==null?this.warnDocumentChanged(t,e,s):r.get(t)<=1?r.size<=1?n.delete(e):r.delete(t):r.set(t,r.get(t)-1),this._index.get(s).size===0&&this._index.delete(s)}warnDocumentChanged(e,t,s){for(const n of Object.keys(this._fieldIds))if(this._fieldIds[n]===t){this._options.logger("warn",`MiniSearch: document with ID ${this._documentIds.get(e)} has changed before removal: term "${s}" was not present in field "${n}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}}addDocumentId(e){const t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t}addFields(e){for(let t=0;tObject.prototype.hasOwnProperty.call(a,e)?a[e]:void 0,js={[qe]:(a,e)=>{for(const t of e.keys()){const s=a.get(t);if(s==null)a.set(t,e.get(t));else{const{score:n,terms:r,match:i}=e.get(t);s.score=s.score+n,s.match=Object.assign(s.match,i),pt(s.terms,r)}}return a},[kt]:(a,e)=>{const t=new Map;for(const s of e.keys()){const n=a.get(s);if(n==null)continue;const{score:r,terms:i,match:o}=e.get(s);pt(n.terms,i),t.set(s,{score:n.score+r,terms:n.terms,match:Object.assign(n.match,o)})}return t},[Vs]:(a,e)=>{for(const t of e.keys())a.delete(t);return a}},$s={k:1.2,b:.7,d:.5},Bs=(a,e,t,s,n,r)=>{const{k:i,b:o,d:c}=r;return Math.log(1+(t-e+.5)/(e+.5))*(c+a*(i+1)/(a+i*(1-o+o*s/n)))},Ws=a=>(e,t,s)=>{const n=typeof a.fuzzy=="function"?a.fuzzy(e,t,s):a.fuzzy||!1,r=typeof a.prefix=="function"?a.prefix(e,t,s):a.prefix===!0,i=typeof a.boostTerm=="function"?a.boostTerm(e,t,s):1;return{term:e,fuzzy:n,prefix:r,termBoost:i}},Ve={idField:"id",extractField:(a,e)=>a[e],tokenize:a=>a.split(Us),processTerm:a=>a.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(a,e)=>{typeof(console==null?void 0:console[a])=="function"&&console[a](e)},autoVacuum:!0},ft={combineWith:qe,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:$s},Ks={combineWith:kt,prefix:(a,e,t)=>e===t.length-1},Ke={batchSize:1e3,batchWait:10},Je={minDirtFactor:.1,minDirtCount:20},je=Object.assign(Object.assign({},Ke),Je),Js=(a,e)=>{a.includes(e)||a.push(e)},pt=(a,e)=>{for(const t of e)a.includes(t)||a.push(t)},vt=({score:a},{score:e})=>e-a,mt=()=>new Map,Ee=a=>{const e=new Map;for(const t of Object.keys(a))e.set(parseInt(t,10),a[t]);return e},Te=a=>Ie(void 0,void 0,void 0,function*(){const e=new Map;let t=0;for(const s of Object.keys(a))e.set(parseInt(s,10),a[s]),++t%1e3===0&&(yield Ft(0));return e}),Ft=a=>new Promise(e=>setTimeout(e,a)),Us=/[\n\r\p{Z}\p{P}]+/u;class qs{constructor(e=10){Me(this,"max");Me(this,"cache");this.max=e,this.cache=new Map}get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){this.cache.has(e)?this.cache.delete(e):this.cache.size===this.max&&this.cache.delete(this.first()),this.cache.set(e,t)}first(){return this.cache.keys().next().value}clear(){this.cache.clear()}}const K=a=>(Yt("data-v-c74c0613"),a=a(),Zt(),a),Gs=["aria-owns"],Qs={class:"shell"},Hs=["title"],Ys=K(()=>x("span",{"aria-hidden":"true",class:"vpi-search search-icon local-search-icon"},null,-1)),Zs=[Ys],Xs={class:"search-actions before"},en=["title"],tn=K(()=>x("span",{class:"vpi-arrow-left local-search-icon"},null,-1)),sn=[tn],nn=["placeholder"],rn={class:"search-actions"},an=["title"],on=K(()=>x("span",{class:"vpi-layout-list local-search-icon"},null,-1)),cn=[on],ln=["disabled","title"],un=K(()=>x("span",{class:"vpi-delete local-search-icon"},null,-1)),dn=[un],hn=["id","role","aria-labelledby"],fn=["aria-selected"],pn=["href","aria-label","onMouseenter","onFocusin"],vn={class:"titles"},mn=K(()=>x("span",{class:"title-icon"},"#",-1)),gn=["innerHTML"],bn=K(()=>x("span",{class:"vpi-chevron-right local-search-icon"},null,-1)),yn={class:"title main"},wn=["innerHTML"],_n={key:0,class:"excerpt-wrapper"},xn={key:0,class:"excerpt",inert:""},Sn=["innerHTML"],En=K(()=>x("div",{class:"excerpt-gradient-bottom"},null,-1)),Tn=K(()=>x("div",{class:"excerpt-gradient-top"},null,-1)),In={key:0,class:"no-results"},Nn={class:"search-keyboard-shortcuts"},kn=["aria-label"],Fn=K(()=>x("span",{class:"vpi-arrow-up navigate-icon"},null,-1)),On=[Fn],Rn=["aria-label"],Cn=K(()=>x("span",{class:"vpi-arrow-down navigate-icon"},null,-1)),Mn=[Cn],An=["aria-label"],Ln=K(()=>x("span",{class:"vpi-corner-down-left navigate-icon"},null,-1)),Dn=[Ln],zn=["aria-label"],Pn=Lt({__name:"VPLocalSearchBox",emits:["close"],setup(a,{emit:e}){var F,M;const t=e,s=we(),n=we(),r=we(as),i=is(),{activate:o}=Ms(s,{immediate:!0,allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0}),{localeIndex:c,theme:l}=i,h=st(async()=>{var p,g,N,O,P,V,I,L,q;return at(le.loadJSON((N=await((g=(p=r.value)[c.value])==null?void 0:g.call(p)))==null?void 0:N.default,{fields:["title","titles","text"],storeFields:["title","titles"],searchOptions:{fuzzy:.2,prefix:!0,boost:{title:4,text:2,titles:1},...((O=l.value.search)==null?void 0:O.provider)==="local"&&((V=(P=l.value.search.options)==null?void 0:P.miniSearch)==null?void 0:V.searchOptions)},...((I=l.value.search)==null?void 0:I.provider)==="local"&&((q=(L=l.value.search.options)==null?void 0:L.miniSearch)==null?void 0:q.options)}))}),f=ve(()=>{var p,g;return((p=l.value.search)==null?void 0:p.provider)==="local"&&((g=l.value.search.options)==null?void 0:g.disableQueryPersistence)===!0}).value?ne(""):Dt("vitepress:local-search-filter",""),b=zt("vitepress:local-search-detailed-list",((F=l.value.search)==null?void 0:F.provider)==="local"&&((M=l.value.search.options)==null?void 0:M.detailedView)===!0),y=ve(()=>{var p,g,N;return((p=l.value.search)==null?void 0:p.provider)==="local"&&(((g=l.value.search.options)==null?void 0:g.disableDetailedView)===!0||((N=l.value.search.options)==null?void 0:N.detailedView)===!1)}),_=ve(()=>{var g,N,O,P,V,I,L;const p=((g=l.value.search)==null?void 0:g.options)??l.value.algolia;return((V=(P=(O=(N=p==null?void 0:p.locales)==null?void 0:N[c.value])==null?void 0:O.translations)==null?void 0:P.button)==null?void 0:V.buttonText)||((L=(I=p==null?void 0:p.translations)==null?void 0:I.button)==null?void 0:L.buttonText)||"Search"});Pt(()=>{y.value&&(b.value=!1)});const w=we([]),R=ne(!1);$e(f,()=>{R.value=!1});const C=st(async()=>{if(n.value)return at(new Ls(n.value))},null),J=new qs(16);Vt(()=>[h.value,f.value,b.value],async([p,g,N],O,P)=>{var ge,Ge,Qe,He;(O==null?void 0:O[0])!==p&&J.clear();let V=!1;if(P(()=>{V=!0}),!p)return;w.value=p.search(g).slice(0,16),R.value=!0;const I=N?await Promise.all(w.value.map(B=>H(B.id))):[];if(V)return;for(const{id:B,mod:ee}of I){const te=B.slice(0,B.indexOf("#"));let Y=J.get(te);if(Y)continue;Y=new Map,J.set(te,Y);const G=ee.default??ee;if(G!=null&&G.render||G!=null&&G.setup){const se=Xt(G);se.config.warnHandler=()=>{},se.provide(es,i),Object.defineProperties(se.config.globalProperties,{$frontmatter:{get(){return i.frontmatter.value}},$params:{get(){return i.page.value.params}}});const Ye=document.createElement("div");se.mount(Ye),Ye.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(ue=>{var et;const be=(et=ue.querySelector("a"))==null?void 0:et.getAttribute("href"),Ze=(be==null?void 0:be.startsWith("#"))&&be.slice(1);if(!Ze)return;let Xe="";for(;(ue=ue.nextElementSibling)&&!/^h[1-6]$/i.test(ue.tagName);)Xe+=ue.outerHTML;Y.set(Ze,Xe)}),se.unmount()}if(V)return}const L=new Set;if(w.value=w.value.map(B=>{const[ee,te]=B.id.split("#"),Y=J.get(ee),G=(Y==null?void 0:Y.get(te))??"";for(const se in B.match)L.add(se);return{...B,text:G}}),await de(),V)return;await new Promise(B=>{var ee;(ee=C.value)==null||ee.unmark({done:()=>{var te;(te=C.value)==null||te.markRegExp(k(L),{done:B})}})});const q=((ge=s.value)==null?void 0:ge.querySelectorAll(".result .excerpt"))??[];for(const B of q)(Ge=B.querySelector('mark[data-markjs="true"]'))==null||Ge.scrollIntoView({block:"center"});(He=(Qe=n.value)==null?void 0:Qe.firstElementChild)==null||He.scrollIntoView({block:"start"})},{debounce:200,immediate:!0});async function H(p){const g=ts(p.slice(0,p.indexOf("#")));try{if(!g)throw new Error(`Cannot find file for id: ${p}`);return{id:p,mod:await import(g)}}catch(N){return console.error(N),{id:p,mod:{}}}}const W=ne(),j=ve(()=>{var p;return((p=f.value)==null?void 0:p.length)<=0});function $(p=!0){var g,N;(g=W.value)==null||g.focus(),p&&((N=W.value)==null||N.select())}Ae(()=>{$()});function Ce(p){p.pointerType==="mouse"&&$()}const A=ne(-1),U=ne(!1);$e(w,p=>{A.value=p.length?0:-1,T()});function T(){de(()=>{const p=document.querySelector(".result.selected");p==null||p.scrollIntoView({block:"nearest"})})}_e("ArrowUp",p=>{p.preventDefault(),A.value--,A.value<0&&(A.value=w.value.length-1),U.value=!0,T()}),_e("ArrowDown",p=>{p.preventDefault(),A.value++,A.value>=w.value.length&&(A.value=0),U.value=!0,T()});const u=jt();_e("Enter",p=>{if(p.isComposing||p.target instanceof HTMLButtonElement&&p.target.type!=="submit")return;const g=w.value[A.value];if(p.target instanceof HTMLInputElement&&!g){p.preventDefault();return}g&&(u.go(g.id),t("close"))}),_e("Escape",()=>{t("close")});const m=rs({modal:{displayDetails:"Display detailed list",resetButtonTitle:"Reset search",backButtonTitle:"Close search",noResultsText:"No results for",footer:{selectText:"to select",selectKeyAriaLabel:"enter",navigateText:"to navigate",navigateUpKeyAriaLabel:"up arrow",navigateDownKeyAriaLabel:"down arrow",closeText:"to close",closeKeyAriaLabel:"escape"}}});Ae(()=>{window.history.pushState(null,"",null)}),$t("popstate",p=>{p.preventDefault(),t("close")});const S=Bt(Wt?document.body:null);Ae(()=>{de(()=>{S.value=!0,de().then(()=>o())})}),Kt(()=>{S.value=!1});function E(){f.value="",de().then(()=>$(!1))}function k(p){return new RegExp([...p].sort((g,N)=>N.length-g.length).map(g=>`(${ss(g)})`).join("|"),"gi")}return(p,g)=>{var N,O,P,V;return Q(),Jt(Ht,{to:"body"},[x("div",{ref_key:"el",ref:s,role:"button","aria-owns":(N=w.value)!=null&&N.length?"localsearch-list":void 0,"aria-expanded":"true","aria-haspopup":"listbox","aria-labelledby":"localsearch-label",class:"VPLocalSearchBox"},[x("div",{class:"backdrop",onClick:g[0]||(g[0]=I=>p.$emit("close"))}),x("div",Qs,[x("form",{class:"search-bar",onPointerup:g[4]||(g[4]=I=>Ce(I)),onSubmit:g[5]||(g[5]=Ut(()=>{},["prevent"]))},[x("label",{title:_.value,id:"localsearch-label",for:"localsearch-input"},Zs,8,Hs),x("div",Xs,[x("button",{class:"back-button",title:D(m)("modal.backButtonTitle"),onClick:g[1]||(g[1]=I=>p.$emit("close"))},sn,8,en)]),qt(x("input",{ref_key:"searchInput",ref:W,"onUpdate:modelValue":g[2]||(g[2]=I=>Qt(f)?f.value=I:null),placeholder:_.value,id:"localsearch-input","aria-labelledby":"localsearch-label",class:"search-input"},null,8,nn),[[Gt,D(f)]]),x("div",rn,[y.value?xe("",!0):(Q(),Z("button",{key:0,class:nt(["toggle-layout-button",{"detailed-list":D(b)}]),type:"button",title:D(m)("modal.displayDetails"),onClick:g[3]||(g[3]=I=>A.value>-1&&(b.value=!D(b)))},cn,10,an)),x("button",{class:"clear-button",type:"reset",disabled:j.value,title:D(m)("modal.resetButtonTitle"),onClick:E},dn,8,ln)])],32),x("ul",{ref_key:"resultsEl",ref:n,id:(O=w.value)!=null&&O.length?"localsearch-list":void 0,role:(P=w.value)!=null&&P.length?"listbox":void 0,"aria-labelledby":(V=w.value)!=null&&V.length?"localsearch-label":void 0,class:"results",onMousemove:g[7]||(g[7]=I=>U.value=!1)},[(Q(!0),Z(rt,null,it(w.value,(I,L)=>(Q(),Z("li",{key:I.id,role:"option","aria-selected":A.value===L?"true":"false"},[x("a",{href:I.id,class:nt(["result",{selected:A.value===L}]),"aria-label":[...I.titles,I.title].join(" > "),onMouseenter:q=>!U.value&&(A.value=L),onFocusin:q=>A.value=L,onClick:g[6]||(g[6]=q=>p.$emit("close"))},[x("div",null,[x("div",vn,[mn,(Q(!0),Z(rt,null,it(I.titles,(q,ge)=>(Q(),Z("span",{key:ge,class:"title"},[x("span",{class:"text",innerHTML:q},null,8,gn),bn]))),128)),x("span",yn,[x("span",{class:"text",innerHTML:I.title},null,8,wn)])]),D(b)?(Q(),Z("div",_n,[I.text?(Q(),Z("div",xn,[x("div",{class:"vp-doc",innerHTML:I.text},null,8,Sn)])):xe("",!0),En,Tn])):xe("",!0)])],42,pn)],8,fn))),128)),D(f)&&!w.value.length&&R.value?(Q(),Z("li",In,[he(fe(D(m)("modal.noResultsText"))+' "',1),x("strong",null,fe(D(f)),1),he('" ')])):xe("",!0)],40,hn),x("div",Nn,[x("span",null,[x("kbd",{"aria-label":D(m)("modal.footer.navigateUpKeyAriaLabel")},On,8,kn),x("kbd",{"aria-label":D(m)("modal.footer.navigateDownKeyAriaLabel")},Mn,8,Rn),he(" "+fe(D(m)("modal.footer.navigateText")),1)]),x("span",null,[x("kbd",{"aria-label":D(m)("modal.footer.selectKeyAriaLabel")},Dn,8,An),he(" "+fe(D(m)("modal.footer.selectText")),1)]),x("span",null,[x("kbd",{"aria-label":D(m)("modal.footer.closeKeyAriaLabel")},"esc",8,zn),he(" "+fe(D(m)("modal.footer.closeText")),1)])])])],8,Gs)])}}}),Kn=ns(Pn,[["__scopeId","data-v-c74c0613"]]);export{Kn as default}; +*/function ct(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(a,n).enumerable})),t.push.apply(t,s)}return t}function lt(a){for(var e=1;e0){var s=e[e.length-1];s!==t&&s.pause()}var n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var s=e.indexOf(t);s!==-1&&e.splice(s,1),e.length>0&&e[e.length-1].unpause()}},Ns=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},ks=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},me=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},Fs=function(e){return me(e)&&!e.shiftKey},Os=function(e){return me(e)&&e.shiftKey},dt=function(e){return setTimeout(e,0)},ht=function(e,t){var s=-1;return e.every(function(n,r){return t(n)?(s=r,!1):!0}),s},pe=function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),n=1;n1?m-1:0),E=1;E=0)u=s.activeElement;else{var d=i.tabbableGroups[0],m=d&&d.firstTabbableNode;u=m||h("fallbackFocus")}if(!u)throw new Error("Your focus-trap needs to have at least one focusable element");return u},f=function(){if(i.containerGroups=i.containers.map(function(u){var d=_s(u,r.tabbableOptions),m=xs(u,r.tabbableOptions),S=d.length>0?d[0]:void 0,E=d.length>0?d[d.length-1]:void 0,k=m.find(function(p){return ae(p)}),F=m.slice().reverse().find(function(p){return ae(p)}),M=!!d.find(function(p){return ie(p)>0});return{container:u,tabbableNodes:d,focusableNodes:m,posTabIndexesFound:M,firstTabbableNode:S,lastTabbableNode:E,firstDomTabbableNode:k,lastDomTabbableNode:F,nextTabbableNode:function(g){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,O=d.indexOf(g);return O<0?N?m.slice(m.indexOf(g)+1).find(function(P){return ae(P)}):m.slice(0,m.indexOf(g)).reverse().find(function(P){return ae(P)}):d[O+(N?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(u){return u.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!h("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(u){return u.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},b=function T(u){var d=u.activeElement;if(d)return d.shadowRoot&&d.shadowRoot.activeElement!==null?T(d.shadowRoot):d},y=function T(u){if(u!==!1&&u!==b(document)){if(!u||!u.focus){T(v());return}u.focus({preventScroll:!!r.preventScroll}),i.mostRecentlyFocusedNode=u,Ns(u)&&u.select()}},_=function(u){var d=h("setReturnFocus",u);return d||(d===!1?!1:u)},w=function(u){var d=u.target,m=u.event,S=u.isBackward,E=S===void 0?!1:S;d=d||Se(m),f();var k=null;if(i.tabbableGroups.length>0){var F=l(d,m),M=F>=0?i.containerGroups[F]:void 0;if(F<0)E?k=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:k=i.tabbableGroups[0].firstTabbableNode;else if(E){var p=ht(i.tabbableGroups,function(I){var L=I.firstTabbableNode;return d===L});if(p<0&&(M.container===d||Le(d,r.tabbableOptions)&&!ae(d,r.tabbableOptions)&&!M.nextTabbableNode(d,!1))&&(p=F),p>=0){var g=p===0?i.tabbableGroups.length-1:p-1,N=i.tabbableGroups[g];k=ie(d)>=0?N.lastTabbableNode:N.lastDomTabbableNode}else me(m)||(k=M.nextTabbableNode(d,!1))}else{var O=ht(i.tabbableGroups,function(I){var L=I.lastTabbableNode;return d===L});if(O<0&&(M.container===d||Le(d,r.tabbableOptions)&&!ae(d,r.tabbableOptions)&&!M.nextTabbableNode(d))&&(O=F),O>=0){var P=O===i.tabbableGroups.length-1?0:O+1,V=i.tabbableGroups[P];k=ie(d)>=0?V.firstTabbableNode:V.firstDomTabbableNode}else me(m)||(k=M.nextTabbableNode(d))}}else k=h("fallbackFocus");return k},R=function(u){var d=Se(u);if(!(l(d,u)>=0)){if(pe(r.clickOutsideDeactivates,u)){o.deactivate({returnFocus:r.returnFocusOnDeactivate});return}pe(r.allowOutsideClick,u)||u.preventDefault()}},C=function(u){var d=Se(u),m=l(d,u)>=0;if(m||d instanceof Document)m&&(i.mostRecentlyFocusedNode=d);else{u.stopImmediatePropagation();var S,E=!0;if(i.mostRecentlyFocusedNode)if(ie(i.mostRecentlyFocusedNode)>0){var k=l(i.mostRecentlyFocusedNode),F=i.containerGroups[k].tabbableNodes;if(F.length>0){var M=F.findIndex(function(p){return p===i.mostRecentlyFocusedNode});M>=0&&(r.isKeyForward(i.recentNavEvent)?M+1=0&&(S=F[M-1],E=!1))}}else i.containerGroups.some(function(p){return p.tabbableNodes.some(function(g){return ie(g)>0})})||(E=!1);else E=!1;E&&(S=w({target:i.mostRecentlyFocusedNode,isBackward:r.isKeyBackward(i.recentNavEvent)})),y(S||i.mostRecentlyFocusedNode||v())}i.recentNavEvent=void 0},J=function(u){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=u;var m=w({event:u,isBackward:d});m&&(me(u)&&u.preventDefault(),y(m))},H=function(u){if(ks(u)&&pe(r.escapeDeactivates,u)!==!1){u.preventDefault(),o.deactivate();return}(r.isKeyForward(u)||r.isKeyBackward(u))&&J(u,r.isKeyBackward(u))},W=function(u){var d=Se(u);l(d,u)>=0||pe(r.clickOutsideDeactivates,u)||pe(r.allowOutsideClick,u)||(u.preventDefault(),u.stopImmediatePropagation())},j=function(){if(i.active)return ut.activateTrap(n,o),i.delayInitialFocusTimer=r.delayInitialFocus?dt(function(){y(v())}):y(v()),s.addEventListener("focusin",C,!0),s.addEventListener("mousedown",R,{capture:!0,passive:!1}),s.addEventListener("touchstart",R,{capture:!0,passive:!1}),s.addEventListener("click",W,{capture:!0,passive:!1}),s.addEventListener("keydown",H,{capture:!0,passive:!1}),o},$=function(){if(i.active)return s.removeEventListener("focusin",C,!0),s.removeEventListener("mousedown",R,!0),s.removeEventListener("touchstart",R,!0),s.removeEventListener("click",W,!0),s.removeEventListener("keydown",H,!0),o},Ce=function(u){var d=u.some(function(m){var S=Array.from(m.removedNodes);return S.some(function(E){return E===i.mostRecentlyFocusedNode})});d&&y(v())},A=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(Ce):void 0,U=function(){A&&(A.disconnect(),i.active&&!i.paused&&i.containers.map(function(u){A.observe(u,{subtree:!0,childList:!0})}))};return o={get active(){return i.active},get paused(){return i.paused},activate:function(u){if(i.active)return this;var d=c(u,"onActivate"),m=c(u,"onPostActivate"),S=c(u,"checkCanFocusTrap");S||f(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=s.activeElement,d==null||d();var E=function(){S&&f(),j(),U(),m==null||m()};return S?(S(i.containers.concat()).then(E,E),this):(E(),this)},deactivate:function(u){if(!i.active)return this;var d=lt({onDeactivate:r.onDeactivate,onPostDeactivate:r.onPostDeactivate,checkCanReturnFocus:r.checkCanReturnFocus},u);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,$(),i.active=!1,i.paused=!1,U(),ut.deactivateTrap(n,o);var m=c(d,"onDeactivate"),S=c(d,"onPostDeactivate"),E=c(d,"checkCanReturnFocus"),k=c(d,"returnFocus","returnFocusOnDeactivate");m==null||m();var F=function(){dt(function(){k&&y(_(i.nodeFocusedBeforeActivation)),S==null||S()})};return k&&E?(E(_(i.nodeFocusedBeforeActivation)).then(F,F),this):(F(),this)},pause:function(u){if(i.paused||!i.active)return this;var d=c(u,"onPause"),m=c(u,"onPostPause");return i.paused=!0,d==null||d(),$(),U(),m==null||m(),this},unpause:function(u){if(!i.paused||!i.active)return this;var d=c(u,"onUnpause"),m=c(u,"onPostUnpause");return i.paused=!1,d==null||d(),f(),j(),U(),m==null||m(),this},updateContainerElements:function(u){var d=[].concat(u).filter(Boolean);return i.containers=d.map(function(m){return typeof m=="string"?s.querySelector(m):m}),i.active&&f(),U(),this}},o.updateContainerElements(e),o};function Ms(a,e={}){let t;const{immediate:s,...n}=e,r=ne(!1),i=ne(!1),o=f=>t&&t.activate(f),c=f=>t&&t.deactivate(f),l=()=>{t&&(t.pause(),i.value=!0)},h=()=>{t&&(t.unpause(),i.value=!1)},v=ve(()=>{const f=tt(a);return(Array.isArray(f)?f:[f]).map(b=>{const y=tt(b);return typeof y=="string"?y:Ct(y)}).filter(Mt)});return $e(v,f=>{f.length&&(t=Cs(f,{...n,onActivate(){r.value=!0,e.onActivate&&e.onActivate()},onDeactivate(){r.value=!1,e.onDeactivate&&e.onDeactivate()}}),s&&o())},{flush:"post"}),At(()=>c()),{hasFocus:r,isPaused:i,activate:o,deactivate:c,pause:l,unpause:h}}class ce{constructor(e,t=!0,s=[],n=5e3){this.ctx=e,this.iframes=t,this.exclude=s,this.iframesTimeout=n}static matches(e,t){const s=typeof t=="string"?[t]:t,n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(n){let r=!1;return s.every(i=>n.call(e,i)?(r=!0,!1):!0),r}else return!1}getContexts(){let e,t=[];return typeof this.ctx>"u"||!this.ctx?e=[]:NodeList.prototype.isPrototypeOf(this.ctx)?e=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?e=this.ctx:typeof this.ctx=="string"?e=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):e=[this.ctx],e.forEach(s=>{const n=t.filter(r=>r.contains(s)).length>0;t.indexOf(s)===-1&&!n&&t.push(s)}),t}getIframeContents(e,t,s=()=>{}){let n;try{const r=e.contentWindow;if(n=r.document,!r||!n)throw new Error("iframe inaccessible")}catch{s()}n&&t(n)}isIframeBlank(e){const t="about:blank",s=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&s!==t&&s}observeIframeLoad(e,t,s){let n=!1,r=null;const i=()=>{if(!n){n=!0,clearTimeout(r);try{this.isIframeBlank(e)||(e.removeEventListener("load",i),this.getIframeContents(e,t,s))}catch{s()}}};e.addEventListener("load",i),r=setTimeout(i,this.iframesTimeout)}onIframeReady(e,t,s){try{e.contentWindow.document.readyState==="complete"?this.isIframeBlank(e)?this.observeIframeLoad(e,t,s):this.getIframeContents(e,t,s):this.observeIframeLoad(e,t,s)}catch{s()}}waitForIframes(e,t){let s=0;this.forEachIframe(e,()=>!0,n=>{s++,this.waitForIframes(n.querySelector("html"),()=>{--s||t()})},n=>{n||t()})}forEachIframe(e,t,s,n=()=>{}){let r=e.querySelectorAll("iframe"),i=r.length,o=0;r=Array.prototype.slice.call(r);const c=()=>{--i<=0&&n(o)};i||c(),r.forEach(l=>{ce.matches(l,this.exclude)?c():this.onIframeReady(l,h=>{t(l)&&(o++,s(h)),c()},c)})}createIterator(e,t,s){return document.createNodeIterator(e,t,s,!1)}createInstanceOnIframe(e){return new ce(e.querySelector("html"),this.iframes)}compareNodeIframe(e,t,s){const n=e.compareDocumentPosition(s),r=Node.DOCUMENT_POSITION_PRECEDING;if(n&r)if(t!==null){const i=t.compareDocumentPosition(s),o=Node.DOCUMENT_POSITION_FOLLOWING;if(i&o)return!0}else return!0;return!1}getIteratorNode(e){const t=e.previousNode();let s;return t===null?s=e.nextNode():s=e.nextNode()&&e.nextNode(),{prevNode:t,node:s}}checkIframeFilter(e,t,s,n){let r=!1,i=!1;return n.forEach((o,c)=>{o.val===s&&(r=c,i=o.handled)}),this.compareNodeIframe(e,t,s)?(r===!1&&!i?n.push({val:s,handled:!0}):r!==!1&&!i&&(n[r].handled=!0),!0):(r===!1&&n.push({val:s,handled:!1}),!1)}handleOpenIframes(e,t,s,n){e.forEach(r=>{r.handled||this.getIframeContents(r.val,i=>{this.createInstanceOnIframe(i).forEachNode(t,s,n)})})}iterateThroughNodes(e,t,s,n,r){const i=this.createIterator(t,e,n);let o=[],c=[],l,h,v=()=>({prevNode:h,node:l}=this.getIteratorNode(i),l);for(;v();)this.iframes&&this.forEachIframe(t,f=>this.checkIframeFilter(l,h,f,o),f=>{this.createInstanceOnIframe(f).forEachNode(e,b=>c.push(b),n)}),c.push(l);c.forEach(f=>{s(f)}),this.iframes&&this.handleOpenIframes(o,e,s,n),r()}forEachNode(e,t,s,n=()=>{}){const r=this.getContexts();let i=r.length;i||n(),r.forEach(o=>{const c=()=>{this.iterateThroughNodes(e,o,t,s,()=>{--i<=0&&n()})};this.iframes?this.waitForIframes(o,c):c()})}}let As=class{constructor(e){this.ctx=e,this.ie=!1;const t=window.navigator.userAgent;(t.indexOf("MSIE")>-1||t.indexOf("Trident")>-1)&&(this.ie=!0)}set opt(e){this._opt=Object.assign({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:()=>{},noMatch:()=>{},filter:()=>!0,done:()=>{},debug:!1,log:window.console},e)}get opt(){return this._opt}get iterator(){return new ce(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}log(e,t="debug"){const s=this.opt.log;this.opt.debug&&typeof s=="object"&&typeof s[t]=="function"&&s[t](`mark.js: ${e}`)}escapeStr(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}createRegExp(e){return this.opt.wildcards!=="disabled"&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),this.opt.wildcards!=="disabled"&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),e}createSynonymsRegExp(e){const t=this.opt.synonyms,s=this.opt.caseSensitive?"":"i",n=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(let r in t)if(t.hasOwnProperty(r)){const i=t[r],o=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(r):this.escapeStr(r),c=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(i):this.escapeStr(i);o!==""&&c!==""&&(e=e.replace(new RegExp(`(${this.escapeStr(o)}|${this.escapeStr(c)})`,`gm${s}`),n+`(${this.processSynomyms(o)}|${this.processSynomyms(c)})`+n))}return e}processSynomyms(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}setupWildcardsRegExp(e){return e=e.replace(/(?:\\)*\?/g,t=>t.charAt(0)==="\\"?"?":""),e.replace(/(?:\\)*\*/g,t=>t.charAt(0)==="\\"?"*":"")}createWildcardsRegExp(e){let t=this.opt.wildcards==="withSpaces";return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}setupIgnoreJoinersRegExp(e){return e.replace(/[^(|)\\]/g,(t,s,n)=>{let r=n.charAt(s+1);return/[(|)\\]/.test(r)||r===""?t:t+"\0"})}createJoinersRegExp(e){let t=[];const s=this.opt.ignorePunctuation;return Array.isArray(s)&&s.length&&t.push(this.escapeStr(s.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join(`[${t.join("")}]*`):e}createDiacriticsRegExp(e){const t=this.opt.caseSensitive?"":"i",s=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"];let n=[];return e.split("").forEach(r=>{s.every(i=>{if(i.indexOf(r)!==-1){if(n.indexOf(i)>-1)return!1;e=e.replace(new RegExp(`[${i}]`,`gm${t}`),`[${i}]`),n.push(i)}return!0})}),e}createMergedBlanksRegExp(e){return e.replace(/[\s]+/gmi,"[\\s]+")}createAccuracyRegExp(e){const t="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿";let s=this.opt.accuracy,n=typeof s=="string"?s:s.value,r=typeof s=="string"?[]:s.limiters,i="";switch(r.forEach(o=>{i+=`|${this.escapeStr(o)}`}),n){case"partially":default:return`()(${e})`;case"complementary":return i="\\s"+(i||this.escapeStr(t)),`()([^${i}]*${e}[^${i}]*)`;case"exactly":return`(^|\\s${i})(${e})(?=$|\\s${i})`}}getSeparatedKeywords(e){let t=[];return e.forEach(s=>{this.opt.separateWordSearch?s.split(" ").forEach(n=>{n.trim()&&t.indexOf(n)===-1&&t.push(n)}):s.trim()&&t.indexOf(s)===-1&&t.push(s)}),{keywords:t.sort((s,n)=>n.length-s.length),length:t.length}}isNumeric(e){return Number(parseFloat(e))==e}checkRanges(e){if(!Array.isArray(e)||Object.prototype.toString.call(e[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];const t=[];let s=0;return e.sort((n,r)=>n.start-r.start).forEach(n=>{let{start:r,end:i,valid:o}=this.callNoMatchOnInvalidRanges(n,s);o&&(n.start=r,n.length=i-r,t.push(n),s=i)}),t}callNoMatchOnInvalidRanges(e,t){let s,n,r=!1;return e&&typeof e.start<"u"?(s=parseInt(e.start,10),n=s+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&n-t>0&&n-s>0?r=!0:(this.log(`Ignoring invalid or overlapping range: ${JSON.stringify(e)}`),this.opt.noMatch(e))):(this.log(`Ignoring invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)),{start:s,end:n,valid:r}}checkWhitespaceRanges(e,t,s){let n,r=!0,i=s.length,o=t-i,c=parseInt(e.start,10)-o;return c=c>i?i:c,n=c+parseInt(e.length,10),n>i&&(n=i,this.log(`End range automatically set to the max value of ${i}`)),c<0||n-c<0||c>i||n>i?(r=!1,this.log(`Invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)):s.substring(c,n).replace(/\s+/g,"")===""&&(r=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:c,end:n,valid:r}}getTextNodes(e){let t="",s=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,n=>{s.push({start:t.length,end:(t+=n.textContent).length,node:n})},n=>this.matchesExclude(n.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT,()=>{e({value:t,nodes:s})})}matchesExclude(e){return ce.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}wrapRangeInTextNode(e,t,s){const n=this.opt.element?this.opt.element:"mark",r=e.splitText(t),i=r.splitText(s-t);let o=document.createElement(n);return o.setAttribute("data-markjs","true"),this.opt.className&&o.setAttribute("class",this.opt.className),o.textContent=r.textContent,r.parentNode.replaceChild(o,r),i}wrapRangeInMappedTextNode(e,t,s,n,r){e.nodes.every((i,o)=>{const c=e.nodes[o+1];if(typeof c>"u"||c.start>t){if(!n(i.node))return!1;const l=t-i.start,h=(s>i.end?i.end:s)-i.start,v=e.value.substr(0,i.start),f=e.value.substr(h+i.start);if(i.node=this.wrapRangeInTextNode(i.node,l,h),e.value=v+f,e.nodes.forEach((b,y)=>{y>=o&&(e.nodes[y].start>0&&y!==o&&(e.nodes[y].start-=h),e.nodes[y].end-=h)}),s-=h,r(i.node.previousSibling,i.start),s>i.end)t=i.end;else return!1}return!0})}wrapMatches(e,t,s,n,r){const i=t===0?0:t+1;this.getTextNodes(o=>{o.nodes.forEach(c=>{c=c.node;let l;for(;(l=e.exec(c.textContent))!==null&&l[i]!=="";){if(!s(l[i],c))continue;let h=l.index;if(i!==0)for(let v=1;v{let c;for(;(c=e.exec(o.value))!==null&&c[i]!=="";){let l=c.index;if(i!==0)for(let v=1;vs(c[i],v),(v,f)=>{e.lastIndex=f,n(v)})}r()})}wrapRangeFromIndex(e,t,s,n){this.getTextNodes(r=>{const i=r.value.length;e.forEach((o,c)=>{let{start:l,end:h,valid:v}=this.checkWhitespaceRanges(o,i,r.value);v&&this.wrapRangeInMappedTextNode(r,l,h,f=>t(f,o,r.value.substring(l,h),c),f=>{s(f,o)})}),n()})}unwrapMatches(e){const t=e.parentNode;let s=document.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.removeChild(e.firstChild));t.replaceChild(s,e),this.ie?this.normalizeTextNode(t):t.normalize()}normalizeTextNode(e){if(e){if(e.nodeType===3)for(;e.nextSibling&&e.nextSibling.nodeType===3;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}markRegExp(e,t){this.opt=t,this.log(`Searching with expression "${e}"`);let s=0,n="wrapMatches";const r=i=>{s++,this.opt.each(i)};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),this[n](e,this.opt.ignoreGroups,(i,o)=>this.opt.filter(o,i,s),r,()=>{s===0&&this.opt.noMatch(e),this.opt.done(s)})}mark(e,t){this.opt=t;let s=0,n="wrapMatches";const{keywords:r,length:i}=this.getSeparatedKeywords(typeof e=="string"?[e]:e),o=this.opt.caseSensitive?"":"i",c=l=>{let h=new RegExp(this.createRegExp(l),`gm${o}`),v=0;this.log(`Searching with expression "${h}"`),this[n](h,1,(f,b)=>this.opt.filter(b,l,s,v),f=>{v++,s++,this.opt.each(f)},()=>{v===0&&this.opt.noMatch(l),r[i-1]===l?this.opt.done(s):c(r[r.indexOf(l)+1])})};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),i===0?this.opt.done(s):c(r[0])}markRanges(e,t){this.opt=t;let s=0,n=this.checkRanges(e);n&&n.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(n)),this.wrapRangeFromIndex(n,(r,i,o,c)=>this.opt.filter(r,i,o,c),(r,i)=>{s++,this.opt.each(r,i)},()=>{this.opt.done(s)})):this.opt.done(s)}unmark(e){this.opt=e;let t=this.opt.element?this.opt.element:"*";t+="[data-markjs]",this.opt.className&&(t+=`.${this.opt.className}`),this.log(`Removal selector "${t}"`),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,s=>{this.unwrapMatches(s)},s=>{const n=ce.matches(s,t),r=this.matchesExclude(s);return!n||r?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}};function Ls(a){const e=new As(a);return this.mark=(t,s)=>(e.mark(t,s),this),this.markRegExp=(t,s)=>(e.markRegExp(t,s),this),this.markRanges=(t,s)=>(e.markRanges(t,s),this),this.unmark=t=>(e.unmark(t),this),this}function Ie(a,e,t,s){function n(r){return r instanceof t?r:new t(function(i){i(r)})}return new(t||(t=Promise))(function(r,i){function o(h){try{l(s.next(h))}catch(v){i(v)}}function c(h){try{l(s.throw(h))}catch(v){i(v)}}function l(h){h.done?r(h.value):n(h.value).then(o,c)}l((s=s.apply(a,[])).next())})}const Ds="ENTRIES",St="KEYS",Et="VALUES",z="";class De{constructor(e,t){const s=e._tree,n=Array.from(s.keys());this.set=e,this._type=t,this._path=n.length>0?[{node:s,keys:n}]:[]}next(){const e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:e,keys:t}=oe(this._path);if(oe(t)===z)return{done:!1,value:this.result()};const s=e.get(oe(t));return this._path.push({node:s,keys:Array.from(s.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=oe(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>oe(e)).filter(e=>e!==z).join("")}value(){return oe(this._path).node.get(z)}result(){switch(this._type){case Et:return this.value();case St:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const oe=a=>a[a.length-1],zs=(a,e,t)=>{const s=new Map;if(e===void 0)return s;const n=e.length+1,r=n+t,i=new Uint8Array(r*n).fill(t+1);for(let o=0;o{const c=r*i;e:for(const l of a.keys())if(l===z){const h=n[c-1];h<=t&&s.set(o,[a.get(l),h])}else{let h=r;for(let v=0;vt)continue e}Tt(a.get(l),e,t,s,n,h,i,o+l)}};class X{constructor(e=new Map,t=""){this._size=void 0,this._tree=e,this._prefix=t}atPrefix(e){if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");const[t,s]=Re(this._tree,e.slice(this._prefix.length));if(t===void 0){const[n,r]=Ue(s);for(const i of n.keys())if(i!==z&&i.startsWith(r)){const o=new Map;return o.set(i.slice(r.length),n.get(i)),new X(o,e)}}return new X(t,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,Ps(this._tree,e)}entries(){return new De(this,Ds)}forEach(e){for(const[t,s]of this)e(t,s,this)}fuzzyGet(e,t){return zs(this._tree,e,t)}get(e){const t=We(this._tree,e);return t!==void 0?t.get(z):void 0}has(e){const t=We(this._tree,e);return t!==void 0&&t.has(z)}keys(){return new De(this,St)}set(e,t){if(typeof e!="string")throw new Error("key must be a string");return this._size=void 0,ze(this._tree,e).set(z,t),this}get size(){if(this._size)return this._size;this._size=0;const e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const s=ze(this._tree,e);return s.set(z,t(s.get(z))),this}fetch(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const s=ze(this._tree,e);let n=s.get(z);return n===void 0&&s.set(z,n=t()),n}values(){return new De(this,Et)}[Symbol.iterator](){return this.entries()}static from(e){const t=new X;for(const[s,n]of e)t.set(s,n);return t}static fromObject(e){return X.from(Object.entries(e))}}const Re=(a,e,t=[])=>{if(e.length===0||a==null)return[a,t];for(const s of a.keys())if(s!==z&&e.startsWith(s))return t.push([a,s]),Re(a.get(s),e.slice(s.length),t);return t.push([a,e]),Re(void 0,"",t)},We=(a,e)=>{if(e.length===0||a==null)return a;for(const t of a.keys())if(t!==z&&e.startsWith(t))return We(a.get(t),e.slice(t.length))},ze=(a,e)=>{const t=e.length;e:for(let s=0;a&&s{const[t,s]=Re(a,e);if(t!==void 0){if(t.delete(z),t.size===0)It(s);else if(t.size===1){const[n,r]=t.entries().next().value;Nt(s,n,r)}}},It=a=>{if(a.length===0)return;const[e,t]=Ue(a);if(e.delete(t),e.size===0)It(a.slice(0,-1));else if(e.size===1){const[s,n]=e.entries().next().value;s!==z&&Nt(a.slice(0,-1),s,n)}},Nt=(a,e,t)=>{if(a.length===0)return;const[s,n]=Ue(a);s.set(n+e,t),s.delete(n)},Ue=a=>a[a.length-1],qe="or",kt="and",Vs="and_not";class le{constructor(e){if((e==null?void 0:e.fields)==null)throw new Error('MiniSearch: option "fields" must be provided');const t=e.autoVacuum==null||e.autoVacuum===!0?je:e.autoVacuum;this._options=Object.assign(Object.assign(Object.assign({},Ve),e),{autoVacuum:t,searchOptions:Object.assign(Object.assign({},ft),e.searchOptions||{}),autoSuggestOptions:Object.assign(Object.assign({},Ks),e.autoSuggestOptions||{})}),this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=Je,this.addFields(this._options.fields)}add(e){const{extractField:t,tokenize:s,processTerm:n,fields:r,idField:i}=this._options,o=t(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);if(this._idToShortId.has(o))throw new Error(`MiniSearch: duplicate ID ${o}`);const c=this.addDocumentId(o);this.saveStoredFields(c,e);for(const l of r){const h=t(e,l);if(h==null)continue;const v=s(h.toString(),l),f=this._fieldIds[l],b=new Set(v).size;this.addFieldLength(c,f,this._documentCount-1,b);for(const y of v){const _=n(y,l);if(Array.isArray(_))for(const w of _)this.addTerm(f,c,w);else _&&this.addTerm(f,c,_)}}}addAll(e){for(const t of e)this.add(t)}addAllAsync(e,t={}){const{chunkSize:s=10}=t,n={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:o,promise:c},l,h)=>(o.push(l),(h+1)%s===0?{chunk:[],promise:c.then(()=>new Promise(v=>setTimeout(v,0))).then(()=>this.addAll(o))}:{chunk:o,promise:c}),n);return i.then(()=>this.addAll(r))}remove(e){const{tokenize:t,processTerm:s,extractField:n,fields:r,idField:i}=this._options,o=n(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);const c=this._idToShortId.get(o);if(c==null)throw new Error(`MiniSearch: cannot remove document with ID ${o}: it is not in the index`);for(const l of r){const h=n(e,l);if(h==null)continue;const v=t(h.toString(),l),f=this._fieldIds[l],b=new Set(v).size;this.removeFieldLength(c,f,this._documentCount,b);for(const y of v){const _=s(y,l);if(Array.isArray(_))for(const w of _)this.removeTerm(f,c,w);else _&&this.removeTerm(f,c,_)}}this._storedFields.delete(c),this._documentIds.delete(c),this._idToShortId.delete(o),this._fieldLength.delete(c),this._documentCount-=1}removeAll(e){if(e)for(const t of e)this.remove(t);else{if(arguments.length>0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}}discard(e){const t=this._idToShortId.get(e);if(t==null)throw new Error(`MiniSearch: cannot discard document with ID ${e}: it is not in the index`);this._idToShortId.delete(e),this._documentIds.delete(t),this._storedFields.delete(t),(this._fieldLength.get(t)||[]).forEach((s,n)=>{this.removeFieldLength(t,n,this._documentCount,s)}),this._fieldLength.delete(t),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()}maybeAutoVacuum(){if(this._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:t,batchSize:s,batchWait:n}=this._options.autoVacuum;this.conditionalVacuum({batchSize:s,batchWait:n},{minDirtCount:t,minDirtFactor:e})}discardAll(e){const t=this._options.autoVacuum;try{this._options.autoVacuum=!1;for(const s of e)this.discard(s)}finally{this._options.autoVacuum=t}this.maybeAutoVacuum()}replace(e){const{idField:t,extractField:s}=this._options,n=s(e,t);this.discard(n),this.add(e)}vacuum(e={}){return this.conditionalVacuum(e)}conditionalVacuum(e,t){return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(()=>{const s=this._enqueuedVacuumConditions;return this._enqueuedVacuumConditions=Je,this.performVacuuming(e,s)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)}performVacuuming(e,t){return Ie(this,void 0,void 0,function*(){const s=this._dirtCount;if(this.vacuumConditionsMet(t)){const n=e.batchSize||Ke.batchSize,r=e.batchWait||Ke.batchWait;let i=1;for(const[o,c]of this._index){for(const[l,h]of c)for(const[v]of h)this._documentIds.has(v)||(h.size<=1?c.delete(l):h.delete(v));this._index.get(o).size===0&&this._index.delete(o),i%n===0&&(yield new Promise(l=>setTimeout(l,r))),i+=1}this._dirtCount-=s}yield null,this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null})}vacuumConditionsMet(e){if(e==null)return!0;let{minDirtCount:t,minDirtFactor:s}=e;return t=t||je.minDirtCount,s=s||je.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=s}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}has(e){return this._idToShortId.has(e)}getStoredFields(e){const t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)}search(e,t={}){const s=this.executeQuery(e,t),n=[];for(const[r,{score:i,terms:o,match:c}]of s){const l=o.length||1,h={id:this._documentIds.get(r),score:i*l,terms:Object.keys(c),queryTerms:o,match:c};Object.assign(h,this._storedFields.get(r)),(t.filter==null||t.filter(h))&&n.push(h)}return e===le.wildcard&&t.boostDocument==null&&this._options.searchOptions.boostDocument==null||n.sort(vt),n}autoSuggest(e,t={}){t=Object.assign(Object.assign({},this._options.autoSuggestOptions),t);const s=new Map;for(const{score:r,terms:i}of this.search(e,t)){const o=i.join(" "),c=s.get(o);c!=null?(c.score+=r,c.count+=1):s.set(o,{score:r,terms:i,count:1})}const n=[];for(const[r,{score:i,terms:o,count:c}]of s)n.push({suggestion:r,terms:o,score:i/c});return n.sort(vt),n}get documentCount(){return this._documentCount}get termCount(){return this._index.size}static loadJSON(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)}static loadJSONAsync(e,t){return Ie(this,void 0,void 0,function*(){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJSAsync(JSON.parse(e),t)})}static getDefault(e){if(Ve.hasOwnProperty(e))return Pe(Ve,e);throw new Error(`MiniSearch: unknown option "${e}"`)}static loadJS(e,t){const{index:s,documentIds:n,fieldLength:r,storedFields:i,serializationVersion:o}=e,c=this.instantiateMiniSearch(e,t);c._documentIds=Ee(n),c._fieldLength=Ee(r),c._storedFields=Ee(i);for(const[l,h]of c._documentIds)c._idToShortId.set(h,l);for(const[l,h]of s){const v=new Map;for(const f of Object.keys(h)){let b=h[f];o===1&&(b=b.ds),v.set(parseInt(f,10),Ee(b))}c._index.set(l,v)}return c}static loadJSAsync(e,t){return Ie(this,void 0,void 0,function*(){const{index:s,documentIds:n,fieldLength:r,storedFields:i,serializationVersion:o}=e,c=this.instantiateMiniSearch(e,t);c._documentIds=yield Te(n),c._fieldLength=yield Te(r),c._storedFields=yield Te(i);for(const[h,v]of c._documentIds)c._idToShortId.set(v,h);let l=0;for(const[h,v]of s){const f=new Map;for(const b of Object.keys(v)){let y=v[b];o===1&&(y=y.ds),f.set(parseInt(b,10),yield Te(y))}++l%1e3===0&&(yield Ft(0)),c._index.set(h,f)}return c})}static instantiateMiniSearch(e,t){const{documentCount:s,nextId:n,fieldIds:r,averageFieldLength:i,dirtCount:o,serializationVersion:c}=e;if(c!==1&&c!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");const l=new le(t);return l._documentCount=s,l._nextId=n,l._idToShortId=new Map,l._fieldIds=r,l._avgFieldLength=i,l._dirtCount=o||0,l._index=new X,l}executeQuery(e,t={}){if(e===le.wildcard)return this.executeWildcardQuery(t);if(typeof e!="string"){const f=Object.assign(Object.assign(Object.assign({},t),e),{queries:void 0}),b=e.queries.map(y=>this.executeQuery(y,f));return this.combineResults(b,f.combineWith)}const{tokenize:s,processTerm:n,searchOptions:r}=this._options,i=Object.assign(Object.assign({tokenize:s,processTerm:n},r),t),{tokenize:o,processTerm:c}=i,v=o(e).flatMap(f=>c(f)).filter(f=>!!f).map(Ws(i)).map(f=>this.executeQuerySpec(f,i));return this.combineResults(v,i.combineWith)}executeQuerySpec(e,t){const s=Object.assign(Object.assign({},this._options.searchOptions),t),n=(s.fields||this._options.fields).reduce((_,w)=>Object.assign(Object.assign({},_),{[w]:Pe(s.boost,w)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:o,bm25:c}=s,{fuzzy:l,prefix:h}=Object.assign(Object.assign({},ft.weights),i),v=this._index.get(e.term),f=this.termResults(e.term,e.term,1,e.termBoost,v,n,r,c);let b,y;if(e.prefix&&(b=this._index.atPrefix(e.term)),e.fuzzy){const _=e.fuzzy===!0?.2:e.fuzzy,w=_<1?Math.min(o,Math.round(e.term.length*_)):_;w&&(y=this._index.fuzzyGet(e.term,w))}if(b)for(const[_,w]of b){const R=_.length-e.term.length;if(!R)continue;y==null||y.delete(_);const C=h*_.length/(_.length+.3*R);this.termResults(e.term,_,C,e.termBoost,w,n,r,c,f)}if(y)for(const _ of y.keys()){const[w,R]=y.get(_);if(!R)continue;const C=l*_.length/(_.length+R);this.termResults(e.term,_,C,e.termBoost,w,n,r,c,f)}return f}executeWildcardQuery(e){const t=new Map,s=Object.assign(Object.assign({},this._options.searchOptions),e);for(const[n,r]of this._documentIds){const i=s.boostDocument?s.boostDocument(r,"",this._storedFields.get(n)):1;t.set(n,{score:i,terms:[],match:{}})}return t}combineResults(e,t=qe){if(e.length===0)return new Map;const s=t.toLowerCase(),n=js[s];if(!n)throw new Error(`Invalid combination operator: ${t}`);return e.reduce(n)||new Map}toJSON(){const e=[];for(const[t,s]of this._index){const n={};for(const[r,i]of s)n[r]=Object.fromEntries(i);e.push([t,n])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,serializationVersion:2}}termResults(e,t,s,n,r,i,o,c,l=new Map){if(r==null)return l;for(const h of Object.keys(i)){const v=i[h],f=this._fieldIds[h],b=r.get(f);if(b==null)continue;let y=b.size;const _=this._avgFieldLength[f];for(const w of b.keys()){if(!this._documentIds.has(w)){this.removeTerm(f,w,t),y-=1;continue}const R=o?o(this._documentIds.get(w),t,this._storedFields.get(w)):1;if(!R)continue;const C=b.get(w),J=this._fieldLength.get(w)[f],H=Bs(C,y,this._documentCount,J,_,c),W=s*n*v*R*H,j=l.get(w);if(j){j.score+=W,Js(j.terms,e);const $=Pe(j.match,t);$?$.push(h):j.match[t]=[h]}else l.set(w,{score:W,terms:[e],match:{[t]:[h]}})}}return l}addTerm(e,t,s){const n=this._index.fetch(s,mt);let r=n.get(e);if(r==null)r=new Map,r.set(t,1),n.set(e,r);else{const i=r.get(t);r.set(t,(i||0)+1)}}removeTerm(e,t,s){if(!this._index.has(s)){this.warnDocumentChanged(t,e,s);return}const n=this._index.fetch(s,mt),r=n.get(e);r==null||r.get(t)==null?this.warnDocumentChanged(t,e,s):r.get(t)<=1?r.size<=1?n.delete(e):r.delete(t):r.set(t,r.get(t)-1),this._index.get(s).size===0&&this._index.delete(s)}warnDocumentChanged(e,t,s){for(const n of Object.keys(this._fieldIds))if(this._fieldIds[n]===t){this._options.logger("warn",`MiniSearch: document with ID ${this._documentIds.get(e)} has changed before removal: term "${s}" was not present in field "${n}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}}addDocumentId(e){const t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t}addFields(e){for(let t=0;tObject.prototype.hasOwnProperty.call(a,e)?a[e]:void 0,js={[qe]:(a,e)=>{for(const t of e.keys()){const s=a.get(t);if(s==null)a.set(t,e.get(t));else{const{score:n,terms:r,match:i}=e.get(t);s.score=s.score+n,s.match=Object.assign(s.match,i),pt(s.terms,r)}}return a},[kt]:(a,e)=>{const t=new Map;for(const s of e.keys()){const n=a.get(s);if(n==null)continue;const{score:r,terms:i,match:o}=e.get(s);pt(n.terms,i),t.set(s,{score:n.score+r,terms:n.terms,match:Object.assign(n.match,o)})}return t},[Vs]:(a,e)=>{for(const t of e.keys())a.delete(t);return a}},$s={k:1.2,b:.7,d:.5},Bs=(a,e,t,s,n,r)=>{const{k:i,b:o,d:c}=r;return Math.log(1+(t-e+.5)/(e+.5))*(c+a*(i+1)/(a+i*(1-o+o*s/n)))},Ws=a=>(e,t,s)=>{const n=typeof a.fuzzy=="function"?a.fuzzy(e,t,s):a.fuzzy||!1,r=typeof a.prefix=="function"?a.prefix(e,t,s):a.prefix===!0,i=typeof a.boostTerm=="function"?a.boostTerm(e,t,s):1;return{term:e,fuzzy:n,prefix:r,termBoost:i}},Ve={idField:"id",extractField:(a,e)=>a[e],tokenize:a=>a.split(Us),processTerm:a=>a.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(a,e)=>{typeof(console==null?void 0:console[a])=="function"&&console[a](e)},autoVacuum:!0},ft={combineWith:qe,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:$s},Ks={combineWith:kt,prefix:(a,e,t)=>e===t.length-1},Ke={batchSize:1e3,batchWait:10},Je={minDirtFactor:.1,minDirtCount:20},je=Object.assign(Object.assign({},Ke),Je),Js=(a,e)=>{a.includes(e)||a.push(e)},pt=(a,e)=>{for(const t of e)a.includes(t)||a.push(t)},vt=({score:a},{score:e})=>e-a,mt=()=>new Map,Ee=a=>{const e=new Map;for(const t of Object.keys(a))e.set(parseInt(t,10),a[t]);return e},Te=a=>Ie(void 0,void 0,void 0,function*(){const e=new Map;let t=0;for(const s of Object.keys(a))e.set(parseInt(s,10),a[s]),++t%1e3===0&&(yield Ft(0));return e}),Ft=a=>new Promise(e=>setTimeout(e,a)),Us=/[\n\r\p{Z}\p{P}]+/u;class qs{constructor(e=10){Me(this,"max");Me(this,"cache");this.max=e,this.cache=new Map}get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){this.cache.has(e)?this.cache.delete(e):this.cache.size===this.max&&this.cache.delete(this.first()),this.cache.set(e,t)}first(){return this.cache.keys().next().value}clear(){this.cache.clear()}}const K=a=>(Yt("data-v-6120c6bd"),a=a(),Zt(),a),Gs=["aria-owns"],Qs={class:"shell"},Hs=["title"],Ys=K(()=>x("span",{"aria-hidden":"true",class:"vpi-search search-icon local-search-icon"},null,-1)),Zs=[Ys],Xs={class:"search-actions before"},en=["title"],tn=K(()=>x("span",{class:"vpi-arrow-left local-search-icon"},null,-1)),sn=[tn],nn=["placeholder"],rn={class:"search-actions"},an=["title"],on=K(()=>x("span",{class:"vpi-layout-list local-search-icon"},null,-1)),cn=[on],ln=["disabled","title"],un=K(()=>x("span",{class:"vpi-delete local-search-icon"},null,-1)),dn=[un],hn=["id","role","aria-labelledby"],fn=["aria-selected"],pn=["href","aria-label","onMouseenter","onFocusin"],vn={class:"titles"},mn=K(()=>x("span",{class:"title-icon"},"#",-1)),gn=["innerHTML"],bn=K(()=>x("span",{class:"vpi-chevron-right local-search-icon"},null,-1)),yn={class:"title main"},wn=["innerHTML"],_n={key:0,class:"excerpt-wrapper"},xn={key:0,class:"excerpt",inert:""},Sn=["innerHTML"],En=K(()=>x("div",{class:"excerpt-gradient-bottom"},null,-1)),Tn=K(()=>x("div",{class:"excerpt-gradient-top"},null,-1)),In={key:0,class:"no-results"},Nn={class:"search-keyboard-shortcuts"},kn=["aria-label"],Fn=K(()=>x("span",{class:"vpi-arrow-up navigate-icon"},null,-1)),On=[Fn],Rn=["aria-label"],Cn=K(()=>x("span",{class:"vpi-arrow-down navigate-icon"},null,-1)),Mn=[Cn],An=["aria-label"],Ln=K(()=>x("span",{class:"vpi-corner-down-left navigate-icon"},null,-1)),Dn=[Ln],zn=["aria-label"],Pn=Lt({__name:"VPLocalSearchBox",emits:["close"],setup(a,{emit:e}){var F,M;const t=e,s=we(),n=we(),r=we(as),i=is(),{activate:o}=Ms(s,{immediate:!0,allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0}),{localeIndex:c,theme:l}=i,h=st(async()=>{var p,g,N,O,P,V,I,L,q;return at(le.loadJSON((N=await((g=(p=r.value)[c.value])==null?void 0:g.call(p)))==null?void 0:N.default,{fields:["title","titles","text"],storeFields:["title","titles"],searchOptions:{fuzzy:.2,prefix:!0,boost:{title:4,text:2,titles:1},...((O=l.value.search)==null?void 0:O.provider)==="local"&&((V=(P=l.value.search.options)==null?void 0:P.miniSearch)==null?void 0:V.searchOptions)},...((I=l.value.search)==null?void 0:I.provider)==="local"&&((q=(L=l.value.search.options)==null?void 0:L.miniSearch)==null?void 0:q.options)}))}),f=ve(()=>{var p,g;return((p=l.value.search)==null?void 0:p.provider)==="local"&&((g=l.value.search.options)==null?void 0:g.disableQueryPersistence)===!0}).value?ne(""):Dt("vitepress:local-search-filter",""),b=zt("vitepress:local-search-detailed-list",((F=l.value.search)==null?void 0:F.provider)==="local"&&((M=l.value.search.options)==null?void 0:M.detailedView)===!0),y=ve(()=>{var p,g,N;return((p=l.value.search)==null?void 0:p.provider)==="local"&&(((g=l.value.search.options)==null?void 0:g.disableDetailedView)===!0||((N=l.value.search.options)==null?void 0:N.detailedView)===!1)}),_=ve(()=>{var g,N,O,P,V,I,L;const p=((g=l.value.search)==null?void 0:g.options)??l.value.algolia;return((V=(P=(O=(N=p==null?void 0:p.locales)==null?void 0:N[c.value])==null?void 0:O.translations)==null?void 0:P.button)==null?void 0:V.buttonText)||((L=(I=p==null?void 0:p.translations)==null?void 0:I.button)==null?void 0:L.buttonText)||"Search"});Pt(()=>{y.value&&(b.value=!1)});const w=we([]),R=ne(!1);$e(f,()=>{R.value=!1});const C=st(async()=>{if(n.value)return at(new Ls(n.value))},null),J=new qs(16);Vt(()=>[h.value,f.value,b.value],async([p,g,N],O,P)=>{var ge,Ge,Qe,He;(O==null?void 0:O[0])!==p&&J.clear();let V=!1;if(P(()=>{V=!0}),!p)return;w.value=p.search(g).slice(0,16),R.value=!0;const I=N?await Promise.all(w.value.map(B=>H(B.id))):[];if(V)return;for(const{id:B,mod:ee}of I){const te=B.slice(0,B.indexOf("#"));let Y=J.get(te);if(Y)continue;Y=new Map,J.set(te,Y);const G=ee.default??ee;if(G!=null&&G.render||G!=null&&G.setup){const se=Xt(G);se.config.warnHandler=()=>{},se.provide(es,i),Object.defineProperties(se.config.globalProperties,{$frontmatter:{get(){return i.frontmatter.value}},$params:{get(){return i.page.value.params}}});const Ye=document.createElement("div");se.mount(Ye),Ye.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(ue=>{var et;const be=(et=ue.querySelector("a"))==null?void 0:et.getAttribute("href"),Ze=(be==null?void 0:be.startsWith("#"))&&be.slice(1);if(!Ze)return;let Xe="";for(;(ue=ue.nextElementSibling)&&!/^h[1-6]$/i.test(ue.tagName);)Xe+=ue.outerHTML;Y.set(Ze,Xe)}),se.unmount()}if(V)return}const L=new Set;if(w.value=w.value.map(B=>{const[ee,te]=B.id.split("#"),Y=J.get(ee),G=(Y==null?void 0:Y.get(te))??"";for(const se in B.match)L.add(se);return{...B,text:G}}),await de(),V)return;await new Promise(B=>{var ee;(ee=C.value)==null||ee.unmark({done:()=>{var te;(te=C.value)==null||te.markRegExp(k(L),{done:B})}})});const q=((ge=s.value)==null?void 0:ge.querySelectorAll(".result .excerpt"))??[];for(const B of q)(Ge=B.querySelector('mark[data-markjs="true"]'))==null||Ge.scrollIntoView({block:"center"});(He=(Qe=n.value)==null?void 0:Qe.firstElementChild)==null||He.scrollIntoView({block:"start"})},{debounce:200,immediate:!0});async function H(p){const g=ts(p.slice(0,p.indexOf("#")));try{if(!g)throw new Error(`Cannot find file for id: ${p}`);return{id:p,mod:await import(g)}}catch(N){return console.error(N),{id:p,mod:{}}}}const W=ne(),j=ve(()=>{var p;return((p=f.value)==null?void 0:p.length)<=0});function $(p=!0){var g,N;(g=W.value)==null||g.focus(),p&&((N=W.value)==null||N.select())}Ae(()=>{$()});function Ce(p){p.pointerType==="mouse"&&$()}const A=ne(-1),U=ne(!1);$e(w,p=>{A.value=p.length?0:-1,T()});function T(){de(()=>{const p=document.querySelector(".result.selected");p==null||p.scrollIntoView({block:"nearest"})})}_e("ArrowUp",p=>{p.preventDefault(),A.value--,A.value<0&&(A.value=w.value.length-1),U.value=!0,T()}),_e("ArrowDown",p=>{p.preventDefault(),A.value++,A.value>=w.value.length&&(A.value=0),U.value=!0,T()});const u=jt();_e("Enter",p=>{if(p.isComposing||p.target instanceof HTMLButtonElement&&p.target.type!=="submit")return;const g=w.value[A.value];if(p.target instanceof HTMLInputElement&&!g){p.preventDefault();return}g&&(u.go(g.id),t("close"))}),_e("Escape",()=>{t("close")});const m=rs({modal:{displayDetails:"Display detailed list",resetButtonTitle:"Reset search",backButtonTitle:"Close search",noResultsText:"No results for",footer:{selectText:"to select",selectKeyAriaLabel:"enter",navigateText:"to navigate",navigateUpKeyAriaLabel:"up arrow",navigateDownKeyAriaLabel:"down arrow",closeText:"to close",closeKeyAriaLabel:"escape"}}});Ae(()=>{window.history.pushState(null,"",null)}),$t("popstate",p=>{p.preventDefault(),t("close")});const S=Bt(Wt?document.body:null);Ae(()=>{de(()=>{S.value=!0,de().then(()=>o())})}),Kt(()=>{S.value=!1});function E(){f.value="",de().then(()=>$(!1))}function k(p){return new RegExp([...p].sort((g,N)=>N.length-g.length).map(g=>`(${ss(g)})`).join("|"),"gi")}return(p,g)=>{var N,O,P,V;return Q(),Jt(Ht,{to:"body"},[x("div",{ref_key:"el",ref:s,role:"button","aria-owns":(N=w.value)!=null&&N.length?"localsearch-list":void 0,"aria-expanded":"true","aria-haspopup":"listbox","aria-labelledby":"localsearch-label",class:"VPLocalSearchBox"},[x("div",{class:"backdrop",onClick:g[0]||(g[0]=I=>p.$emit("close"))}),x("div",Qs,[x("form",{class:"search-bar",onPointerup:g[4]||(g[4]=I=>Ce(I)),onSubmit:g[5]||(g[5]=Ut(()=>{},["prevent"]))},[x("label",{title:_.value,id:"localsearch-label",for:"localsearch-input"},Zs,8,Hs),x("div",Xs,[x("button",{class:"back-button",title:D(m)("modal.backButtonTitle"),onClick:g[1]||(g[1]=I=>p.$emit("close"))},sn,8,en)]),qt(x("input",{ref_key:"searchInput",ref:W,"onUpdate:modelValue":g[2]||(g[2]=I=>Qt(f)?f.value=I:null),placeholder:_.value,id:"localsearch-input","aria-labelledby":"localsearch-label",class:"search-input"},null,8,nn),[[Gt,D(f)]]),x("div",rn,[y.value?xe("",!0):(Q(),Z("button",{key:0,class:nt(["toggle-layout-button",{"detailed-list":D(b)}]),type:"button",title:D(m)("modal.displayDetails"),onClick:g[3]||(g[3]=I=>A.value>-1&&(b.value=!D(b)))},cn,10,an)),x("button",{class:"clear-button",type:"reset",disabled:j.value,title:D(m)("modal.resetButtonTitle"),onClick:E},dn,8,ln)])],32),x("ul",{ref_key:"resultsEl",ref:n,id:(O=w.value)!=null&&O.length?"localsearch-list":void 0,role:(P=w.value)!=null&&P.length?"listbox":void 0,"aria-labelledby":(V=w.value)!=null&&V.length?"localsearch-label":void 0,class:"results",onMousemove:g[7]||(g[7]=I=>U.value=!1)},[(Q(!0),Z(rt,null,it(w.value,(I,L)=>(Q(),Z("li",{key:I.id,role:"option","aria-selected":A.value===L?"true":"false"},[x("a",{href:I.id,class:nt(["result",{selected:A.value===L}]),"aria-label":[...I.titles,I.title].join(" > "),onMouseenter:q=>!U.value&&(A.value=L),onFocusin:q=>A.value=L,onClick:g[6]||(g[6]=q=>p.$emit("close"))},[x("div",null,[x("div",vn,[mn,(Q(!0),Z(rt,null,it(I.titles,(q,ge)=>(Q(),Z("span",{key:ge,class:"title"},[x("span",{class:"text",innerHTML:q},null,8,gn),bn]))),128)),x("span",yn,[x("span",{class:"text",innerHTML:I.title},null,8,wn)])]),D(b)?(Q(),Z("div",_n,[I.text?(Q(),Z("div",xn,[x("div",{class:"vp-doc",innerHTML:I.text},null,8,Sn)])):xe("",!0),En,Tn])):xe("",!0)])],42,pn)],8,fn))),128)),D(f)&&!w.value.length&&R.value?(Q(),Z("li",In,[he(fe(D(m)("modal.noResultsText"))+' "',1),x("strong",null,fe(D(f)),1),he('" ')])):xe("",!0)],40,hn),x("div",Nn,[x("span",null,[x("kbd",{"aria-label":D(m)("modal.footer.navigateUpKeyAriaLabel")},On,8,kn),x("kbd",{"aria-label":D(m)("modal.footer.navigateDownKeyAriaLabel")},Mn,8,Rn),he(" "+fe(D(m)("modal.footer.navigateText")),1)]),x("span",null,[x("kbd",{"aria-label":D(m)("modal.footer.selectKeyAriaLabel")},Dn,8,An),he(" "+fe(D(m)("modal.footer.selectText")),1)]),x("span",null,[x("kbd",{"aria-label":D(m)("modal.footer.closeKeyAriaLabel")},"esc",8,zn),he(" "+fe(D(m)("modal.footer.closeText")),1)])])])],8,Gs)])}}}),Kn=ns(Pn,[["__scopeId","data-v-6120c6bd"]]);export{Kn as default}; diff --git a/assets/chunks/theme.BhGtk3iD.js b/assets/chunks/theme.BKKsDm5-.js similarity index 69% rename from assets/chunks/theme.BhGtk3iD.js rename to assets/chunks/theme.BKKsDm5-.js index fd17615..79a795d 100644 --- a/assets/chunks/theme.BhGtk3iD.js +++ b/assets/chunks/theme.BKKsDm5-.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.CohV5IPn.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 h,T as ve,_ as $,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 fe,A as he,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)):h("",!0)]),_:1}))}}),st=$(nt,[["__scopeId","data-v-20b1d393"]]),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-21980364"),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"},ft=["href","aria-label"],ht=_({__name:"NotFound",setup(o){const{theme:e}=P(),{currentLang:t}=X();return(s,n)=>{var i,u,f,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(((f=r(e).notFound)==null?void 0:f.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,ft)])])}}}),_t=$(ht,[["__scopeId","data-v-21980364"]]);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 f=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(()=>f.value&&s.value),b=y(()=>f.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:b,hasSidebar:f,hasAside:g,leftAside:p,isSidebarEnabled:L,open:V,close:T,toggle:A}}function bt(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),W(()=>{window.addEventListener("keyup",s)}),fe(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function $t(o){const{page:e,hash:t}=P(),s=w(!1),n=y(()=>o.value.collapsed!=null),i=y(()=>!!o.value.link),u=w(!1),f=()=>{u.value=K(e.value.relativePath,o.value.link)};G([e,o,t],f),W(f);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)}),he(()=>{(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:f}of o)de.push({element:u,link:f});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)}),fe(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const f=window.scrollY,p=window.innerHeight,g=document.body.offsetHeight,L=Math.abs(f+p-g)<1,b=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(!b.length){u(null);return}if(f<1){u(null);return}if(L){u(b[b.length-1].link);return}let V=null;for(const{link:T,top:A}of b){if(A>f+qe()+4)break;V=T}u(V)}function u(f){n&&n.classList.remove("active"),f==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(f)}"]`);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:f})=>(a(),c("li",null,[v("a",{class:"outline-link",href:u,onClick:e,title:f},I(f),9,St),i!=null&&i.length?(a(),k(n,{key:0,headers:i},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Me=$(Tt,[["__scopeId","data-v-51c2c770"]]),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,f)=>(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=$(Nt,[["__scopeId","data-v-e7b12e6e"]]),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-0ff3c77f"),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"])):h("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Dt=$(Ft,[["__scopeId","data-v-0ff3c77f"]]);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,b,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)),f=((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:f?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=i[u-1])==null?void 0:b.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 f,p,g;u.value=new Intl.DateTimeFormat((p=(f=e.value.lastUpdated)==null?void 0:f.formatOptions)!=null&&p.forceLocale?s.value:void 0,((g=e.value.lastUpdated)==null?void 0:g.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(f,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=$(qt,[["__scopeId","data-v-5cebc0fc"]]),Ae=o=>(C("data-v-a4b38bd6"),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),f=y(()=>t.value.lastUpdated),p=y(()=>u.value||f.value||i.value.prev||i.value.next);return(g,L)=>{var b,V,T,A;return p.value?(a(),c("footer",Wt,[l(g.$slots,"doc-footer-before",{},void 0,!0),u.value||f.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"])])):h("",!0),f.value?(a(),c("div",Yt,[m(Kt)])):h("",!0)])):h("",!0),(b=r(i).prev)!=null&&b.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"])):h("",!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"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),ro=$(ao,[["__scopeId","data-v-a4b38bd6"]]),io=o=>(C("data-v-40342069"),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"},fo={class:"content-container"},ho={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(f,p)=>{const g=R("Content");return a(),c("div",{class:N(["VPDoc",{"has-sidebar":r(s),"has-aside":r(n)}])},[l(f.$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(f.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(f.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(f.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(f.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(f.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(f.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),v("div",po,[v("div",fo,[l(f.$slots,"doc-before",{},void 0,!0),v("main",ho,[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(f.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(f.$slots,"doc-after",{},void 0,!0)])])]),l(f.$slots,"doc-bottom",{},void 0,!0)],2)}}}),mo=$(_o,[["__scopeId","data-v-40342069"]]),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"]))}}),bo=$(ko,[["__scopeId","data-v-885c6978"]]),$o=["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,$o)):(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)):h("",!0)}}}),Q=$(go,[["__scopeId","data-v-f925500d"]]),yo=o=>(C("data-v-325add7b"),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)])):h("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,To)):h("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Io)):h("",!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(bo,{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))])):h("",!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"])):h("",!0)],!0)])])):h("",!0)])],2))}}),Co=$(Bo,[["__scopeId","data-v-325add7b"]]),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"])):h("",!0)}}),Eo=o=>(C("data-v-248ed6b6"),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)):h("",!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)):h("",!0),e.linkText?(a(),c("div",jo,[v("p",zo,[O(I(e.linkText)+" ",1),qo])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Wo=$(Ko,[["__scopeId","data-v-248ed6b6"]]),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))])])])):h("",!0)}}),Qo=$(Yo,[["__scopeId","data-v-dbb08ed4"]]),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"])):h("",!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=$(xo,[["__scopeId","data-v-bb690f02"]]),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=$(on,[["__scopeId","data-v-972a96f9"]]),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=$(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=$(cn,[["__scopeId","data-v-ec7dbf3e"]]),dn={class:"container"},vn=["innerHTML"],pn=["innerHTML"],fn=_({__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)):h("",!0),r(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,pn)):h("",!0)])],2)):h("",!0)}}),hn=$(fn,[["__scopeId","data-v-e3ca6860"]]);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-b418bf42"),o=o(),H(),o),kn={class:"menu-text"},bn=mn(()=>v("span",{class:"vpi-chevron-right icon"},null,-1)),$n={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 f(b){var V;(V=i.value)!=null&&V.contains(b.target)||(s.value=!1)}G(s,b=>{if(b){document.addEventListener("click",f);return}document.removeEventListener("click",f)}),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(b){b.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(b,V)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:Le({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[b.headers.length>0?(a(),c("button",{key:0,onClick:p,class:N({open:s.value})},[v("span",kn,I(r(Ne)(r(t))),1),bn],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",$n,[v("a",{class:"top-link",href:"#",onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)]),v("div",gn,[m(Me,{headers:b.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),Pn=$(yn,[["__scopeId","data-v-b418bf42"]]),Vn=o=>(C("data-v-8af612ea"),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 f=y(()=>n.value.length===0),p=y(()=>f.value&&!s.value),g=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:f.value,fixed:p.value}));return(L,b)=>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:b[0]||(b[0]=V=>L.$emit("open-menu"))},[Tn,v("span",In,I(r(e).sidebarMenuLabel||"Menu"),1)],8,Sn)):h("",!0),m(Pn,{headers:r(n),navHeight:u.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),Nn=$(wn,[["__scopeId","data-v-8af612ea"]]);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)])):h("",!0)])])}const Fn=$(An,[["render",En],["__scopeId","data-v-d82e607b"]]),Be=o=>(C("data-v-3a50aa5c"),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 he(()=>{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=$(Gn,[["__scopeId","data-v-3a50aa5c"]]),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)])):h("",!0)}}),zn=$(jn,[["__scopeId","data-v-2a6692f8"]]),be=w();let Ce=!1,re=0;function qn(o){const e=w(!1);if(oe){!Ce&&Kn(),re++;const t=G(be,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))});fe(()=>{t(),re--,re||Wn()})}return Re(e)}function Kn(){document.addEventListener("focusin",He),Ce=!0,be.value=document.activeElement}function Wn(){document.removeEventListener("focusin",He)}function He(){be.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=$(Jn,[["__scopeId","data-v-79776a7a"]]),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)):h("",!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"])):h("",!0)],64))),256))]))}}),Zn=$(Qn,[["__scopeId","data-v-fbf15ead"]]),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))])):h("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),os=$(ts,[["__scopeId","data-v-9990563e"]]),ns=o=>(C("data-v-ec8c49bc"),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)):h("",!0),n.button?(a(),c("span",{key:1,innerHTML:n.button},null,8,rs)):h("",!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))}}),$e=$(us,[["__scopeId","data-v-ec8c49bc"]]),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=$(vs,[["__scopeId","data-v-b0526bd7"]]),fs={class:"VPSocialLinks"},hs=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",fs,[(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=$(hs,[["__scopeId","data-v-fa18fe49"]]),_s={key:0,class:"group translations"},ms={class:"trans-title"},ks={key:1,class:"group"},bs={class:"item appearance"},$s={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,f)=>i.value?(a(),k($e,{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))])):h("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),c("div",ks,[v("div",bs,[v("p",$s,I(r(t).darkModeSwitchLabel||"Appearance"),1),v("div",gs,[m(ke)])])])):h("",!0),r(t).socialLinks?(a(),c("div",ys,[v("div",Ps,[m(ge,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),Ls=$(Vs,[["__scopeId","data-v-2fc967b6"]]),Ss=o=>(C("data-v-be64de2d"),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=$(Ns,[["__scopeId","data-v-be64de2d"]]),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=$(Bs,[["__scopeId","data-v-ad4a8b64"]]),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($e,{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-0fb289c1"),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))])):h("",!0)}}),Gs=$(Os,[["__scopeId","data-v-0fb289c1"]]);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,f=u&&typeof u=="object",p=f&&((S=(B=u.locales)==null?void 0:B[e.value])==null?void 0:S.translations)||null,g=f&&u.translations||null;let L=p,b=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=b==null?void 0:b[j];se&&(z=b=se);const ae=L==null?void 0:L[j];ae&&(z=L=ae),J||(V=z),se||(b=z),ae||(L=z)}return(L==null?void 0:L[T])??(b==null?void 0:b[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.CohV5IPn.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(f,16))}function f(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||f()},16)}function p(b){const V=b.target,T=V.tagName;return V.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const g=w(!1);le("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),g.value=!0)}),le("/",b=>{p(b)||(b.preventDefault(),g.value=!0)});const L="local";return(b,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)})):h("",!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"])):h("",!0),i.value?h("",!0):(a(),c("div",Xs,[m(ye,{onClick:u})]))],64)):h("",!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"])):h("",!0)}}),Zs=$(Qs,[["__scopeId","data-v-f3b91b3a"]]),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}),f=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:f.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"])):h("",!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)):h("",!0),l(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,xs)],2))}}),na=$(oa,[["__scopeId","data-v-10b95b50"]]),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($e,{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"])):h("",!0)}}),ia=$(ra,[["__scopeId","data-v-cd7b67e8"]]),la=o=>(C("data-v-1303e283"),o=o(),H(),o),ca={class:"wrapper"},ua={class:"container"},da={class:"title"},va={class:"content"},pa={class:"content-body"},fa=la(()=>v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1)),ha=_({__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 he(()=>{i.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(u,f)=>(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:f[0]||(f[0]=p=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),fa],2))}}),_a=$(ha,[["__scopeId","data-v-1303e283"]]),ma={key:0,class:"VPNavScreenAppearance"},ka={class:"text"},ba=_({__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)])):h("",!0)}}),$a=$(ba,[["__scopeId","data-v-79da70de"]]),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=$(ga,[["__scopeId","data-v-9a3ef902"]]),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=$(Pa,[["__scopeId","data-v-03f7344f"]]),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)):h("",!0),(a(!0),c(M,null,E(e.items,s=>(a(),k(Ee,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ta=$(Sa,[["__scopeId","data-v-3b79ab2a"]]),Ia=o=>(C("data-v-496537ac"),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,f=>(a(),c(M,{key:JSON.stringify(f)},["link"in f?(a(),c("div",Ba,[m(Ee,{item:f},null,8,["item"])])):"component"in f?(a(),c("div",Ca,[(a(),k(F(f.component),q({ref_for:!0},f.props,{"screen-menu":""}),null,16))])):(a(),c("div",Ha,[m(Ta,{text:f.text,items:f.items},null,8,["text","items"])]))],64))),128))],8,Aa)],2))}}),Fa=$(Ea,[["__scopeId","data-v-496537ac"]]),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))])):h("",!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"])):h("",!0)}}),Fe=o=>(C("data-v-c618ff37"),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),f=>(a(),c("li",{key:f.link,class:"item"},[m(D,{class:"link",href:f.link},{default:d(()=>[O(I(f.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),Ka=$(qa,[["__scopeId","data-v-c618ff37"]]),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($a,{class:"appearance"}),m(Ga,{class:"social-links"}),l(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),Ja=$(Ra,[["__scopeId","data-v-c3a48aed"]]),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,f)=>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"])])):h("",!0)}}),Qa=$(Ya,[["__scopeId","data-v-2a4e514e"]]),De=o=>(C("data-v-9035698b"),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:f,toggle:p}=$t(y(()=>e.item)),g=y(()=>f.value?"section":"div"),L=y(()=>n.value?"a":"div"),b=y(()=>f.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(b.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(F(b.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)):h("",!0)],16,Za)):h("",!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)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),sr=$(nr,[["__scopeId","data-v-9035698b"]]),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=$(ar,[["__scopeId","data-v-c3eaeb1a"]]),Oe=o=>(C("data-v-edd7de80"),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 f;s.open?(i.value=!0,(f=n.value)==null||f.focus()):i.value=!1},{immediate:!0,flush:"post"});const u=w(0);return G(e,()=>{u.value+=1},{deep:!0}),(f,p)=>r(t)?(a(),c("aside",{key:0,class:N(["VPSidebar",{open:f.open}]),ref_key:"navEl",ref:n,onClick:p[0]||(p[0]=xe(()=>{},["stop"]))},[ir,v("nav",lr,[cr,l(f.$slots,"sidebar-nav-before",{},void 0,!0),(a(),k(rr,{items:r(e),key:u.value},null,8,["items"])),l(f.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),dr=$(ur,[["__scopeId","data-v-edd7de80"]]),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=$(vr,[["__scopeId","data-v-3e86afbf"]]),fr=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=U(),n=ee();G(()=>n.path,s),bt(e,s);const{frontmatter:i}=P(),u=et(),f=y(()=>!!u["home-hero-image"]);return Ie("hero-image-slot-exists",f),(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(hn),l(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k(L,{key:1}))}}}),hr=$(fr,[["__scopeId","data-v-22f859ac"]]),mr={Layout:hr,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.BDQvHkQW.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.BDQvHkQW.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_api.md.D31N0-_j.js b/assets/en_api_api.md.D31N0-_j.js deleted file mode 100644 index d881019..0000000 --- a/assets/en_api_api.md.D31N0-_j.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as p}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/api.md","filePath":"en/api/api.md"}'),c={name:"en/api/api.md"},o=p('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(i,_,n,d,m,l){return t(),a("div",null,r)}const b=e(c,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/en_api_api.md.D31N0-_j.lean.js b/assets/en_api_api.md.D31N0-_j.lean.js deleted file mode 100644 index 52b27f0..0000000 --- a/assets/en_api_api.md.D31N0-_j.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as p}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/api.md","filePath":"en/api/api.md"}'),c={name:"en/api/api.md"},o=p("",5),r=[o];function s(i,_,n,d,m,l){return t(),a("div",null,r)}const b=e(c,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/en_api_index.md.BrJlad-k.js b/assets/en_api_index.md.BrJlad-k.js new file mode 100644 index 0000000..74d78b3 --- /dev/null +++ b/assets/en_api_index.md.BrJlad-k.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/index.md","filePath":"en/api/index.md"}'),p={name:"en/api/index.md"},o=c('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(d,_,n,i,m,l){return t(),a("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/en_api_index.md.CpTS_pfZ.lean.js b/assets/en_api_index.md.BrJlad-k.lean.js similarity index 85% rename from assets/en_api_index.md.CpTS_pfZ.lean.js rename to assets/en_api_index.md.BrJlad-k.lean.js index d925b97..2206d73 100644 --- a/assets/en_api_index.md.CpTS_pfZ.lean.js +++ b/assets/en_api_index.md.BrJlad-k.lean.js @@ -1 +1 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/index.md","filePath":"en/api/index.md"}'),p={name:"en/api/index.md"},o=c("",5),r=[o];function s(n,d,i,_,m,l){return t(),a("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/index.md","filePath":"en/api/index.md"}'),p={name:"en/api/index.md"},o=c("",5),r=[o];function s(d,_,n,i,m,l){return t(),a("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/en_api_index.md.CpTS_pfZ.js b/assets/en_api_index.md.CpTS_pfZ.js deleted file mode 100644 index d8d723e..0000000 --- a/assets/en_api_index.md.CpTS_pfZ.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/index.md","filePath":"en/api/index.md"}'),p={name:"en/api/index.md"},o=c('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(n,d,i,_,m,l){return t(),a("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/en_api_mp_math_angle.md.DTo0bIGQ.js b/assets/en_api_mp_math_angle.md.BvzeTdtj.js similarity index 59% rename from assets/en_api_mp_math_angle.md.DTo0bIGQ.js rename to assets/en_api_mp_math_angle.md.BvzeTdtj.js index 195131e..49cb54e 100644 --- a/assets/en_api_mp_math_angle.md.DTo0bIGQ.js +++ b/assets/en_api_mp_math_angle.md.BvzeTdtj.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y=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(`

mbcp.mp_math.angle

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

class Angle

class AnyAngle(Angle)

func __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):
+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(`

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:
@@ -8,92 +8,92 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y
     if is_radian:
         self.radian = value
     else:
-        self.radian = value * PI / 180

@property

func complementary(self) -> AnyAngle

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

Return: 余角

Source code or View on GitHub
python
@property
+        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

func supplementary(self) -> AnyAngle

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

Return: 补角

Source code or View on GitHub
python
@property
+    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

func degree(self) -> float

Description: 角度。

Return: 弧度

Source code or View on GitHub
python
@property
+    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

func minimum_positive(self) -> AnyAngle

Description: 最小正角。

Return: 最小正角度

Source code or View on GitHub
python
@property
+    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

func maximum_negative(self) -> AnyAngle

Description: 最大负角。

Return: 最大负角度

Source code or View on GitHub
python
@property
+    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

func sin(self) -> float

Description: 正弦值。

Return: 正弦值

Source code or View on GitHub
python
@property
+    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

func cos(self) -> float

Description: 余弦值。

Return: 余弦值

Source code or View on GitHub
python
@property
+    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

func tan(self) -> float

Description: 正切值。

Return: 正切值

Source code or View on GitHub
python
@property
+    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

func cot(self) -> float

Description: 余切值。

Return: 余切值

Source code or View on GitHub
python
@property
+    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

func sec(self) -> float

Description: 正割值。

Return: 正割值

Source code or View on GitHub
python
@property
+    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

func csc(self) -> float

Description: 余割值。

Return: 余割值

Source code or View on GitHub
python
@property
+    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)

func 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)

func __eq__(self, other)

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

func 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)

func 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

func self / other: float => AnyAngle

Source code or View on GitHub
python
@overload
+    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

func self / other: AnyAngle => float

Source code or View on GitHub
python
@overload
+    ...

@overload

method self / other: AnyAngle => float

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

func self / other

Source code or View on GitHub
python
def __truediv__(self, other):
+    ...

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{y as __pageData,F as default}; + 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.DTo0bIGQ.lean.js b/assets/en_api_mp_math_angle.md.BvzeTdtj.lean.js similarity index 72% rename from assets/en_api_mp_math_angle.md.DTo0bIGQ.lean.js rename to assets/en_api_mp_math_angle.md.BvzeTdtj.lean.js index 150c5ed..8f233a1 100644 --- a/assets/en_api_mp_math_angle.md.DTo0bIGQ.lean.js +++ b/assets/en_api_mp_math_angle.md.BvzeTdtj.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.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{y as __pageData,F as default}; +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_const.md.CrUt_3FV.js b/assets/en_api_mp_math_const.md.CrUt_3FV.js new file mode 100644 index 0000000..bd4aed6 --- /dev/null +++ b/assets/en_api_mp_math_const.md.CrUt_3FV.js @@ -0,0 +1 @@ +import{_ as a,c as t,o as e,a4 as o}from"./chunks/framework.DpC1ZpOZ.js";const _=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/const.md","filePath":"en/api/mp_math/const.md"}'),r={name:"en/api/mp_math/const.md"},i=o('

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

',14),l=[i];function n(s,c,p,d,h,m){return e(),t("div",null,l)}const g=a(r,[["render",n]]);export{_ as __pageData,g as default}; diff --git a/assets/en_api_mp_math_const.md.CrUt_3FV.lean.js b/assets/en_api_mp_math_const.md.CrUt_3FV.lean.js new file mode 100644 index 0000000..9b0e34a --- /dev/null +++ b/assets/en_api_mp_math_const.md.CrUt_3FV.lean.js @@ -0,0 +1 @@ +import{_ as a,c as t,o as e,a4 as o}from"./chunks/framework.DpC1ZpOZ.js";const _=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/const.md","filePath":"en/api/mp_math/const.md"}'),r={name:"en/api/mp_math/const.md"},i=o("",14),l=[i];function n(s,c,p,d,h,m){return e(),t("div",null,l)}const g=a(r,[["render",n]]);export{_ as __pageData,g as default}; diff --git a/assets/en_api_mp_math_const.md.DjbxFoGO.js b/assets/en_api_mp_math_const.md.DjbxFoGO.js deleted file mode 100644 index 2f542a1..0000000 --- a/assets/en_api_mp_math_const.md.DjbxFoGO.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as t,o,a4 as e}from"./chunks/framework.DpC1ZpOZ.js";const _=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/const.md","filePath":"en/api/mp_math/const.md"}'),r={name:"en/api/mp_math/const.md"},i=e('

mbcp.mp_math.const

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

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

',14),n=[i];function l(s,c,p,d,h,m){return o(),t("div",null,n)}const g=a(r,[["render",l]]);export{_ as __pageData,g as default}; diff --git a/assets/en_api_mp_math_const.md.DjbxFoGO.lean.js b/assets/en_api_mp_math_const.md.DjbxFoGO.lean.js deleted file mode 100644 index 4241446..0000000 --- a/assets/en_api_mp_math_const.md.DjbxFoGO.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as t,o,a4 as e}from"./chunks/framework.DpC1ZpOZ.js";const _=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/const.md","filePath":"en/api/mp_math/const.md"}'),r={name:"en/api/mp_math/const.md"},i=e("",14),n=[i];function l(s,c,p,d,h,m){return o(),t("div",null,n)}const g=a(r,[["render",l]]);export{_ as __pageData,g as default}; diff --git a/assets/en_api_mp_math_equation.md.NTcIjf_k.js b/assets/en_api_mp_math_equation.md.CHBtH4v6.js similarity index 82% rename from assets/en_api_mp_math_equation.md.NTcIjf_k.js rename to assets/en_api_mp_math_equation.md.CHBtH4v6.js index d8a1c2d..5714a40 100644 --- a/assets/en_api_mp_math_equation.md.NTcIjf_k.js +++ b/assets/en_api_mp_math_equation.md.CHBtH4v6.js @@ -1,4 +1,4 @@ -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(`

mbcp.mp_math.equation

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

class CurveEquation

func __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):
+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(`

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:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

func __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, ...]:
+    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:
@@ -62,4 +62,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
             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,c,d){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),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}; diff --git a/assets/en_api_mp_math_equation.md.NTcIjf_k.lean.js b/assets/en_api_mp_math_equation.md.CHBtH4v6.lean.js similarity index 86% rename from assets/en_api_mp_math_equation.md.NTcIjf_k.lean.js rename to assets/en_api_mp_math_equation.md.CHBtH4v6.lean.js index 4358d3e..ec4bd2d 100644 --- a/assets/en_api_mp_math_equation.md.NTcIjf_k.lean.js +++ b/assets/en_api_mp_math_equation.md.CHBtH4v6.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,c,d){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),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}; diff --git a/assets/en_api_mp_math_function.md.BXNFIE6F.js b/assets/en_api_mp_math_function.md.BXNFIE6F.js deleted file mode 100644 index 052be13..0000000 --- a/assets/en_api_mp_math_function.md.BXNFIE6F.js +++ /dev/null @@ -1,42 +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('

mbcp.mp_math.function

Description: 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:
-        梯度
-    """
-    dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
-    dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
-    dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
-    return Vector3(dx, dy, dz)

func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc

Description: 对多参数函数进行柯里化。

TIP

有关函数柯里化,可参考函数式编程--柯理化(Currying)

Arguments:

Return: 柯里化后的函数

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
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}; diff --git a/assets/en_api_mp_math_function.md.D68bTyed.js b/assets/en_api_mp_math_function.md.D68bTyed.js new file mode 100644 index 0000000..9c5c7a0 --- /dev/null +++ b/assets/en_api_mp_math_function.md.D68bTyed.js @@ -0,0 +1,42 @@ +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('

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:
+        梯度
+    """
+    dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
+    dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
+    dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
+    return Vector3(dx, dy, dz)

func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc

Description: 对多参数函数进行柯里化。

TIP

有关函数柯里化,可参考函数式编程--柯理化(Currying)

Arguments:

Return: 柯里化后的函数

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
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}; diff --git a/assets/en_api_mp_math_function.md.BXNFIE6F.lean.js b/assets/en_api_mp_math_function.md.D68bTyed.lean.js similarity index 100% rename from assets/en_api_mp_math_function.md.BXNFIE6F.lean.js rename to assets/en_api_mp_math_function.md.D68bTyed.lean.js diff --git a/assets/en_api_mp_math_index.md.D331As7i.js b/assets/en_api_mp_math_index.md.D331As7i.js new file mode 100644 index 0000000..2e4bdec --- /dev/null +++ b/assets/en_api_mp_math_index.md.D331As7i.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/mp_math/index.md","filePath":"en/api/mp_math/index.md"}'),l={name:"en/api/mp_math/index.md"},o=c('

mbcp.mp_math

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

',3),i=[o];function n(m,s,d,p,r,h){return t(),a("div",null,i)}const u=e(l,[["render",n]]);export{f as __pageData,u as default}; diff --git a/assets/en_api_mp_math_index.md.ypHGEnmb.lean.js b/assets/en_api_mp_math_index.md.D331As7i.lean.js similarity index 72% rename from assets/en_api_mp_math_index.md.ypHGEnmb.lean.js rename to assets/en_api_mp_math_index.md.D331As7i.lean.js index eaeabe2..064b681 100644 --- a/assets/en_api_mp_math_index.md.ypHGEnmb.lean.js +++ b/assets/en_api_mp_math_index.md.D331As7i.lean.js @@ -1 +1 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/mp_math/index.md","filePath":"en/api/mp_math/index.md"}'),l={name:"en/api/mp_math/index.md"},o=c("",3),n=[o];function i(m,s,p,r,d,h){return t(),a("div",null,n)}const u=e(l,[["render",i]]);export{f as __pageData,u as default}; +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/mp_math/index.md","filePath":"en/api/mp_math/index.md"}'),l={name:"en/api/mp_math/index.md"},o=c("",3),i=[o];function n(m,s,d,p,r,h){return t(),a("div",null,i)}const u=e(l,[["render",n]]);export{f as __pageData,u as default}; diff --git a/assets/en_api_mp_math_index.md.ypHGEnmb.js b/assets/en_api_mp_math_index.md.ypHGEnmb.js deleted file mode 100644 index 082e842..0000000 --- a/assets/en_api_mp_math_index.md.ypHGEnmb.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/mp_math/index.md","filePath":"en/api/mp_math/index.md"}'),l={name:"en/api/mp_math/index.md"},o=c('

mbcp.mp_math

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

',3),n=[o];function i(m,s,p,r,d,h){return t(),a("div",null,n)}const u=e(l,[["render",i]]);export{f as __pageData,u as default}; diff --git a/assets/api_mp_math_line.md.ByGRRi0A.js b/assets/en_api_mp_math_line.md.B69kHoPc.js similarity index 59% rename from assets/api_mp_math_line.md.ByGRRi0A.js rename to assets/en_api_mp_math_line.md.B69kHoPc.js index f408df4..0ddc9b7 100644 --- a/assets/api_mp_math_line.md.ByGRRi0A.js +++ b/assets/en_api_mp_math_line.md.B69kHoPc.js @@ -1,4 +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.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

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

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

参数:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
源代码在GitHub上查看
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
+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(`

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:
@@ -6,7 +6,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
             direction ([\`Vector3\`](./vector#class-vector3)): 方向向量
         """
     self.point = point
-    self.direction = direction

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

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

参数:

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

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
+    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:
@@ -15,7 +15,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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)

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

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

参数:

  • other (Line3): 另一条直线

返回: AnyAngle: 夹角

源代码在GitHub上查看
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
+    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:
@@ -23,7 +23,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`AnyAngle\`](./angle#class-anyangle): 夹角
         """
-    return self.direction.cal_angle(other.direction)

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

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

参数:

返回: float: 距离

引发:

源代码在GitHub上查看
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
+    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:
@@ -45,7 +45,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif isinstance(other, Point3):
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
-        raise TypeError('Unsupported type.')

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

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

参数:

  • other (Line3): 另一条直线

返回: Point3: 交点

引发:

源代码在GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
+        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:
@@ -60,7 +60,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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

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

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

参数:

返回: Line3: 垂线

源代码在GitHub上查看
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
+    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:
@@ -68,7 +68,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`Line3\`](./line#class-line3): 垂线
         """
-    return Line3(point, self.direction.cross(point - self.point))

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

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

参数:

返回: Point3: 点

源代码在GitHub上查看
python
def get_point(self, t: RealNumber) -> 'Point3':
+    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:
@@ -76,13 +76,13 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`Point3\`](./point#class-point3): 点
         """
-    return self.point + t * self.direction

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

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

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

源代码在GitHub上查看
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
+    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)

func 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:
+    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:
@@ -91,7 +91,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.direction.is_approx_parallel(other.direction, epsilon)

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

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

参数:

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Line3') -> 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:
@@ -99,7 +99,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.direction.is_parallel(other.direction)

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

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

参数:

返回: bool: 是否共线

源代码在GitHub上查看
python
def is_collinear(self, other: 'Line3') -> 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:
@@ -107,7 +107,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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)

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

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

参数:

返回: bool: 是否在直线上

源代码在GitHub上查看
python
def is_point_on(self, point: 'Point3') -> 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:
@@ -115,7 +115,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
         """
-    return (point - self.point).is_parallel(self.direction)

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

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

参数:

返回: bool: 是否共面

源代码在GitHub上查看
python
def is_coplanar(self, other: 'Line3') -> 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。
@@ -124,7 +124,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
         """
-    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

func simplify(self)

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

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

源代码在GitHub上查看
python
def simplify(self):
+    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):
     """
         简化直线方程,等价相等。
         自体简化,不返回值。
@@ -137,7 +137,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     if self.direction.y == 0:
         self.point.y = 0
     if self.direction.z == 0:
-        self.point.z = 0

@classmethod

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

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

参数:

返回: Line3: 直线

源代码在GitHub上查看
python
@classmethod
+        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':
     """
         工厂函数 由两点构造直线。
@@ -148,7 +148,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
             [\`Line3\`](./line#class-line3): 直线
         """
     direction = p2 - p1
-    return cls(p1, direction)

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

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

参数:

  • other (Line3): 另一条直线

返回: Line3 | Point3 | None: 交集

源代码在GitHub上查看
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
+    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:
@@ -161,7 +161,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
-        return self.cal_intersection(other)

func __eq__(self, other) -> bool

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

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

参数:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源代码在GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
@@ -171,4 +171,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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 p(h,k,r,o,d,g){return a(),i("div",null,e)}const E=s(t,[["render",p]]);export{F as __pageData,E as default}; + 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}; diff --git a/assets/en_api_mp_math_line.md.CxP-i4OT.lean.js b/assets/en_api_mp_math_line.md.B69kHoPc.lean.js similarity index 72% rename from assets/en_api_mp_math_line.md.CxP-i4OT.lean.js rename to assets/en_api_mp_math_line.md.B69kHoPc.lean.js index 8a7176f..0ed5ff5 100644 --- a/assets/en_api_mp_math_line.md.CxP-i4OT.lean.js +++ b/assets/en_api_mp_math_line.md.B69kHoPc.lean.js @@ -1 +1 @@ -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 p(h,k,r,o,d,c){return a(),i("div",null,e)}const E=s(t,[["render",p]]);export{F as __pageData,E as default}; +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_mp_math.md.5IisTIt3.js b/assets/en_api_mp_math_mp_math.md.5IisTIt3.js deleted file mode 100644 index ef46adc..0000000 --- a/assets/en_api_mp_math_mp_math.md.5IisTIt3.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/mp_math/mp_math.md","filePath":"en/api/mp_math/mp_math.md"}'),l={name:"en/api/mp_math/mp_math.md"},m=c('

mbcp.mp_math

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

',3),o=[m];function n(i,s,p,r,h,_){return t(),a("div",null,o)}const u=e(l,[["render",n]]);export{f as __pageData,u as default}; diff --git a/assets/en_api_mp_math_mp_math.md.5IisTIt3.lean.js b/assets/en_api_mp_math_mp_math.md.5IisTIt3.lean.js deleted file mode 100644 index bc6deb2..0000000 --- a/assets/en_api_mp_math_mp_math.md.5IisTIt3.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/mp_math/mp_math.md","filePath":"en/api/mp_math/mp_math.md"}'),l={name:"en/api/mp_math/mp_math.md"},m=c("",3),o=[m];function n(i,s,p,r,h,_){return t(),a("div",null,o)}const u=e(l,[["render",n]]);export{f as __pageData,u as default}; diff --git a/assets/en_api_mp_math_mp_math_typing.md.DWjztCj6.js b/assets/en_api_mp_math_mp_math_typing.md.DWjztCj6.js deleted file mode 100644 index 16065e0..0000000 --- a/assets/en_api_mp_math_mp_math_typing.md.DWjztCj6.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as r,o as e,a4 as o}from"./chunks/framework.DpC1ZpOZ.js";const v=JSON.parse('{"title":"mbcp.mp_math.mp_math_typing","description":"","frontmatter":{"title":"mbcp.mp_math.mp_math_typing","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/mp_math_typing.md","filePath":"en/api/mp_math/mp_math_typing.md"}'),l={name:"en/api/mp_math/mp_math_typing.md"},n=o('

mbcp.mp_math.mp_math_typing

Description: 本模块用于内部类型提示

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

',36),t=[n];function i(s,c,p,u,d,g){return e(),r("div",null,t)}const m=a(l,[["render",i]]);export{v as __pageData,m as default}; diff --git a/assets/en_api_mp_math_mp_math_typing.md.xRGJGUMm.js b/assets/en_api_mp_math_mp_math_typing.md.xRGJGUMm.js new file mode 100644 index 0000000..a59d1b5 --- /dev/null +++ b/assets/en_api_mp_math_mp_math_typing.md.xRGJGUMm.js @@ -0,0 +1 @@ +import{_ as a,c as r,o as e,a4 as o}from"./chunks/framework.DpC1ZpOZ.js";const v=JSON.parse('{"title":"mbcp.mp_math.mp_math_typing","description":"","frontmatter":{"title":"mbcp.mp_math.mp_math_typing","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/mp_math_typing.md","filePath":"en/api/mp_math/mp_math_typing.md"}'),l={name:"en/api/mp_math/mp_math_typing.md"},n=o('

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

',36),t=[n];function i(s,c,p,u,d,g){return e(),r("div",null,t)}const m=a(l,[["render",i]]);export{v as __pageData,m as default}; diff --git a/assets/en_api_mp_math_mp_math_typing.md.DWjztCj6.lean.js b/assets/en_api_mp_math_mp_math_typing.md.xRGJGUMm.lean.js similarity index 100% rename from assets/en_api_mp_math_mp_math_typing.md.DWjztCj6.lean.js rename to assets/en_api_mp_math_mp_math_typing.md.xRGJGUMm.lean.js diff --git a/assets/api_mp_math_plane.md.Ir4HtSn5.js b/assets/en_api_mp_math_plane.md.BdKgRumw.js similarity index 68% rename from assets/api_mp_math_plane.md.Ir4HtSn5.js rename to assets/en_api_mp_math_plane.md.BdKgRumw.js index 33c0d60..93b9110 100644 --- a/assets/api_mp_math_plane.md.Ir4HtSn5.js +++ b/assets/en_api_mp_math_plane.md.BdKgRumw.js @@ -1,4 +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.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"},t=n(`

mbcp.mp_math.plane

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

class Plane3

func __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):
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y=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"}'),t={name:"en/api/mp_math/plane.md"},l=n(`

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:
@@ -10,7 +10,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

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

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

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
+    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:
@@ -28,7 +28,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         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

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

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

参数:

返回: AnyAngle: 夹角

引发:

源代码在GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+        return False

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

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

Arguments:

Return: AnyAngle: 夹角

Raises:

Source code or View on GitHub
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     """
         计算平面与平面之间的夹角。
         Args:
@@ -43,7 +43,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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)}')

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

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

参数:

返回: float: 距离

引发:

源代码在GitHub上查看
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
+        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:
@@ -58,7 +58,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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)}')

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

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

参数:

  • other (Plane3): 另一个平面

返回: Line3: 交线

引发:

源代码在GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
+        raise TypeError(f'Unsupported type: {type(other)}')

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

Description: 计算两平面的交线。

Arguments:

  • other (Plane3): 另一个平面

Return: Line3: 交线

Raises:

Source code or View on GitHub
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     """
         计算两平面的交线。
         Args:
@@ -84,7 +84,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         A = np.array([[self.a, self.b], [other.a, other.b]])
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
-    return Line3(Point3(x, y, z), direction)

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

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

参数:

返回: Point3: 交点

引发:

源代码在GitHub上查看
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
+    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:
@@ -98,7 +98,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         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))

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

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

参数:

返回: Plane3: 平面

源代码在GitHub上查看
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
+    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:
@@ -106,7 +106,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`Plane3\`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

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

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

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Plane3') -> bool:
+    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:
@@ -114,14 +114,14 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.normal.is_parallel(other.normal)

@property

func normal(self) -> Vector3

说明: 平面的法向量。

返回: Vector3: 法向量

源代码在GitHub上查看
python
@property
+    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

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

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

参数:

返回: Plane3: 平面

源代码在GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由点和法向量构造平面(点法式构造)。
@@ -133,7 +133,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         """
     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

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

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

参数:

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

返回: 平面

源代码在GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由三点构造平面。
@@ -147,7 +147,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

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

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

参数:

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

返回: 平面

源代码在GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由两直线构造平面。
@@ -161,7 +161,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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

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

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

参数:

返回: 平面

源代码在GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由点和直线构造平面。
@@ -171,11 +171,11 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

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

源代码在GitHub上查看
python
@overload
+    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

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

源代码在GitHub上查看
python
@overload
+    ...

@overload

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

Source code or View on GitHub
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
-    ...

func __and__(self, other)

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

参数:

返回: Line3 | Point3 | None: 交集

引发:

源代码在GitHub上查看
python
def __and__(self, other):
+    ...

method __and__(self, other)

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

Arguments:

Return: Line3 | Point3 | None: 交集

Raises:

Source code or View on GitHub
python
def __and__(self, other):
     """
         取两平面的交集(人话:交线)
         Args:
@@ -194,7 +194,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

func __eq__(self, other) -> bool

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

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否等价

源代码在GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
@@ -202,5 +202,5 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

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

源代码在GitHub上查看
python
def __rand__(self, other: 'Line3') -> 'Point3':
-    return self.cal_intersection_point3(other)
`,113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const y=s(l,[["render",p]]);export{c as __pageData,y as default}; + 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)
`,113),h=[l];function e(p,k,r,o,d,E){return a(),i("div",null,h)}const c=s(t,[["render",e]]);export{y as __pageData,c as default}; diff --git a/assets/en_api_mp_math_plane.md.BdKgRumw.lean.js b/assets/en_api_mp_math_plane.md.BdKgRumw.lean.js new file mode 100644 index 0000000..16cca30 --- /dev/null +++ b/assets/en_api_mp_math_plane.md.BdKgRumw.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y=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"}'),t={name:"en/api/mp_math/plane.md"},l=n("",113),h=[l];function e(p,k,r,o,d,E){return a(),i("div",null,h)}const c=s(t,[["render",e]]);export{y as __pageData,c as default}; diff --git a/assets/en_api_mp_math_plane.md.BsgpTZdY.lean.js b/assets/en_api_mp_math_plane.md.BsgpTZdY.lean.js deleted file mode 100644 index d91e863..0000000 --- a/assets/en_api_mp_math_plane.md.BsgpTZdY.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.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"},t=n("",113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const y=s(l,[["render",p]]);export{c as __pageData,y as default}; diff --git a/assets/api_mp_math_point.md.CIRBY4Zg.js b/assets/en_api_mp_math_point.md.BeT2oqIN.js similarity index 54% rename from assets/api_mp_math_point.md.CIRBY4Zg.js rename to assets/en_api_mp_math_point.md.BeT2oqIN.js index c9710a1..8e1989e 100644 --- a/assets/api_mp_math_point.md.CIRBY4Zg.js +++ b/assets/en_api_mp_math_point.md.BeT2oqIN.js @@ -1,4 +1,4 @@ -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"},l=t(`

mbcp.mp_math.point

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

class Point3

func __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):
+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(`

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:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    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:
@@ -17,11 +17,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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

func self + other: Vector3 => Point3

源代码在GitHub上查看
python
@overload
+    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

func self + other: Point3 => Point3

源代码在GitHub上查看
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

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

func self + other

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

参数:

返回: Point3: 新的点

源代码在GitHub上查看
python
def __add__(self, other):
+    ...

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
@@ -30,7 +30,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`Point3\`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

func __eq__(self, other)

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

参数:

返回: bool: 是否相等

源代码在GitHub上查看
python
def __eq__(self, other):
+    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:
@@ -38,7 +38,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

func self - other: Point3 => Vector3

说明: P - P -> V

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

参数:

返回: Vector3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':
+    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
 
@@ -49,4 +49,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
             [\`Vector3\`](./vector#class-vector3): 新的向量
         """
     from .vector import Vector3
-    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
`,39),h=[l];function p(e,k,o,r,d,c){return a(),i("div",null,h)}const y=s(n,[["render",p]]);export{E as __pageData,y as default}; + return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
`,39),h=[e];function l(p,o,k,r,d,c){return a(),i("div",null,h)}const y=s(n,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/en_api_mp_math_point.md.DcGqVqiO.lean.js b/assets/en_api_mp_math_point.md.BeT2oqIN.lean.js similarity index 72% rename from assets/en_api_mp_math_point.md.DcGqVqiO.lean.js rename to assets/en_api_mp_math_point.md.BeT2oqIN.lean.js index 1533944..de9a344 100644 --- a/assets/en_api_mp_math_point.md.DcGqVqiO.lean.js +++ b/assets/en_api_mp_math_point.md.BeT2oqIN.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"},l=t("",39),e=[l];function h(p,o,k,r,d,c){return a(),i("div",null,e)}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"}'),n={name:"en/api/mp_math/point.md"},e=t("",39),h=[e];function l(p,o,k,r,d,c){return a(),i("div",null,h)}const y=s(n,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/en_api_mp_math_segment.md.Cge1J0TK.js b/assets/en_api_mp_math_segment.md.DbFvInHk.js similarity index 71% rename from assets/en_api_mp_math_segment.md.Cge1J0TK.js rename to assets/en_api_mp_math_segment.md.DbFvInHk.js index f6dc84f..d7bde09 100644 --- a/assets/en_api_mp_math_segment.md.Cge1J0TK.js +++ b/assets/en_api_mp_math_segment.md.DbFvInHk.js @@ -1,4 +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(`

mbcp.mp_math.segment

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

class Segment3

func __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'):
+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":"en/api/mp_math/segment.md","filePath":"en/api/mp_math/segment.md"}'),t={name:"en/api/mp_math/segment.md"},p=n(`

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:
@@ -12,4 +12,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 l(e,k,r,d,o,E){return a(),i("div",null,h)}const F=s(t,[["render",l]]);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),h=[p];function e(l,k,r,d,o,E){return a(),i("div",null,h)}const c=s(t,[["render",e]]);export{F as __pageData,c as default}; diff --git a/assets/en_api_mp_math_segment.md.Cge1J0TK.lean.js b/assets/en_api_mp_math_segment.md.DbFvInHk.lean.js similarity index 53% rename from assets/en_api_mp_math_segment.md.Cge1J0TK.lean.js rename to assets/en_api_mp_math_segment.md.DbFvInHk.lean.js index 8e9289f..f54225f 100644 --- a/assets/en_api_mp_math_segment.md.Cge1J0TK.lean.js +++ b/assets/en_api_mp_math_segment.md.DbFvInHk.lean.js @@ -1 +1 @@ -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 l(e,k,r,d,o,E){return a(),i("div",null,h)}const F=s(t,[["render",l]]);export{c as __pageData,F as default}; +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":"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 c=s(t,[["render",e]]);export{F as __pageData,c as default}; diff --git a/assets/en_api_mp_math_utils.md.Bu0IGkds.lean.js b/assets/en_api_mp_math_utils.md.Bu0IGkds.lean.js deleted file mode 100644 index 80d9fc9..0000000 --- a/assets/en_api_mp_math_utils.md.Bu0IGkds.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.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"}'),t={name:"en/api/mp_math/utils.md"},l=n("",38),h=[l];function e(p,k,r,o,d,g){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_utils.md.Bu0IGkds.js b/assets/en_api_mp_math_utils.md.CYq8hncD.js similarity index 79% rename from assets/en_api_mp_math_utils.md.Bu0IGkds.js rename to assets/en_api_mp_math_utils.md.CYq8hncD.js index dffb3c5..0b82404 100644 --- a/assets/en_api_mp_math_utils.md.Bu0IGkds.js +++ b/assets/en_api_mp_math_utils.md.CYq8hncD.js @@ -1,4 +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.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"}'),t={name:"en/api/mp_math/utils.md"},l=n(`

mbcp.mp_math.utils

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

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:
+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(`

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:
@@ -9,13 +9,13 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     Returns:
         \`float\`: 限定在区间内的值
     """
-    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

Description: 用于近似比较对象

Arguments:

Source code or View on GitHub
python
def __init__(self, value: RealNumber):
+    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

func __eq__(self, other)

Source code or View on GitHub
python
def __eq__(self, other):
+    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)):
             return abs(self.value - other) < APPROX
@@ -25,8 +25,8 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         if isinstance(other, (Vector3, Point3, Plane3, Line3)):
             return all([approx(self.value.x, other.x), approx(self.value.y, other.y), approx(self.value.z, other.z)])
         else:
-            self.raise_type_error(other)

func 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)}')

func __ne__(self, other)

Source code or View on GitHub
python
def __ne__(self, other):
+            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。
@@ -66,4 +66,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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 F=s(t,[["render",e]]);export{c as __pageData,F as default}; + 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}; diff --git a/assets/en_api_mp_math_utils.md.CYq8hncD.lean.js b/assets/en_api_mp_math_utils.md.CYq8hncD.lean.js new file mode 100644 index 0000000..292eb4c --- /dev/null +++ b/assets/en_api_mp_math_utils.md.CYq8hncD.lean.js @@ -0,0 +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}; diff --git a/assets/en_api_mp_math_vector.md.DpvjNLj_.js b/assets/en_api_mp_math_vector.md.CPGkZzwr.js similarity index 64% rename from assets/en_api_mp_math_vector.md.DpvjNLj_.js rename to assets/en_api_mp_math_vector.md.CPGkZzwr.js index 89b3469..b314987 100644 --- a/assets/en_api_mp_math_vector.md.DpvjNLj_.js +++ b/assets/en_api_mp_math_vector.md.CPGkZzwr.js @@ -1,4 +1,4 @@ -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.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"}'),n={name:"en/api/mp_math/vector.md"},e=t(`

mbcp.mp_math.vector

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

class Vector3

func __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):
+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.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"}'),n={name:"en/api/mp_math/vector.md"},e=t(`

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:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         """
     self.x = x
     self.y = y
-    self.z = z

func 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:
+    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:
@@ -18,7 +18,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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])

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

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

Arguments:

Return: AnyAngle: 夹角

Source code or View on GitHub
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
+    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: 计算两个向量之间的夹角。

Arguments:

Return: AnyAngle: 夹角

Source code or View on GitHub
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
     """
         计算两个向量之间的夹角。
         Args:
@@ -26,7 +26,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`AnyAngle\`](./angle#class-anyangle): 夹角
         """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

Description: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

Arguments:

Return: Vector3: 叉乘结果

Source code or View on GitHub
python
def cross(self, other: 'Vector3') -> 'Vector3':
+    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

Description: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

Arguments:

Return: Vector3: 叉乘结果

Source code or View on GitHub
python
def cross(self, other: 'Vector3') -> 'Vector3':
     """
         向量积 叉乘:v1 cross v2 -> v3
 
@@ -46,7 +46,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

func 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:
+    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:
@@ -55,7 +55,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

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

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

Arguments:

Return: bool: 是否平行

Source code or View on GitHub
python
def is_parallel(self, other: 'Vector3') -> 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:
@@ -63,7 +63,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.cross(other).approx(zero_vector3)

func normalize(self)

Description: 将向量归一化。

自体归一化,不返回值。

Source code or View on GitHub
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

method normalize(self)

Description: 将向量归一化。

自体归一化,不返回值。

Source code or View on GitHub
python
def normalize(self):
     """
         将向量归一化。
 
@@ -72,33 +72,33 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     length = self.length
     self.x /= length
     self.y /= length
-    self.z /= length

@property

func np_array(self) -> np.ndarray

Return: np.ndarray: numpy数组

Source code or View on GitHub
python
@property
+    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

func length(self) -> float

Description: 向量的模。

Return: float: 模

Source code or View on GitHub
python
@property
+    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

func unit(self) -> Vector3

Description: 获取该向量的单位向量。

Return: Vector3: 单位向量

Source code or View on GitHub
python
@property
+    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

func __abs__(self)

Source code or View on GitHub
python
def __abs__(self):
-    return self.length

@overload

func self + other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
+    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

func self + other: Point3 => Point3

Source code or View on GitHub
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

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

func self + other

Description: V + P -> P

V + V -> V

Arguments:

Return: Vector3 | Point3: 新的向量或点

Source code or View on GitHub
python
def __add__(self, other):
+    ...

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
 
@@ -113,7 +113,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}'")

func __eq__(self, other)

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

Arguments:

Return: bool: 是否相等

Source code or View on GitHub
python
def __eq__(self, other):
+        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:
@@ -121,7 +121,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

func self + other: Point3 => Point3

Description: P + V -> P

别去点那边实现了。

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __radd__(self, other: 'Point3') -> 'Point3':
+    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
 
@@ -131,11 +131,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`Point3\`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
+    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

func self - other: Point3 => Point3

Source code or View on GitHub
python
@overload
+    ...

@overload

method self - other: Point3 => Point3

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

func self - other

Description: V - P -> P

V - V -> V

Arguments:

Return: Vector3 | Point3: 新的向量

Source code or View on GitHub
python
def __sub__(self, other):
+    ...

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
 
@@ -150,7 +150,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}"')

func self - other: Point3

Description: P - V -> P

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __rsub__(self, other: 'Point3'):
+        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:
@@ -161,11 +161,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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

func self * other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
+        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

func self * other: RealNumber => Vector3

Source code or View on GitHub
python
@overload
+    ...

@overload

method self * other: RealNumber => Vector3

Source code or View on GitHub
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

func 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':
+    ...

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:
@@ -178,8 +178,8 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}'")

func self * other: RealNumber => Vector3

Source code or View on GitHub
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

func self @ other: Vector3 => RealNumber

Description: 点乘。

Arguments:

Return: float: 点乘结果

Source code or View on GitHub
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
+        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:
@@ -187,11 +187,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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

func 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)

func - self => Vector3

Description: 取负。

Return: Vector3: 负向量

Source code or View on GitHub
python
def __neg__(self) -> 'Vector3':
+    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)

`,138),l=[e];function h(p,k,r,o,d,c){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; + 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)

`,138),h=[e];function l(p,k,r,o,d,g){return a(),i("div",null,h)}const y=s(n,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/en_api_mp_math_vector.md.DpvjNLj_.lean.js b/assets/en_api_mp_math_vector.md.CPGkZzwr.lean.js similarity index 72% rename from assets/en_api_mp_math_vector.md.DpvjNLj_.lean.js rename to assets/en_api_mp_math_vector.md.CPGkZzwr.lean.js index 12b0de0..c32f366 100644 --- a/assets/en_api_mp_math_vector.md.DpvjNLj_.lean.js +++ b/assets/en_api_mp_math_vector.md.CPGkZzwr.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.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"}'),n={name:"en/api/mp_math/vector.md"},e=t("",138),l=[e];function h(p,k,r,o,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.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"}'),n={name:"en/api/mp_math/vector.md"},e=t("",138),h=[e];function l(p,k,r,o,d,g){return a(),i("div",null,h)}const y=s(n,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/en_api_particle_index.md.NezC90nG.js b/assets/en_api_particle_index.md.NezC90nG.js deleted file mode 100644 index 1ef2adf..0000000 --- a/assets/en_api_particle_index.md.NezC90nG.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/particle/index.md","filePath":"en/api/particle/index.md"}'),i={name:"en/api/particle/index.md"},n=e("h1",{id:"mbcp-particle",tabindex:"-1"},[t("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),p=e("p",null,[e("strong",null,"Description"),t(": 本模块定义了粒子生成相关的工具")],-1),s=[n,p];function l(o,d,_,m,h,f){return r(),c("div",null,s)}const u=a(i,[["render",l]]);export{b as __pageData,u as default}; diff --git a/assets/en_api_particle_index.md.NezC90nG.lean.js b/assets/en_api_particle_index.md.NezC90nG.lean.js deleted file mode 100644 index 1ef2adf..0000000 --- a/assets/en_api_particle_index.md.NezC90nG.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/particle/index.md","filePath":"en/api/particle/index.md"}'),i={name:"en/api/particle/index.md"},n=e("h1",{id:"mbcp-particle",tabindex:"-1"},[t("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),p=e("p",null,[e("strong",null,"Description"),t(": 本模块定义了粒子生成相关的工具")],-1),s=[n,p];function l(o,d,_,m,h,f){return r(),c("div",null,s)}const u=a(i,[["render",l]]);export{b as __pageData,u as default}; diff --git a/assets/en_api_particle_index.md.ZKByd_x0.js b/assets/en_api_particle_index.md.ZKByd_x0.js new file mode 100644 index 0000000..6f0cf06 --- /dev/null +++ b/assets/en_api_particle_index.md.ZKByd_x0.js @@ -0,0 +1 @@ +import{_ as a,c as t,o as c,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/particle/index.md","filePath":"en/api/particle/index.md"}'),i={name:"en/api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[r("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),n=e("p",null,"本模块定义了粒子生成相关的工具",-1),s=[p,n];function l(o,d,_,m,h,f){return c(),t("div",null,s)}const u=a(i,[["render",l]]);export{b as __pageData,u as default}; diff --git a/assets/en_api_particle_index.md.ZKByd_x0.lean.js b/assets/en_api_particle_index.md.ZKByd_x0.lean.js new file mode 100644 index 0000000..6f0cf06 --- /dev/null +++ b/assets/en_api_particle_index.md.ZKByd_x0.lean.js @@ -0,0 +1 @@ +import{_ as a,c as t,o as c,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/particle/index.md","filePath":"en/api/particle/index.md"}'),i={name:"en/api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[r("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),n=e("p",null,"本模块定义了粒子生成相关的工具",-1),s=[p,n];function l(o,d,_,m,h,f){return c(),t("div",null,s)}const u=a(i,[["render",l]]);export{b as __pageData,u as default}; diff --git a/assets/en_api_particle_particle.md.BTk7xB-d.js b/assets/en_api_particle_particle.md.BTk7xB-d.js deleted file mode 100644 index d6e8e1f..0000000 --- a/assets/en_api_particle_particle.md.BTk7xB-d.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/particle/particle.md","filePath":"en/api/particle/particle.md"}'),p={name:"en/api/particle/particle.md"},i=e("h1",{id:"mbcp-particle",tabindex:"-1"},[t("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),l=e("p",null,[e("strong",null,"Description"),t(": 本模块定义了粒子生成相关的工具")],-1),s=[i,l];function o(n,d,_,m,h,f){return r(),c("div",null,s)}const x=a(p,[["render",o]]);export{u as __pageData,x as default}; diff --git a/assets/en_api_particle_particle.md.BTk7xB-d.lean.js b/assets/en_api_particle_particle.md.BTk7xB-d.lean.js deleted file mode 100644 index d6e8e1f..0000000 --- a/assets/en_api_particle_particle.md.BTk7xB-d.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/particle/particle.md","filePath":"en/api/particle/particle.md"}'),p={name:"en/api/particle/particle.md"},i=e("h1",{id:"mbcp-particle",tabindex:"-1"},[t("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),l=e("p",null,[e("strong",null,"Description"),t(": 本模块定义了粒子生成相关的工具")],-1),s=[i,l];function o(n,d,_,m,h,f){return r(),c("div",null,s)}const x=a(p,[["render",o]]);export{u as __pageData,x as default}; diff --git a/assets/en_api_presets_index.md.BhoZyGSV.js b/assets/en_api_presets_index.md.BhoZyGSV.js new file mode 100644 index 0000000..33395a8 --- /dev/null +++ b/assets/en_api_presets_index.md.BhoZyGSV.js @@ -0,0 +1 @@ +import{_ as t,c as s,o as a,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/presets/index.md","filePath":"en/api/presets/index.md"}'),p={name:"en/api/presets/index.md"},n=e("h1",{id:"mbcp-presets",tabindex:"-1"},[r("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),c=e("p",null,"本模块塞了一些预设",-1),o=[n,c];function d(i,l,_,m,h,f){return a(),s("div",null,o)}const u=t(p,[["render",d]]);export{b as __pageData,u as default}; diff --git a/assets/en_api_presets_index.md.BhoZyGSV.lean.js b/assets/en_api_presets_index.md.BhoZyGSV.lean.js new file mode 100644 index 0000000..33395a8 --- /dev/null +++ b/assets/en_api_presets_index.md.BhoZyGSV.lean.js @@ -0,0 +1 @@ +import{_ as t,c as s,o as a,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/presets/index.md","filePath":"en/api/presets/index.md"}'),p={name:"en/api/presets/index.md"},n=e("h1",{id:"mbcp-presets",tabindex:"-1"},[r("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),c=e("p",null,"本模块塞了一些预设",-1),o=[n,c];function d(i,l,_,m,h,f){return a(),s("div",null,o)}const u=t(p,[["render",d]]);export{b as __pageData,u as default}; diff --git a/assets/en_api_presets_index.md.Clhg0YLX.js b/assets/en_api_presets_index.md.Clhg0YLX.js deleted file mode 100644 index d0958d0..0000000 --- a/assets/en_api_presets_index.md.Clhg0YLX.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as a,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/presets/index.md","filePath":"en/api/presets/index.md"}'),n={name:"en/api/presets/index.md"},p=e("h1",{id:"mbcp-presets",tabindex:"-1"},[t("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),c=e("p",null,[e("strong",null,"Description"),t(": 本模块塞了一些预设")],-1),o=[p,c];function i(d,l,_,m,h,f){return r(),a("div",null,o)}const u=s(n,[["render",i]]);export{b as __pageData,u as default}; diff --git a/assets/en_api_presets_index.md.Clhg0YLX.lean.js b/assets/en_api_presets_index.md.Clhg0YLX.lean.js deleted file mode 100644 index d0958d0..0000000 --- a/assets/en_api_presets_index.md.Clhg0YLX.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as a,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/presets/index.md","filePath":"en/api/presets/index.md"}'),n={name:"en/api/presets/index.md"},p=e("h1",{id:"mbcp-presets",tabindex:"-1"},[t("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),c=e("p",null,[e("strong",null,"Description"),t(": 本模块塞了一些预设")],-1),o=[p,c];function i(d,l,_,m,h,f){return r(),a("div",null,o)}const u=s(n,[["render",i]]);export{b as __pageData,u as default}; diff --git a/assets/en_api_presets_model_index.md.BJWo1DBU.js b/assets/en_api_presets_model_index.md.BM4zzWd9.js similarity index 82% rename from assets/en_api_presets_model_index.md.BJWo1DBU.js rename to assets/en_api_presets_model_index.md.BM4zzWd9.js index acf033b..6c27e1f 100644 --- a/assets/en_api_presets_model_index.md.BJWo1DBU.js +++ b/assets/en_api_presets_model_index.md.BM4zzWd9.js @@ -1,4 +1,4 @@ -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(`

mbcp.presets.model

Description: 几何模型点集

class GeometricModels

@staticmethod

func 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 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(`

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):
     """
         生成球体上的点集。
diff --git a/assets/en_api_presets_model_index.md.BJWo1DBU.lean.js b/assets/en_api_presets_model_index.md.BM4zzWd9.lean.js
similarity index 100%
rename from assets/en_api_presets_model_index.md.BJWo1DBU.lean.js
rename to assets/en_api_presets_model_index.md.BM4zzWd9.lean.js
diff --git a/assets/en_api_presets_model_model.md.Cmq9KKw_.js b/assets/en_api_presets_model_model.md.Cmq9KKw_.js
deleted file mode 100644
index e1b5d6c..0000000
--- a/assets/en_api_presets_model_model.md.Cmq9KKw_.js
+++ /dev/null
@@ -1,18 +0,0 @@
-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/model.md","filePath":"en/api/presets/model/model.md"}'),t={name:"en/api/presets/model/model.md"},h=n(`

mbcp.presets.model

Description: 几何模型点集

class GeometricModels

@staticmethod

func 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)])
-    theta_list = np.sqrt(num * np.pi) * phi_list
-    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}; diff --git a/assets/en_api_presets_model_model.md.Cmq9KKw_.lean.js b/assets/en_api_presets_model_model.md.Cmq9KKw_.lean.js deleted file mode 100644 index 189d8f7..0000000 --- a/assets/en_api_presets_model_model.md.Cmq9KKw_.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 y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/presets/model/model.md","filePath":"en/api/presets/model/model.md"}'),t={name:"en/api/presets/model/model.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}; diff --git a/assets/en_api_presets_presets.md.5pMosEdX.js b/assets/en_api_presets_presets.md.5pMosEdX.js deleted file mode 100644 index 24113c5..0000000 --- a/assets/en_api_presets_presets.md.5pMosEdX.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as a,o as r,j as e,a as s}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/presets/presets.md","filePath":"en/api/presets/presets.md"}'),p={name:"en/api/presets/presets.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[s("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,[e("strong",null,"Description"),s(": 本模块塞了一些预设")],-1),n=[c,o];function i(l,d,_,m,h,f){return r(),a("div",null,n)}const x=t(p,[["render",i]]);export{u as __pageData,x as default}; diff --git a/assets/en_api_presets_presets.md.5pMosEdX.lean.js b/assets/en_api_presets_presets.md.5pMosEdX.lean.js deleted file mode 100644 index 24113c5..0000000 --- a/assets/en_api_presets_presets.md.5pMosEdX.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as a,o as r,j as e,a as s}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"en/api/presets/presets.md","filePath":"en/api/presets/presets.md"}'),p={name:"en/api/presets/presets.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[s("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,[e("strong",null,"Description"),s(": 本模块塞了一些预设")],-1),n=[c,o];function i(l,d,_,m,h,f){return r(),a("div",null,n)}const x=t(p,[["render",i]]);export{u as __pageData,x as default}; diff --git a/assets/guide_index.md.BVhQ0kPy.js b/assets/guide_index.md.BVhQ0kPy.js deleted file mode 100644 index 5f9a4ba..0000000 --- a/assets/guide_index.md.BVhQ0kPy.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as t,j as a,a as o,a4 as T,o as e}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"开始不了一点","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"zh/guide/index.md","lastUpdated":1724999398000}'),d={name:"guide/index.md"},l=a("h1",{id:"开始不了一点",tabindex:"-1"},[o("开始不了一点 "),a("a",{class:"header-anchor",href:"#开始不了一点","aria-label":'Permalink to "开始不了一点"'},"​")],-1),n={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.771ex"},xmlns:"http://www.w3.org/2000/svg",width:"7.561ex",height:"3.042ex",role:"img",focusable:"false",viewBox:"0 -1003.5 3342.1 1344.3","aria-hidden":"true"},Q=T('',1),i=[Q],h=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("msubsup",null,[a("mo",{"data-mjx-texclass":"OP"},"∫"),a("mrow",{"data-mjx-texclass":"ORD"},[a("mn",null,"1")]),a("mrow",{"data-mjx-texclass":"ORD"},[a("mn",null,"2")])]),a("mi",null,"x"),a("mn",null,"111")])],-1),m=T('

AAA

BBB

C

ddd

',4);function c(p,_,x,u,g,V){return e(),t("div",null,[l,a("p",null,[a("mjx-container",n,[(e(),t("svg",r,i)),h])]),m])}const b=s(d,[["render",c]]);export{f as __pageData,b as default}; diff --git a/assets/guide_index.md.BVhQ0kPy.lean.js b/assets/guide_index.md.BVhQ0kPy.lean.js deleted file mode 100644 index ffcc397..0000000 --- a/assets/guide_index.md.BVhQ0kPy.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as t,j as a,a as o,a4 as T,o as e}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"开始不了一点","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"zh/guide/index.md","lastUpdated":1724999398000}'),d={name:"guide/index.md"},l=a("h1",{id:"开始不了一点",tabindex:"-1"},[o("开始不了一点 "),a("a",{class:"header-anchor",href:"#开始不了一点","aria-label":'Permalink to "开始不了一点"'},"​")],-1),n={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.771ex"},xmlns:"http://www.w3.org/2000/svg",width:"7.561ex",height:"3.042ex",role:"img",focusable:"false",viewBox:"0 -1003.5 3342.1 1344.3","aria-hidden":"true"},Q=T("",1),i=[Q],h=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("msubsup",null,[a("mo",{"data-mjx-texclass":"OP"},"∫"),a("mrow",{"data-mjx-texclass":"ORD"},[a("mn",null,"1")]),a("mrow",{"data-mjx-texclass":"ORD"},[a("mn",null,"2")])]),a("mi",null,"x"),a("mn",null,"111")])],-1),m=T("",4);function c(p,_,x,u,g,V){return e(),t("div",null,[l,a("p",null,[a("mjx-container",n,[(e(),t("svg",r,i)),h])]),m])}const b=s(d,[["render",c]]);export{f as __pageData,b as default}; diff --git a/assets/guide_index.md.CJOqvlSE.js b/assets/guide_index.md.CJOqvlSE.js new file mode 100644 index 0000000..2054f2a --- /dev/null +++ b/assets/guide_index.md.CJOqvlSE.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a4 as s}from"./chunks/framework.DpC1ZpOZ.js";const k=JSON.parse('{"title":"快速开始","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"zh/guide/index.md","lastUpdated":1725373766000}'),i={name:"guide/index.md"},l=s('

快速开始

TIP

建议:把你项目所使用的Python换成PyPy,这样可以提高性能(兼容性优先)

安装

shell
pip install mbcp
',4),n=[l];function o(d,c,h,p,r,_){return t(),e("div",null,n)}const m=a(i,[["render",o]]);export{k as __pageData,m as default}; diff --git a/assets/guide_index.md.CJOqvlSE.lean.js b/assets/guide_index.md.CJOqvlSE.lean.js new file mode 100644 index 0000000..439e486 --- /dev/null +++ b/assets/guide_index.md.CJOqvlSE.lean.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a4 as s}from"./chunks/framework.DpC1ZpOZ.js";const k=JSON.parse('{"title":"快速开始","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"zh/guide/index.md","lastUpdated":1725373766000}'),i={name:"guide/index.md"},l=s("",4),n=[l];function o(d,c,h,p,r,_){return t(),e("div",null,n)}const m=a(i,[["render",o]]);export{k as __pageData,m as default}; diff --git a/assets/ja_api_api.md.DD7b0jH_.js b/assets/ja_api_api.md.DD7b0jH_.js deleted file mode 100644 index 32b5829..0000000 --- a/assets/ja_api_api.md.DD7b0jH_.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as e,o as t,a4 as p}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/api.md","filePath":"ja/api/api.md"}'),c={name:"ja/api/api.md"},o=p('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(_,i,d,m,n,l){return t(),e("div",null,r)}const b=a(c,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/ja_api_api.md.DD7b0jH_.lean.js b/assets/ja_api_api.md.DD7b0jH_.lean.js deleted file mode 100644 index b3b68cf..0000000 --- a/assets/ja_api_api.md.DD7b0jH_.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as e,o as t,a4 as p}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/api.md","filePath":"ja/api/api.md"}'),c={name:"ja/api/api.md"},o=p("",5),r=[o];function s(_,i,d,m,n,l){return t(),e("div",null,r)}const b=a(c,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/ja_api_index.md.3bCCqhm9.js b/assets/ja_api_index.md.3bCCqhm9.js deleted file mode 100644 index b2e76d6..0000000 --- a/assets/ja_api_index.md.3bCCqhm9.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/index.md","filePath":"ja/api/index.md"}'),p={name:"ja/api/index.md"},o=c('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(d,_,i,n,m,l){return t(),a("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/ja_api_index.md.6u5f7W7q.js b/assets/ja_api_index.md.6u5f7W7q.js new file mode 100644 index 0000000..aab2498 --- /dev/null +++ b/assets/ja_api_index.md.6u5f7W7q.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/index.md","filePath":"ja/api/index.md"}'),p={name:"ja/api/index.md"},o=c('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(d,_,i,n,m,l){return t(),a("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/ja_api_index.md.3bCCqhm9.lean.js b/assets/ja_api_index.md.6u5f7W7q.lean.js similarity index 100% rename from assets/ja_api_index.md.3bCCqhm9.lean.js rename to assets/ja_api_index.md.6u5f7W7q.lean.js diff --git a/assets/ja_api_mp_math_angle.md.DmogilJK.js b/assets/ja_api_mp_math_angle.md.CbTFNFpP.js similarity index 60% rename from assets/ja_api_mp_math_angle.md.DmogilJK.js rename to assets/ja_api_mp_math_angle.md.CbTFNFpP.js index 56307b2..99a3d04 100644 --- a/assets/ja_api_mp_math_angle.md.DmogilJK.js +++ b/assets/ja_api_mp_math_angle.md.CbTFNFpP.js @@ -1,4 +1,4 @@ -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)

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

説明: 任意角度。

引数:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
ソースコード または GitHubで表示
python
def __init__(self, value: float, is_radian: bool=False):
+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:
@@ -8,92 +8,92 @@ import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     if is_radian:
         self.radian = value
     else:
-        self.radian = value * PI / 180

@property

func complementary(self) -> AnyAngle

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

戻り値: 余角

ソースコード または GitHubで表示
python
@property
+        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

func supplementary(self) -> AnyAngle

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

戻り値: 补角

ソースコード または GitHubで表示
python
@property
+    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

func degree(self) -> float

説明: 角度。

戻り値: 弧度

ソースコード または GitHubで表示
python
@property
+    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

func minimum_positive(self) -> AnyAngle

説明: 最小正角。

戻り値: 最小正角度

ソースコード または GitHubで表示
python
@property
+    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

func maximum_negative(self) -> AnyAngle

説明: 最大负角。

戻り値: 最大负角度

ソースコード または GitHubで表示
python
@property
+    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

func sin(self) -> float

説明: 正弦值。

戻り値: 正弦值

ソースコード または GitHubで表示
python
@property
+    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

func cos(self) -> float

説明: 余弦值。

戻り値: 余弦值

ソースコード または GitHubで表示
python
@property
+    return math.sin(self.radian)

@property

method cos(self) -> float

説明: 余弦值。

戻り値: 余弦值

ソースコード または GitHubで表示
python
@property
 def cos(self) -> float:
     """
         余弦值。
         Returns:
             余弦值
         """
-    return math.cos(self.radian)

@property

func tan(self) -> float

説明: 正切值。

戻り値: 正切值

ソースコード または GitHubで表示
python
@property
+    return math.cos(self.radian)

@property

method tan(self) -> float

説明: 正切值。

戻り値: 正切值

ソースコード または GitHubで表示
python
@property
 def tan(self) -> float:
     """
         正切值。
         Returns:
             正切值
         """
-    return math.tan(self.radian)

@property

func cot(self) -> float

説明: 余切值。

戻り値: 余切值

ソースコード または GitHubで表示
python
@property
+    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

func sec(self) -> float

説明: 正割值。

戻り値: 正割值

ソースコード または GitHubで表示
python
@property
+    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

func csc(self) -> float

説明: 余割值。

戻り値: 余割值

ソースコード または GitHubで表示
python
@property
+    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)

func self + other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian + other.radian, is_radian=True)

func __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
-    return approx(self.radian, other.radian)

func self - other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian - other.radian, is_radian=True)

func self * other: float => AnyAngle

ソースコード または GitHubで表示
python
def __mul__(self, other: float) -> 'AnyAngle':
-    return AnyAngle(self.radian * other, is_radian=True)

@overload

func self / other: float => AnyAngle

ソースコード または GitHubで表示
python
@overload
+    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

func self / other: AnyAngle => float

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

method self / other: AnyAngle => float

ソースコード または GitHubで表示
python
@overload
 def __truediv__(self, other: 'AnyAngle') -> float:
-    ...

func self / other

ソースコード または GitHubで表示
python
def __truediv__(self, other):
+    ...

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.DmogilJK.lean.js b/assets/ja_api_mp_math_angle.md.CbTFNFpP.lean.js similarity index 100% rename from assets/ja_api_mp_math_angle.md.DmogilJK.lean.js rename to assets/ja_api_mp_math_angle.md.CbTFNFpP.lean.js diff --git a/assets/ja_api_mp_math_const.md.CACmM3Q4.js b/assets/ja_api_mp_math_const.md.CACmM3Q4.js deleted file mode 100644 index 8bb1d79..0000000 --- a/assets/ja_api_mp_math_const.md.CACmM3Q4.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as o,o as t,a4 as r}from"./chunks/framework.DpC1ZpOZ.js";const g=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/const.md","filePath":"ja/api/mp_math/const.md"}'),e={name:"ja/api/mp_math/const.md"},l=r('

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

',14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const u=a(e,[["render",i]]);export{g as __pageData,u as default}; diff --git a/assets/ja_api_mp_math_const.md.CACmM3Q4.lean.js b/assets/ja_api_mp_math_const.md.CACmM3Q4.lean.js deleted file mode 100644 index c3371fc..0000000 --- a/assets/ja_api_mp_math_const.md.CACmM3Q4.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as o,o as t,a4 as r}from"./chunks/framework.DpC1ZpOZ.js";const g=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/const.md","filePath":"ja/api/mp_math/const.md"}'),e={name:"ja/api/mp_math/const.md"},l=r("",14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const u=a(e,[["render",i]]);export{g as __pageData,u as default}; diff --git a/assets/ja_api_mp_math_const.md.HrVLdLVW.js b/assets/ja_api_mp_math_const.md.HrVLdLVW.js new file mode 100644 index 0000000..cb8b857 --- /dev/null +++ b/assets/ja_api_mp_math_const.md.HrVLdLVW.js @@ -0,0 +1 @@ +import{_ as a,c as o,o as t,a4 as e}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/const.md","filePath":"ja/api/mp_math/const.md"}'),r={name:"ja/api/mp_math/const.md"},l=e('

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

',14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const g=a(r,[["render",i]]);export{u as __pageData,g as default}; diff --git a/assets/ja_api_mp_math_const.md.HrVLdLVW.lean.js b/assets/ja_api_mp_math_const.md.HrVLdLVW.lean.js new file mode 100644 index 0000000..beb0186 --- /dev/null +++ b/assets/ja_api_mp_math_const.md.HrVLdLVW.lean.js @@ -0,0 +1 @@ +import{_ as a,c as o,o as t,a4 as e}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/const.md","filePath":"ja/api/mp_math/const.md"}'),r={name:"ja/api/mp_math/const.md"},l=e("",14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const g=a(r,[["render",i]]);export{u as __pageData,g as default}; diff --git a/assets/ja_api_mp_math_equation.md.DuGNts4i.js b/assets/ja_api_mp_math_equation.md.BR_cjYxP.js similarity index 82% rename from assets/ja_api_mp_math_equation.md.DuGNts4i.js rename to assets/ja_api_mp_math_equation.md.BR_cjYxP.js index 723e7dd..9d98083 100644 --- a/assets/ja_api_mp_math_equation.md.DuGNts4i.js +++ b/assets/ja_api_mp_math_equation.md.BR_cjYxP.js @@ -1,4 +1,4 @@ -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

func __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):
+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:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

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

説明: 计算曲线上的点。

引数:

  • *t:
  • 参数:

戻り値: 目标点

ソースコード または GitHubで表示
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    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:
@@ -62,4 +62,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
             return result_func(*args)
         return high_order_partial_derivative_func
     else:
-        raise ValueError('Invalid var type')
`,23),p=[l];function h(k,e,r,E,c,d){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),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}; diff --git a/assets/ja_api_mp_math_equation.md.DuGNts4i.lean.js b/assets/ja_api_mp_math_equation.md.BR_cjYxP.lean.js similarity index 73% rename from assets/ja_api_mp_math_equation.md.DuGNts4i.lean.js rename to assets/ja_api_mp_math_equation.md.BR_cjYxP.lean.js index f4c7504..3aac2d8 100644 --- a/assets/ja_api_mp_math_equation.md.DuGNts4i.lean.js +++ b/assets/ja_api_mp_math_equation.md.BR_cjYxP.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(k,e,r,E,c,d){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),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}; diff --git a/assets/ja_api_mp_math_function.md.CeNPnpri.js b/assets/ja_api_mp_math_function.md.CeNPnpri.js new file mode 100644 index 0000000..ce036af --- /dev/null +++ b/assets/ja_api_mp_math_function.md.CeNPnpri.js @@ -0,0 +1,42 @@ +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:
+        梯度
+    """
+    dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
+    dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
+    dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
+    return Vector3(dx, dy, dz)

func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc

説明: 对多参数函数进行柯里化。

TIP

有关函数柯里化,可参考函数式编程--柯理化(Currying)

引数:

戻り値: 柯里化后的函数

:

python
def add(a: int, b: int, c: int) -> int:
+    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}; diff --git a/assets/ja_api_mp_math_function.md.DIn5uL0A.lean.js b/assets/ja_api_mp_math_function.md.CeNPnpri.lean.js similarity index 100% rename from assets/ja_api_mp_math_function.md.DIn5uL0A.lean.js rename to assets/ja_api_mp_math_function.md.CeNPnpri.lean.js diff --git a/assets/ja_api_mp_math_function.md.DIn5uL0A.js b/assets/ja_api_mp_math_function.md.DIn5uL0A.js deleted file mode 100644 index 4bc4e78..0000000 --- a/assets/ja_api_mp_math_function.md.DIn5uL0A.js +++ /dev/null @@ -1,42 +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('

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:
-        梯度
-    """
-    dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
-    dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
-    dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
-    return Vector3(dx, dy, dz)

func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc

説明: 对多参数函数进行柯里化。

TIP

有关函数柯里化,可参考函数式编程--柯理化(Currying)

引数:

戻り値: 柯里化后的函数

:

python
def add(a: int, b: int, c: int) -> int:
-    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}; diff --git a/assets/ja_api_mp_math_index.md.BVYYBcgX.js b/assets/ja_api_mp_math_index.md.BVYYBcgX.js new file mode 100644 index 0000000..f911f93 --- /dev/null +++ b/assets/ja_api_mp_math_index.md.BVYYBcgX.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/mp_math/index.md","filePath":"ja/api/mp_math/index.md"}'),l={name:"ja/api/mp_math/index.md"},o=c('

mbcp.mp_math

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

',3),i=[o];function m(n,s,d,p,r,h){return t(),a("div",null,i)}const u=e(l,[["render",m]]);export{f as __pageData,u as default}; diff --git a/assets/ja_api_mp_math_index.md.B_UDRWJp.lean.js b/assets/ja_api_mp_math_index.md.BVYYBcgX.lean.js similarity index 100% rename from assets/ja_api_mp_math_index.md.B_UDRWJp.lean.js rename to assets/ja_api_mp_math_index.md.BVYYBcgX.lean.js diff --git a/assets/ja_api_mp_math_index.md.B_UDRWJp.js b/assets/ja_api_mp_math_index.md.B_UDRWJp.js deleted file mode 100644 index e5500a8..0000000 --- a/assets/ja_api_mp_math_index.md.B_UDRWJp.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/mp_math/index.md","filePath":"ja/api/mp_math/index.md"}'),l={name:"ja/api/mp_math/index.md"},o=c('

mbcp.mp_math

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

',3),i=[o];function m(n,s,d,p,r,h){return t(),a("div",null,i)}const u=e(l,[["render",m]]);export{f as __pageData,u as default}; diff --git a/assets/ja_api_mp_math_line.md.Ber05s-D.js b/assets/ja_api_mp_math_line.md.CmVmq6PC.js similarity index 59% rename from assets/ja_api_mp_math_line.md.Ber05s-D.js rename to assets/ja_api_mp_math_line.md.CmVmq6PC.js index 0ad60c2..ee042dd 100644 --- a/assets/ja_api_mp_math_line.md.Ber05s-D.js +++ b/assets/ja_api_mp_math_line.md.CmVmq6PC.js @@ -1,4 +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.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

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

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

引数:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
ソースコード または GitHubで表示
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
+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:
@@ -6,7 +6,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
             direction ([\`Vector3\`](./vector#class-vector3)): 方向向量
         """
     self.point = point
-    self.direction = direction

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

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

引数:

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

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
+    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:
@@ -15,7 +15,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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)

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

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

引数:

  • other (Line3): 另一条直线

戻り値: AnyAngle: 夹角

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
+    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:
@@ -23,7 +23,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`AnyAngle\`](./angle#class-anyangle): 夹角
         """
-    return self.direction.cal_angle(other.direction)

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

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

引数:

戻り値: float: 距离

例外:

ソースコード または GitHubで表示
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
+    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:
@@ -45,7 +45,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif isinstance(other, Point3):
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
-        raise TypeError('Unsupported type.')

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

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

引数:

  • other (Line3): 另一条直线

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
+        raise TypeError('Unsupported type.')

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

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

引数:

  • other (Line3): 另一条直线

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
     """
         计算两条直线的交点。
         Args:
@@ -60,7 +60,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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

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

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

引数:

戻り値: Line3: 垂线

ソースコード または GitHubで表示
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
+    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:
@@ -68,7 +68,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`Line3\`](./line#class-line3): 垂线
         """
-    return Line3(point, self.direction.cross(point - self.point))

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

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

引数:

戻り値: Point3: 点

ソースコード または GitHubで表示
python
def get_point(self, t: RealNumber) -> 'Point3':
+    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:
@@ -76,13 +76,13 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`Point3\`](./point#class-point3): 点
         """
-    return self.point + t * self.direction

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

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

戻り値: tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]: 参数方程

ソースコード または GitHubで表示
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
+    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)

func 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:
+    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:
@@ -91,7 +91,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.direction.is_approx_parallel(other.direction, epsilon)

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

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

引数:

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Line3') -> 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:
@@ -99,7 +99,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.direction.is_parallel(other.direction)

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

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

引数:

戻り値: bool: 是否共线

ソースコード または GitHubで表示
python
def is_collinear(self, other: 'Line3') -> 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:
@@ -107,7 +107,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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)

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

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

引数:

戻り値: bool: 是否在直线上

ソースコード または GitHubで表示
python
def is_point_on(self, point: 'Point3') -> 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:
@@ -115,7 +115,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
         """
-    return (point - self.point).is_parallel(self.direction)

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

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

引数:

戻り値: bool: 是否共面

ソースコード または GitHubで表示
python
def is_coplanar(self, other: 'Line3') -> 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。
@@ -124,7 +124,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
         """
-    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

func simplify(self)

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

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

ソースコード または GitHubで表示
python
def simplify(self):
+    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

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

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

ソースコード または GitHubで表示
python
def simplify(self):
     """
         简化直线方程,等价相等。
         自体简化,不返回值。
@@ -137,7 +137,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     if self.direction.y == 0:
         self.point.y = 0
     if self.direction.z == 0:
-        self.point.z = 0

@classmethod

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

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

引数:

戻り値: Line3: 直线

ソースコード または GitHubで表示
python
@classmethod
+        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':
     """
         工厂函数 由两点构造直线。
@@ -148,7 +148,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
             [\`Line3\`](./line#class-line3): 直线
         """
     direction = p2 - p1
-    return cls(p1, direction)

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

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

引数:

  • other (Line3): 另一条直线

戻り値: Line3 | Point3 | None: 交集

ソースコード または GitHubで表示
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
+    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:
@@ -161,7 +161,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
-        return self.cal_intersection(other)

func __eq__(self, other) -> bool

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

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

引数:

  • other (Line3): 另一条直线

戻り値: bool: 是否等价

ソースコード または GitHubで表示
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
@@ -171,4 +171,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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 p(h,k,r,o,d,g){return a(),i("div",null,e)}const E=s(t,[["render",p]]);export{F as __pageData,E as default}; + 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}; diff --git a/assets/ja_api_mp_math_line.md.Ber05s-D.lean.js b/assets/ja_api_mp_math_line.md.CmVmq6PC.lean.js similarity index 72% rename from assets/ja_api_mp_math_line.md.Ber05s-D.lean.js rename to assets/ja_api_mp_math_line.md.CmVmq6PC.lean.js index c156750..572538c 100644 --- a/assets/ja_api_mp_math_line.md.Ber05s-D.lean.js +++ b/assets/ja_api_mp_math_line.md.CmVmq6PC.lean.js @@ -1 +1 @@ -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 p(h,k,r,o,d,g){return a(),i("div",null,e)}const E=s(t,[["render",p]]);export{F as __pageData,E as default}; +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_mp_math.md.DGl-Yqoj.js b/assets/ja_api_mp_math_mp_math.md.DGl-Yqoj.js deleted file mode 100644 index da20679..0000000 --- a/assets/ja_api_mp_math_mp_math.md.DGl-Yqoj.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as e,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/mp_math/mp_math.md","filePath":"ja/api/mp_math/mp_math.md"}'),l={name:"ja/api/mp_math/mp_math.md"},m=c('

mbcp.mp_math

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

',3),o=[m];function i(s,n,p,h,r,_){return t(),e("div",null,o)}const u=a(l,[["render",i]]);export{f as __pageData,u as default}; diff --git a/assets/ja_api_mp_math_mp_math.md.DGl-Yqoj.lean.js b/assets/ja_api_mp_math_mp_math.md.DGl-Yqoj.lean.js deleted file mode 100644 index 1bd00a0..0000000 --- a/assets/ja_api_mp_math_mp_math.md.DGl-Yqoj.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as e,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/mp_math/mp_math.md","filePath":"ja/api/mp_math/mp_math.md"}'),l={name:"ja/api/mp_math/mp_math.md"},m=c("",3),o=[m];function i(s,n,p,h,r,_){return t(),e("div",null,o)}const u=a(l,[["render",i]]);export{f as __pageData,u as default}; diff --git a/assets/ja_api_mp_math_mp_math_typing.md.BANGfx9Q.js b/assets/ja_api_mp_math_mp_math_typing.md.BANGfx9Q.js deleted file mode 100644 index 08da1ec..0000000 --- a/assets/ja_api_mp_math_mp_math_typing.md.BANGfx9Q.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as r,o as e,a4 as o}from"./chunks/framework.DpC1ZpOZ.js";const v=JSON.parse('{"title":"mbcp.mp_math.mp_math_typing","description":"","frontmatter":{"title":"mbcp.mp_math.mp_math_typing","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/mp_math_typing.md","filePath":"ja/api/mp_math/mp_math_typing.md"}'),l={name:"ja/api/mp_math/mp_math_typing.md"},n=o('

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

',36),t=[n];function i(s,c,d,p,u,g){return e(),r("div",null,t)}const m=a(l,[["render",i]]);export{v as __pageData,m as default}; diff --git a/assets/ja_api_mp_math_mp_math_typing.md.BnSHEEFC.js b/assets/ja_api_mp_math_mp_math_typing.md.BnSHEEFC.js new file mode 100644 index 0000000..be55956 --- /dev/null +++ b/assets/ja_api_mp_math_mp_math_typing.md.BnSHEEFC.js @@ -0,0 +1 @@ +import{_ as a,c as r,o as e,a4 as o}from"./chunks/framework.DpC1ZpOZ.js";const v=JSON.parse('{"title":"mbcp.mp_math.mp_math_typing","description":"","frontmatter":{"title":"mbcp.mp_math.mp_math_typing","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/mp_math_typing.md","filePath":"ja/api/mp_math/mp_math_typing.md"}'),l={name:"ja/api/mp_math/mp_math_typing.md"},n=o('

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

',36),t=[n];function i(s,c,d,p,u,g){return e(),r("div",null,t)}const m=a(l,[["render",i]]);export{v as __pageData,m as default}; diff --git a/assets/ja_api_mp_math_mp_math_typing.md.BANGfx9Q.lean.js b/assets/ja_api_mp_math_mp_math_typing.md.BnSHEEFC.lean.js similarity index 100% rename from assets/ja_api_mp_math_mp_math_typing.md.BANGfx9Q.lean.js rename to assets/ja_api_mp_math_mp_math_typing.md.BnSHEEFC.lean.js diff --git a/assets/ja_api_mp_math_plane.md.BlhqSUWq.js b/assets/ja_api_mp_math_plane.md.D7v3q_U8.js similarity index 69% rename from assets/ja_api_mp_math_plane.md.BlhqSUWq.js rename to assets/ja_api_mp_math_plane.md.D7v3q_U8.js index 113b075..8bf77b6 100644 --- a/assets/ja_api_mp_math_plane.md.BlhqSUWq.js +++ b/assets/ja_api_mp_math_plane.md.D7v3q_U8.js @@ -1,4 +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.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"},t=n(`

mbcp.mp_math.plane

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

class Plane3

func __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):
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y=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"},t=n(`

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:
@@ -10,7 +10,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

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

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

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Plane3') -> bool:
+    self.d = d

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

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

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Plane3') -> bool:
     """
         判断两个平面是否近似相等。
         Args:
@@ -28,7 +28,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         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

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

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

引数:

戻り値: AnyAngle: 夹角

例外:

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+        return False

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

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

引数:

戻り値: AnyAngle: 夹角

例外:

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     """
         计算平面与平面之间的夹角。
         Args:
@@ -43,7 +43,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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)}')

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

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

引数:

戻り値: float: 距离

例外:

ソースコード または GitHubで表示
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
+        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:
@@ -58,7 +58,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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)}')

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

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

引数:

  • other (Plane3): 另一个平面

戻り値: Line3: 交线

例外:

ソースコード または GitHubで表示
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
+        raise TypeError(f'Unsupported type: {type(other)}')

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

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

引数:

  • other (Plane3): 另一个平面

戻り値: Line3: 交线

例外:

ソースコード または GitHubで表示
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     """
         计算两平面的交线。
         Args:
@@ -84,7 +84,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         A = np.array([[self.a, self.b], [other.a, other.b]])
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
-    return Line3(Point3(x, y, z), direction)

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

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

引数:

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
+    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:
@@ -98,7 +98,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         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))

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

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

引数:

戻り値: Plane3: 平面

ソースコード または GitHubで表示
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
+    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:
@@ -106,7 +106,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`Plane3\`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

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

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

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Plane3') -> bool:
+    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:
@@ -114,14 +114,14 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.normal.is_parallel(other.normal)

@property

func normal(self) -> Vector3

説明: 平面的法向量。

戻り値: Vector3: 法向量

ソースコード または GitHubで表示
python
@property
+    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

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

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

引数:

戻り値: Plane3: 平面

ソースコード または GitHubで表示
python
@classmethod
+    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':
     """
         工厂函数 由点和法向量构造平面(点法式构造)。
@@ -133,7 +133,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         """
     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

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

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

引数:

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

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
+    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':
     """
         工厂函数 由三点构造平面。
@@ -147,7 +147,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

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

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

引数:

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

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
+    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':
     """
         工厂函数 由两直线构造平面。
@@ -161,7 +161,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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

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

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

引数:

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
+    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':
     """
         工厂函数 由点和直线构造平面。
@@ -171,11 +171,11 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

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

ソースコード または GitHubで表示
python
@overload
+    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

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

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

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

ソースコード または GitHubで表示
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
-    ...

func __and__(self, other)

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

引数:

戻り値: Line3 | Point3 | None: 交集

例外:

ソースコード または GitHubで表示
python
def __and__(self, other):
+    ...

method __and__(self, other)

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

引数:

戻り値: Line3 | Point3 | None: 交集

例外:

ソースコード または GitHubで表示
python
def __and__(self, other):
     """
         取两平面的交集(人话:交线)
         Args:
@@ -194,7 +194,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

func __eq__(self, other) -> bool

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

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否等价

ソースコード または GitHubで表示
python
def __eq__(self, other) -> bool:
+        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:
@@ -202,5 +202,5 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

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

ソースコード または GitHubで表示
python
def __rand__(self, other: 'Line3') -> 'Point3':
-    return self.cal_intersection_point3(other)
`,113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const y=s(l,[["render",p]]);export{c as __pageData,y as default}; + return self.approx(other)

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

ソースコード または GitHubで表示
python
def __rand__(self, other: 'Line3') -> 'Point3':
+    return self.cal_intersection_point3(other)
`,113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const F=s(l,[["render",p]]);export{y as __pageData,F as default}; diff --git a/assets/ja_api_mp_math_plane.md.BlhqSUWq.lean.js b/assets/ja_api_mp_math_plane.md.D7v3q_U8.lean.js similarity index 68% rename from assets/ja_api_mp_math_plane.md.BlhqSUWq.lean.js rename to assets/ja_api_mp_math_plane.md.D7v3q_U8.lean.js index 711844a..8a72354 100644 --- a/assets/ja_api_mp_math_plane.md.BlhqSUWq.lean.js +++ b/assets/ja_api_mp_math_plane.md.D7v3q_U8.lean.js @@ -1 +1 @@ -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.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"},t=n("",113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const y=s(l,[["render",p]]);export{c as __pageData,y as default}; +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y=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"},t=n("",113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const F=s(l,[["render",p]]);export{y as __pageData,F as default}; diff --git a/assets/ja_api_mp_math_point.md.Czyuzvxa.js b/assets/ja_api_mp_math_point.md.BqC8JgjG.js similarity index 57% rename from assets/ja_api_mp_math_point.md.Czyuzvxa.js rename to assets/ja_api_mp_math_point.md.BqC8JgjG.js index be1e367..81cdef8 100644 --- a/assets/ja_api_mp_math_point.md.Czyuzvxa.js +++ b/assets/ja_api_mp_math_point.md.BqC8JgjG.js @@ -1,4 +1,4 @@ -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"},l=t(`

mbcp.mp_math.point

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

class Point3

func __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):
+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:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    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:
@@ -17,11 +17,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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

func self + other: Vector3 => Point3

ソースコード または GitHubで表示
python
@overload
+    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

func self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

func self + other

説明: P + V -> P P + P -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __add__(self, other):
+    ...

method self + other

説明: P + V -> P P + P -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __add__(self, other):
     """
         P + V -> P
         P + P -> P
@@ -30,7 +30,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`Point3\`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

func __eq__(self, other)

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

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
+    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:
@@ -38,7 +38,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

func self - other: Point3 => Vector3

説明: P - P -> V

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

引数:

戻り値: Vector3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other: 'Point3') -> 'Vector3':
+    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
 
@@ -49,4 +49,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
             [\`Vector3\`](./vector#class-vector3): 新的向量
         """
     from .vector import Vector3
-    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
`,39),h=[l];function p(e,k,o,r,d,c){return a(),i("div",null,h)}const y=s(n,[["render",p]]);export{E as __pageData,y as default}; + 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.Czyuzvxa.lean.js b/assets/ja_api_mp_math_point.md.BqC8JgjG.lean.js similarity index 72% rename from assets/ja_api_mp_math_point.md.Czyuzvxa.lean.js rename to assets/ja_api_mp_math_point.md.BqC8JgjG.lean.js index c278532..891c12b 100644 --- a/assets/ja_api_mp_math_point.md.Czyuzvxa.lean.js +++ b/assets/ja_api_mp_math_point.md.BqC8JgjG.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":"ja/api/mp_math/point.md","filePath":"ja/api/mp_math/point.md"}'),n={name:"ja/api/mp_math/point.md"},l=t("",39),h=[l];function p(e,k,o,r,d,c){return a(),i("div",null,h)}const y=s(n,[["render",p]]);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":"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_segment.md.DfoJ389C.js b/assets/ja_api_mp_math_segment.md.vi1FH0--.js similarity index 73% rename from assets/ja_api_mp_math_segment.md.DfoJ389C.js rename to assets/ja_api_mp_math_segment.md.vi1FH0--.js index be1679f..e3af5c0 100644 --- a/assets/ja_api_mp_math_segment.md.DfoJ389C.js +++ b/assets/ja_api_mp_math_segment.md.vi1FH0--.js @@ -1,4 +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

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

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

引数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
ソースコード または GitHubで表示
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
+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:
@@ -12,4 +12,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,E,g){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),h=[p];function l(e,k,r,d,E,o){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_segment.md.DfoJ389C.lean.js b/assets/ja_api_mp_math_segment.md.vi1FH0--.lean.js similarity index 86% rename from assets/ja_api_mp_math_segment.md.DfoJ389C.lean.js rename to assets/ja_api_mp_math_segment.md.vi1FH0--.lean.js index a0c12b2..19cb825 100644 --- a/assets/ja_api_mp_math_segment.md.DfoJ389C.lean.js +++ b/assets/ja_api_mp_math_segment.md.vi1FH0--.lean.js @@ -1 +1 @@ -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,E,g){return a(),i("div",null,h)}const c=s(t,[["render",l]]);export{F as __pageData,c as default}; +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,E,o){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.Dnl5rkoo.js b/assets/ja_api_mp_math_utils.md.DhPmcvK-.js similarity index 79% rename from assets/ja_api_mp_math_utils.md.Dnl5rkoo.js rename to assets/ja_api_mp_math_utils.md.DhPmcvK-.js index 29d1c44..8e991bf 100644 --- a/assets/ja_api_mp_math_utils.md.Dnl5rkoo.js +++ b/assets/ja_api_mp_math_utils.md.DhPmcvK-.js @@ -1,4 +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.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:
+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:
@@ -9,13 +9,13 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     Returns:
         \`float\`: 限定在区间内的值
     """
-    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

説明: 用于近似比较对象

引数:

ソースコード または GitHubで表示
python
def __init__(self, value: RealNumber):
+    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

func __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
+    self.value = value

method __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
             return abs(self.value - other) < APPROX
@@ -25,8 +25,8 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
         if isinstance(other, (Vector3, Point3, Plane3, Line3)):
             return all([approx(self.value.x, other.x), approx(self.value.y, other.y), approx(self.value.z, other.z)])
         else:
-            self.raise_type_error(other)

func raise_type_error(self, other)

ソースコード または GitHubで表示
python
def raise_type_error(self, other):
-    raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

func __ne__(self, other)

ソースコード または GitHubで表示
python
def __ne__(self, other):
+            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。
@@ -66,4 +66,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif x < 0:
         return f'-{abs(x)}'
     else:
-        return ''
`,38),h=[l];function p(e,k,r,o,d,g){return a(),i("div",null,h)}const c=s(n,[["render",p]]);export{F as __pageData,c as default}; + 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}; diff --git a/assets/ja_api_mp_math_utils.md.Dnl5rkoo.lean.js b/assets/ja_api_mp_math_utils.md.DhPmcvK-.lean.js similarity index 68% rename from assets/ja_api_mp_math_utils.md.Dnl5rkoo.lean.js rename to assets/ja_api_mp_math_utils.md.DhPmcvK-.lean.js index 48b11b3..935a7fb 100644 --- a/assets/ja_api_mp_math_utils.md.Dnl5rkoo.lean.js +++ b/assets/ja_api_mp_math_utils.md.DhPmcvK-.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":"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 p(e,k,r,o,d,g){return a(),i("div",null,h)}const c=s(n,[["render",p]]);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 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.CD5nfzHo.js b/assets/ja_api_mp_math_vector.md.B7oDy-SU.js similarity index 63% rename from assets/ja_api_mp_math_vector.md.CD5nfzHo.js rename to assets/ja_api_mp_math_vector.md.B7oDy-SU.js index 3617bc2..3c5fd40 100644 --- a/assets/ja_api_mp_math_vector.md.CD5nfzHo.js +++ b/assets/ja_api_mp_math_vector.md.B7oDy-SU.js @@ -1,4 +1,4 @@ -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.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"}'),n={name:"ja/api/mp_math/vector.md"},l=t(`

mbcp.mp_math.vector

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

class Vector3

func __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):
+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.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"}'),n={name:"ja/api/mp_math/vector.md"},e=t(`

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:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -18,7 +18,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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])

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

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

引数:

戻り値: AnyAngle: 夹角

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
+    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

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

引数:

戻り値: AnyAngle: 夹角

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
     """
         计算两个向量之间的夹角。
         Args:
@@ -26,7 +26,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`AnyAngle\`](./angle#class-anyangle): 夹角
         """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

説明: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

引数:

戻り値: Vector3: 叉乘结果

ソースコード または GitHubで表示
python
def cross(self, other: 'Vector3') -> 'Vector3':
+    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

説明: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

引数:

戻り値: Vector3: 叉乘结果

ソースコード または GitHubで表示
python
def cross(self, other: 'Vector3') -> 'Vector3':
     """
         向量积 叉乘:v1 cross v2 -> v3
 
@@ -46,7 +46,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

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

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

引数:

戻り値: bool: 是否近似平行

ソースコード または GitHubで表示
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -55,7 +55,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

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

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

引数:

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Vector3') -> 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:
@@ -63,7 +63,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.cross(other).approx(zero_vector3)

func normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

ソースコード または GitHubで表示
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

method normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

ソースコード または GitHubで表示
python
def normalize(self):
     """
         将向量归一化。
 
@@ -72,33 +72,33 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     length = self.length
     self.x /= length
     self.y /= length
-    self.z /= length

@property

func np_array(self) -> np.ndarray

戻り値: np.ndarray: numpy数组

ソースコード または GitHubで表示
python
@property
+    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

func length(self) -> float

説明: 向量的模。

戻り値: float: 模

ソースコード または GitHubで表示
python
@property
+    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

func unit(self) -> Vector3

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

戻り値: Vector3: 单位向量

ソースコード または GitHubで表示
python
@property
+    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

func __abs__(self)

ソースコード または GitHubで表示
python
def __abs__(self):
-    return self.length

@overload

func self + other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+    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

func self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

func self + other

説明: V + P -> P

V + V -> V

引数:

戻り値: Vector3 | Point3: 新的向量或点

ソースコード または GitHubで表示
python
def __add__(self, other):
+    ...

method self + other

説明: V + P -> P

V + V -> V

引数:

戻り値: Vector3 | Point3: 新的向量或点

ソースコード または GitHubで表示
python
def __add__(self, other):
     """
         V + P -> P
 
@@ -113,7 +113,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}'")

func __eq__(self, other)

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

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
+        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

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

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
     """
         判断两个向量是否相等。
         Args:
@@ -121,7 +121,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

func self + other: Point3 => Point3

説明: P + V -> P

别去点那边实现了。

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __radd__(self, other: 'Point3') -> 'Point3':
+    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
 
@@ -131,11 +131,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`Point3\`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+    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

func self - other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

method self - other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __sub__(self, other: 'Point3') -> 'Point3':
-    ...

func self - other

説明: V - P -> P

V - V -> V

引数:

戻り値: Vector3 | Point3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other):
+    ...

method self - other

説明: V - P -> P

V - V -> V

引数:

戻り値: Vector3 | Point3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other):
     """
         V - P -> P
 
@@ -150,7 +150,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}"')

func self - other: Point3

説明: P - V -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __rsub__(self, other: 'Point3'):
+        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:
@@ -161,11 +161,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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

func self * other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+        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

func self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

method self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

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

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

引数:

戻り値: Vector3: 数组运算结果

ソースコード または GitHubで表示
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
+    ...

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

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

引数:

戻り値: Vector3: 数组运算结果

ソースコード または GitHubで表示
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
     """
         数组运算 非点乘。点乘使用@,叉乘使用cross。
         Args:
@@ -178,8 +178,8 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}'")

func self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

func self @ other: Vector3 => RealNumber

説明: 点乘。

引数:

戻り値: float: 点乘结果

ソースコード または GitHubで表示
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
+        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:
@@ -187,11 +187,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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

func self / other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
-    return Vector3(self.x / other, self.y / other, self.z / other)

func - self => Vector3

説明: 取负。

戻り値: Vector3: 负向量

ソースコード または GitHubで表示
python
def __neg__(self) -> 'Vector3':
+    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)

`,138),e=[l];function h(p,k,r,o,d,c){return a(),i("div",null,e)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; + 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)

`,138),h=[e];function l(p,k,r,o,d,g){return a(),i("div",null,h)}const y=s(n,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/ja_api_mp_math_vector.md.CD5nfzHo.lean.js b/assets/ja_api_mp_math_vector.md.B7oDy-SU.lean.js similarity index 72% rename from assets/ja_api_mp_math_vector.md.CD5nfzHo.lean.js rename to assets/ja_api_mp_math_vector.md.B7oDy-SU.lean.js index 8a862f9..3b9776f 100644 --- a/assets/ja_api_mp_math_vector.md.CD5nfzHo.lean.js +++ b/assets/ja_api_mp_math_vector.md.B7oDy-SU.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.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"}'),n={name:"ja/api/mp_math/vector.md"},l=t("",138),e=[l];function h(p,k,r,o,d,c){return a(),i("div",null,e)}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.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"}'),n={name:"ja/api/mp_math/vector.md"},e=t("",138),h=[e];function l(p,k,r,o,d,g){return a(),i("div",null,h)}const y=s(n,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/ja_api_particle_index.md.SXvJHpqE.js b/assets/ja_api_particle_index.md.SXvJHpqE.js deleted file mode 100644 index 4887b5c..0000000 --- a/assets/ja_api_particle_index.md.SXvJHpqE.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c,o as r,j as e,a}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/particle/index.md","filePath":"ja/api/particle/index.md"}'),i={name:"ja/api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[a("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),l=e("p",null,[e("strong",null,"説明"),a(": 本模块定义了粒子生成相关的工具")],-1),s=[p,l];function n(o,d,_,m,h,f){return r(),c("div",null,s)}const u=t(i,[["render",n]]);export{b as __pageData,u as default}; diff --git a/assets/ja_api_particle_index.md.SXvJHpqE.lean.js b/assets/ja_api_particle_index.md.SXvJHpqE.lean.js deleted file mode 100644 index 4887b5c..0000000 --- a/assets/ja_api_particle_index.md.SXvJHpqE.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c,o as r,j as e,a}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/particle/index.md","filePath":"ja/api/particle/index.md"}'),i={name:"ja/api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[a("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),l=e("p",null,[e("strong",null,"説明"),a(": 本模块定义了粒子生成相关的工具")],-1),s=[p,l];function n(o,d,_,m,h,f){return r(),c("div",null,s)}const u=t(i,[["render",n]]);export{b as __pageData,u as default}; diff --git a/assets/ja_api_particle_index.md.ighey3JD.js b/assets/ja_api_particle_index.md.ighey3JD.js new file mode 100644 index 0000000..73a8a75 --- /dev/null +++ b/assets/ja_api_particle_index.md.ighey3JD.js @@ -0,0 +1 @@ +import{_ as a,c as t,o as c,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/particle/index.md","filePath":"ja/api/particle/index.md"}'),i={name:"ja/api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[r("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),s=e("p",null,"本模块定义了粒子生成相关的工具",-1),l=[p,s];function o(n,d,_,m,h,f){return c(),t("div",null,l)}const u=a(i,[["render",o]]);export{b as __pageData,u as default}; diff --git a/assets/ja_api_particle_index.md.ighey3JD.lean.js b/assets/ja_api_particle_index.md.ighey3JD.lean.js new file mode 100644 index 0000000..73a8a75 --- /dev/null +++ b/assets/ja_api_particle_index.md.ighey3JD.lean.js @@ -0,0 +1 @@ +import{_ as a,c as t,o as c,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/particle/index.md","filePath":"ja/api/particle/index.md"}'),i={name:"ja/api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[r("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),s=e("p",null,"本模块定义了粒子生成相关的工具",-1),l=[p,s];function o(n,d,_,m,h,f){return c(),t("div",null,l)}const u=a(i,[["render",o]]);export{b as __pageData,u as default}; diff --git a/assets/ja_api_particle_particle.md.DpDqAPA7.js b/assets/ja_api_particle_particle.md.DpDqAPA7.js deleted file mode 100644 index 4d746c6..0000000 --- a/assets/ja_api_particle_particle.md.DpDqAPA7.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c,o as r,j as e,a}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/particle/particle.md","filePath":"ja/api/particle/particle.md"}'),p={name:"ja/api/particle/particle.md"},l=e("h1",{id:"mbcp-particle",tabindex:"-1"},[a("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),i=e("p",null,[e("strong",null,"説明"),a(": 本模块定义了粒子生成相关的工具")],-1),s=[l,i];function o(n,d,_,m,h,f){return r(),c("div",null,s)}const x=t(p,[["render",o]]);export{u as __pageData,x as default}; diff --git a/assets/ja_api_particle_particle.md.DpDqAPA7.lean.js b/assets/ja_api_particle_particle.md.DpDqAPA7.lean.js deleted file mode 100644 index 4d746c6..0000000 --- a/assets/ja_api_particle_particle.md.DpDqAPA7.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c,o as r,j as e,a}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/particle/particle.md","filePath":"ja/api/particle/particle.md"}'),p={name:"ja/api/particle/particle.md"},l=e("h1",{id:"mbcp-particle",tabindex:"-1"},[a("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),i=e("p",null,[e("strong",null,"説明"),a(": 本模块定义了粒子生成相关的工具")],-1),s=[l,i];function o(n,d,_,m,h,f){return r(),c("div",null,s)}const x=t(p,[["render",o]]);export{u as __pageData,x as default}; diff --git a/assets/ja_api_presets_index.md.DrJ0aeZq.js b/assets/ja_api_presets_index.md.Bow22HNO.js similarity index 53% rename from assets/ja_api_presets_index.md.DrJ0aeZq.js rename to assets/ja_api_presets_index.md.Bow22HNO.js index 14797b2..4f75828 100644 --- a/assets/ja_api_presets_index.md.DrJ0aeZq.js +++ b/assets/ja_api_presets_index.md.Bow22HNO.js @@ -1 +1 @@ -import{_ as s,c as a,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/index.md","filePath":"ja/api/presets/index.md"}'),p={name:"ja/api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[t("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),n=e("p",null,[e("strong",null,"説明"),t(": 本模块塞了一些预设")],-1),o=[c,n];function d(i,l,_,m,h,f){return r(),a("div",null,o)}const u=s(p,[["render",d]]);export{b as __pageData,u as default}; +import{_ as t,c as s,o as a,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/index.md","filePath":"ja/api/presets/index.md"}'),p={name:"ja/api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[r("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,"本模块塞了一些预设",-1),n=[c,o];function d(i,l,_,m,h,f){return a(),s("div",null,n)}const u=t(p,[["render",d]]);export{b as __pageData,u as default}; diff --git a/assets/ja_api_presets_index.md.DrJ0aeZq.lean.js b/assets/ja_api_presets_index.md.Bow22HNO.lean.js similarity index 53% rename from assets/ja_api_presets_index.md.DrJ0aeZq.lean.js rename to assets/ja_api_presets_index.md.Bow22HNO.lean.js index 14797b2..4f75828 100644 --- a/assets/ja_api_presets_index.md.DrJ0aeZq.lean.js +++ b/assets/ja_api_presets_index.md.Bow22HNO.lean.js @@ -1 +1 @@ -import{_ as s,c as a,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/index.md","filePath":"ja/api/presets/index.md"}'),p={name:"ja/api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[t("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),n=e("p",null,[e("strong",null,"説明"),t(": 本模块塞了一些预设")],-1),o=[c,n];function d(i,l,_,m,h,f){return r(),a("div",null,o)}const u=s(p,[["render",d]]);export{b as __pageData,u as default}; +import{_ as t,c as s,o as a,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/index.md","filePath":"ja/api/presets/index.md"}'),p={name:"ja/api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[r("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,"本模块塞了一些预设",-1),n=[c,o];function d(i,l,_,m,h,f){return a(),s("div",null,n)}const u=t(p,[["render",d]]);export{b as __pageData,u as default}; diff --git a/assets/ja_api_presets_model_index.md.D3Q5KLfq.js b/assets/ja_api_presets_model_index.md.C-uCqjXi.js similarity index 80% rename from assets/ja_api_presets_model_index.md.D3Q5KLfq.js rename to assets/ja_api_presets_model_index.md.C-uCqjXi.js index cf0be25..29454a9 100644 --- a/assets/ja_api_presets_model_index.md.D3Q5KLfq.js +++ b/assets/ja_api_presets_model_index.md.C-uCqjXi.js @@ -1,4 +1,4 @@ -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":"ja/api/presets/model/index.md","filePath":"ja/api/presets/model/index.md"}'),t={name:"ja/api/presets/model/index.md"},h=n(`

mbcp.presets.model

説明: 几何模型点集

class GeometricModels

@staticmethod

func 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"}'),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
 def sphere(radius: float, density: float):
     """
         生成球体上的点集。
@@ -15,4 +15,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(k,e,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),l=[h];function p(k,e,r,d,E,o){return a(),i("div",null,l)}const c=s(n,[["render",p]]);export{y as __pageData,c as default}; diff --git a/assets/ja_api_presets_model_index.md.D3Q5KLfq.lean.js b/assets/ja_api_presets_model_index.md.C-uCqjXi.lean.js similarity index 61% rename from assets/ja_api_presets_model_index.md.D3Q5KLfq.lean.js rename to assets/ja_api_presets_model_index.md.C-uCqjXi.lean.js index 940bca4..0301c86 100644 --- a/assets/ja_api_presets_model_index.md.D3Q5KLfq.lean.js +++ b/assets/ja_api_presets_model_index.md.C-uCqjXi.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":"ja/api/presets/model/index.md","filePath":"ja/api/presets/model/index.md"}'),t={name:"ja/api/presets/model/index.md"},h=n("",10),l=[h];function p(k,e,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":"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(k,e,r,d,E,o){return a(),i("div",null,l)}const c=s(n,[["render",p]]);export{y as __pageData,c as default}; diff --git a/assets/ja_api_presets_model_model.md.vKB1wVU9.js b/assets/ja_api_presets_model_model.md.vKB1wVU9.js deleted file mode 100644 index 8d90f28..0000000 --- a/assets/ja_api_presets_model_model.md.vKB1wVU9.js +++ /dev/null @@ -1,18 +0,0 @@ -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":"ja/api/presets/model/model.md","filePath":"ja/api/presets/model/model.md"}'),t={name:"ja/api/presets/model/model.md"},h=n(`

mbcp.presets.model

説明: 几何模型点集

class GeometricModels

@staticmethod

func 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)])
-    theta_list = np.sqrt(num * np.pi) * phi_list
-    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(k,e,r,d,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default}; diff --git a/assets/ja_api_presets_model_model.md.vKB1wVU9.lean.js b/assets/ja_api_presets_model_model.md.vKB1wVU9.lean.js deleted file mode 100644 index 1f52640..0000000 --- a/assets/ja_api_presets_model_model.md.vKB1wVU9.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 y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/model/model.md","filePath":"ja/api/presets/model/model.md"}'),t={name:"ja/api/presets/model/model.md"},h=n("",10),l=[h];function p(k,e,r,d,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default}; diff --git a/assets/ja_api_presets_presets.md.Bm4b0yEm.js b/assets/ja_api_presets_presets.md.Bm4b0yEm.js deleted file mode 100644 index cc99525..0000000 --- a/assets/ja_api_presets_presets.md.Bm4b0yEm.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as a,o as r,j as e,a as s}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/presets.md","filePath":"ja/api/presets/presets.md"}'),p={name:"ja/api/presets/presets.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[s("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,[e("strong",null,"説明"),s(": 本模块塞了一些预设")],-1),n=[c,o];function l(d,i,_,m,h,f){return r(),a("div",null,n)}const x=t(p,[["render",l]]);export{u as __pageData,x as default}; diff --git a/assets/ja_api_presets_presets.md.Bm4b0yEm.lean.js b/assets/ja_api_presets_presets.md.Bm4b0yEm.lean.js deleted file mode 100644 index cc99525..0000000 --- a/assets/ja_api_presets_presets.md.Bm4b0yEm.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as a,o as r,j as e,a as s}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/presets.md","filePath":"ja/api/presets/presets.md"}'),p={name:"ja/api/presets/presets.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[s("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,[e("strong",null,"説明"),s(": 本模块塞了一些预设")],-1),n=[c,o];function l(d,i,_,m,h,f){return r(),a("div",null,n)}const x=t(p,[["render",l]]);export{u as __pageData,x as default}; diff --git a/assets/style.D-YKQyMb.css b/assets/style.Dtv83zbR.css similarity index 69% rename from assets/style.D-YKQyMb.css rename to assets/style.Dtv83zbR.css index 0e2e363..a56e1ee 100644 --- a/assets/style.D-YKQyMb.css +++ b/assets/style.Dtv83zbR.css @@ -1 +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-20b1d393]{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-20b1d393],.VPBackdrop.fade-leave-to[data-v-20b1d393]{opacity:0}.VPBackdrop.fade-leave-active[data-v-20b1d393]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-20b1d393]{display:none}}.NotFound[data-v-21980364]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-21980364]{padding:96px 32px 168px}}.code[data-v-21980364]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-21980364]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-21980364]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-21980364]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-21980364]{padding-top:20px}.link[data-v-21980364]{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-21980364]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-51c2c770]{position:relative;z-index:1}.nested[data-v-51c2c770]{padding-right:16px;padding-left:16px}.outline-link[data-v-51c2c770]{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-51c2c770]:hover,.outline-link.active[data-v-51c2c770]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-51c2c770]{padding-left:13px}.VPDocAsideOutline[data-v-e7b12e6e]{display:none}.VPDocAsideOutline.has-outline[data-v-e7b12e6e]{display:block}.content[data-v-e7b12e6e]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-e7b12e6e]{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-e7b12e6e]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-0ff3c77f]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-0ff3c77f]{flex-grow:1}.VPDocAside[data-v-0ff3c77f] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-0ff3c77f] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-0ff3c77f] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-5cebc0fc]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-5cebc0fc]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-a4b38bd6]{margin-top:64px}.edit-info[data-v-a4b38bd6]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-a4b38bd6]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-a4b38bd6]{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-a4b38bd6]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-a4b38bd6]{margin-right:8px}.prev-next[data-v-a4b38bd6]{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-a4b38bd6]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-a4b38bd6]{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-a4b38bd6]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-a4b38bd6]{margin-left:auto;text-align:right}.desc[data-v-a4b38bd6]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-a4b38bd6]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-40342069]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-40342069]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-40342069]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-40342069]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-40342069]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-40342069]{display:flex;justify-content:center}.VPDoc .aside[data-v-40342069]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-40342069]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-40342069]{max-width:1104px}}.container[data-v-40342069]{margin:0 auto;width:100%}.aside[data-v-40342069]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-40342069]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-40342069]{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-40342069]::-webkit-scrollbar{display:none}.aside-curtain[data-v-40342069]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-40342069]{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-40342069]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-40342069]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-40342069]{order:1;margin:0;min-width:640px}}.content-container[data-v-40342069]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-40342069]{max-width:688px}.VPButton[data-v-885c6978]{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-885c6978]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-885c6978]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-885c6978]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-885c6978]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-885c6978]: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-885c6978]: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-885c6978]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-885c6978]: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-885c6978]: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-885c6978]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-885c6978]: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-885c6978]: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-f925500d]{display:none}.dark .VPImage.light[data-v-f925500d]{display:none}.VPHero[data-v-325add7b]{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-325add7b]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-325add7b]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-325add7b]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-325add7b]{flex-direction:row}}.main[data-v-325add7b]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-325add7b]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-325add7b]{text-align:left}}@media (min-width: 960px){.main[data-v-325add7b]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-325add7b]{max-width:592px}}.name[data-v-325add7b],.text[data-v-325add7b]{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-325add7b],.VPHero.has-image .text[data-v-325add7b]{margin:0 auto}.name[data-v-325add7b]{color:var(--vp-home-hero-name-color)}.clip[data-v-325add7b]{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-325add7b],.text[data-v-325add7b]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-325add7b],.text[data-v-325add7b]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-325add7b],.VPHero.has-image .text[data-v-325add7b]{margin:0}}.tagline[data-v-325add7b]{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-325add7b]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-325add7b]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-325add7b]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-325add7b]{margin:0}}.actions[data-v-325add7b]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-325add7b]{justify-content:center}@media (min-width: 640px){.actions[data-v-325add7b]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-325add7b]{justify-content:flex-start}}.action[data-v-325add7b]{flex-shrink:0;padding:6px}.image[data-v-325add7b]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-325add7b]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-325add7b]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-325add7b]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-325add7b]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-325add7b]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-325add7b]{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-325add7b]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-325add7b]{width:320px;height:320px}}[data-v-325add7b] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-325add7b] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-325add7b] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-248ed6b6]{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-248ed6b6]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-248ed6b6]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-248ed6b6]>.VPImage{margin-bottom:20px}.icon[data-v-248ed6b6]{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-248ed6b6]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-248ed6b6]{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-248ed6b6]{padding-top:8px}.link-text-value[data-v-248ed6b6]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-248ed6b6]{margin-left:6px}.VPFeatures[data-v-dbb08ed4]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-dbb08ed4]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-dbb08ed4]{padding:0 64px}}.container[data-v-dbb08ed4]{margin:0 auto;max-width:1152px}.items[data-v-dbb08ed4]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-dbb08ed4]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-dbb08ed4],.item.grid-4[data-v-dbb08ed4],.item.grid-6[data-v-dbb08ed4]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-dbb08ed4],.item.grid-4[data-v-dbb08ed4]{width:50%}.item.grid-3[data-v-dbb08ed4],.item.grid-6[data-v-dbb08ed4]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-dbb08ed4]{width:25%}}.container[data-v-bb690f02]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-bb690f02]{padding:0 48px}}@media (min-width: 960px){.container[data-v-bb690f02]{width:100%;padding:0 64px}}.vp-doc[data-v-bb690f02] .VPHomeSponsors,.vp-doc[data-v-bb690f02] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-bb690f02] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-bb690f02] .VPHomeSponsors a,.vp-doc[data-v-bb690f02] .VPTeamPage a{text-decoration:none}.VPHome[data-v-972a96f9]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-972a96f9]{margin-bottom:128px}}.VPContent[data-v-ec7dbf3e]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-ec7dbf3e]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-ec7dbf3e]{margin:0}@media (min-width: 960px){.VPContent[data-v-ec7dbf3e]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-ec7dbf3e]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-ec7dbf3e]{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-e3ca6860]{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-e3ca6860]{display:none}.VPFooter[data-v-e3ca6860] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-e3ca6860] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-e3ca6860]{padding:32px}}.container[data-v-e3ca6860]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e3ca6860],.copyright[data-v-e3ca6860]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-b418bf42]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-b418bf42]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-b418bf42]{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-b418bf42]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-b418bf42]{color:var(--vp-c-text-1)}.icon[data-v-b418bf42]{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-b418bf42]{font-size:14px}.icon[data-v-b418bf42]{font-size:16px}}.open>.icon[data-v-b418bf42]{transform:rotate(90deg)}.items[data-v-b418bf42]{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-b418bf42]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-b418bf42]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-b418bf42]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-b418bf42]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-b418bf42]{transition:all .2s ease-out}.flyout-leave-active[data-v-b418bf42]{transition:all .15s ease-in}.flyout-enter-from[data-v-b418bf42],.flyout-leave-to[data-v-b418bf42]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-8af612ea]{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-8af612ea]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-8af612ea]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-8af612ea]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-8af612ea]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-8af612ea]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-8af612ea]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-8af612ea]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-8af612ea]{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-8af612ea]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-8af612ea]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-8af612ea]{display:none}}.menu-icon[data-v-8af612ea]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-8af612ea]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-8af612ea]{padding:12px 32px 11px}}.VPSwitch[data-v-d82e607b]{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-d82e607b]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-d82e607b]{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-d82e607b]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-d82e607b] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-d82e607b] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-3a50aa5c]{opacity:1}.moon[data-v-3a50aa5c],.dark .sun[data-v-3a50aa5c]{opacity:0}.dark .moon[data-v-3a50aa5c]{opacity:1}.dark .VPSwitchAppearance[data-v-3a50aa5c] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-2a6692f8]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-2a6692f8]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-79776a7a]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-79776a7a]{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-79776a7a]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-79776a7a]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-fbf15ead]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-fbf15ead]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-fbf15ead]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-fbf15ead]{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-9990563e]{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-9990563e] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-9990563e] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-9990563e] .group:last-child{padding-bottom:0}.VPMenu[data-v-9990563e] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-9990563e] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-9990563e] .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-9990563e] .action{padding-left:24px}.VPFlyout[data-v-ec8c49bc]{position:relative}.VPFlyout[data-v-ec8c49bc]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-ec8c49bc]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-ec8c49bc]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-ec8c49bc]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-ec8c49bc]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-ec8c49bc],.button[aria-expanded=true]+.menu[data-v-ec8c49bc]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-ec8c49bc]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-ec8c49bc]{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-ec8c49bc]{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-ec8c49bc]{margin-right:0;font-size:16px}.text-icon[data-v-ec8c49bc]{margin-left:4px;font-size:14px}.icon[data-v-ec8c49bc]{font-size:20px;transition:fill .25s}.menu[data-v-ec8c49bc]{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-b0526bd7]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-b0526bd7]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-b0526bd7]>svg,.VPSocialLink[data-v-b0526bd7]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-fa18fe49]{display:flex;justify-content:center}.VPNavBarExtra[data-v-2fc967b6]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-2fc967b6]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-2fc967b6]{display:none}}.trans-title[data-v-2fc967b6]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-2fc967b6],.item.social-links[data-v-2fc967b6]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-2fc967b6]{min-width:176px}.appearance-action[data-v-2fc967b6]{margin-right:-2px}.social-links-list[data-v-2fc967b6]{margin:-4px -8px}.VPNavBarHamburger[data-v-be64de2d]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-be64de2d]{display:none}}.container[data-v-be64de2d]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-be64de2d]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-be64de2d]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-be64de2d]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-be64de2d]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-be64de2d]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-be64de2d]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-be64de2d],.VPNavBarHamburger.active:hover .middle[data-v-be64de2d],.VPNavBarHamburger.active:hover .bottom[data-v-be64de2d]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-be64de2d],.middle[data-v-be64de2d],.bottom[data-v-be64de2d]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-be64de2d]{top:0;left:0;transform:translate(0)}.middle[data-v-be64de2d]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-be64de2d]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-ad4a8b64]{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-ad4a8b64],.VPNavBarMenuLink[data-v-ad4a8b64]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-0fb289c1]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-0fb289c1]{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-f3b91b3a]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-f3b91b3a]{display:flex;align-items:center}}.title[data-v-10b95b50]{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-10b95b50]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-10b95b50]{border-bottom-color:var(--vp-c-divider)}}[data-v-10b95b50] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-cd7b67e8]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-cd7b67e8]{display:flex;align-items:center}}.title[data-v-cd7b67e8]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-1303e283]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-1303e283]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-1303e283]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-1303e283]:not(.home){background-color:transparent}.VPNavBar[data-v-1303e283]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-1303e283]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-1303e283]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-1303e283]{padding:0}}.container[data-v-1303e283]{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-1303e283],.container>.content[data-v-1303e283]{pointer-events:none}.container[data-v-1303e283] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-1303e283]{max-width:100%}}.title[data-v-1303e283]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-1303e283]{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-1303e283]{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-1303e283]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-1303e283]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-1303e283]{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-1303e283]{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-1303e283]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-1303e283]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-1303e283]{column-gap:.5rem}}.menu+.translations[data-v-1303e283]:before,.menu+.appearance[data-v-1303e283]:before,.menu+.social-links[data-v-1303e283]:before,.translations+.appearance[data-v-1303e283]:before,.appearance+.social-links[data-v-1303e283]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-1303e283]:before,.translations+.appearance[data-v-1303e283]:before{margin-right:16px}.appearance+.social-links[data-v-1303e283]:before{margin-left:16px}.social-links[data-v-1303e283]{margin-right:-8px}.divider[data-v-1303e283]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-1303e283]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-1303e283]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-1303e283]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-1303e283]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-1303e283]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-1303e283]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-79da70de]{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-79da70de]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-9a3ef902]{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-9a3ef902]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-03f7344f]{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-03f7344f]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-3b79ab2a]{display:block}.title[data-v-3b79ab2a]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-496537ac]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-496537ac]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-496537ac]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-496537ac]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-496537ac]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-496537ac]{transform:rotate(45deg)}.button[data-v-496537ac]{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-496537ac]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-496537ac]{transition:transform .25s}.group[data-v-496537ac]:first-child{padding-top:0}.group+.group[data-v-496537ac],.group+.item[data-v-496537ac]{padding-top:4px}.VPNavScreenTranslations[data-v-c618ff37]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-c618ff37]{height:auto}.title[data-v-c618ff37]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-c618ff37]{font-size:16px}.icon.lang[data-v-c618ff37]{margin-right:8px}.icon.chevron[data-v-c618ff37]{margin-left:4px}.list[data-v-c618ff37]{padding:4px 0 0 24px}.link[data-v-c618ff37]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-c3a48aed]{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-c3a48aed],.VPNavScreen.fade-leave-active[data-v-c3a48aed]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-c3a48aed],.VPNavScreen.fade-leave-active .container[data-v-c3a48aed]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-c3a48aed],.VPNavScreen.fade-leave-to[data-v-c3a48aed]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-c3a48aed],.VPNavScreen.fade-leave-to .container[data-v-c3a48aed]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-c3a48aed]{display:none}}.container[data-v-c3a48aed]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-c3a48aed],.menu+.appearance[data-v-c3a48aed],.translations+.appearance[data-v-c3a48aed]{margin-top:24px}.menu+.social-links[data-v-c3a48aed]{margin-top:16px}.appearance+.social-links[data-v-c3a48aed]{margin-top:16px}.VPNav[data-v-2a4e514e]{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-2a4e514e]{position:fixed}}.VPSidebarItem.level-0[data-v-9035698b]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-9035698b]{padding-bottom:10px}.item[data-v-9035698b]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-9035698b]{cursor:pointer}.indicator[data-v-9035698b]{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-9035698b],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-9035698b],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-9035698b],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-9035698b]{background-color:var(--vp-c-brand-1)}.link[data-v-9035698b]{display:flex;align-items:center;flex-grow:1}.text[data-v-9035698b]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-9035698b]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-9035698b],.VPSidebarItem.level-2 .text[data-v-9035698b],.VPSidebarItem.level-3 .text[data-v-9035698b],.VPSidebarItem.level-4 .text[data-v-9035698b],.VPSidebarItem.level-5 .text[data-v-9035698b]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-9035698b],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-9035698b],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-9035698b],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-9035698b],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-9035698b],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-9035698b]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-9035698b],.VPSidebarItem.level-1.has-active>.item>.text[data-v-9035698b],.VPSidebarItem.level-2.has-active>.item>.text[data-v-9035698b],.VPSidebarItem.level-3.has-active>.item>.text[data-v-9035698b],.VPSidebarItem.level-4.has-active>.item>.text[data-v-9035698b],.VPSidebarItem.level-5.has-active>.item>.text[data-v-9035698b],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-9035698b],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-9035698b],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-9035698b],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-9035698b],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-9035698b],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-9035698b]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-9035698b],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-9035698b],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-9035698b],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-9035698b],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-9035698b],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-9035698b]{color:var(--vp-c-brand-1)}.caret[data-v-9035698b]{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-9035698b]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-9035698b]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-9035698b]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-9035698b]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-9035698b],.VPSidebarItem.level-2 .items[data-v-9035698b],.VPSidebarItem.level-3 .items[data-v-9035698b],.VPSidebarItem.level-4 .items[data-v-9035698b],.VPSidebarItem.level-5 .items[data-v-9035698b]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-9035698b]{display:none}.no-transition[data-v-c3eaeb1a] .caret-icon{transition:none}.group+.group[data-v-c3eaeb1a]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-c3eaeb1a]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-edd7de80]{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-edd7de80]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-edd7de80]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-edd7de80]{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-edd7de80]{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-edd7de80]{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-edd7de80]{outline:0}.VPSkipLink[data-v-3e86afbf]{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-3e86afbf]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-3e86afbf]{top:14px;left:16px}}.Layout[data-v-22f859ac]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-65f3b3fb]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-65f3b3fb]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-65f3b3fb]{margin:128px 0}}.VPHomeSponsors[data-v-65f3b3fb]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-65f3b3fb]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-65f3b3fb]{padding:0 64px}}.container[data-v-65f3b3fb]{margin:0 auto;max-width:1152px}.love[data-v-65f3b3fb]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-65f3b3fb]{display:inline-block}.message[data-v-65f3b3fb]{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-65f3b3fb]{padding-top:32px}.action[data-v-65f3b3fb]{padding-top:40px;text-align:center}.VPTeamPage[data-v-7ee49781]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-7ee49781]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-7ee49781-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-7ee49781-s],.VPTeamMembers+.VPTeamPageSection[data-v-7ee49781-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-7ee49781-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-7ee49781-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-7ee49781-s],.VPTeamMembers+.VPTeamPageSection[data-v-7ee49781-s]{margin-top:96px}}.VPTeamMembers[data-v-7ee49781-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-7ee49781-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-7ee49781-s]{padding:0 64px}}.VPTeamPageTitle[data-v-7199c4a1]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-7199c4a1]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-7199c4a1]{padding:80px 64px 48px}}.title[data-v-7199c4a1]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-7199c4a1]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-7199c4a1]{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-7199c4a1]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-e7d273f9]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-e7d273f9]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-e7d273f9]{padding:0 64px}}.title[data-v-e7d273f9]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-e7d273f9]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-e7d273f9]{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-e7d273f9]{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-e7d273f9]{padding-top:40px}.VPTeamMembersItem[data-v-37dee882]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-37dee882]{padding:32px}.VPTeamMembersItem.small .data[data-v-37dee882]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-37dee882]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-37dee882]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-37dee882]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-37dee882]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-37dee882]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-37dee882]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-37dee882]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-37dee882]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-37dee882]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-37dee882]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-37dee882]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-37dee882]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-37dee882]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-37dee882]{text-align:center}.avatar[data-v-37dee882]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-37dee882]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-37dee882]{margin:0;font-weight:600}.affiliation[data-v-37dee882]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-37dee882]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-37dee882]:hover{color:var(--vp-c-brand-1)}.desc[data-v-37dee882]{margin:0 auto}.desc[data-v-37dee882] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-37dee882]{display:flex;justify-content:center;height:56px}.sp-link[data-v-37dee882]{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-37dee882]:hover,.sp .sp-link.link[data-v-37dee882]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-37dee882]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-43ad829f]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-43ad829f]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-43ad829f]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-43ad829f]{max-width:876px}.VPTeamMembers.medium .container[data-v-43ad829f]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-43ad829f]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-43ad829f]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-43ad829f]{max-width:760px}.container[data-v-43ad829f]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--vp-font-family-base: "Poppins", sans-serif;--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-c74c0613]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-c74c0613]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-c74c0613]{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-c74c0613]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-c74c0613]{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-c74c0613]{padding:0 8px}}.search-bar[data-v-c74c0613]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-c74c0613]{display:block;font-size:18px}.navigate-icon[data-v-c74c0613]{display:block;font-size:14px}.search-icon[data-v-c74c0613]{margin:8px}@media (max-width: 767px){.search-icon[data-v-c74c0613]{display:none}}.search-input[data-v-c74c0613]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-c74c0613]{padding:6px 4px}}.search-actions[data-v-c74c0613]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-c74c0613]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-c74c0613]{display:none}}.search-actions button[data-v-c74c0613]{padding:8px}.search-actions button[data-v-c74c0613]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-c74c0613]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-c74c0613]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-c74c0613]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-c74c0613]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-c74c0613]{display:none}}.search-keyboard-shortcuts kbd[data-v-c74c0613]{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-c74c0613]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-c74c0613]{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-c74c0613]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-c74c0613]{margin:8px}}.titles[data-v-c74c0613]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-c74c0613]{display:flex;align-items:center;gap:4px}.title.main[data-v-c74c0613]{font-weight:500}.title-icon[data-v-c74c0613]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-c74c0613]{opacity:.5}.result.selected[data-v-c74c0613]{--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-c74c0613]{position:relative}.excerpt[data-v-c74c0613]{opacity:50%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;margin-top:4px}.result.selected .excerpt[data-v-c74c0613]{opacity:1}.excerpt[data-v-c74c0613] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-c74c0613] mark,.excerpt[data-v-c74c0613] 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-c74c0613] .vp-code-group .tabs{display:none}.excerpt[data-v-c74c0613] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-c74c0613]{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-c74c0613]{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-c74c0613],.result.selected .title-icon[data-v-c74c0613]{color:var(--vp-c-brand-1)!important}.no-results[data-v-c74c0613]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-c74c0613]{flex:none} +: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", sans-serif;--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/zht_api_api.md.DgGLhN7H.js b/assets/zht_api_api.md.DgGLhN7H.js deleted file mode 100644 index 95a4367..0000000 --- a/assets/zht_api_api.md.DgGLhN7H.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as p}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/api.md","filePath":"zht/api/api.md"}'),c={name:"zht/api/api.md"},o=p('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(_,i,d,m,n,l){return t(),a("div",null,r)}const b=e(c,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/zht_api_api.md.DgGLhN7H.lean.js b/assets/zht_api_api.md.DgGLhN7H.lean.js deleted file mode 100644 index 772aec3..0000000 --- a/assets/zht_api_api.md.DgGLhN7H.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as p}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/api.md","filePath":"zht/api/api.md"}'),c={name:"zht/api/api.md"},o=p("",5),r=[o];function s(_,i,d,m,n,l){return t(),a("div",null,r)}const b=e(c,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/zht_api_index.md.DMjE1xBr.js b/assets/zht_api_index.md.DMjE1xBr.js new file mode 100644 index 0000000..7c72da9 --- /dev/null +++ b/assets/zht_api_index.md.DMjE1xBr.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/index.md","filePath":"zht/api/index.md"}'),p={name:"zht/api/index.md"},o=c('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(d,_,i,n,m,l){return t(),a("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/zht_api_index.md.DNSdsCcq.lean.js b/assets/zht_api_index.md.DMjE1xBr.lean.js similarity index 70% rename from assets/zht_api_index.md.DNSdsCcq.lean.js rename to assets/zht_api_index.md.DMjE1xBr.lean.js index 2c1fc39..7027d4c 100644 --- a/assets/zht_api_index.md.DNSdsCcq.lean.js +++ b/assets/zht_api_index.md.DMjE1xBr.lean.js @@ -1 +1 @@ -import{_ as e,c as t,o as a,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/index.md","filePath":"zht/api/index.md"}'),p={name:"zht/api/index.md"},o=c("",5),r=[o];function s(d,_,i,n,m,l){return a(),t("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/index.md","filePath":"zht/api/index.md"}'),p={name:"zht/api/index.md"},o=c("",5),r=[o];function s(d,_,i,n,m,l){return t(),a("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/zht_api_index.md.DNSdsCcq.js b/assets/zht_api_index.md.DNSdsCcq.js deleted file mode 100644 index d211cc3..0000000 --- a/assets/zht_api_index.md.DNSdsCcq.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp","description":"","frontmatter":{"title":"mbcp","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/index.md","filePath":"zht/api/index.md"}'),p={name:"zht/api/index.md"},o=c('

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

',5),r=[o];function s(d,_,i,n,m,l){return a(),t("div",null,r)}const b=e(p,[["render",s]]);export{f as __pageData,b as default}; diff --git a/assets/zht_api_mp_math_angle.md.CEIly6_X.js b/assets/zht_api_mp_math_angle.md.D6i--7zd.js similarity index 60% rename from assets/zht_api_mp_math_angle.md.CEIly6_X.js rename to assets/zht_api_mp_math_angle.md.D6i--7zd.js index b872440..eb8e529 100644 --- a/assets/zht_api_mp_math_angle.md.CEIly6_X.js +++ b/assets/zht_api_mp_math_angle.md.D6i--7zd.js @@ -1,4 +1,4 @@ -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)

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

説明: 任意角度。

變數説明:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
源碼於GitHub上查看
python
def __init__(self, value: float, is_radian: bool=False):
+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:
@@ -8,92 +8,92 @@ import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     if is_radian:
         self.radian = value
     else:
-        self.radian = value * PI / 180

@property

func complementary(self) -> AnyAngle

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

返回: 余角

源碼於GitHub上查看
python
@property
+        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

func supplementary(self) -> AnyAngle

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

返回: 补角

源碼於GitHub上查看
python
@property
+    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

func degree(self) -> float

説明: 角度。

返回: 弧度

源碼於GitHub上查看
python
@property
+    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

func minimum_positive(self) -> AnyAngle

説明: 最小正角。

返回: 最小正角度

源碼於GitHub上查看
python
@property
+    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

func maximum_negative(self) -> AnyAngle

説明: 最大负角。

返回: 最大负角度

源碼於GitHub上查看
python
@property
+    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

func sin(self) -> float

説明: 正弦值。

返回: 正弦值

源碼於GitHub上查看
python
@property
+    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

func cos(self) -> float

説明: 余弦值。

返回: 余弦值

源碼於GitHub上查看
python
@property
+    return math.sin(self.radian)

@property

method cos(self) -> float

説明: 余弦值。

返回: 余弦值

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

@property

func tan(self) -> float

説明: 正切值。

返回: 正切值

源碼於GitHub上查看
python
@property
+    return math.cos(self.radian)

@property

method tan(self) -> float

説明: 正切值。

返回: 正切值

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

@property

func cot(self) -> float

説明: 余切值。

返回: 余切值

源碼於GitHub上查看
python
@property
+    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

func sec(self) -> float

説明: 正割值。

返回: 正割值

源碼於GitHub上查看
python
@property
+    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

func csc(self) -> float

説明: 余割值。

返回: 余割值

源碼於GitHub上查看
python
@property
+    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)

func self + other: AnyAngle => AnyAngle

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

func __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
-    return approx(self.radian, other.radian)

func self - other: AnyAngle => AnyAngle

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

func self * other: float => AnyAngle

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

@overload

func self / other: float => AnyAngle

源碼於GitHub上查看
python
@overload
+    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

func self / other: AnyAngle => float

源碼於GitHub上查看
python
@overload
+    ...

@overload

method self / other: AnyAngle => float

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

func self / other

源碼於GitHub上查看
python
def __truediv__(self, other):
+    ...

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.CEIly6_X.lean.js b/assets/zht_api_mp_math_angle.md.D6i--7zd.lean.js similarity index 100% rename from assets/zht_api_mp_math_angle.md.CEIly6_X.lean.js rename to assets/zht_api_mp_math_angle.md.D6i--7zd.lean.js diff --git a/assets/zht_api_mp_math_const.md.DI0xAyWX.js b/assets/zht_api_mp_math_const.md.DI0xAyWX.js new file mode 100644 index 0000000..0577efa --- /dev/null +++ b/assets/zht_api_mp_math_const.md.DI0xAyWX.js @@ -0,0 +1 @@ +import{_ as a,c as o,o as t,a4 as e}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/const.md","filePath":"zht/api/mp_math/const.md"}'),r={name:"zht/api/mp_math/const.md"},l=e('

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

',14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const g=a(r,[["render",i]]);export{u as __pageData,g as default}; diff --git a/assets/zht_api_mp_math_const.md.DI0xAyWX.lean.js b/assets/zht_api_mp_math_const.md.DI0xAyWX.lean.js new file mode 100644 index 0000000..8d3900f --- /dev/null +++ b/assets/zht_api_mp_math_const.md.DI0xAyWX.lean.js @@ -0,0 +1 @@ +import{_ as a,c as o,o as t,a4 as e}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/const.md","filePath":"zht/api/mp_math/const.md"}'),r={name:"zht/api/mp_math/const.md"},l=e("",14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const g=a(r,[["render",i]]);export{u as __pageData,g as default}; diff --git a/assets/zht_api_mp_math_const.md.DhnGo46u.js b/assets/zht_api_mp_math_const.md.DhnGo46u.js deleted file mode 100644 index 9e55827..0000000 --- a/assets/zht_api_mp_math_const.md.DhnGo46u.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as o,o as t,a4 as r}from"./chunks/framework.DpC1ZpOZ.js";const g=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/const.md","filePath":"zht/api/mp_math/const.md"}'),e={name:"zht/api/mp_math/const.md"},l=r('

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

',14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const u=a(e,[["render",i]]);export{g as __pageData,u as default}; diff --git a/assets/zht_api_mp_math_const.md.DhnGo46u.lean.js b/assets/zht_api_mp_math_const.md.DhnGo46u.lean.js deleted file mode 100644 index 572edc0..0000000 --- a/assets/zht_api_mp_math_const.md.DhnGo46u.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as o,o as t,a4 as r}from"./chunks/framework.DpC1ZpOZ.js";const g=JSON.parse('{"title":"mbcp.mp_math.const","description":"","frontmatter":{"title":"mbcp.mp_math.const","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/const.md","filePath":"zht/api/mp_math/const.md"}'),e={name:"zht/api/mp_math/const.md"},l=r("",14),n=[l];function i(s,c,p,d,h,m){return t(),o("div",null,n)}const u=a(e,[["render",i]]);export{g as __pageData,u as default}; diff --git a/assets/zht_api_mp_math_equation.md.BPMLYcpO.js b/assets/zht_api_mp_math_equation.md.B3rt0Pgw.js similarity index 82% rename from assets/zht_api_mp_math_equation.md.BPMLYcpO.js rename to assets/zht_api_mp_math_equation.md.B3rt0Pgw.js index 0f4d793..26db594 100644 --- a/assets/zht_api_mp_math_equation.md.BPMLYcpO.js +++ b/assets/zht_api_mp_math_equation.md.B3rt0Pgw.js @@ -1,4 +1,4 @@ -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

func __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):
+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:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

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

説明: 计算曲线上的点。

變數説明:

  • *t:
  • 参数:

返回: 目标点

源碼於GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    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:
@@ -62,4 +62,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
             return result_func(*args)
         return high_order_partial_derivative_func
     else:
-        raise ValueError('Invalid var type')
`,23),p=[l];function h(k,e,r,E,c,d){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),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}; diff --git a/assets/zht_api_mp_math_equation.md.BPMLYcpO.lean.js b/assets/zht_api_mp_math_equation.md.B3rt0Pgw.lean.js similarity index 73% rename from assets/zht_api_mp_math_equation.md.BPMLYcpO.lean.js rename to assets/zht_api_mp_math_equation.md.B3rt0Pgw.lean.js index 593b902..b4dd5c1 100644 --- a/assets/zht_api_mp_math_equation.md.BPMLYcpO.lean.js +++ b/assets/zht_api_mp_math_equation.md.B3rt0Pgw.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(k,e,r,E,c,d){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),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}; diff --git a/assets/zht_api_mp_math_function.md.Cf9utaTV.js b/assets/zht_api_mp_math_function.md.Cf9utaTV.js new file mode 100644 index 0000000..c243aa6 --- /dev/null +++ b/assets/zht_api_mp_math_function.md.Cf9utaTV.js @@ -0,0 +1,42 @@ +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:
+        梯度
+    """
+    dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
+    dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
+    dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
+    return Vector3(dx, dy, dz)

func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc

説明: 对多参数函数进行柯里化。

TIP

有关函数柯里化,可参考函数式编程--柯理化(Currying)

變數説明:

返回: 柯里化后的函数

範例:

python
def add(a: int, b: int, c: int) -> int:
+    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}; diff --git a/assets/zht_api_mp_math_function.md.D9y8K44X.lean.js b/assets/zht_api_mp_math_function.md.Cf9utaTV.lean.js similarity index 100% rename from assets/zht_api_mp_math_function.md.D9y8K44X.lean.js rename to assets/zht_api_mp_math_function.md.Cf9utaTV.lean.js diff --git a/assets/zht_api_mp_math_function.md.D9y8K44X.js b/assets/zht_api_mp_math_function.md.D9y8K44X.js deleted file mode 100644 index 1eab202..0000000 --- a/assets/zht_api_mp_math_function.md.D9y8K44X.js +++ /dev/null @@ -1,42 +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('

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:
-        梯度
-    """
-    dx = (func(p.x + epsilon, p.y, p.z) - func(p.x - epsilon, p.y, p.z)) / (2 * epsilon)
-    dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
-    dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
-    return Vector3(dx, dy, dz)

func curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc

説明: 对多参数函数进行柯里化。

TIP

有关函数柯里化,可参考函数式编程--柯理化(Currying)

變數説明:

返回: 柯里化后的函数

範例:

python
def add(a: int, b: int, c: int) -> int:
-    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}; diff --git a/assets/zht_api_mp_math_index.md.C-ytwIT_.js b/assets/zht_api_mp_math_index.md.C-ytwIT_.js deleted file mode 100644 index 4c87c9a..0000000 --- a/assets/zht_api_mp_math_index.md.C-ytwIT_.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/mp_math/index.md","filePath":"zht/api/mp_math/index.md"}'),l={name:"zht/api/mp_math/index.md"},o=c('

mbcp.mp_math

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

',3),i=[o];function m(n,s,d,p,r,h){return t(),a("div",null,i)}const u=e(l,[["render",m]]);export{f as __pageData,u as default}; diff --git a/assets/zht_api_mp_math_index.md.DbgI3vD1.js b/assets/zht_api_mp_math_index.md.DbgI3vD1.js new file mode 100644 index 0000000..6dc6c51 --- /dev/null +++ b/assets/zht_api_mp_math_index.md.DbgI3vD1.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/mp_math/index.md","filePath":"zht/api/mp_math/index.md"}'),l={name:"zht/api/mp_math/index.md"},o=c('

mbcp.mp_math

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

',3),i=[o];function m(n,s,d,p,h,r){return t(),a("div",null,i)}const u=e(l,[["render",m]]);export{f as __pageData,u as default}; diff --git a/assets/zht_api_mp_math_index.md.C-ytwIT_.lean.js b/assets/zht_api_mp_math_index.md.DbgI3vD1.lean.js similarity index 86% rename from assets/zht_api_mp_math_index.md.C-ytwIT_.lean.js rename to assets/zht_api_mp_math_index.md.DbgI3vD1.lean.js index cd5548f..678567c 100644 --- a/assets/zht_api_mp_math_index.md.C-ytwIT_.lean.js +++ b/assets/zht_api_mp_math_index.md.DbgI3vD1.lean.js @@ -1 +1 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/mp_math/index.md","filePath":"zht/api/mp_math/index.md"}'),l={name:"zht/api/mp_math/index.md"},o=c("",3),i=[o];function m(n,s,d,p,r,h){return t(),a("div",null,i)}const u=e(l,[["render",m]]);export{f as __pageData,u as default}; +import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/mp_math/index.md","filePath":"zht/api/mp_math/index.md"}'),l={name:"zht/api/mp_math/index.md"},o=c("",3),i=[o];function m(n,s,d,p,h,r){return t(),a("div",null,i)}const u=e(l,[["render",m]]);export{f as __pageData,u as default}; diff --git a/assets/zht_api_mp_math_line.md.V0JKiMxX.js b/assets/zht_api_mp_math_line.md.-wtKMTMJ.js similarity index 60% rename from assets/zht_api_mp_math_line.md.V0JKiMxX.js rename to assets/zht_api_mp_math_line.md.-wtKMTMJ.js index 8ba92ac..8d13236 100644 --- a/assets/zht_api_mp_math_line.md.V0JKiMxX.js +++ b/assets/zht_api_mp_math_line.md.-wtKMTMJ.js @@ -1,4 +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.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

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

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

變數説明:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
源碼於GitHub上查看
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
+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:
@@ -6,7 +6,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
             direction ([\`Vector3\`](./vector#class-vector3)): 方向向量
         """
     self.point = point
-    self.direction = direction

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

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

變數説明:

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

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
+    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:
@@ -15,7 +15,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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)

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

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

變數説明:

  • other (Line3): 另一条直线

返回: AnyAngle: 夹角

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
+    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:
@@ -23,7 +23,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`AnyAngle\`](./angle#class-anyangle): 夹角
         """
-    return self.direction.cal_angle(other.direction)

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

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

變數説明:

返回: float: 距离

抛出:

源碼於GitHub上查看
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
+    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:
@@ -45,7 +45,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif isinstance(other, Point3):
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
-        raise TypeError('Unsupported type.')

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

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

變數説明:

  • other (Line3): 另一条直线

返回: Point3: 交点

抛出:

源碼於GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
+        raise TypeError('Unsupported type.')

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

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

變數説明:

  • other (Line3): 另一条直线

返回: Point3: 交点

抛出:

源碼於GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
     """
         计算两条直线的交点。
         Args:
@@ -60,7 +60,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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

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

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

變數説明:

返回: Line3: 垂线

源碼於GitHub上查看
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
+    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:
@@ -68,7 +68,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`Line3\`](./line#class-line3): 垂线
         """
-    return Line3(point, self.direction.cross(point - self.point))

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

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

變數説明:

返回: Point3: 点

源碼於GitHub上查看
python
def get_point(self, t: RealNumber) -> 'Point3':
+    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:
@@ -76,13 +76,13 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`Point3\`](./point#class-point3): 点
         """
-    return self.point + t * self.direction

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

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

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

源碼於GitHub上查看
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
+    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)

func 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:
+    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:
@@ -91,7 +91,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.direction.is_approx_parallel(other.direction, epsilon)

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

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

變數説明:

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Line3') -> 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:
@@ -99,7 +99,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.direction.is_parallel(other.direction)

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

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

變數説明:

返回: bool: 是否共线

源碼於GitHub上查看
python
def is_collinear(self, other: 'Line3') -> 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:
@@ -107,7 +107,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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)

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

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

變數説明:

返回: bool: 是否在直线上

源碼於GitHub上查看
python
def is_point_on(self, point: 'Point3') -> 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:
@@ -115,7 +115,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
         """
-    return (point - self.point).is_parallel(self.direction)

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

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

變數説明:

返回: bool: 是否共面

源碼於GitHub上查看
python
def is_coplanar(self, other: 'Line3') -> 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。
@@ -124,7 +124,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
         """
-    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

func simplify(self)

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

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

源碼於GitHub上查看
python
def simplify(self):
+    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

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

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

源碼於GitHub上查看
python
def simplify(self):
     """
         简化直线方程,等价相等。
         自体简化,不返回值。
@@ -137,7 +137,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     if self.direction.y == 0:
         self.point.y = 0
     if self.direction.z == 0:
-        self.point.z = 0

@classmethod

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

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

變數説明:

返回: Line3: 直线

源碼於GitHub上查看
python
@classmethod
+        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':
     """
         工厂函数 由两点构造直线。
@@ -148,7 +148,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
             [\`Line3\`](./line#class-line3): 直线
         """
     direction = p2 - p1
-    return cls(p1, direction)

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

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

變數説明:

  • other (Line3): 另一条直线

返回: Line3 | Point3 | None: 交集

源碼於GitHub上查看
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
+    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:
@@ -161,7 +161,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
-        return self.cal_intersection(other)

func __eq__(self, other) -> bool

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

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

變數説明:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源碼於GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
@@ -171,4 +171,4 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const F
         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 p(h,k,r,o,d,g){return a(),i("div",null,e)}const E=s(t,[["render",p]]);export{F as __pageData,E as default}; + 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}; diff --git a/assets/zht_api_mp_math_line.md.V0JKiMxX.lean.js b/assets/zht_api_mp_math_line.md.-wtKMTMJ.lean.js similarity index 72% rename from assets/zht_api_mp_math_line.md.V0JKiMxX.lean.js rename to assets/zht_api_mp_math_line.md.-wtKMTMJ.lean.js index d21d980..62d797b 100644 --- a/assets/zht_api_mp_math_line.md.V0JKiMxX.lean.js +++ b/assets/zht_api_mp_math_line.md.-wtKMTMJ.lean.js @@ -1 +1 @@ -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 p(h,k,r,o,d,g){return a(),i("div",null,e)}const E=s(t,[["render",p]]);export{F as __pageData,E as default}; +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_mp_math.md.WAo96wsQ.js b/assets/zht_api_mp_math_mp_math.md.WAo96wsQ.js deleted file mode 100644 index c4715d5..0000000 --- a/assets/zht_api_mp_math_mp_math.md.WAo96wsQ.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/mp_math/mp_math.md","filePath":"zht/api/mp_math/mp_math.md"}'),l={name:"zht/api/mp_math/mp_math.md"},m=c('

mbcp.mp_math

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

',3),o=[m];function i(s,n,p,h,r,_){return t(),a("div",null,o)}const u=e(l,[["render",i]]);export{f as __pageData,u as default}; diff --git a/assets/zht_api_mp_math_mp_math.md.WAo96wsQ.lean.js b/assets/zht_api_mp_math_mp_math.md.WAo96wsQ.lean.js deleted file mode 100644 index 59a0fde..0000000 --- a/assets/zht_api_mp_math_mp_math.md.WAo96wsQ.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a4 as c}from"./chunks/framework.DpC1ZpOZ.js";const f=JSON.parse('{"title":"mbcp.mp_math","description":"","frontmatter":{"title":"mbcp.mp_math","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/mp_math/mp_math.md","filePath":"zht/api/mp_math/mp_math.md"}'),l={name:"zht/api/mp_math/mp_math.md"},m=c("",3),o=[m];function i(s,n,p,h,r,_){return t(),a("div",null,o)}const u=e(l,[["render",i]]);export{f as __pageData,u as default}; diff --git a/assets/zht_api_mp_math_mp_math_typing.md.2475K9x4.js b/assets/zht_api_mp_math_mp_math_typing.md.2475K9x4.js deleted file mode 100644 index c6741fc..0000000 --- a/assets/zht_api_mp_math_mp_math_typing.md.2475K9x4.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as r,o as e,a4 as o}from"./chunks/framework.DpC1ZpOZ.js";const v=JSON.parse('{"title":"mbcp.mp_math.mp_math_typing","description":"","frontmatter":{"title":"mbcp.mp_math.mp_math_typing","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/mp_math_typing.md","filePath":"zht/api/mp_math/mp_math_typing.md"}'),l={name:"zht/api/mp_math/mp_math_typing.md"},n=o('

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

',36),t=[n];function i(s,c,d,p,u,g){return e(),r("div",null,t)}const m=a(l,[["render",i]]);export{v as __pageData,m as default}; diff --git a/assets/zht_api_mp_math_mp_math_typing.md.BbOeRs-n.js b/assets/zht_api_mp_math_mp_math_typing.md.BbOeRs-n.js new file mode 100644 index 0000000..7858f77 --- /dev/null +++ b/assets/zht_api_mp_math_mp_math_typing.md.BbOeRs-n.js @@ -0,0 +1 @@ +import{_ as a,c as r,o as e,a4 as o}from"./chunks/framework.DpC1ZpOZ.js";const v=JSON.parse('{"title":"mbcp.mp_math.mp_math_typing","description":"","frontmatter":{"title":"mbcp.mp_math.mp_math_typing","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/mp_math_typing.md","filePath":"zht/api/mp_math/mp_math_typing.md"}'),l={name:"zht/api/mp_math/mp_math_typing.md"},n=o('

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

',36),t=[n];function i(s,c,d,p,u,g){return e(),r("div",null,t)}const m=a(l,[["render",i]]);export{v as __pageData,m as default}; diff --git a/assets/zht_api_mp_math_mp_math_typing.md.2475K9x4.lean.js b/assets/zht_api_mp_math_mp_math_typing.md.BbOeRs-n.lean.js similarity index 100% rename from assets/zht_api_mp_math_mp_math_typing.md.2475K9x4.lean.js rename to assets/zht_api_mp_math_mp_math_typing.md.BbOeRs-n.lean.js diff --git a/assets/zht_api_mp_math_plane.md.CKWKiFtm.js b/assets/zht_api_mp_math_plane.md.o_Vroqha.js similarity index 71% rename from assets/zht_api_mp_math_plane.md.CKWKiFtm.js rename to assets/zht_api_mp_math_plane.md.o_Vroqha.js index b4fffaf..9c26a68 100644 --- a/assets/zht_api_mp_math_plane.md.CKWKiFtm.js +++ b/assets/zht_api_mp_math_plane.md.o_Vroqha.js @@ -1,4 +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.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"},t=n(`

mbcp.mp_math.plane

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

class Plane3

func __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):
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y=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"},t=n(`

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:
@@ -10,7 +10,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

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

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

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
+    self.d = d

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

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

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
     """
         判断两个平面是否近似相等。
         Args:
@@ -28,7 +28,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         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

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

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

變數説明:

返回: AnyAngle: 夹角

抛出:

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+        return False

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

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

變數説明:

返回: AnyAngle: 夹角

抛出:

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     """
         计算平面与平面之间的夹角。
         Args:
@@ -43,7 +43,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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)}')

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

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

變數説明:

返回: float: 距离

抛出:

源碼於GitHub上查看
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
+        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:
@@ -58,7 +58,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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)}')

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

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

變數説明:

  • other (Plane3): 另一个平面

返回: Line3: 交线

抛出:

源碼於GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
+        raise TypeError(f'Unsupported type: {type(other)}')

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

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

變數説明:

  • other (Plane3): 另一个平面

返回: Line3: 交线

抛出:

源碼於GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     """
         计算两平面的交线。
         Args:
@@ -84,7 +84,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         A = np.array([[self.a, self.b], [other.a, other.b]])
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
-    return Line3(Point3(x, y, z), direction)

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

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

變數説明:

返回: Point3: 交点

抛出:

源碼於GitHub上查看
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
+    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:
@@ -98,7 +98,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         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))

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

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

變數説明:

返回: Plane3: 平面

源碼於GitHub上查看
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
+    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:
@@ -106,7 +106,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`Plane3\`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

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

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

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Plane3') -> bool:
+    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:
@@ -114,14 +114,14 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.normal.is_parallel(other.normal)

@property

func normal(self) -> Vector3

説明: 平面的法向量。

返回: Vector3: 法向量

源碼於GitHub上查看
python
@property
+    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

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

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

變數説明:

返回: Plane3: 平面

源碼於GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由点和法向量构造平面(点法式构造)。
@@ -133,7 +133,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         """
     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

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

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

變數説明:

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

返回: 平面

源碼於GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由三点构造平面。
@@ -147,7 +147,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

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

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

變數説明:

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

返回: 平面

源碼於GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由两直线构造平面。
@@ -161,7 +161,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
     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

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

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

變數説明:

返回: 平面

源碼於GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由点和直线构造平面。
@@ -171,11 +171,11 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

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

源碼於GitHub上查看
python
@overload
+    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

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

源碼於GitHub上查看
python
@overload
+    ...

@overload

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

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

func __and__(self, other)

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

變數説明:

返回: Line3 | Point3 | None: 交集

抛出:

源碼於GitHub上查看
python
def __and__(self, other):
+    ...

method __and__(self, other)

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

變數説明:

返回: Line3 | Point3 | None: 交集

抛出:

源碼於GitHub上查看
python
def __and__(self, other):
     """
         取两平面的交集(人话:交线)
         Args:
@@ -194,7 +194,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

func __eq__(self, other) -> bool

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

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否等价

源碼於GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
@@ -202,5 +202,5 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

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

源碼於GitHub上查看
python
def __rand__(self, other: 'Line3') -> 'Point3':
-    return self.cal_intersection_point3(other)
`,113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const y=s(l,[["render",p]]);export{c as __pageData,y as default}; + return self.approx(other)

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

源碼於GitHub上查看
python
def __rand__(self, other: 'Line3') -> 'Point3':
+    return self.cal_intersection_point3(other)
`,113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const F=s(l,[["render",p]]);export{y as __pageData,F as default}; diff --git a/assets/zht_api_mp_math_plane.md.CKWKiFtm.lean.js b/assets/zht_api_mp_math_plane.md.o_Vroqha.lean.js similarity index 67% rename from assets/zht_api_mp_math_plane.md.CKWKiFtm.lean.js rename to assets/zht_api_mp_math_plane.md.o_Vroqha.lean.js index 00a9c41..43a9b72 100644 --- a/assets/zht_api_mp_math_plane.md.CKWKiFtm.lean.js +++ b/assets/zht_api_mp_math_plane.md.o_Vroqha.lean.js @@ -1 +1 @@ -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.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"},t=n("",113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const y=s(l,[["render",p]]);export{c as __pageData,y as default}; +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y=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"},t=n("",113),h=[t];function p(e,k,r,o,d,E){return a(),i("div",null,h)}const F=s(l,[["render",p]]);export{y as __pageData,F as default}; diff --git a/assets/zht_api_mp_math_point.md.D7bOx2HI.js b/assets/zht_api_mp_math_point.md.CNwxPYyR.js similarity index 56% rename from assets/zht_api_mp_math_point.md.D7bOx2HI.js rename to assets/zht_api_mp_math_point.md.CNwxPYyR.js index 2f6fe97..39ec417 100644 --- a/assets/zht_api_mp_math_point.md.D7bOx2HI.js +++ b/assets/zht_api_mp_math_point.md.CNwxPYyR.js @@ -1,4 +1,4 @@ -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"},l=t(`

mbcp.mp_math.point

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

class Point3

func __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):
+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:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    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:
@@ -17,11 +17,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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

func self + other: Vector3 => Point3

源碼於GitHub上查看
python
@overload
+    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

func self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

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

func self + other

説明: P + V -> P P + P -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __add__(self, other):
+    ...

method self + other

説明: P + V -> P P + P -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __add__(self, other):
     """
         P + V -> P
         P + P -> P
@@ -30,7 +30,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`Point3\`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

func __eq__(self, other)

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

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
+    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:
@@ -38,7 +38,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

func self - other: Point3 => Vector3

説明: P - P -> V

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

變數説明:

返回: Vector3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':
+    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
 
@@ -49,4 +49,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
             [\`Vector3\`](./vector#class-vector3): 新的向量
         """
     from .vector import Vector3
-    return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
`,39),h=[l];function p(e,k,o,r,d,c){return a(),i("div",null,h)}const y=s(n,[["render",p]]);export{E as __pageData,y as default}; + 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.D7bOx2HI.lean.js b/assets/zht_api_mp_math_point.md.CNwxPYyR.lean.js similarity index 72% rename from assets/zht_api_mp_math_point.md.D7bOx2HI.lean.js rename to assets/zht_api_mp_math_point.md.CNwxPYyR.lean.js index 54ef0dc..8ede03c 100644 --- a/assets/zht_api_mp_math_point.md.D7bOx2HI.lean.js +++ b/assets/zht_api_mp_math_point.md.CNwxPYyR.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":"zht/api/mp_math/point.md","filePath":"zht/api/mp_math/point.md"}'),n={name:"zht/api/mp_math/point.md"},l=t("",39),h=[l];function p(e,k,o,r,d,c){return a(),i("div",null,h)}const y=s(n,[["render",p]]);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":"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.pWjtiCkV.js b/assets/zht_api_mp_math_segment.md.Dr21f14B.js similarity index 69% rename from assets/zht_api_mp_math_segment.md.pWjtiCkV.js rename to assets/zht_api_mp_math_segment.md.Dr21f14B.js index 515bbfd..d4c63d4 100644 --- a/assets/zht_api_mp_math_segment.md.pWjtiCkV.js +++ b/assets/zht_api_mp_math_segment.md.Dr21f14B.js @@ -1,4 +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":"zht/api/mp_math/segment.md","filePath":"zht/api/mp_math/segment.md"}'),t={name:"zht/api/mp_math/segment.md"},p=n(`

mbcp.mp_math.segment

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

class Segment3

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

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

變數説明:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源碼於GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
+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:
@@ -12,4 +12,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,E,g){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 l(e,k,r,d,E,o){return a(),i("div",null,p)}const c=s(n,[["render",l]]);export{F as __pageData,c as default}; diff --git a/assets/zht_api_mp_math_segment.md.Dr21f14B.lean.js b/assets/zht_api_mp_math_segment.md.Dr21f14B.lean.js new file mode 100644 index 0000000..ca0ee65 --- /dev/null +++ b/assets/zht_api_mp_math_segment.md.Dr21f14B.lean.js @@ -0,0 +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,E,o){return a(),i("div",null,p)}const c=s(n,[["render",l]]);export{F as __pageData,c as default}; diff --git a/assets/zht_api_mp_math_segment.md.pWjtiCkV.lean.js b/assets/zht_api_mp_math_segment.md.pWjtiCkV.lean.js deleted file mode 100644 index 7180312..0000000 --- a/assets/zht_api_mp_math_segment.md.pWjtiCkV.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":"zht/api/mp_math/segment.md","filePath":"zht/api/mp_math/segment.md"}'),t={name:"zht/api/mp_math/segment.md"},p=n("",8),h=[p];function l(e,k,r,d,E,g){return a(),i("div",null,h)}const c=s(t,[["render",l]]);export{F as __pageData,c as default}; diff --git a/assets/zht_api_mp_math_utils.md.DIDbd5be.js b/assets/zht_api_mp_math_utils.md.B57z4IwN.js similarity index 79% rename from assets/zht_api_mp_math_utils.md.DIDbd5be.js rename to assets/zht_api_mp_math_utils.md.B57z4IwN.js index 00d94e8..4d3b2e6 100644 --- a/assets/zht_api_mp_math_utils.md.DIDbd5be.js +++ b/assets/zht_api_mp_math_utils.md.B57z4IwN.js @@ -1,4 +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.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:
+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:
@@ -9,13 +9,13 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     Returns:
         \`float\`: 限定在区间内的值
     """
-    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

説明: 用于近似比较对象

變數説明:

源碼於GitHub上查看
python
def __init__(self, value: RealNumber):
+    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

func __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
+    self.value = value

method __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
             return abs(self.value - other) < APPROX
@@ -25,8 +25,8 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
         if isinstance(other, (Vector3, Point3, Plane3, Line3)):
             return all([approx(self.value.x, other.x), approx(self.value.y, other.y), approx(self.value.z, other.z)])
         else:
-            self.raise_type_error(other)

func raise_type_error(self, other)

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

func __ne__(self, other)

源碼於GitHub上查看
python
def __ne__(self, other):
+            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。
@@ -66,4 +66,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif x < 0:
         return f'-{abs(x)}'
     else:
-        return ''
`,38),h=[l];function p(e,k,r,o,d,g){return a(),i("div",null,h)}const c=s(n,[["render",p]]);export{F as __pageData,c as default}; + 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}; diff --git a/assets/zht_api_mp_math_utils.md.DIDbd5be.lean.js b/assets/zht_api_mp_math_utils.md.B57z4IwN.lean.js similarity index 67% rename from assets/zht_api_mp_math_utils.md.DIDbd5be.lean.js rename to assets/zht_api_mp_math_utils.md.B57z4IwN.lean.js index ce79bcd..24b504f 100644 --- a/assets/zht_api_mp_math_utils.md.DIDbd5be.lean.js +++ b/assets/zht_api_mp_math_utils.md.B57z4IwN.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":"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 p(e,k,r,o,d,g){return a(),i("div",null,h)}const c=s(n,[["render",p]]);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 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_vector.md.4G7-2lGN.js b/assets/zht_api_mp_math_vector.md.DCG5CraB.js similarity index 63% rename from assets/zht_api_mp_math_vector.md.4G7-2lGN.js rename to assets/zht_api_mp_math_vector.md.DCG5CraB.js index 094f149..7b1c8b3 100644 --- a/assets/zht_api_mp_math_vector.md.4G7-2lGN.js +++ b/assets/zht_api_mp_math_vector.md.DCG5CraB.js @@ -1,4 +1,4 @@ -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.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"}'),n={name:"zht/api/mp_math/vector.md"},l=t(`

mbcp.mp_math.vector

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

class Vector3

func __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):
+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.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"}'),n={name:"zht/api/mp_math/vector.md"},e=t(`

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:
@@ -8,7 +8,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -18,7 +18,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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])

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

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

變數説明:

返回: AnyAngle: 夹角

源碼於GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
+    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

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

變數説明:

返回: AnyAngle: 夹角

源碼於GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
     """
         计算两个向量之间的夹角。
         Args:
@@ -26,7 +26,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`AnyAngle\`](./angle#class-anyangle): 夹角
         """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

説明: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

變數説明:

返回: Vector3: 叉乘结果

源碼於GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':
+    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

説明: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

變數説明:

返回: Vector3: 叉乘结果

源碼於GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':
     """
         向量积 叉乘:v1 cross v2 -> v3
 
@@ -46,7 +46,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

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

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

變數説明:

返回: bool: 是否近似平行

源碼於GitHub上查看
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -55,7 +55,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

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

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

變數説明:

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> 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:
@@ -63,7 +63,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.cross(other).approx(zero_vector3)

func normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

源碼於GitHub上查看
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

method normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

源碼於GitHub上查看
python
def normalize(self):
     """
         将向量归一化。
 
@@ -72,33 +72,33 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     length = self.length
     self.x /= length
     self.y /= length
-    self.z /= length

@property

func np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源碼於GitHub上查看
python
@property
+    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

func length(self) -> float

説明: 向量的模。

返回: float: 模

源碼於GitHub上查看
python
@property
+    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

func unit(self) -> Vector3

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

返回: Vector3: 单位向量

源碼於GitHub上查看
python
@property
+    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

func __abs__(self)

源碼於GitHub上查看
python
def __abs__(self):
-    return self.length

@overload

func self + other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+    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

func self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

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

func self + other

説明: V + P -> P

V + V -> V

變數説明:

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

源碼於GitHub上查看
python
def __add__(self, other):
+    ...

method self + other

説明: V + P -> P

V + V -> V

變數説明:

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

源碼於GitHub上查看
python
def __add__(self, other):
     """
         V + P -> P
 
@@ -113,7 +113,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}'")

func __eq__(self, other)

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

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
+        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

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

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
     """
         判断两个向量是否相等。
         Args:
@@ -121,7 +121,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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)

func self + other: Point3 => Point3

説明: P + V -> P

别去点那边实现了。

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __radd__(self, other: 'Point3') -> 'Point3':
+    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
 
@@ -131,11 +131,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         Returns:
             [\`Point3\`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+    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

func self - other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

method self - other: Point3 => Point3

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

func self - other

説明: V - P -> P

V - V -> V

變數説明:

返回: Vector3 | Point3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other):
+    ...

method self - other

説明: V - P -> P

V - V -> V

變數説明:

返回: Vector3 | Point3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other):
     """
         V - P -> P
 
@@ -150,7 +150,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}"')

func self - other: Point3

説明: P - V -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __rsub__(self, other: 'Point3'):
+        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:
@@ -161,11 +161,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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

func self * other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+        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

func self * other: RealNumber => Vector3

源碼於GitHub上查看
python
@overload
+    ...

@overload

method self * other: RealNumber => Vector3

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

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

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

變數説明:

返回: Vector3: 数组运算结果

源碼於GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
+    ...

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

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

變數説明:

返回: Vector3: 数组运算结果

源碼於GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
     """
         数组运算 非点乘。点乘使用@,叉乘使用cross。
         Args:
@@ -178,8 +178,8 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
     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)}'")

func self * other: RealNumber => Vector3

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

func self @ other: Vector3 => RealNumber

説明: 点乘。

變數説明:

返回: float: 点乘结果

源碼於GitHub上查看
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
+        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:
@@ -187,11 +187,11 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E
         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

func self / other: RealNumber => Vector3

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

func - self => Vector3

説明: 取负。

返回: Vector3: 负向量

源碼於GitHub上查看
python
def __neg__(self) -> 'Vector3':
+    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)

`,138),e=[l];function h(p,k,r,o,d,c){return a(),i("div",null,e)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; + 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)

`,138),h=[e];function l(p,k,r,o,d,g){return a(),i("div",null,h)}const y=s(n,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/zht_api_mp_math_vector.md.4G7-2lGN.lean.js b/assets/zht_api_mp_math_vector.md.DCG5CraB.lean.js similarity index 73% rename from assets/zht_api_mp_math_vector.md.4G7-2lGN.lean.js rename to assets/zht_api_mp_math_vector.md.DCG5CraB.lean.js index 0cc6efe..484aa50 100644 --- a/assets/zht_api_mp_math_vector.md.4G7-2lGN.lean.js +++ b/assets/zht_api_mp_math_vector.md.DCG5CraB.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.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"}'),n={name:"zht/api/mp_math/vector.md"},l=t("",138),e=[l];function h(p,k,r,o,d,c){return a(),i("div",null,e)}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.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"}'),n={name:"zht/api/mp_math/vector.md"},e=t("",138),h=[e];function l(p,k,r,o,d,g){return a(),i("div",null,h)}const y=s(n,[["render",l]]);export{E as __pageData,y as default}; diff --git a/assets/zht_api_particle_index.md.C8wv1sGB.js b/assets/zht_api_particle_index.md.C8wv1sGB.js deleted file mode 100644 index 367307e..0000000 --- a/assets/zht_api_particle_index.md.C8wv1sGB.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/particle/index.md","filePath":"zht/api/particle/index.md"}'),i={name:"zht/api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[t("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),l=e("p",null,[e("strong",null,"説明"),t(": 本模块定义了粒子生成相关的工具")],-1),s=[p,l];function n(o,d,_,m,h,f){return r(),c("div",null,s)}const u=a(i,[["render",n]]);export{b as __pageData,u as default}; diff --git a/assets/zht_api_particle_index.md.C8wv1sGB.lean.js b/assets/zht_api_particle_index.md.C8wv1sGB.lean.js deleted file mode 100644 index 367307e..0000000 --- a/assets/zht_api_particle_index.md.C8wv1sGB.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/particle/index.md","filePath":"zht/api/particle/index.md"}'),i={name:"zht/api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[t("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),l=e("p",null,[e("strong",null,"説明"),t(": 本模块定义了粒子生成相关的工具")],-1),s=[p,l];function n(o,d,_,m,h,f){return r(),c("div",null,s)}const u=a(i,[["render",n]]);export{b as __pageData,u as default}; diff --git a/assets/zht_api_particle_index.md.DjZABivI.js b/assets/zht_api_particle_index.md.DjZABivI.js new file mode 100644 index 0000000..32ce8e7 --- /dev/null +++ b/assets/zht_api_particle_index.md.DjZABivI.js @@ -0,0 +1 @@ +import{_ as t,c as a,o as c,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/particle/index.md","filePath":"zht/api/particle/index.md"}'),i={name:"zht/api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[r("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),s=e("p",null,"本模块定义了粒子生成相关的工具",-1),l=[p,s];function o(n,d,_,m,h,f){return c(),a("div",null,l)}const u=t(i,[["render",o]]);export{b as __pageData,u as default}; diff --git a/assets/zht_api_particle_index.md.DjZABivI.lean.js b/assets/zht_api_particle_index.md.DjZABivI.lean.js new file mode 100644 index 0000000..32ce8e7 --- /dev/null +++ b/assets/zht_api_particle_index.md.DjZABivI.lean.js @@ -0,0 +1 @@ +import{_ as t,c as a,o as c,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/particle/index.md","filePath":"zht/api/particle/index.md"}'),i={name:"zht/api/particle/index.md"},p=e("h1",{id:"mbcp-particle",tabindex:"-1"},[r("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),s=e("p",null,"本模块定义了粒子生成相关的工具",-1),l=[p,s];function o(n,d,_,m,h,f){return c(),a("div",null,l)}const u=t(i,[["render",o]]);export{b as __pageData,u as default}; diff --git a/assets/zht_api_particle_particle.md.DLxDzJsb.js b/assets/zht_api_particle_particle.md.DLxDzJsb.js deleted file mode 100644 index 28ba6af..0000000 --- a/assets/zht_api_particle_particle.md.DLxDzJsb.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/particle/particle.md","filePath":"zht/api/particle/particle.md"}'),p={name:"zht/api/particle/particle.md"},l=e("h1",{id:"mbcp-particle",tabindex:"-1"},[t("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),i=e("p",null,[e("strong",null,"説明"),t(": 本模块定义了粒子生成相关的工具")],-1),s=[l,i];function o(n,d,_,m,h,f){return r(),c("div",null,s)}const x=a(p,[["render",o]]);export{u as __pageData,x as default}; diff --git a/assets/zht_api_particle_particle.md.DLxDzJsb.lean.js b/assets/zht_api_particle_particle.md.DLxDzJsb.lean.js deleted file mode 100644 index 28ba6af..0000000 --- a/assets/zht_api_particle_particle.md.DLxDzJsb.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.particle","description":"","frontmatter":{"title":"mbcp.particle","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/particle/particle.md","filePath":"zht/api/particle/particle.md"}'),p={name:"zht/api/particle/particle.md"},l=e("h1",{id:"mbcp-particle",tabindex:"-1"},[t("mbcp.particle "),e("a",{class:"header-anchor",href:"#mbcp-particle","aria-label":'Permalink to "mbcp.particle"'},"​")],-1),i=e("p",null,[e("strong",null,"説明"),t(": 本模块定义了粒子生成相关的工具")],-1),s=[l,i];function o(n,d,_,m,h,f){return r(),c("div",null,s)}const x=a(p,[["render",o]]);export{u as __pageData,x as default}; diff --git a/assets/zht_api_presets_index.md.CKWpXp08.js b/assets/zht_api_presets_index.md.Bl7tnVS9.js similarity index 53% rename from assets/zht_api_presets_index.md.CKWpXp08.js rename to assets/zht_api_presets_index.md.Bl7tnVS9.js index 60a65f1..e0923af 100644 --- a/assets/zht_api_presets_index.md.CKWpXp08.js +++ b/assets/zht_api_presets_index.md.Bl7tnVS9.js @@ -1 +1 @@ -import{_ as s,c as a,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/presets/index.md","filePath":"zht/api/presets/index.md"}'),p={name:"zht/api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[t("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),n=e("p",null,[e("strong",null,"説明"),t(": 本模块塞了一些预设")],-1),o=[c,n];function d(i,l,_,m,h,f){return r(),a("div",null,o)}const u=s(p,[["render",d]]);export{b as __pageData,u as default}; +import{_ as t,c as s,o as a,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/presets/index.md","filePath":"zht/api/presets/index.md"}'),p={name:"zht/api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[r("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,"本模块塞了一些预设",-1),n=[c,o];function d(i,l,_,m,h,f){return a(),s("div",null,n)}const u=t(p,[["render",d]]);export{b as __pageData,u as default}; diff --git a/assets/zht_api_presets_index.md.CKWpXp08.lean.js b/assets/zht_api_presets_index.md.Bl7tnVS9.lean.js similarity index 53% rename from assets/zht_api_presets_index.md.CKWpXp08.lean.js rename to assets/zht_api_presets_index.md.Bl7tnVS9.lean.js index 60a65f1..e0923af 100644 --- a/assets/zht_api_presets_index.md.CKWpXp08.lean.js +++ b/assets/zht_api_presets_index.md.Bl7tnVS9.lean.js @@ -1 +1 @@ -import{_ as s,c as a,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/presets/index.md","filePath":"zht/api/presets/index.md"}'),p={name:"zht/api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[t("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),n=e("p",null,[e("strong",null,"説明"),t(": 本模块塞了一些预设")],-1),o=[c,n];function d(i,l,_,m,h,f){return r(),a("div",null,o)}const u=s(p,[["render",d]]);export{b as __pageData,u as default}; +import{_ as t,c as s,o as a,j as e,a as r}from"./chunks/framework.DpC1ZpOZ.js";const b=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/presets/index.md","filePath":"zht/api/presets/index.md"}'),p={name:"zht/api/presets/index.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[r("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,"本模块塞了一些预设",-1),n=[c,o];function d(i,l,_,m,h,f){return a(),s("div",null,n)}const u=t(p,[["render",d]]);export{b as __pageData,u as default}; diff --git a/assets/zht_api_presets_model_index.md.BMgFAAtM.js b/assets/zht_api_presets_model_index.md.BMgFAAtM.js deleted file mode 100644 index 32b7ff7..0000000 --- a/assets/zht_api_presets_model_index.md.BMgFAAtM.js +++ /dev/null @@ -1,18 +0,0 @@ -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":"zht/api/presets/model/index.md","filePath":"zht/api/presets/model/index.md"}'),t={name:"zht/api/presets/model/index.md"},h=n(`

mbcp.presets.model

説明: 几何模型点集

class GeometricModels

@staticmethod

func 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)])
-    theta_list = np.sqrt(num * np.pi) * phi_list
-    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(k,e,r,d,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default}; diff --git a/assets/zht_api_presets_model_index.md.BMgFAAtM.lean.js b/assets/zht_api_presets_model_index.md.BMgFAAtM.lean.js deleted file mode 100644 index 971fa91..0000000 --- a/assets/zht_api_presets_model_index.md.BMgFAAtM.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 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"}'),t={name:"zht/api/presets/model/index.md"},h=n("",10),l=[h];function p(k,e,r,d,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default}; diff --git a/assets/zht_api_presets_model_model.md.hVmtKMyB.js b/assets/zht_api_presets_model_index.md.BQanubQ0.js similarity index 81% rename from assets/zht_api_presets_model_model.md.hVmtKMyB.js rename to assets/zht_api_presets_model_index.md.BQanubQ0.js index 26da939..77500af 100644 --- a/assets/zht_api_presets_model_model.md.hVmtKMyB.js +++ b/assets/zht_api_presets_model_index.md.BQanubQ0.js @@ -1,4 +1,4 @@ -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/model.md","filePath":"zht/api/presets/model/model.md"}'),n={name:"zht/api/presets/model/model.md"},h=t(`

mbcp.presets.model

説明: 几何模型点集

class GeometricModels

@staticmethod

func 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"}'),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
 def sphere(radius: float, density: float):
     """
         生成球体上的点集。
diff --git a/assets/zht_api_presets_model_model.md.hVmtKMyB.lean.js b/assets/zht_api_presets_model_index.md.BQanubQ0.lean.js
similarity index 74%
rename from assets/zht_api_presets_model_model.md.hVmtKMyB.lean.js
rename to assets/zht_api_presets_model_index.md.BQanubQ0.lean.js
index 2003d15..51a0c5b 100644
--- a/assets/zht_api_presets_model_model.md.hVmtKMyB.lean.js
+++ b/assets/zht_api_presets_model_index.md.BQanubQ0.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/model.md","filePath":"zht/api/presets/model/model.md"}'),n={name:"zht/api/presets/model/model.md"},h=t("",10),l=[h];function p(k,e,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"}'),n={name:"zht/api/presets/model/index.md"},h=t("",10),l=[h];function p(k,e,r,d,E,o){return a(),i("div",null,l)}const c=s(n,[["render",p]]);export{y as __pageData,c as default};
diff --git a/assets/zht_api_presets_presets.md.nxuS_hT6.js b/assets/zht_api_presets_presets.md.nxuS_hT6.js
deleted file mode 100644
index bc067b3..0000000
--- a/assets/zht_api_presets_presets.md.nxuS_hT6.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as s,c as a,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/presets/presets.md","filePath":"zht/api/presets/presets.md"}'),p={name:"zht/api/presets/presets.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[t("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,[e("strong",null,"説明"),t(": 本模块塞了一些预设")],-1),n=[c,o];function l(d,i,_,m,h,f){return r(),a("div",null,n)}const x=s(p,[["render",l]]);export{u as __pageData,x as default};
diff --git a/assets/zht_api_presets_presets.md.nxuS_hT6.lean.js b/assets/zht_api_presets_presets.md.nxuS_hT6.lean.js
deleted file mode 100644
index bc067b3..0000000
--- a/assets/zht_api_presets_presets.md.nxuS_hT6.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as s,c as a,o as r,j as e,a as t}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.presets","description":"","frontmatter":{"title":"mbcp.presets","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/presets/presets.md","filePath":"zht/api/presets/presets.md"}'),p={name:"zht/api/presets/presets.md"},c=e("h1",{id:"mbcp-presets",tabindex:"-1"},[t("mbcp.presets "),e("a",{class:"header-anchor",href:"#mbcp-presets","aria-label":'Permalink to "mbcp.presets"'},"​")],-1),o=e("p",null,[e("strong",null,"説明"),t(": 本模块塞了一些预设")],-1),n=[c,o];function l(d,i,_,m,h,f){return r(),a("div",null,n)}const x=s(p,[["render",l]]);export{u as __pageData,x as default};
diff --git a/demo/best-practice.html b/demo/best-practice.html
index 279bd0e..43c885f 100644
--- a/demo/best-practice.html
+++ b/demo/best-practice.html
@@ -6,10 +6,10 @@
     最佳实践 | MBCP 文档
     
     
-    
+    
     
-    
-    
+    
+    
     
     
     
@@ -18,8 +18,8 @@
     
   
   
-    
-    
+    
+    
     
   
 
\ No newline at end of file
diff --git a/demo/index.html b/demo/index.html
index 2c679f8..7926aa5 100644
--- a/demo/index.html
+++ b/demo/index.html
@@ -6,10 +6,10 @@
     demo | MBCP 文档
     
     
-    
+    
     
-    
-    
+    
+    
     
     
     
@@ -18,8 +18,8 @@
     
   
   
-    
Skip to content

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

- +
Skip to content

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

+ \ No newline at end of file diff --git a/en/api/api.html b/en/api/api.html deleted file mode 100644 index 43630fc..0000000 --- a/en/api/api.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp | MBCP docs - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/en/api/index.html b/en/api/index.html index e2a73d9..0045b9f 100644 --- a/en/api/index.html +++ b/en/api/index.html @@ -6,20 +6,20 @@ mbcp | MBCP docs - + - - + + - + - - +
Skip to content

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 817111f..c17690b 100644 --- a/en/api/mp_math/angle.html +++ b/en/api/mp_math/angle.html @@ -6,19 +6,19 @@ mbcp.mp_math.angle | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math.angle

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

class Angle

class AnyAngle(Angle)

func __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):
+    
Skip to content

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:
@@ -28,96 +28,96 @@
     if is_radian:
         self.radian = value
     else:
-        self.radian = value * PI / 180

@property

func complementary(self) -> AnyAngle

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

Return: 余角

Source code or View on GitHub
python
@property
+        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

func supplementary(self) -> AnyAngle

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

Return: 补角

Source code or View on GitHub
python
@property
+    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

func degree(self) -> float

Description: 角度。

Return: 弧度

Source code or View on GitHub
python
@property
+    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

func minimum_positive(self) -> AnyAngle

Description: 最小正角。

Return: 最小正角度

Source code or View on GitHub
python
@property
+    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

func maximum_negative(self) -> AnyAngle

Description: 最大负角。

Return: 最大负角度

Source code or View on GitHub
python
@property
+    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

func sin(self) -> float

Description: 正弦值。

Return: 正弦值

Source code or View on GitHub
python
@property
+    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

func cos(self) -> float

Description: 余弦值。

Return: 余弦值

Source code or View on GitHub
python
@property
+    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

func tan(self) -> float

Description: 正切值。

Return: 正切值

Source code or View on GitHub
python
@property
+    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

func cot(self) -> float

Description: 余切值。

Return: 余切值

Source code or View on GitHub
python
@property
+    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

func sec(self) -> float

Description: 正割值。

Return: 正割值

Source code or View on GitHub
python
@property
+    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

func csc(self) -> float

Description: 余割值。

Return: 余割值

Source code or View on GitHub
python
@property
+    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)

func 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)

func __eq__(self, other)

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

func 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)

func 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

func self / other: float => AnyAngle

Source code or View on GitHub
python
@overload
+    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

func self / other: AnyAngle => float

Source code or View on GitHub
python
@overload
+    ...

@overload

method self / other: AnyAngle => float

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

func self / other

Source code or View on GitHub
python
def __truediv__(self, other):
+    ...

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)

Documentation built with VitePress | API references generated by litedoc

- + 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 9a5d92b..c8f4363 100644 --- a/en/api/mp_math/const.html +++ b/en/api/mp_math/const.html @@ -6,20 +6,20 @@ mbcp.mp_math.const | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math.const

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

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

- +
Skip to content

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 e3a8a47..006df67 100644 --- a/en/api/mp_math/equation.html +++ b/en/api/mp_math/equation.html @@ -6,19 +6,19 @@ mbcp.mp_math.equation | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math.equation

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

class CurveEquation

func __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):
+    
Skip to content

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:
@@ -28,7 +28,7 @@
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

func __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, ...]:
+    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:
@@ -82,8 +82,8 @@
             return result_func(*args)
         return high_order_partial_derivative_func
     else:
-        raise ValueError('Invalid var type')

Documentation built with VitePress | API references generated by litedoc

- + 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 dc5b900..e0f4665 100644 --- a/en/api/mp_math/function.html +++ b/en/api/mp_math/function.html @@ -6,19 +6,19 @@ mbcp.mp_math.function | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math.function

Description: 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:
+    
Skip to content

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]
@@ -59,8 +59,8 @@
     def curried_func(*args2: Var) -> Var:
         """@litedoc-hide"""
         return func(*args, *args2)
-    return curried_func

Documentation built with VitePress | API references generated by litedoc

- + 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 a816b0b..d5888b6 100644 --- a/en/api/mp_math/index.html +++ b/en/api/mp_math/index.html @@ -6,20 +6,20 @@ mbcp.mp_math | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math

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

Documentation built with VitePress | API references generated by litedoc

- +
Skip to content

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 351eca9..da965d6 100644 --- a/en/api/mp_math/line.html +++ b/en/api/mp_math/line.html @@ -6,19 +6,19 @@ mbcp.mp_math.line | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math.line

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

class Line3

func __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'):
+    
Skip to content

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:
@@ -26,7 +26,7 @@
             direction ([`Vector3`](./vector#class-vector3)): 方向向量
         """
     self.point = point
-    self.direction = direction

func 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:
+    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:
@@ -35,7 +35,7 @@
         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)

func 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':
+    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:
@@ -43,7 +43,7 @@
         Returns:
             [`AnyAngle`](./angle#class-anyangle): 夹角
         """
-    return self.direction.cal_angle(other.direction)

func 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:
+    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:
@@ -65,7 +65,7 @@
     elif isinstance(other, Point3):
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
-        raise TypeError('Unsupported type.')

func 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':
+        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:
@@ -80,7 +80,7 @@
         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

func 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':
+    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:
@@ -88,7 +88,7 @@
         Returns:
             [`Line3`](./line#class-line3): 垂线
         """
-    return Line3(point, self.direction.cross(point - self.point))

func 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':
+    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:
@@ -96,13 +96,13 @@
         Returns:
             [`Point3`](./point#class-point3): 点
         """
-    return self.point + t * self.direction

func 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]:
+    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)

func 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:
+    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:
@@ -111,7 +111,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.direction.is_approx_parallel(other.direction, epsilon)

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

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

Arguments:

Return: bool: 是否平行

Source code or View on GitHub
python
def is_parallel(self, other: 'Line3') -> 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:
@@ -119,7 +119,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.direction.is_parallel(other.direction)

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

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

Arguments:

Return: bool: 是否共线

Source code or View on GitHub
python
def is_collinear(self, other: 'Line3') -> 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:
@@ -127,7 +127,7 @@
         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)

func 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:
+    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:
@@ -135,7 +135,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
         """
-    return (point - self.point).is_parallel(self.direction)

func 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:
+    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。
@@ -144,7 +144,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
         """
-    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

func simplify(self)

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

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

Source code or View on GitHub
python
def simplify(self):
+    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):
     """
         简化直线方程,等价相等。
         自体简化,不返回值。
@@ -157,7 +157,7 @@
     if self.direction.y == 0:
         self.point.y = 0
     if self.direction.z == 0:
-        self.point.z = 0

@classmethod

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

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

Arguments:

Return: Line3: 直线

Source code or View on GitHub
python
@classmethod
+        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':
     """
         工厂函数 由两点构造直线。
@@ -168,7 +168,7 @@
             [`Line3`](./line#class-line3): 直线
         """
     direction = p2 - p1
-    return cls(p1, direction)

func __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':
+    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:
@@ -181,7 +181,7 @@
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
-        return self.cal_intersection(other)

func __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:
+        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:
     """
         判断两条直线是否等价。
 
@@ -191,8 +191,8 @@
         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

- + 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.html b/en/api/mp_math/mp_math.html deleted file mode 100644 index 62bba41..0000000 --- a/en/api/mp_math/mp_math.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.mp_math | MBCP docs - - - - - - - - - - - - - - -
Skip to content

mbcp.mp_math

Description: 本包定义了一些常用的导入,可直接从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/mp_math_typing.html b/en/api/mp_math/mp_math_typing.html index e2c2c0f..68d33a3 100644 --- a/en/api/mp_math/mp_math_typing.html +++ b/en/api/mp_math/mp_math_typing.html @@ -6,20 +6,20 @@ mbcp.mp_math.mp_math_typing | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math.mp_math_typing

Description: 本模块用于内部类型提示

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

- +
Skip to content

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 667402d..5b0da2c 100644 --- a/en/api/mp_math/plane.html +++ b/en/api/mp_math/plane.html @@ -6,19 +6,19 @@ mbcp.mp_math.plane | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math.plane

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

class Plane3

func __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):
+    
Skip to content

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:
@@ -30,7 +30,7 @@
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

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

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

Arguments:

  • other (Plane3): 另一个平面

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(self, other: 'Plane3') -> bool:
+    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:
@@ -48,7 +48,7 @@
         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

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

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

Arguments:

Return: AnyAngle: 夹角

Raises:

Source code or View on GitHub
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+        return False

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

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

Arguments:

Return: AnyAngle: 夹角

Raises:

Source code or View on GitHub
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     """
         计算平面与平面之间的夹角。
         Args:
@@ -63,7 +63,7 @@
     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)}')

func 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:
+        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:
@@ -78,7 +78,7 @@
     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)}')

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

Description: 计算两平面的交线。

Arguments:

  • other (Plane3): 另一个平面

Return: Line3: 交线

Raises:

Source code or View on GitHub
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
+        raise TypeError(f'Unsupported type: {type(other)}')

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

Description: 计算两平面的交线。

Arguments:

  • other (Plane3): 另一个平面

Return: Line3: 交线

Raises:

Source code or View on GitHub
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     """
         计算两平面的交线。
         Args:
@@ -104,7 +104,7 @@
         A = np.array([[self.a, self.b], [other.a, other.b]])
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
-    return Line3(Point3(x, y, z), direction)

func 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':
+    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:
@@ -118,7 +118,7 @@
         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))

func 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':
+    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:
@@ -126,7 +126,7 @@
         Returns:
             [`Plane3`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

func 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:
+    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:
@@ -134,14 +134,14 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.normal.is_parallel(other.normal)

@property

func normal(self) -> Vector3

Description: 平面的法向量。

Return: Vector3: 法向量

Source code or View on GitHub
python
@property
+    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

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

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

Arguments:

Return: Plane3: 平面

Source code or View on GitHub
python
@classmethod
+    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':
     """
         工厂函数 由点和法向量构造平面(点法式构造)。
@@ -153,7 +153,7 @@
         """
     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

func 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
+    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':
     """
         工厂函数 由三点构造平面。
@@ -167,7 +167,7 @@
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

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

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

Arguments:

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

Return: 平面

Source code or View on GitHub
python
@classmethod
+    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':
     """
         工厂函数 由两直线构造平面。
@@ -181,7 +181,7 @@
     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

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

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

Arguments:

Return: 平面

Source code or View on GitHub
python
@classmethod
+    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':
     """
         工厂函数 由点和直线构造平面。
@@ -191,11 +191,11 @@
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

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

Source code or View on GitHub
python
@overload
+    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

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

Source code or View on GitHub
python
@overload
+    ...

@overload

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

Source code or View on GitHub
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
-    ...

func __and__(self, other)

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

Arguments:

Return: Line3 | Point3 | None: 交集

Raises:

Source code or View on GitHub
python
def __and__(self, other):
+    ...

method __and__(self, other)

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

Arguments:

Return: Line3 | Point3 | None: 交集

Raises:

Source code or View on GitHub
python
def __and__(self, other):
     """
         取两平面的交集(人话:交线)
         Args:
@@ -214,7 +214,7 @@
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

func __eq__(self, other) -> bool

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

Arguments:

  • other (Plane3): 另一个平面

Return: bool: 是否等价

Source code or View on GitHub
python
def __eq__(self, other) -> bool:
+        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:
@@ -222,9 +222,9 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

func __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

- + 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 5f38a1b..136df15 100644 --- a/en/api/mp_math/point.html +++ b/en/api/mp_math/point.html @@ -6,19 +6,19 @@ mbcp.mp_math.point | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math.point

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

class Point3

func __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):
+    
Skip to content

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:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

func 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:
+    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:
@@ -37,11 +37,11 @@
         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

func self + other: Vector3 => Point3

Source code or View on GitHub
python
@overload
+    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

func self + other: Point3 => Point3

Source code or View on GitHub
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

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

func self + other

Description: P + V -> P P + P -> P

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __add__(self, other):
+    ...

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
@@ -50,7 +50,7 @@
         Returns:
             [`Point3`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

func __eq__(self, other)

Description: 判断两个点是否相等。

Arguments:

Return: bool: 是否相等

Source code or View on GitHub
python
def __eq__(self, other):
+    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:
@@ -58,7 +58,7 @@
         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)

func 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':
+    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
 
@@ -69,8 +69,8 @@
             [`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

- + 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 7f39923..a224238 100644 --- a/en/api/mp_math/segment.html +++ b/en/api/mp_math/segment.html @@ -6,19 +6,19 @@ mbcp.mp_math.segment | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math.segment

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

class Segment3

func __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'):
+    
Skip to content

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:
@@ -32,8 +32,8 @@
     '长度'
     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

- + 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 95731c8..3341a35 100644 --- a/en/api/mp_math/utils.html +++ b/en/api/mp_math/utils.html @@ -6,19 +6,19 @@ mbcp.mp_math.utils | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math.utils

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

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:
+    
Skip to content

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:
@@ -29,13 +29,13 @@
     Returns:
         `float`: 限定在区间内的值
     """
-    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

Description: 用于近似比较对象

Arguments:

Source code or View on GitHub
python
def __init__(self, value: RealNumber):
+    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

func __eq__(self, other)

Source code or View on GitHub
python
def __eq__(self, other):
+    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)):
             return abs(self.value - other) < APPROX
@@ -45,8 +45,8 @@
         if isinstance(other, (Vector3, Point3, Plane3, Line3)):
             return all([approx(self.value.x, other.x), approx(self.value.y, other.y), approx(self.value.z, other.z)])
         else:
-            self.raise_type_error(other)

func 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)}')

func __ne__(self, other)

Source code or View on GitHub
python
def __ne__(self, other):
+            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。
@@ -86,8 +86,8 @@
     elif x < 0:
         return f'-{abs(x)}'
     else:
-        return ''

Documentation built with VitePress | API references generated by litedoc

- + 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 2f46eda..c48b87c 100644 --- a/en/api/mp_math/vector.html +++ b/en/api/mp_math/vector.html @@ -6,19 +6,19 @@ mbcp.mp_math.vector | MBCP docs - + - - + + - + -
Skip to content

mbcp.mp_math.vector

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

class Vector3

func __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):
+    
Skip to content

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:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

func 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:
+    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:
@@ -38,7 +38,7 @@
         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])

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

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

Arguments:

Return: AnyAngle: 夹角

Source code or View on GitHub
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
+    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: 计算两个向量之间的夹角。

Arguments:

Return: AnyAngle: 夹角

Source code or View on GitHub
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
     """
         计算两个向量之间的夹角。
         Args:
@@ -46,7 +46,7 @@
         Returns:
             [`AnyAngle`](./angle#class-anyangle): 夹角
         """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

Description: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

Arguments:

Return: Vector3: 叉乘结果

Source code or View on GitHub
python
def cross(self, other: 'Vector3') -> 'Vector3':
+    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

Description: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

Arguments:

Return: Vector3: 叉乘结果

Source code or View on GitHub
python
def cross(self, other: 'Vector3') -> 'Vector3':
     """
         向量积 叉乘:v1 cross v2 -> v3
 
@@ -66,7 +66,7 @@
         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)

func 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:
+    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:
@@ -75,7 +75,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

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

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

Arguments:

Return: bool: 是否平行

Source code or View on GitHub
python
def is_parallel(self, other: 'Vector3') -> 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:
@@ -83,7 +83,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.cross(other).approx(zero_vector3)

func normalize(self)

Description: 将向量归一化。

自体归一化,不返回值。

Source code or View on GitHub
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

method normalize(self)

Description: 将向量归一化。

自体归一化,不返回值。

Source code or View on GitHub
python
def normalize(self):
     """
         将向量归一化。
 
@@ -92,33 +92,33 @@
     length = self.length
     self.x /= length
     self.y /= length
-    self.z /= length

@property

func np_array(self) -> np.ndarray

Return: np.ndarray: numpy数组

Source code or View on GitHub
python
@property
+    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

func length(self) -> float

Description: 向量的模。

Return: float: 模

Source code or View on GitHub
python
@property
+    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

func unit(self) -> Vector3

Description: 获取该向量的单位向量。

Return: Vector3: 单位向量

Source code or View on GitHub
python
@property
+    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

func __abs__(self)

Source code or View on GitHub
python
def __abs__(self):
-    return self.length

@overload

func self + other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
+    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

func self + other: Point3 => Point3

Source code or View on GitHub
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

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

func self + other

Description: V + P -> P

V + V -> V

Arguments:

Return: Vector3 | Point3: 新的向量或点

Source code or View on GitHub
python
def __add__(self, other):
+    ...

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
 
@@ -133,7 +133,7 @@
     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)}'")

func __eq__(self, other)

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

Arguments:

Return: bool: 是否相等

Source code or View on GitHub
python
def __eq__(self, other):
+        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:
@@ -141,7 +141,7 @@
         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)

func self + other: Point3 => Point3

Description: P + V -> P

别去点那边实现了。

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __radd__(self, other: 'Point3') -> 'Point3':
+    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
 
@@ -151,11 +151,11 @@
         Returns:
             [`Point3`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
+    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

func self - other: Point3 => Point3

Source code or View on GitHub
python
@overload
+    ...

@overload

method self - other: Point3 => Point3

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

func self - other

Description: V - P -> P

V - V -> V

Arguments:

Return: Vector3 | Point3: 新的向量

Source code or View on GitHub
python
def __sub__(self, other):
+    ...

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
 
@@ -170,7 +170,7 @@
     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)}"')

func self - other: Point3

Description: P - V -> P

Arguments:

Return: Point3: 新的点

Source code or View on GitHub
python
def __rsub__(self, other: 'Point3'):
+        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:
@@ -181,11 +181,11 @@
     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

func self * other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
+        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

func self * other: RealNumber => Vector3

Source code or View on GitHub
python
@overload
+    ...

@overload

method self * other: RealNumber => Vector3

Source code or View on GitHub
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

func 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':
+    ...

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:
@@ -198,8 +198,8 @@
     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)}'")

func self * other: RealNumber => Vector3

Source code or View on GitHub
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

func self @ other: Vector3 => RealNumber

Description: 点乘。

Arguments:

Return: float: 点乘结果

Source code or View on GitHub
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
+        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:
@@ -207,15 +207,15 @@
         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

func 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)

func - self => Vector3

Description: 取负。

Return: Vector3: 负向量

Source code or View on GitHub
python
def __neg__(self) -> 'Vector3':
+    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

- + 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 233cd34..8866dac 100644 --- a/en/api/particle/index.html +++ b/en/api/particle/index.html @@ -6,20 +6,20 @@ mbcp.particle | MBCP docs - + - - + + - + - - + + \ No newline at end of file diff --git a/en/api/particle/particle.html b/en/api/particle/particle.html deleted file mode 100644 index 8c0a05c..0000000 --- a/en/api/particle/particle.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.particle | MBCP docs - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/en/api/presets/index.html b/en/api/presets/index.html index c81424c..d78ee85 100644 --- a/en/api/presets/index.html +++ b/en/api/presets/index.html @@ -6,20 +6,20 @@ mbcp.presets | MBCP docs - + - - + + - + - - + + \ No newline at end of file diff --git a/en/api/presets/model/index.html b/en/api/presets/model/index.html index ccbb1c8..2d6f4a2 100644 --- a/en/api/presets/model/index.html +++ b/en/api/presets/model/index.html @@ -6,19 +6,19 @@ mbcp.presets.model | MBCP docs - + - - + + - + -
Skip to content

mbcp.presets.model

Description: 几何模型点集

class GeometricModels

@staticmethod

func sphere(radius: float, density: float)

Description: 生成球体上的点集。

Arguments:

  • radius:
  • density:

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

Source code or View on GitHub
python
@staticmethod
+    
Skip to content

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):
     """
         生成球体上的点集。
@@ -35,8 +35,8 @@
     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)]

Documentation built with VitePress | API references generated by litedoc

- + 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/api/presets/model/model.html b/en/api/presets/model/model.html deleted file mode 100644 index 1cd0d71..0000000 --- a/en/api/presets/model/model.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - mbcp.presets.model | MBCP docs - - - - - - - - - - - - - - -
Skip to content

mbcp.presets.model

Description: 几何模型点集

class GeometricModels

@staticmethod

func 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)])
-    theta_list = np.sqrt(num * np.pi) * phi_list
-    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)]

Documentation built with VitePress | API references generated by litedoc

- - - - \ No newline at end of file diff --git a/en/api/presets/presets.html b/en/api/presets/presets.html deleted file mode 100644 index cd15014..0000000 --- a/en/api/presets/presets.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.presets | MBCP docs - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/en/demo/best-practice.html b/en/demo/best-practice.html index fa60012..7830192 100644 --- a/en/demo/best-practice.html +++ b/en/demo/best-practice.html @@ -6,10 +6,10 @@ Best Practice | MBCP docs - + - - + + @@ -18,8 +18,8 @@ - - + + \ No newline at end of file diff --git a/en/guide/index.html b/en/guide/index.html index cc1cd5e..fa0bf89 100644 --- a/en/guide/index.html +++ b/en/guide/index.html @@ -6,10 +6,10 @@ 开始不了一点 | MBCP docs - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

开始不了一点

12x111

Documentation built with VitePress | API references generated by litedoc

- +
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 1c07f11..76d3bfd 100644 --- a/en/index.html +++ b/en/index.html @@ -6,10 +6,10 @@ MBCP docs - + - - + + @@ -18,8 +18,8 @@ -
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

- +
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 a691228..4c97cbb 100644 --- a/en/refer/index.html +++ b/en/refer/index.html @@ -6,10 +6,10 @@ Reference | MBCP docs - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

Reference

help us to improve the documentation

Documentation built with VitePress | API references generated by litedoc

- +
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 cbfa92b..69a6341 100644 --- a/guide/index.html +++ b/guide/index.html @@ -3,23 +3,23 @@ - 开始不了一点 | MBCP 文档 + 快速开始 | MBCP 文档 - + - - + + - + -
Skip to content

开始不了一点

12x111

AAA

BBB

C

ddd

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

- +
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 458fb13..318a8e8 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"api_api.md":"rnPOv6-O","api_index.md":"qnrSd__i","api_mp_math_angle.md":"D0ius2dn","api_mp_math_const.md":"O6cTulwX","api_mp_math_equation.md":"D9gepkm-","api_mp_math_function.md":"DCuJC29A","api_mp_math_index.md":"DHhPNV6R","api_mp_math_line.md":"ByGRRi0A","api_mp_math_mp_math.md":"mVabZTHd","api_mp_math_mp_math_typing.md":"CEryCREV","api_mp_math_plane.md":"Ir4HtSn5","api_mp_math_point.md":"CIRBY4Zg","api_mp_math_segment.md":"DFwFkY98","api_mp_math_utils.md":"CFXHDZgH","api_mp_math_vector.md":"CuQ0WDoP","api_particle_index.md":"BxLVuqry","api_particle_particle.md":"CioLG9Ab","api_presets_index.md":"C7sBj6Q8","api_presets_model_index.md":"BcL7qpu8","api_presets_model_model.md":"Ch05JNzT","api_presets_presets.md":"kIUJtfck","demo_best-practice.md":"CmYjfrxd","demo_index.md":"CVAdlaFI","en_api_api.md":"D31N0-_j","en_api_index.md":"CpTS_pfZ","en_api_mp_math_angle.md":"DTo0bIGQ","en_api_mp_math_const.md":"DjbxFoGO","en_api_mp_math_equation.md":"NTcIjf_k","en_api_mp_math_function.md":"BXNFIE6F","en_api_mp_math_index.md":"ypHGEnmb","en_api_mp_math_line.md":"CxP-i4OT","en_api_mp_math_mp_math.md":"5IisTIt3","en_api_mp_math_mp_math_typing.md":"DWjztCj6","en_api_mp_math_plane.md":"BsgpTZdY","en_api_mp_math_point.md":"DcGqVqiO","en_api_mp_math_segment.md":"Cge1J0TK","en_api_mp_math_utils.md":"Bu0IGkds","en_api_mp_math_vector.md":"DpvjNLj_","en_api_particle_index.md":"NezC90nG","en_api_particle_particle.md":"BTk7xB-d","en_api_presets_index.md":"Clhg0YLX","en_api_presets_model_index.md":"BJWo1DBU","en_api_presets_model_model.md":"Cmq9KKw_","en_api_presets_presets.md":"5pMosEdX","en_demo_best-practice.md":"CmtY105n","en_guide_index.md":"C3kI8f8A","en_index.md":"Cc-Nt9Ot","en_refer_index.md":"Cq6GWi0V","guide_index.md":"BVhQ0kPy","index.md":"WVpbC1C1","ja_api_api.md":"DD7b0jH_","ja_api_index.md":"3bCCqhm9","ja_api_mp_math_angle.md":"DmogilJK","ja_api_mp_math_const.md":"CACmM3Q4","ja_api_mp_math_equation.md":"DuGNts4i","ja_api_mp_math_function.md":"DIn5uL0A","ja_api_mp_math_index.md":"B_UDRWJp","ja_api_mp_math_line.md":"Ber05s-D","ja_api_mp_math_mp_math.md":"DGl-Yqoj","ja_api_mp_math_mp_math_typing.md":"BANGfx9Q","ja_api_mp_math_plane.md":"BlhqSUWq","ja_api_mp_math_point.md":"Czyuzvxa","ja_api_mp_math_segment.md":"DfoJ389C","ja_api_mp_math_utils.md":"Dnl5rkoo","ja_api_mp_math_vector.md":"CD5nfzHo","ja_api_particle_index.md":"SXvJHpqE","ja_api_particle_particle.md":"DpDqAPA7","ja_api_presets_index.md":"DrJ0aeZq","ja_api_presets_model_index.md":"D3Q5KLfq","ja_api_presets_model_model.md":"vKB1wVU9","ja_api_presets_presets.md":"Bm4b0yEm","ja_demo_best-practice.md":"CBHiF6ec","ja_guide_index.md":"w1Tf2Adm","ja_index.md":"BvjV8RIJ","ja_refer_index.md":"DamUscs8","refer_function_curry.md":"D_oqRDd3","refer_function_function.md":"Bi_82lIJ","refer_index.md":"yFZW0kI4","zht_api_api.md":"DgGLhN7H","zht_api_index.md":"DNSdsCcq","zht_api_mp_math_angle.md":"CEIly6_X","zht_api_mp_math_const.md":"DhnGo46u","zht_api_mp_math_equation.md":"BPMLYcpO","zht_api_mp_math_function.md":"D9y8K44X","zht_api_mp_math_index.md":"C-ytwIT_","zht_api_mp_math_line.md":"V0JKiMxX","zht_api_mp_math_mp_math.md":"WAo96wsQ","zht_api_mp_math_mp_math_typing.md":"2475K9x4","zht_api_mp_math_plane.md":"CKWKiFtm","zht_api_mp_math_point.md":"D7bOx2HI","zht_api_mp_math_segment.md":"pWjtiCkV","zht_api_mp_math_utils.md":"DIDbd5be","zht_api_mp_math_vector.md":"4G7-2lGN","zht_api_particle_index.md":"C8wv1sGB","zht_api_particle_particle.md":"DLxDzJsb","zht_api_presets_index.md":"CKWpXp08","zht_api_presets_model_index.md":"BMgFAAtM","zht_api_presets_model_model.md":"hVmtKMyB","zht_api_presets_presets.md":"nxuS_hT6","zht_demo_best-practice.md":"CPNbD_Lg","zht_guide_index.md":"BNnMViC8","zht_index.md":"fkOYkZZe","zht_refer_index.md":"B7CQS2UW"} +{"api_index.md":"YS-zqWwM","api_mp_math_angle.md":"CThQB5nq","api_mp_math_const.md":"DqjQQ6Ym","api_mp_math_equation.md":"C1YMGsIR","api_mp_math_function.md":"C0P_-kol","api_mp_math_index.md":"yEj9pzOD","api_mp_math_line.md":"Okmn0BTW","api_mp_math_mp_math_typing.md":"bdiOSvFy","api_mp_math_plane.md":"Dl-FdXx3","api_mp_math_point.md":"xU6HjeL2","api_mp_math_segment.md":"BqloNjdD","api_mp_math_utils.md":"CGBZjr3t","api_mp_math_vector.md":"B443ftAV","api_particle_index.md":"VxgsHiZa","api_presets_index.md":"BEZBx6Gj","api_presets_model_index.md":"CzrZX1Li","demo_best-practice.md":"CmYjfrxd","demo_index.md":"CVAdlaFI","en_api_index.md":"BrJlad-k","en_api_mp_math_angle.md":"BvzeTdtj","en_api_mp_math_const.md":"CrUt_3FV","en_api_mp_math_equation.md":"CHBtH4v6","en_api_mp_math_function.md":"D68bTyed","en_api_mp_math_index.md":"D331As7i","en_api_mp_math_line.md":"B69kHoPc","en_api_mp_math_mp_math_typing.md":"xRGJGUMm","en_api_mp_math_plane.md":"BdKgRumw","en_api_mp_math_point.md":"BeT2oqIN","en_api_mp_math_segment.md":"DbFvInHk","en_api_mp_math_utils.md":"CYq8hncD","en_api_mp_math_vector.md":"CPGkZzwr","en_api_particle_index.md":"ZKByd_x0","en_api_presets_index.md":"BhoZyGSV","en_api_presets_model_index.md":"BM4zzWd9","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":"6u5f7W7q","ja_api_mp_math_angle.md":"CbTFNFpP","ja_api_mp_math_const.md":"HrVLdLVW","ja_api_mp_math_equation.md":"BR_cjYxP","ja_api_mp_math_function.md":"CeNPnpri","ja_api_mp_math_index.md":"BVYYBcgX","ja_api_mp_math_line.md":"CmVmq6PC","ja_api_mp_math_mp_math_typing.md":"BnSHEEFC","ja_api_mp_math_plane.md":"D7v3q_U8","ja_api_mp_math_point.md":"BqC8JgjG","ja_api_mp_math_segment.md":"vi1FH0--","ja_api_mp_math_utils.md":"DhPmcvK-","ja_api_mp_math_vector.md":"B7oDy-SU","ja_api_particle_index.md":"ighey3JD","ja_api_presets_index.md":"Bow22HNO","ja_api_presets_model_index.md":"C-uCqjXi","ja_demo_best-practice.md":"CBHiF6ec","ja_guide_index.md":"w1Tf2Adm","ja_index.md":"BvjV8RIJ","ja_refer_index.md":"DamUscs8","refer_function_curry.md":"D_oqRDd3","refer_function_function.md":"Bi_82lIJ","refer_index.md":"yFZW0kI4","zht_api_index.md":"DMjE1xBr","zht_api_mp_math_angle.md":"D6i--7zd","zht_api_mp_math_const.md":"DI0xAyWX","zht_api_mp_math_equation.md":"B3rt0Pgw","zht_api_mp_math_function.md":"Cf9utaTV","zht_api_mp_math_index.md":"DbgI3vD1","zht_api_mp_math_line.md":"-wtKMTMJ","zht_api_mp_math_mp_math_typing.md":"BbOeRs-n","zht_api_mp_math_plane.md":"o_Vroqha","zht_api_mp_math_point.md":"CNwxPYyR","zht_api_mp_math_segment.md":"Dr21f14B","zht_api_mp_math_utils.md":"B57z4IwN","zht_api_mp_math_vector.md":"DCG5CraB","zht_api_particle_index.md":"DjZABivI","zht_api_presets_index.md":"Bl7tnVS9","zht_api_presets_model_index.md":"BQanubQ0","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 dcea9a6..6b9e6c5 100644 --- a/index.html +++ b/index.html @@ -6,10 +6,10 @@ MBCP 文档 - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

MBCP

更多基础变换粒子

用于几何运算和Minecraft粒子制作的库

MBCP logo

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

- +
Skip to content

MBCP

更多基础变换粒子

用于几何运算和Minecraft粒子制作的库

MBCP logo

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

+ \ No newline at end of file diff --git a/ja/api/api.html b/ja/api/api.html deleted file mode 100644 index ff74f06..0000000 --- a/ja/api/api.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp | MBCP ドキュメント - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ja/api/index.html b/ja/api/index.html index 78a64ac..66388f9 100644 --- a/ja/api/index.html +++ b/ja/api/index.html @@ -6,20 +6,20 @@ mbcp | MBCP ドキュメント - + - - + + - + - - +
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 dc9bcbf..a00175f 100644 --- a/ja/api/mp_math/angle.html +++ b/ja/api/mp_math/angle.html @@ -6,19 +6,19 @@ mbcp.mp_math.angle | MBCP ドキュメント - + - - + + - + -
Skip to content

mbcp.mp_math.angle

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

class Angle

class AnyAngle(Angle)

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

説明: 任意角度。

引数:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
ソースコード または GitHubで表示
python
def __init__(self, value: float, is_radian: bool=False):
+    
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:
@@ -28,96 +28,96 @@
     if is_radian:
         self.radian = value
     else:
-        self.radian = value * PI / 180

@property

func complementary(self) -> AnyAngle

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

戻り値: 余角

ソースコード または GitHubで表示
python
@property
+        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

func supplementary(self) -> AnyAngle

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

戻り値: 补角

ソースコード または GitHubで表示
python
@property
+    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

func degree(self) -> float

説明: 角度。

戻り値: 弧度

ソースコード または GitHubで表示
python
@property
+    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

func minimum_positive(self) -> AnyAngle

説明: 最小正角。

戻り値: 最小正角度

ソースコード または GitHubで表示
python
@property
+    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

func maximum_negative(self) -> AnyAngle

説明: 最大负角。

戻り値: 最大负角度

ソースコード または GitHubで表示
python
@property
+    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

func sin(self) -> float

説明: 正弦值。

戻り値: 正弦值

ソースコード または GitHubで表示
python
@property
+    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

func cos(self) -> float

説明: 余弦值。

戻り値: 余弦值

ソースコード または GitHubで表示
python
@property
+    return math.sin(self.radian)

@property

method cos(self) -> float

説明: 余弦值。

戻り値: 余弦值

ソースコード または GitHubで表示
python
@property
 def cos(self) -> float:
     """
         余弦值。
         Returns:
             余弦值
         """
-    return math.cos(self.radian)

@property

func tan(self) -> float

説明: 正切值。

戻り値: 正切值

ソースコード または GitHubで表示
python
@property
+    return math.cos(self.radian)

@property

method tan(self) -> float

説明: 正切值。

戻り値: 正切值

ソースコード または GitHubで表示
python
@property
 def tan(self) -> float:
     """
         正切值。
         Returns:
             正切值
         """
-    return math.tan(self.radian)

@property

func cot(self) -> float

説明: 余切值。

戻り値: 余切值

ソースコード または GitHubで表示
python
@property
+    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

func sec(self) -> float

説明: 正割值。

戻り値: 正割值

ソースコード または GitHubで表示
python
@property
+    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

func csc(self) -> float

説明: 余割值。

戻り値: 余割值

ソースコード または GitHubで表示
python
@property
+    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)

func self + other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian + other.radian, is_radian=True)

func __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
-    return approx(self.radian, other.radian)

func self - other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian - other.radian, is_radian=True)

func self * other: float => AnyAngle

ソースコード または GitHubで表示
python
def __mul__(self, other: float) -> 'AnyAngle':
-    return AnyAngle(self.radian * other, is_radian=True)

@overload

func self / other: float => AnyAngle

ソースコード または GitHubで表示
python
@overload
+    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

func self / other: AnyAngle => float

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

method self / other: AnyAngle => float

ソースコード または GitHubで表示
python
@overload
 def __truediv__(self, other: 'AnyAngle') -> float:
-    ...

func self / other

ソースコード または GitHubで表示
python
def __truediv__(self, other):
+    ...

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)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + 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 63f2ceb..710db57 100644 --- a/ja/api/mp_math/const.html +++ b/ja/api/mp_math/const.html @@ -6,20 +6,20 @@ mbcp.mp_math.const | MBCP ドキュメント - + - - + + - + -
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リファレンス

- +
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 efeac0f..cb93c1b 100644 --- a/ja/api/mp_math/equation.html +++ b/ja/api/mp_math/equation.html @@ -6,19 +6,19 @@ mbcp.mp_math.equation | MBCP ドキュメント - + - - + + - + -
Skip to content

mbcp.mp_math.equation

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

class CurveEquation

func __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):
+    
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:
@@ -28,7 +28,7 @@
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

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

説明: 计算曲线上的点。

引数:

  • *t:
  • 参数:

戻り値: 目标点

ソースコード または GitHubで表示
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    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:
@@ -82,8 +82,8 @@
             return result_func(*args)
         return high_order_partial_derivative_func
     else:
-        raise ValueError('Invalid var type')

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + 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 c173582..995c2f3 100644 --- a/ja/api/mp_math/function.html +++ b/ja/api/mp_math/function.html @@ -6,19 +6,19 @@ mbcp.mp_math.function | MBCP ドキュメント - + - - + + - + -
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:
+    
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]
@@ -59,8 +59,8 @@
     def curried_func(*args2: Var) -> Var:
         """@litedoc-hide"""
         return func(*args, *args2)
-    return curried_func

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + 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 6f59f4b..c76f0a7 100644 --- a/ja/api/mp_math/index.html +++ b/ja/api/mp_math/index.html @@ -6,20 +6,20 @@ mbcp.mp_math | MBCP ドキュメント - + - - + + - + -
Skip to content

mbcp.mp_math

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

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- +
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 f7f110c..18a3f27 100644 --- a/ja/api/mp_math/line.html +++ b/ja/api/mp_math/line.html @@ -6,19 +6,19 @@ mbcp.mp_math.line | MBCP ドキュメント - + - - + + - + -
Skip to content

mbcp.mp_math.line

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

class Line3

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

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

引数:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
ソースコード または GitHubで表示
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
+    
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:
@@ -26,7 +26,7 @@
             direction ([`Vector3`](./vector#class-vector3)): 方向向量
         """
     self.point = point
-    self.direction = direction

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

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

引数:

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

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
+    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:
@@ -35,7 +35,7 @@
         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)

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

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

引数:

  • other (Line3): 另一条直线

戻り値: AnyAngle: 夹角

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
+    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:
@@ -43,7 +43,7 @@
         Returns:
             [`AnyAngle`](./angle#class-anyangle): 夹角
         """
-    return self.direction.cal_angle(other.direction)

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

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

引数:

戻り値: float: 距离

例外:

ソースコード または GitHubで表示
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
+    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:
@@ -65,7 +65,7 @@
     elif isinstance(other, Point3):
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
-        raise TypeError('Unsupported type.')

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

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

引数:

  • other (Line3): 另一条直线

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
+        raise TypeError('Unsupported type.')

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

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

引数:

  • other (Line3): 另一条直线

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
     """
         计算两条直线的交点。
         Args:
@@ -80,7 +80,7 @@
         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

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

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

引数:

戻り値: Line3: 垂线

ソースコード または GitHubで表示
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
+    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:
@@ -88,7 +88,7 @@
         Returns:
             [`Line3`](./line#class-line3): 垂线
         """
-    return Line3(point, self.direction.cross(point - self.point))

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

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

引数:

戻り値: Point3: 点

ソースコード または GitHubで表示
python
def get_point(self, t: RealNumber) -> 'Point3':
+    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:
@@ -96,13 +96,13 @@
         Returns:
             [`Point3`](./point#class-point3): 点
         """
-    return self.point + t * self.direction

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

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

戻り値: tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]: 参数方程

ソースコード または GitHubで表示
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
+    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)

func 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:
+    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:
@@ -111,7 +111,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.direction.is_approx_parallel(other.direction, epsilon)

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

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

引数:

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Line3') -> 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:
@@ -119,7 +119,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.direction.is_parallel(other.direction)

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

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

引数:

戻り値: bool: 是否共线

ソースコード または GitHubで表示
python
def is_collinear(self, other: 'Line3') -> 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:
@@ -127,7 +127,7 @@
         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)

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

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

引数:

戻り値: bool: 是否在直线上

ソースコード または GitHubで表示
python
def is_point_on(self, point: 'Point3') -> 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:
@@ -135,7 +135,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
         """
-    return (point - self.point).is_parallel(self.direction)

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

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

引数:

戻り値: bool: 是否共面

ソースコード または GitHubで表示
python
def is_coplanar(self, other: 'Line3') -> 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。
@@ -144,7 +144,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
         """
-    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

func simplify(self)

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

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

ソースコード または GitHubで表示
python
def simplify(self):
+    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

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

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

ソースコード または GitHubで表示
python
def simplify(self):
     """
         简化直线方程,等价相等。
         自体简化,不返回值。
@@ -157,7 +157,7 @@
     if self.direction.y == 0:
         self.point.y = 0
     if self.direction.z == 0:
-        self.point.z = 0

@classmethod

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

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

引数:

戻り値: Line3: 直线

ソースコード または GitHubで表示
python
@classmethod
+        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':
     """
         工厂函数 由两点构造直线。
@@ -168,7 +168,7 @@
             [`Line3`](./line#class-line3): 直线
         """
     direction = p2 - p1
-    return cls(p1, direction)

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

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

引数:

  • other (Line3): 另一条直线

戻り値: Line3 | Point3 | None: 交集

ソースコード または GitHubで表示
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
+    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:
@@ -181,7 +181,7 @@
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
-        return self.cal_intersection(other)

func __eq__(self, other) -> bool

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

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

引数:

  • other (Line3): 另一条直线

戻り値: bool: 是否等价

ソースコード または GitHubで表示
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
@@ -191,8 +191,8 @@
         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リファレンス

- + 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.html b/ja/api/mp_math/mp_math.html deleted file mode 100644 index d84968a..0000000 --- a/ja/api/mp_math/mp_math.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.mp_math | MBCP ドキュメント - - - - - - - - - - - - - - -
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/mp_math_typing.html b/ja/api/mp_math/mp_math_typing.html index 9cb2edd..7ca735d 100644 --- a/ja/api/mp_math/mp_math_typing.html +++ b/ja/api/mp_math/mp_math_typing.html @@ -6,20 +6,20 @@ mbcp.mp_math.mp_math_typing | MBCP ドキュメント - + - - + + - + -
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リファレンス

- +
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 ef74bc9..db5b994 100644 --- a/ja/api/mp_math/plane.html +++ b/ja/api/mp_math/plane.html @@ -6,19 +6,19 @@ mbcp.mp_math.plane | MBCP ドキュメント - + - - + + - + -
Skip to content

mbcp.mp_math.plane

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

class Plane3

func __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):
+    
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:
@@ -30,7 +30,7 @@
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

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

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

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Plane3') -> bool:
+    self.d = d

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

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

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Plane3') -> bool:
     """
         判断两个平面是否近似相等。
         Args:
@@ -48,7 +48,7 @@
         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

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

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

引数:

戻り値: AnyAngle: 夹角

例外:

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+        return False

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

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

引数:

戻り値: AnyAngle: 夹角

例外:

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     """
         计算平面与平面之间的夹角。
         Args:
@@ -63,7 +63,7 @@
     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)}')

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

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

引数:

戻り値: float: 距离

例外:

ソースコード または GitHubで表示
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
+        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:
@@ -78,7 +78,7 @@
     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)}')

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

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

引数:

  • other (Plane3): 另一个平面

戻り値: Line3: 交线

例外:

ソースコード または GitHubで表示
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
+        raise TypeError(f'Unsupported type: {type(other)}')

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

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

引数:

  • other (Plane3): 另一个平面

戻り値: Line3: 交线

例外:

ソースコード または GitHubで表示
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     """
         计算两平面的交线。
         Args:
@@ -104,7 +104,7 @@
         A = np.array([[self.a, self.b], [other.a, other.b]])
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
-    return Line3(Point3(x, y, z), direction)

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

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

引数:

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
+    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:
@@ -118,7 +118,7 @@
         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))

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

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

引数:

戻り値: Plane3: 平面

ソースコード または GitHubで表示
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
+    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:
@@ -126,7 +126,7 @@
         Returns:
             [`Plane3`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

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

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

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Plane3') -> bool:
+    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:
@@ -134,14 +134,14 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.normal.is_parallel(other.normal)

@property

func normal(self) -> Vector3

説明: 平面的法向量。

戻り値: Vector3: 法向量

ソースコード または GitHubで表示
python
@property
+    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

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

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

引数:

戻り値: Plane3: 平面

ソースコード または GitHubで表示
python
@classmethod
+    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':
     """
         工厂函数 由点和法向量构造平面(点法式构造)。
@@ -153,7 +153,7 @@
         """
     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

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

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

引数:

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

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
+    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':
     """
         工厂函数 由三点构造平面。
@@ -167,7 +167,7 @@
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

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

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

引数:

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

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
+    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':
     """
         工厂函数 由两直线构造平面。
@@ -181,7 +181,7 @@
     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

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

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

引数:

戻り値: 平面

ソースコード または GitHubで表示
python
@classmethod
+    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':
     """
         工厂函数 由点和直线构造平面。
@@ -191,11 +191,11 @@
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

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

ソースコード または GitHubで表示
python
@overload
+    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

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

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

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

ソースコード または GitHubで表示
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
-    ...

func __and__(self, other)

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

引数:

戻り値: Line3 | Point3 | None: 交集

例外:

ソースコード または GitHubで表示
python
def __and__(self, other):
+    ...

method __and__(self, other)

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

引数:

戻り値: Line3 | Point3 | None: 交集

例外:

ソースコード または GitHubで表示
python
def __and__(self, other):
     """
         取两平面的交集(人话:交线)
         Args:
@@ -214,7 +214,7 @@
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

func __eq__(self, other) -> bool

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

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否等价

ソースコード または GitHubで表示
python
def __eq__(self, other) -> bool:
+        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:
@@ -222,9 +222,9 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

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

ソースコード または GitHubで表示
python
def __rand__(self, other: 'Line3') -> 'Point3':
-    return self.cal_intersection_point3(other)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + 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 755a30e..f5ea891 100644 --- a/ja/api/mp_math/point.html +++ b/ja/api/mp_math/point.html @@ -6,19 +6,19 @@ mbcp.mp_math.point | MBCP ドキュメント - + - - + + - + -
Skip to content

mbcp.mp_math.point

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

class Point3

func __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):
+    
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:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    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:
@@ -37,11 +37,11 @@
         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

func self + other: Vector3 => Point3

ソースコード または GitHubで表示
python
@overload
+    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

func self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

func self + other

説明: P + V -> P P + P -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __add__(self, other):
+    ...

method self + other

説明: P + V -> P P + P -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __add__(self, other):
     """
         P + V -> P
         P + P -> P
@@ -50,7 +50,7 @@
         Returns:
             [`Point3`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

func __eq__(self, other)

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

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
+    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:
@@ -58,7 +58,7 @@
         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)

func self - other: Point3 => Vector3

説明: P - P -> V

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

引数:

戻り値: Vector3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other: 'Point3') -> 'Vector3':
+    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
 
@@ -69,8 +69,8 @@
             [`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リファレンス

- + 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 b36ea46..3e9dfa8 100644 --- a/ja/api/mp_math/segment.html +++ b/ja/api/mp_math/segment.html @@ -6,19 +6,19 @@ mbcp.mp_math.segment | MBCP ドキュメント - + - - + + - + -
Skip to content

mbcp.mp_math.segment

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

class Segment3

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

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

引数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
ソースコード または GitHubで表示
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
+    
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:
@@ -32,8 +32,8 @@
     '长度'
     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リファレンス

- + 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 092ef15..1bcd397 100644 --- a/ja/api/mp_math/utils.html +++ b/ja/api/mp_math/utils.html @@ -6,19 +6,19 @@ mbcp.mp_math.utils | MBCP ドキュメント - + - - + + - + -
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:
+    
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:
@@ -29,13 +29,13 @@
     Returns:
         `float`: 限定在区间内的值
     """
-    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

説明: 用于近似比较对象

引数:

ソースコード または GitHubで表示
python
def __init__(self, value: RealNumber):
+    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

func __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
+    self.value = value

method __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
             return abs(self.value - other) < APPROX
@@ -45,8 +45,8 @@
         if isinstance(other, (Vector3, Point3, Plane3, Line3)):
             return all([approx(self.value.x, other.x), approx(self.value.y, other.y), approx(self.value.z, other.z)])
         else:
-            self.raise_type_error(other)

func raise_type_error(self, other)

ソースコード または GitHubで表示
python
def raise_type_error(self, other):
-    raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

func __ne__(self, other)

ソースコード または GitHubで表示
python
def __ne__(self, other):
+            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。
@@ -86,8 +86,8 @@
     elif x < 0:
         return f'-{abs(x)}'
     else:
-        return ''

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + 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 4e316f8..1141169 100644 --- a/ja/api/mp_math/vector.html +++ b/ja/api/mp_math/vector.html @@ -6,19 +6,19 @@ mbcp.mp_math.vector | MBCP ドキュメント - + - - + + - + -
Skip to content

mbcp.mp_math.vector

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

class Vector3

func __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):
+    
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:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -38,7 +38,7 @@
         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])

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

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

引数:

戻り値: AnyAngle: 夹角

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
+    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

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

引数:

戻り値: AnyAngle: 夹角

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
     """
         计算两个向量之间的夹角。
         Args:
@@ -46,7 +46,7 @@
         Returns:
             [`AnyAngle`](./angle#class-anyangle): 夹角
         """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

説明: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

引数:

戻り値: Vector3: 叉乘结果

ソースコード または GitHubで表示
python
def cross(self, other: 'Vector3') -> 'Vector3':
+    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

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

説明: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

引数:

戻り値: Vector3: 叉乘结果

ソースコード または GitHubで表示
python
def cross(self, other: 'Vector3') -> 'Vector3':
     """
         向量积 叉乘:v1 cross v2 -> v3
 
@@ -66,7 +66,7 @@
         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)

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

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

引数:

戻り値: bool: 是否近似平行

ソースコード または GitHubで表示
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -75,7 +75,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

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

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

引数:

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Vector3') -> 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:
@@ -83,7 +83,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.cross(other).approx(zero_vector3)

func normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

ソースコード または GitHubで表示
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

method normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

ソースコード または GitHubで表示
python
def normalize(self):
     """
         将向量归一化。
 
@@ -92,33 +92,33 @@
     length = self.length
     self.x /= length
     self.y /= length
-    self.z /= length

@property

func np_array(self) -> np.ndarray

戻り値: np.ndarray: numpy数组

ソースコード または GitHubで表示
python
@property
+    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

func length(self) -> float

説明: 向量的模。

戻り値: float: 模

ソースコード または GitHubで表示
python
@property
+    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

func unit(self) -> Vector3

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

戻り値: Vector3: 单位向量

ソースコード または GitHubで表示
python
@property
+    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

func __abs__(self)

ソースコード または GitHubで表示
python
def __abs__(self):
-    return self.length

@overload

func self + other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+    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

func self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

func self + other

説明: V + P -> P

V + V -> V

引数:

戻り値: Vector3 | Point3: 新的向量或点

ソースコード または GitHubで表示
python
def __add__(self, other):
+    ...

method self + other

説明: V + P -> P

V + V -> V

引数:

戻り値: Vector3 | Point3: 新的向量或点

ソースコード または GitHubで表示
python
def __add__(self, other):
     """
         V + P -> P
 
@@ -133,7 +133,7 @@
     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)}'")

func __eq__(self, other)

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

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
+        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

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

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
     """
         判断两个向量是否相等。
         Args:
@@ -141,7 +141,7 @@
         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)

func self + other: Point3 => Point3

説明: P + V -> P

别去点那边实现了。

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __radd__(self, other: 'Point3') -> 'Point3':
+    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
 
@@ -151,11 +151,11 @@
         Returns:
             [`Point3`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+    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

func self - other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

method self - other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __sub__(self, other: 'Point3') -> 'Point3':
-    ...

func self - other

説明: V - P -> P

V - V -> V

引数:

戻り値: Vector3 | Point3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other):
+    ...

method self - other

説明: V - P -> P

V - V -> V

引数:

戻り値: Vector3 | Point3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other):
     """
         V - P -> P
 
@@ -170,7 +170,7 @@
     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)}"')

func self - other: Point3

説明: P - V -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __rsub__(self, other: 'Point3'):
+        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:
@@ -181,11 +181,11 @@
     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

func self * other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+        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

func self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

method self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

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

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

引数:

戻り値: Vector3: 数组运算结果

ソースコード または GitHubで表示
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
+    ...

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

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

引数:

戻り値: Vector3: 数组运算结果

ソースコード または GitHubで表示
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
     """
         数组运算 非点乘。点乘使用@,叉乘使用cross。
         Args:
@@ -198,8 +198,8 @@
     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)}'")

func self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

func self @ other: Vector3 => RealNumber

説明: 点乘。

引数:

戻り値: float: 点乘结果

ソースコード または GitHubで表示
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
+        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:
@@ -207,15 +207,15 @@
         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

func self / other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
-    return Vector3(self.x / other, self.y / other, self.z / other)

func - self => Vector3

説明: 取负。

戻り値: Vector3: 负向量

ソースコード または GitHubで表示
python
def __neg__(self) -> 'Vector3':
+    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リファレンス

- + 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 dde6619..4c68c5a 100644 --- a/ja/api/particle/index.html +++ b/ja/api/particle/index.html @@ -6,20 +6,20 @@ mbcp.particle | MBCP ドキュメント - + - - + + - + - - + + \ No newline at end of file diff --git a/ja/api/particle/particle.html b/ja/api/particle/particle.html deleted file mode 100644 index f2c25b8..0000000 --- a/ja/api/particle/particle.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.particle | MBCP ドキュメント - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ja/api/presets/index.html b/ja/api/presets/index.html index b2ed878..a1192a0 100644 --- a/ja/api/presets/index.html +++ b/ja/api/presets/index.html @@ -6,20 +6,20 @@ mbcp.presets | MBCP ドキュメント - + - - + + - + - - + + \ No newline at end of file diff --git a/ja/api/presets/model/index.html b/ja/api/presets/model/index.html index 68faea3..2b1df4f 100644 --- a/ja/api/presets/model/index.html +++ b/ja/api/presets/model/index.html @@ -6,19 +6,19 @@ mbcp.presets.model | MBCP ドキュメント - + - - + + - + -
Skip to content

mbcp.presets.model

説明: 几何模型点集

class GeometricModels

@staticmethod

func sphere(radius: float, density: float)

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

引数:

  • radius:
  • density:

戻り値: List[Point3]: 球体上的点集。

ソースコード または GitHubで表示
python
@staticmethod
+    
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):
     """
         生成球体上的点集。
@@ -35,8 +35,8 @@
     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)]

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + 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/api/presets/model/model.html b/ja/api/presets/model/model.html deleted file mode 100644 index 55b5a1e..0000000 --- a/ja/api/presets/model/model.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - mbcp.presets.model | MBCP ドキュメント - - - - - - - - - - - - - - -
Skip to content

mbcp.presets.model

説明: 几何模型点集

class GeometricModels

@staticmethod

func 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)])
-    theta_list = np.sqrt(num * np.pi) * phi_list
-    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)]

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- - - - \ No newline at end of file diff --git a/ja/api/presets/presets.html b/ja/api/presets/presets.html deleted file mode 100644 index 542f607..0000000 --- a/ja/api/presets/presets.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.presets | MBCP ドキュメント - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ja/demo/best-practice.html b/ja/demo/best-practice.html index c1f044e..0e17a2c 100644 --- a/ja/demo/best-practice.html +++ b/ja/demo/best-practice.html @@ -6,10 +6,10 @@ ベストプラクティス | MBCP ドキュメント - + - - + + @@ -18,8 +18,8 @@ - - + + \ No newline at end of file diff --git a/ja/guide/index.html b/ja/guide/index.html index a7f2f68..3c931e3 100644 --- a/ja/guide/index.html +++ b/ja/guide/index.html @@ -6,10 +6,10 @@ 开始不了一点 | MBCP ドキュメント - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

开始不了一点

12x111

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- +
Skip to content

开始不了一点

12x111

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

+ \ No newline at end of file diff --git a/ja/index.html b/ja/index.html index 227265d..254bc47 100644 --- a/ja/index.html +++ b/ja/index.html @@ -6,10 +6,10 @@ MBCP ドキュメント - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

MBCP

More basic change particle

ジオメトリ演算とパーティクル作成のためのライブラリ

MBCP logo

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- +
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 ea798ef..9837c6d 100644 --- a/ja/refer/index.html +++ b/ja/refer/index.html @@ -6,10 +6,10 @@ Reference | MBCP ドキュメント - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

Reference

Help us to improve the documentation

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- +
Skip to content

Reference

Help us to improve the documentation

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

+ \ No newline at end of file diff --git a/refer/function/curry.html b/refer/function/curry.html index 5f7a4fd..6c7c03c 100644 --- a/refer/function/curry.html +++ b/refer/function/curry.html @@ -6,10 +6,10 @@ 柯里化 | MBCP 文档 - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

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

- +
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 faf69a1..26c1a85 100644 --- a/refer/function/function.html +++ b/refer/function/function.html @@ -6,10 +6,10 @@ 函数 | MBCP 文档 - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

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

- +
Skip to content

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

+ \ No newline at end of file diff --git a/refer/index.html b/refer/index.html index 37d8d41..05db968 100644 --- a/refer/index.html +++ b/refer/index.html @@ -6,10 +6,10 @@ 参考 | MBCP 文档 - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

Reference

Help us to improve the documentation

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

- +
Skip to content

Reference

Help us to improve the documentation

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

+ \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index d4567e7..bb915ee 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://mbcp.sfkm.me/en/api/api.htmlhttps://mbcp.sfkm.me/ja/api/api.htmlhttps://mbcp.sfkm.me/api/api.htmlhttps://mbcp.sfkm.me/zht/api/api.htmlhttps://mbcp.sfkm.me/en/api/https://mbcp.sfkm.me/ja/api/https://mbcp.sfkm.me/api/https://mbcp.sfkm.me/zht/api/https://mbcp.sfkm.me/en/api/mp_math/angle.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/angle.htmlhttps://mbcp.sfkm.me/api/mp_math/angle.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/angle.htmlhttps://mbcp.sfkm.me/en/api/mp_math/const.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/const.htmlhttps://mbcp.sfkm.me/api/mp_math/const.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/const.htmlhttps://mbcp.sfkm.me/en/api/mp_math/equation.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/equation.htmlhttps://mbcp.sfkm.me/api/mp_math/equation.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/equation.htmlhttps://mbcp.sfkm.me/en/api/mp_math/function.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/function.htmlhttps://mbcp.sfkm.me/api/mp_math/function.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/function.htmlhttps://mbcp.sfkm.me/en/api/mp_math/https://mbcp.sfkm.me/ja/api/mp_math/https://mbcp.sfkm.me/api/mp_math/https://mbcp.sfkm.me/zht/api/mp_math/https://mbcp.sfkm.me/en/api/mp_math/line.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/line.htmlhttps://mbcp.sfkm.me/api/mp_math/line.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/line.htmlhttps://mbcp.sfkm.me/en/api/mp_math/mp_math.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/mp_math.htmlhttps://mbcp.sfkm.me/api/mp_math/mp_math.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/mp_math.htmlhttps://mbcp.sfkm.me/en/api/mp_math/mp_math_typing.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/mp_math_typing.htmlhttps://mbcp.sfkm.me/api/mp_math/mp_math_typing.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/mp_math_typing.htmlhttps://mbcp.sfkm.me/en/api/mp_math/plane.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/plane.htmlhttps://mbcp.sfkm.me/api/mp_math/plane.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/plane.htmlhttps://mbcp.sfkm.me/en/api/mp_math/point.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/point.htmlhttps://mbcp.sfkm.me/api/mp_math/point.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/point.htmlhttps://mbcp.sfkm.me/en/api/mp_math/segment.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/segment.htmlhttps://mbcp.sfkm.me/api/mp_math/segment.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/segment.htmlhttps://mbcp.sfkm.me/en/api/mp_math/utils.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/utils.htmlhttps://mbcp.sfkm.me/api/mp_math/utils.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/utils.htmlhttps://mbcp.sfkm.me/en/api/mp_math/vector.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/vector.htmlhttps://mbcp.sfkm.me/api/mp_math/vector.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/vector.htmlhttps://mbcp.sfkm.me/en/api/particle/https://mbcp.sfkm.me/ja/api/particle/https://mbcp.sfkm.me/api/particle/https://mbcp.sfkm.me/zht/api/particle/https://mbcp.sfkm.me/en/api/particle/particle.htmlhttps://mbcp.sfkm.me/ja/api/particle/particle.htmlhttps://mbcp.sfkm.me/api/particle/particle.htmlhttps://mbcp.sfkm.me/zht/api/particle/particle.htmlhttps://mbcp.sfkm.me/en/api/presets/https://mbcp.sfkm.me/ja/api/presets/https://mbcp.sfkm.me/api/presets/https://mbcp.sfkm.me/zht/api/presets/https://mbcp.sfkm.me/en/api/presets/model/https://mbcp.sfkm.me/ja/api/presets/model/https://mbcp.sfkm.me/api/presets/model/https://mbcp.sfkm.me/zht/api/presets/model/https://mbcp.sfkm.me/en/api/presets/model/model.htmlhttps://mbcp.sfkm.me/ja/api/presets/model/model.htmlhttps://mbcp.sfkm.me/api/presets/model/model.htmlhttps://mbcp.sfkm.me/zht/api/presets/model/model.htmlhttps://mbcp.sfkm.me/en/api/presets/presets.htmlhttps://mbcp.sfkm.me/ja/api/presets/presets.htmlhttps://mbcp.sfkm.me/api/presets/presets.htmlhttps://mbcp.sfkm.me/zht/api/presets/presets.htmlhttps://mbcp.sfkm.me/en/demo/best-practice.html2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/ja/demo/best-practice.html2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/demo/best-practice.html2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/zht/demo/best-practice.html2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/en/guide/2024-08-29T11:00:01.000Zhttps://mbcp.sfkm.me/ja/guide/2024-08-29T11:00:01.000Zhttps://mbcp.sfkm.me/guide/2024-08-30T06:29:58.000Zhttps://mbcp.sfkm.me/zht/guide/2024-08-29T11:00:01.000Zhttps://mbcp.sfkm.me/en/2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/ja/2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/zht/2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/en/refer/2024-08-30T09:56:01.000Zhttps://mbcp.sfkm.me/ja/refer/2024-08-30T09:56:01.000Zhttps://mbcp.sfkm.me/refer/2024-08-30T09:56:01.000Zhttps://mbcp.sfkm.me/zht/refer/2024-08-30T09:56:01.000Zhttps://mbcp.sfkm.me/demo/2024-08-29T11:00:01.000Zhttps://mbcp.sfkm.me/refer/function/curry.html2024-08-30T09:56:01.000Zhttps://mbcp.sfkm.me/refer/function/function.html2024-08-30T09:56:01.000Z \ No newline at end of file +https://mbcp.sfkm.me/en/api/https://mbcp.sfkm.me/ja/api/https://mbcp.sfkm.me/api/https://mbcp.sfkm.me/zht/api/https://mbcp.sfkm.me/en/api/mp_math/angle.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/angle.htmlhttps://mbcp.sfkm.me/api/mp_math/angle.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/angle.htmlhttps://mbcp.sfkm.me/en/api/mp_math/const.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/const.htmlhttps://mbcp.sfkm.me/api/mp_math/const.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/const.htmlhttps://mbcp.sfkm.me/en/api/mp_math/equation.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/equation.htmlhttps://mbcp.sfkm.me/api/mp_math/equation.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/equation.htmlhttps://mbcp.sfkm.me/en/api/mp_math/function.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/function.htmlhttps://mbcp.sfkm.me/api/mp_math/function.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/function.htmlhttps://mbcp.sfkm.me/en/api/mp_math/https://mbcp.sfkm.me/ja/api/mp_math/https://mbcp.sfkm.me/api/mp_math/https://mbcp.sfkm.me/zht/api/mp_math/https://mbcp.sfkm.me/en/api/mp_math/line.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/line.htmlhttps://mbcp.sfkm.me/api/mp_math/line.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/line.htmlhttps://mbcp.sfkm.me/en/api/mp_math/mp_math_typing.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/mp_math_typing.htmlhttps://mbcp.sfkm.me/api/mp_math/mp_math_typing.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/mp_math_typing.htmlhttps://mbcp.sfkm.me/en/api/mp_math/plane.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/plane.htmlhttps://mbcp.sfkm.me/api/mp_math/plane.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/plane.htmlhttps://mbcp.sfkm.me/en/api/mp_math/point.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/point.htmlhttps://mbcp.sfkm.me/api/mp_math/point.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/point.htmlhttps://mbcp.sfkm.me/en/api/mp_math/segment.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/segment.htmlhttps://mbcp.sfkm.me/api/mp_math/segment.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/segment.htmlhttps://mbcp.sfkm.me/en/api/mp_math/utils.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/utils.htmlhttps://mbcp.sfkm.me/api/mp_math/utils.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/utils.htmlhttps://mbcp.sfkm.me/en/api/mp_math/vector.htmlhttps://mbcp.sfkm.me/ja/api/mp_math/vector.htmlhttps://mbcp.sfkm.me/api/mp_math/vector.htmlhttps://mbcp.sfkm.me/zht/api/mp_math/vector.htmlhttps://mbcp.sfkm.me/en/api/particle/https://mbcp.sfkm.me/ja/api/particle/https://mbcp.sfkm.me/api/particle/https://mbcp.sfkm.me/zht/api/particle/https://mbcp.sfkm.me/en/api/presets/https://mbcp.sfkm.me/ja/api/presets/https://mbcp.sfkm.me/api/presets/https://mbcp.sfkm.me/zht/api/presets/https://mbcp.sfkm.me/en/api/presets/model/https://mbcp.sfkm.me/ja/api/presets/model/https://mbcp.sfkm.me/api/presets/model/https://mbcp.sfkm.me/zht/api/presets/model/https://mbcp.sfkm.me/en/demo/best-practice.html2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/ja/demo/best-practice.html2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/demo/best-practice.html2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/zht/demo/best-practice.html2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/en/guide/2024-08-29T11:00:01.000Zhttps://mbcp.sfkm.me/ja/guide/2024-08-29T11:00:01.000Zhttps://mbcp.sfkm.me/guide/2024-09-03T14:29:26.000Zhttps://mbcp.sfkm.me/zht/guide/2024-08-29T11:00:01.000Zhttps://mbcp.sfkm.me/en/2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/ja/2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/zht/2024-08-31T02:12:28.000Zhttps://mbcp.sfkm.me/en/refer/2024-08-30T09:56:01.000Zhttps://mbcp.sfkm.me/ja/refer/2024-08-30T09:56:01.000Zhttps://mbcp.sfkm.me/refer/2024-08-30T09:56:01.000Zhttps://mbcp.sfkm.me/zht/refer/2024-08-30T09:56:01.000Zhttps://mbcp.sfkm.me/demo/2024-08-29T11:00:01.000Zhttps://mbcp.sfkm.me/refer/function/curry.html2024-08-30T09:56:01.000Zhttps://mbcp.sfkm.me/refer/function/function.html2024-08-30T09:56:01.000Z \ No newline at end of file diff --git a/zht/api/api.html b/zht/api/api.html deleted file mode 100644 index 351f60b..0000000 --- a/zht/api/api.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp | MBCP 文檔 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/zht/api/index.html b/zht/api/index.html index 5054955..256839e 100644 --- a/zht/api/index.html +++ b/zht/api/index.html @@ -6,20 +6,20 @@ mbcp | MBCP 文檔 - + - - + + - + - - +
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 d660f46..0ffd52c 100644 --- a/zht/api/mp_math/angle.html +++ b/zht/api/mp_math/angle.html @@ -6,19 +6,19 @@ mbcp.mp_math.angle | MBCP 文檔 - + - - + + - + -
Skip to content

mbcp.mp_math.angle

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

class Angle

class AnyAngle(Angle)

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

説明: 任意角度。

變數説明:

  • value: 角度或弧度值
  • is_radian: 是否为弧度,默认为否
源碼於GitHub上查看
python
def __init__(self, value: float, is_radian: bool=False):
+    
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:
@@ -28,96 +28,96 @@
     if is_radian:
         self.radian = value
     else:
-        self.radian = value * PI / 180

@property

func complementary(self) -> AnyAngle

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

返回: 余角

源碼於GitHub上查看
python
@property
+        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

func supplementary(self) -> AnyAngle

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

返回: 补角

源碼於GitHub上查看
python
@property
+    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

func degree(self) -> float

説明: 角度。

返回: 弧度

源碼於GitHub上查看
python
@property
+    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

func minimum_positive(self) -> AnyAngle

説明: 最小正角。

返回: 最小正角度

源碼於GitHub上查看
python
@property
+    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

func maximum_negative(self) -> AnyAngle

説明: 最大负角。

返回: 最大负角度

源碼於GitHub上查看
python
@property
+    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

func sin(self) -> float

説明: 正弦值。

返回: 正弦值

源碼於GitHub上查看
python
@property
+    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

func cos(self) -> float

説明: 余弦值。

返回: 余弦值

源碼於GitHub上查看
python
@property
+    return math.sin(self.radian)

@property

method cos(self) -> float

説明: 余弦值。

返回: 余弦值

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

@property

func tan(self) -> float

説明: 正切值。

返回: 正切值

源碼於GitHub上查看
python
@property
+    return math.cos(self.radian)

@property

method tan(self) -> float

説明: 正切值。

返回: 正切值

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

@property

func cot(self) -> float

説明: 余切值。

返回: 余切值

源碼於GitHub上查看
python
@property
+    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

func sec(self) -> float

説明: 正割值。

返回: 正割值

源碼於GitHub上查看
python
@property
+    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

func csc(self) -> float

説明: 余割值。

返回: 余割值

源碼於GitHub上查看
python
@property
+    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)

func self + other: AnyAngle => AnyAngle

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

func __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
-    return approx(self.radian, other.radian)

func self - other: AnyAngle => AnyAngle

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

func self * other: float => AnyAngle

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

@overload

func self / other: float => AnyAngle

源碼於GitHub上查看
python
@overload
+    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

func self / other: AnyAngle => float

源碼於GitHub上查看
python
@overload
+    ...

@overload

method self / other: AnyAngle => float

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

func self / other

源碼於GitHub上查看
python
def __truediv__(self, other):
+    ...

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)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + 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 5e5a32c..b55e405 100644 --- a/zht/api/mp_math/const.html +++ b/zht/api/mp_math/const.html @@ -6,20 +6,20 @@ mbcp.mp_math.const | MBCP 文檔 - + - - + + - + -
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 生成

- +
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 19e0c3b..350525e 100644 --- a/zht/api/mp_math/equation.html +++ b/zht/api/mp_math/equation.html @@ -6,19 +6,19 @@ mbcp.mp_math.equation | MBCP 文檔 - + - - + + - + -
Skip to content

mbcp.mp_math.equation

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

class CurveEquation

func __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):
+    
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:
@@ -28,7 +28,7 @@
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

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

説明: 计算曲线上的点。

變數説明:

  • *t:
  • 参数:

返回: 目标点

源碼於GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    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:
@@ -82,8 +82,8 @@
             return result_func(*args)
         return high_order_partial_derivative_func
     else:
-        raise ValueError('Invalid var type')

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + 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 fdf936e..dcb7787 100644 --- a/zht/api/mp_math/function.html +++ b/zht/api/mp_math/function.html @@ -6,19 +6,19 @@ mbcp.mp_math.function | MBCP 文檔 - + - - + + - + -
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:
+    
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]
@@ -59,8 +59,8 @@
     def curried_func(*args2: Var) -> Var:
         """@litedoc-hide"""
         return func(*args, *args2)
-    return curried_func

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + 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 1255371..91a83e0 100644 --- a/zht/api/mp_math/index.html +++ b/zht/api/mp_math/index.html @@ -6,20 +6,20 @@ mbcp.mp_math | MBCP 文檔 - + - - + + - + -
Skip to content

mbcp.mp_math

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

文檔由 VitePress 構建 | API引用由 litedoc 生成

- +
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 0e45ecc..98318fd 100644 --- a/zht/api/mp_math/line.html +++ b/zht/api/mp_math/line.html @@ -6,19 +6,19 @@ mbcp.mp_math.line | MBCP 文檔 - + - - + + - + -
Skip to content

mbcp.mp_math.line

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

class Line3

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

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

變數説明:

  • point (Point3): 直线上的一点
  • direction (Vector3): 方向向量
源碼於GitHub上查看
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
+    
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:
@@ -26,7 +26,7 @@
             direction ([`Vector3`](./vector#class-vector3)): 方向向量
         """
     self.point = point
-    self.direction = direction

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

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

變數説明:

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

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
+    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:
@@ -35,7 +35,7 @@
         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)

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

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

變數説明:

  • other (Line3): 另一条直线

返回: AnyAngle: 夹角

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
+    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:
@@ -43,7 +43,7 @@
         Returns:
             [`AnyAngle`](./angle#class-anyangle): 夹角
         """
-    return self.direction.cal_angle(other.direction)

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

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

變數説明:

返回: float: 距离

抛出:

源碼於GitHub上查看
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
+    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:
@@ -65,7 +65,7 @@
     elif isinstance(other, Point3):
         return (other - self.point).cross(self.direction).length / self.direction.length
     else:
-        raise TypeError('Unsupported type.')

func cal_intersection(self, other: Line3) -> Point3

説明: 计算两条直线的交点。

變數説明:

  • other (Line3): 另一条直线

返回: Point3: 交点

抛出:

源碼於GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
+        raise TypeError('Unsupported type.')

method cal_intersection(self, other: Line3) -> Point3

説明: 计算两条直线的交点。

變數説明:

  • other (Line3): 另一条直线

返回: Point3: 交点

抛出:

源碼於GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
     """
         计算两条直线的交点。
         Args:
@@ -80,7 +80,7 @@
         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

func cal_perpendicular(self, point: Point3) -> Line3

説明: 计算直线经过指定点p的垂线。

變數説明:

返回: Line3: 垂线

源碼於GitHub上查看
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
+    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:
@@ -88,7 +88,7 @@
         Returns:
             [`Line3`](./line#class-line3): 垂线
         """
-    return Line3(point, self.direction.cross(point - self.point))

func get_point(self, t: RealNumber) -> Point3

説明: 获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。

變數説明:

返回: Point3: 点

源碼於GitHub上查看
python
def get_point(self, t: RealNumber) -> 'Point3':
+    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:
@@ -96,13 +96,13 @@
         Returns:
             [`Point3`](./point#class-point3): 点
         """
-    return self.point + t * self.direction

func get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]

説明: 获取直线的参数方程。

返回: tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]: 参数方程

源碼於GitHub上查看
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
+    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)

func 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:
+    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:
@@ -111,7 +111,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.direction.is_approx_parallel(other.direction, epsilon)

func is_parallel(self, other: Line3) -> bool

説明: 判断两条直线是否平行。

變數説明:

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Line3') -> 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:
@@ -119,7 +119,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.direction.is_parallel(other.direction)

func is_collinear(self, other: Line3) -> bool

説明: 判断两条直线是否共线。

變數説明:

返回: bool: 是否共线

源碼於GitHub上查看
python
def is_collinear(self, other: 'Line3') -> 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:
@@ -127,7 +127,7 @@
         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)

func is_point_on(self, point: Point3) -> bool

説明: 判断点是否在直线上。

變數説明:

返回: bool: 是否在直线上

源碼於GitHub上查看
python
def is_point_on(self, point: 'Point3') -> 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:
@@ -135,7 +135,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否在直线上
         """
-    return (point - self.point).is_parallel(self.direction)

func is_coplanar(self, other: Line3) -> bool

説明: 判断两条直线是否共面。 充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。

變數説明:

返回: bool: 是否共面

源碼於GitHub上查看
python
def is_coplanar(self, other: 'Line3') -> 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。
@@ -144,7 +144,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否共面
         """
-    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

func simplify(self)

説明: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

源碼於GitHub上查看
python
def simplify(self):
+    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

method simplify(self)

説明: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

源碼於GitHub上查看
python
def simplify(self):
     """
         简化直线方程,等价相等。
         自体简化,不返回值。
@@ -157,7 +157,7 @@
     if self.direction.y == 0:
         self.point.y = 0
     if self.direction.z == 0:
-        self.point.z = 0

@classmethod

func from_two_points(cls, p1: Point3, p2: Point3) -> Line3

説明: 工厂函数 由两点构造直线。

變數説明:

返回: Line3: 直线

源碼於GitHub上查看
python
@classmethod
+        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':
     """
         工厂函数 由两点构造直线。
@@ -168,7 +168,7 @@
             [`Line3`](./line#class-line3): 直线
         """
     direction = p2 - p1
-    return cls(p1, direction)

func __and__(self, other: Line3) -> Line3 | Point3 | None

説明: 计算两条直线点集合的交集。重合线返回自身,平行线返回None,交线返回交点。

變數説明:

  • other (Line3): 另一条直线

返回: Line3 | Point3 | None: 交集

源碼於GitHub上查看
python
def __and__(self, other: 'Line3') -> 'Line3 | Point3 | None':
+    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:
@@ -181,7 +181,7 @@
     elif self.is_parallel(other) or not self.is_coplanar(other):
         return None
     else:
-        return self.cal_intersection(other)

func __eq__(self, other) -> bool

説明: 判断两条直线是否等价。

v1 // v2 ∧ (p1 - p2) // v1

變數説明:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源碼於GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
@@ -191,8 +191,8 @@
         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 生成

- + 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.html b/zht/api/mp_math/mp_math.html deleted file mode 100644 index cc67713..0000000 --- a/zht/api/mp_math/mp_math.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.mp_math | MBCP 文檔 - - - - - - - - - - - - - - -
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/mp_math_typing.html b/zht/api/mp_math/mp_math_typing.html index 71fb2d4..c5fc986 100644 --- a/zht/api/mp_math/mp_math_typing.html +++ b/zht/api/mp_math/mp_math_typing.html @@ -6,20 +6,20 @@ mbcp.mp_math.mp_math_typing | MBCP 文檔 - + - - + + - + -
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 生成

- +
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 4f644d5..915d98d 100644 --- a/zht/api/mp_math/plane.html +++ b/zht/api/mp_math/plane.html @@ -6,19 +6,19 @@ mbcp.mp_math.plane | MBCP 文檔 - + - - + + - + -
Skip to content

mbcp.mp_math.plane

説明: 本模块定义了三维空间中的平面类

class Plane3

func __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):
+    
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:
@@ -30,7 +30,7 @@
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

func approx(self, other: Plane3) -> bool

説明: 判断两个平面是否近似相等。

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
+    self.d = d

method approx(self, other: Plane3) -> bool

説明: 判断两个平面是否近似相等。

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
     """
         判断两个平面是否近似相等。
         Args:
@@ -48,7 +48,7 @@
         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

func cal_angle(self, other: Line3 | Plane3) -> AnyAngle

説明: 计算平面与平面之间的夹角。

變數説明:

返回: AnyAngle: 夹角

抛出:

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+        return False

method cal_angle(self, other: Line3 | Plane3) -> AnyAngle

説明: 计算平面与平面之间的夹角。

變數説明:

返回: AnyAngle: 夹角

抛出:

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
     """
         计算平面与平面之间的夹角。
         Args:
@@ -63,7 +63,7 @@
     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)}')

func cal_distance(self, other: Plane3 | Point3) -> float

説明: 计算平面与平面或点之间的距离。

變數説明:

返回: float: 距离

抛出:

源碼於GitHub上查看
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
+        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:
@@ -78,7 +78,7 @@
     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)}')

func cal_intersection_line3(self, other: Plane3) -> Line3

説明: 计算两平面的交线。

變數説明:

  • other (Plane3): 另一个平面

返回: Line3: 交线

抛出:

源碼於GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
+        raise TypeError(f'Unsupported type: {type(other)}')

method cal_intersection_line3(self, other: Plane3) -> Line3

説明: 计算两平面的交线。

變數説明:

  • other (Plane3): 另一个平面

返回: Line3: 交线

抛出:

源碼於GitHub上查看
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
     """
         计算两平面的交线。
         Args:
@@ -104,7 +104,7 @@
         A = np.array([[self.a, self.b], [other.a, other.b]])
         B = np.array([-self.d, -other.d])
         x, y = np.linalg.solve(A, B)
-    return Line3(Point3(x, y, z), direction)

func cal_intersection_point3(self, other: Line3) -> Point3

説明: 计算平面与直线的交点。

變數説明:

返回: Point3: 交点

抛出:

源碼於GitHub上查看
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
+    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:
@@ -118,7 +118,7 @@
         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))

func cal_parallel_plane3(self, point: Point3) -> Plane3

説明: 计算平行于该平面且过指定点的平面。

變數説明:

返回: Plane3: 平面

源碼於GitHub上查看
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
+    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:
@@ -126,7 +126,7 @@
         Returns:
             [`Plane3`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

func is_parallel(self, other: Plane3) -> bool

説明: 判断两个平面是否平行。

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Plane3') -> bool:
+    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:
@@ -134,14 +134,14 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.normal.is_parallel(other.normal)

@property

func normal(self) -> Vector3

説明: 平面的法向量。

返回: Vector3: 法向量

源碼於GitHub上查看
python
@property
+    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

func from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3

説明: 工厂函数 由点和法向量构造平面(点法式构造)。

變數説明:

返回: Plane3: 平面

源碼於GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由点和法向量构造平面(点法式构造)。
@@ -153,7 +153,7 @@
         """
     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

func from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3

説明: 工厂函数 由三点构造平面。

變數説明:

  • p1 (Point3): 点1
  • p2 (Point3): 点2
  • p3 (Point3): 点3

返回: 平面

源碼於GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由三点构造平面。
@@ -167,7 +167,7 @@
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

func from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3

説明: 工厂函数 由两直线构造平面。

變數説明:

  • l1 (Line3): 直线
  • l2 (Line3): 直线

返回: 平面

源碼於GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由两直线构造平面。
@@ -181,7 +181,7 @@
     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

func from_point_and_line(cls, point: Point3, line: Line3) -> Plane3

説明: 工厂函数 由点和直线构造平面。

變數説明:

返回: 平面

源碼於GitHub上查看
python
@classmethod
+    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':
     """
         工厂函数 由点和直线构造平面。
@@ -191,11 +191,11 @@
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

func __and__(self, other: Line3) -> Point3 | None

源碼於GitHub上查看
python
@overload
+    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

func __and__(self, other: Plane3) -> Line3 | None

源碼於GitHub上查看
python
@overload
+    ...

@overload

method __and__(self, other: Plane3) -> Line3 | None

源碼於GitHub上查看
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
-    ...

func __and__(self, other)

説明: 取两平面的交集(人话:交线)

變數説明:

返回: Line3 | Point3 | None: 交集

抛出:

源碼於GitHub上查看
python
def __and__(self, other):
+    ...

method __and__(self, other)

説明: 取两平面的交集(人话:交线)

變數説明:

返回: Line3 | Point3 | None: 交集

抛出:

源碼於GitHub上查看
python
def __and__(self, other):
     """
         取两平面的交集(人话:交线)
         Args:
@@ -214,7 +214,7 @@
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

func __eq__(self, other) -> bool

説明: 判断两个平面是否等价。

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否等价

源碼於GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
@@ -222,9 +222,9 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

func __rand__(self, other: Line3) -> Point3

源碼於GitHub上查看
python
def __rand__(self, other: 'Line3') -> 'Point3':
-    return self.cal_intersection_point3(other)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + 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 a0cf2ec..e40f559 100644 --- a/zht/api/mp_math/point.html +++ b/zht/api/mp_math/point.html @@ -6,19 +6,19 @@ mbcp.mp_math.point | MBCP 文檔 - + - - + + - + -
Skip to content

mbcp.mp_math.point

説明: 本模块定义了三维空间中点的类。

class Point3

func __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):
+    
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:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

func approx(self, other: Point3, epsilon: float = APPROX) -> bool

説明: 判断两个点是否近似相等。

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    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:
@@ -37,11 +37,11 @@
         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

func self + other: Vector3 => Point3

源碼於GitHub上查看
python
@overload
+    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

func self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

func self + other

説明: P + V -> P P + P -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __add__(self, other):
+    ...

method self + other

説明: P + V -> P P + P -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __add__(self, other):
     """
         P + V -> P
         P + P -> P
@@ -50,7 +50,7 @@
         Returns:
             [`Point3`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

func __eq__(self, other)

説明: 判断两个点是否相等。

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
+    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:
@@ -58,7 +58,7 @@
         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)

func self - other: Point3 => Vector3

説明: P - P -> V

P - V -> P 已在 Vector3 中实现

變數説明:

返回: Vector3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':
+    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
 
@@ -69,8 +69,8 @@
             [`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 生成

- + 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 353205a..0526f0a 100644 --- a/zht/api/mp_math/segment.html +++ b/zht/api/mp_math/segment.html @@ -6,19 +6,19 @@ mbcp.mp_math.segment | MBCP 文檔 - + - - + + - + -
Skip to content

mbcp.mp_math.segment

説明: 本模块定义了三维空间中的线段类

class Segment3

func __init__(self, p1: Point3, p2: Point3)

説明: 三维空间中的线段。

變數説明:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源碼於GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
+    
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:
@@ -32,8 +32,8 @@
     '长度'
     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 生成

- + 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 4c21b76..9b548b4 100644 --- a/zht/api/mp_math/utils.html +++ b/zht/api/mp_math/utils.html @@ -6,19 +6,19 @@ mbcp.mp_math.utils | MBCP 文檔 - + - - + + - + -
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:
+    
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:
@@ -29,13 +29,13 @@
     Returns:
         `float`: 限定在区间内的值
     """
-    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

説明: 用于近似比较对象

變數説明:

源碼於GitHub上查看
python
def __init__(self, value: RealNumber):
+    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

func __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
+    self.value = value

method __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
     if isinstance(self.value, (float, int)):
         if isinstance(other, (float, int)):
             return abs(self.value - other) < APPROX
@@ -45,8 +45,8 @@
         if isinstance(other, (Vector3, Point3, Plane3, Line3)):
             return all([approx(self.value.x, other.x), approx(self.value.y, other.y), approx(self.value.z, other.z)])
         else:
-            self.raise_type_error(other)

func raise_type_error(self, other)

源碼於GitHub上查看
python
def raise_type_error(self, other):
-    raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

func __ne__(self, other)

源碼於GitHub上查看
python
def __ne__(self, other):
+            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。
@@ -86,8 +86,8 @@
     elif x < 0:
         return f'-{abs(x)}'
     else:
-        return ''

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + 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 087a15a..7454431 100644 --- a/zht/api/mp_math/vector.html +++ b/zht/api/mp_math/vector.html @@ -6,19 +6,19 @@ mbcp.mp_math.vector | MBCP 文檔 - + - - + + - + -
Skip to content

mbcp.mp_math.vector

説明: 本模块定义了3维向量的类Vector3,以及一些常用的向量。

class Vector3

func __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):
+    
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:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

func approx(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似相等。

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -38,7 +38,7 @@
         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])

func cal_angle(self, other: Vector3) -> AnyAngle

説明: 计算两个向量之间的夹角。

變數説明:

返回: AnyAngle: 夹角

源碼於GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
+    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

説明: 计算两个向量之间的夹角。

變數説明:

返回: AnyAngle: 夹角

源碼於GitHub上查看
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
     """
         计算两个向量之间的夹角。
         Args:
@@ -46,7 +46,7 @@
         Returns:
             [`AnyAngle`](./angle#class-anyangle): 夹角
         """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

func cross(self, other: Vector3) -> Vector3

説明: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

變數説明:

返回: Vector3: 叉乘结果

源碼於GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':
+    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

method cross(self, other: Vector3) -> Vector3

説明: 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。 其余结果的模为平行四边形的面积。

變數説明:

返回: Vector3: 叉乘结果

源碼於GitHub上查看
python
def cross(self, other: 'Vector3') -> 'Vector3':
     """
         向量积 叉乘:v1 cross v2 -> v3
 
@@ -66,7 +66,7 @@
         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)

func is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似平行。

變數説明:

返回: bool: 是否近似平行

源碼於GitHub上查看
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    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:
@@ -75,7 +75,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

func is_parallel(self, other: Vector3) -> bool

説明: 判断两个向量是否平行。

變數説明:

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> 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:
@@ -83,7 +83,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.cross(other).approx(zero_vector3)

func normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

源碼於GitHub上查看
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

method normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

源碼於GitHub上查看
python
def normalize(self):
     """
         将向量归一化。
 
@@ -92,33 +92,33 @@
     length = self.length
     self.x /= length
     self.y /= length
-    self.z /= length

@property

func np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源碼於GitHub上查看
python
@property
+    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

func length(self) -> float

説明: 向量的模。

返回: float: 模

源碼於GitHub上查看
python
@property
+    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

func unit(self) -> Vector3

説明: 获取该向量的单位向量。

返回: Vector3: 单位向量

源碼於GitHub上查看
python
@property
+    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

func __abs__(self)

源碼於GitHub上查看
python
def __abs__(self):
-    return self.length

@overload

func self + other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+    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

func self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

method self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

func self + other

説明: V + P -> P

V + V -> V

變數説明:

返回: Vector3 | Point3: 新的向量或点

源碼於GitHub上查看
python
def __add__(self, other):
+    ...

method self + other

説明: V + P -> P

V + V -> V

變數説明:

返回: Vector3 | Point3: 新的向量或点

源碼於GitHub上查看
python
def __add__(self, other):
     """
         V + P -> P
 
@@ -133,7 +133,7 @@
     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)}'")

func __eq__(self, other)

説明: 判断两个向量是否相等。

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
+        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

method __eq__(self, other)

説明: 判断两个向量是否相等。

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
     """
         判断两个向量是否相等。
         Args:
@@ -141,7 +141,7 @@
         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)

func self + other: Point3 => Point3

説明: P + V -> P

别去点那边实现了。

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __radd__(self, other: 'Point3') -> 'Point3':
+    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
 
@@ -151,11 +151,11 @@
         Returns:
             [`Point3`](./point#class-point3): 新的点
         """
-    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+    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

func self - other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

method self - other: Point3 => Point3

源碼於GitHub上查看
python
@overload
 def __sub__(self, other: 'Point3') -> 'Point3':
-    ...

func self - other

説明: V - P -> P

V - V -> V

變數説明:

返回: Vector3 | Point3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other):
+    ...

method self - other

説明: V - P -> P

V - V -> V

變數説明:

返回: Vector3 | Point3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other):
     """
         V - P -> P
 
@@ -170,7 +170,7 @@
     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)}"')

func self - other: Point3

説明: P - V -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __rsub__(self, other: 'Point3'):
+        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:
@@ -181,11 +181,11 @@
     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

func self * other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+        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

func self * other: RealNumber => Vector3

源碼於GitHub上查看
python
@overload
+    ...

@overload

method self * other: RealNumber => Vector3

源碼於GitHub上查看
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

func self * other: int | float | Vector3 => Vector3

説明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

變數説明:

返回: Vector3: 数组运算结果

源碼於GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
+    ...

method self * other: int | float | Vector3 => Vector3

説明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

變數説明:

返回: Vector3: 数组运算结果

源碼於GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
     """
         数组运算 非点乘。点乘使用@,叉乘使用cross。
         Args:
@@ -198,8 +198,8 @@
     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)}'")

func self * other: RealNumber => Vector3

源碼於GitHub上查看
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

func self @ other: Vector3 => RealNumber

説明: 点乘。

變數説明:

返回: float: 点乘结果

源碼於GitHub上查看
python
def __matmul__(self, other: 'Vector3') -> 'RealNumber':
+        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:
@@ -207,15 +207,15 @@
         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

func self / other: RealNumber => Vector3

源碼於GitHub上查看
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
-    return Vector3(self.x / other, self.y / other, self.z / other)

func - self => Vector3

説明: 取负。

返回: Vector3: 负向量

源碼於GitHub上查看
python
def __neg__(self) -> 'Vector3':
+    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 生成

- + 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 2599a92..4099ac6 100644 --- a/zht/api/particle/index.html +++ b/zht/api/particle/index.html @@ -6,20 +6,20 @@ mbcp.particle | MBCP 文檔 - + - - + + - + - - + + \ No newline at end of file diff --git a/zht/api/particle/particle.html b/zht/api/particle/particle.html deleted file mode 100644 index 4952378..0000000 --- a/zht/api/particle/particle.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.particle | MBCP 文檔 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/zht/api/presets/index.html b/zht/api/presets/index.html index 4d59034..f33776a 100644 --- a/zht/api/presets/index.html +++ b/zht/api/presets/index.html @@ -6,20 +6,20 @@ mbcp.presets | MBCP 文檔 - + - - + + - + - - + + \ No newline at end of file diff --git a/zht/api/presets/model/index.html b/zht/api/presets/model/index.html index 2fe2757..263211e 100644 --- a/zht/api/presets/model/index.html +++ b/zht/api/presets/model/index.html @@ -6,19 +6,19 @@ mbcp.presets.model | MBCP 文檔 - + - - + + - + -
Skip to content

mbcp.presets.model

説明: 几何模型点集

class GeometricModels

@staticmethod

func sphere(radius: float, density: float)

説明: 生成球体上的点集。

變數説明:

  • radius:
  • density:

返回: List[Point3]: 球体上的点集。

源碼於GitHub上查看
python
@staticmethod
+    
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):
     """
         生成球体上的点集。
@@ -35,8 +35,8 @@
     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)]

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + 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/api/presets/model/model.html b/zht/api/presets/model/model.html deleted file mode 100644 index 57ca40e..0000000 --- a/zht/api/presets/model/model.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - mbcp.presets.model | MBCP 文檔 - - - - - - - - - - - - - - -
Skip to content

mbcp.presets.model

説明: 几何模型点集

class GeometricModels

@staticmethod

func 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)])
-    theta_list = np.sqrt(num * np.pi) * phi_list
-    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)]

文檔由 VitePress 構建 | API引用由 litedoc 生成

- - - - \ No newline at end of file diff --git a/zht/api/presets/presets.html b/zht/api/presets/presets.html deleted file mode 100644 index d1e9bd8..0000000 --- a/zht/api/presets/presets.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - mbcp.presets | MBCP 文檔 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/zht/demo/best-practice.html b/zht/demo/best-practice.html index 28cd8d4..4280c5c 100644 --- a/zht/demo/best-practice.html +++ b/zht/demo/best-practice.html @@ -6,10 +6,10 @@ 最佳實踐 | MBCP 文檔 - + - - + + @@ -18,8 +18,8 @@ - - + + \ No newline at end of file diff --git a/zht/guide/index.html b/zht/guide/index.html index 2976075..479a3d0 100644 --- a/zht/guide/index.html +++ b/zht/guide/index.html @@ -6,10 +6,10 @@ 开始不了一点 | MBCP 文檔 - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

开始不了一点

12x111

文檔由 VitePress 構建 | API引用由 litedoc 生成

- +
Skip to content

开始不了一点

12x111

文檔由 VitePress 構建 | API引用由 litedoc 生成

+ \ No newline at end of file diff --git a/zht/index.html b/zht/index.html index 51cc448..f193ab7 100644 --- a/zht/index.html +++ b/zht/index.html @@ -6,10 +6,10 @@ MBCP 文檔 - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

MBCP

更多基礎變化粒子

用於幾何運算和 當個創世神 粒子製作的軟體庫

MBCP logo

文檔由 VitePress 構建 | API引用由 litedoc 生成

- +
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 14963a0..0d3395b 100644 --- a/zht/refer/index.html +++ b/zht/refer/index.html @@ -6,10 +6,10 @@ Reference | MBCP 文檔 - + - - + + @@ -18,8 +18,8 @@ -
Skip to content

Reference

Help us to improve the documentation

文檔由 VitePress 構建 | API引用由 litedoc 生成

- +
Skip to content

Reference

Help us to improve the documentation

文檔由 VitePress 構建 | API引用由 litedoc 生成

+ \ No newline at end of file