diff --git a/404.html b/404.html index 31e5a86..7bd7310 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 index 390d087..5b2941e 100644 --- a/api/api.html +++ b/api/api.html @@ -6,10 +6,10 @@ mbcp | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

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

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

mbcp

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

mbcp.mp_math:数学工具

mbcp.particle:粒子生成工具

mbcp.presets:预设

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

- + \ No newline at end of file diff --git a/api/mp_math/angle.html b/api/mp_math/angle.html index 8b7be2b..c09d3ef 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)

def __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)

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

def complementary(self) -> AnyAngle

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

返回: 余角

源代码在GitHub上查看
python
@property
+        self.radian = value * PI / 180

@property

func 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

def supplementary(self) -> AnyAngle

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

返回: 补角

源代码在GitHub上查看
python
@property
+    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

func supplementary(self) -> AnyAngle

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

返回: 补角

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

@property

def degree(self) -> float

说明: 角度。

返回: 弧度

源代码在GitHub上查看
python
@property
+    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

func degree(self) -> float

说明: 角度。

返回: 弧度

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

@property

def minimum_positive(self) -> AnyAngle

说明: 最小正角。

返回: 最小正角度

源代码在GitHub上查看
python
@property
+    return self.radian * 180 / PI

@property

func minimum_positive(self) -> AnyAngle

说明: 最小正角。

返回: 最小正角度

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

@property

def maximum_negative(self) -> AnyAngle

说明: 最大负角。

返回: 最大负角度

源代码在GitHub上查看
python
@property
+    return AnyAngle(self.radian % (2 * PI))

@property

func maximum_negative(self) -> AnyAngle

说明: 最大负角。

返回: 最大负角度

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

@property

def sin(self) -> float

说明: 正弦值。

返回: 正弦值

源代码在GitHub上查看
python
@property
+    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

func sin(self) -> float

说明: 正弦值。

返回: 正弦值

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

@property

def cos(self) -> float

说明: 余弦值。

返回: 余弦值

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

@property

func cos(self) -> float

说明: 余弦值。

返回: 余弦值

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

@property

def tan(self) -> float

说明: 正切值。

返回: 正切值

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

@property

func tan(self) -> float

说明: 正切值。

返回: 正切值

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

@property

def cot(self) -> float

说明: 余切值。

返回: 余切值

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

@property

func cot(self) -> float

说明: 余切值。

返回: 余切值

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

@property

def sec(self) -> float

说明: 正割值。

返回: 正割值

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

@property

func sec(self) -> float

说明: 正割值。

返回: 正割值

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

@property

def csc(self) -> float

说明: 余割值。

返回: 余割值

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

@property

func csc(self) -> float

说明: 余割值。

返回: 余割值

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

def self + other: AnyAngle => AnyAngle

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

def __eq__(self, other)

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

def self - other: AnyAngle => AnyAngle

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

def self * other: float => AnyAngle

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

@overload

def self / other: float => AnyAngle

源代码在GitHub上查看
python
@overload
+    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
 def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

def self / other: AnyAngle => float

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

@overload

func self / other: AnyAngle => float

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

def self / other

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

func 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 生成

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

mbcp.mp_math.const

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

var PI

  • 说明: 常量 π

  • 默认值: math.pi

var E

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

  • 默认值: math.e

var GOLDEN_RATIO

  • 说明: 黄金分割比

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

var GAMMA

  • 说明: 欧拉常数

  • 默认值: 0.5772156649015329

var EPSILON

  • 说明: 精度误差

  • 默认值: 0.0001

var APPROX

  • 说明: 约等于判定误差

  • 默认值: 0.001

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

- + \ No newline at end of file diff --git a/api/mp_math/equation.html b/api/mp_math/equation.html index 128eedf..0304557 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

def __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

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):
     """
         曲线方程。
         Args:
@@ -28,7 +28,7 @@
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

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

说明: 计算曲线上的点。

参数:

  • *t:
  • 参数:

返回: 目标点

源代码在GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    self.z_func = z_func

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

说明: 计算曲线上的点。

参数:

  • *t:
  • 参数:

返回: 目标点

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

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

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

WARNING

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

参数:

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

返回: 偏导函数

引发:

  • ValueError 无效变量类型
源代码在GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
+        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

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

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

WARNING

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

参数:

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

返回: 偏导函数

引发:

  • ValueError 无效变量类型
源代码在GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
     """
     求N元函数一阶偏导函数。这玩意不太稳定,慎用。
     > [!warning]
@@ -83,7 +83,7 @@
         return high_order_partial_derivative_func
     else:
         raise ValueError('Invalid var type')

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

- + \ No newline at end of file diff --git a/api/mp_math/function.html b/api/mp_math/function.html index f11399d..29a614b 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

def 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]
@@ -34,7 +34,7 @@
     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)

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

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

TIP

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

参数:

返回: 柯里化后的函数

示例:

python
def add(a: int, b: int, c: int) -> int:
+    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:
@@ -60,7 +60,7 @@
         """@litedoc-hide"""
         return func(*args, *args2)
     return curried_func

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

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

mbcp.mp_math

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

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

- + \ No newline at end of file diff --git a/api/mp_math/line.html b/api/mp_math/line.html index e02f61d..6dbe441 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

def __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

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

def 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

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:
     """
         判断两条直线是否近似相等。
         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)

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

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

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

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

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

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

参数:

  • other (Line3): 另一条直线

返回: Point3: 交点

引发:

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

func 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

def 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

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

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

func 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

def 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

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

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

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:
     """
         判断两条直线是否近似平行。
         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)

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

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

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

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

参数:

返回: bool: 是否共线

源代码在GitHub上查看
python
def is_collinear(self, other: 'Line3') -> 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:
     """
         判断两条直线是否共线。
         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)

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

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

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

func 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

def simplify(self)

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

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

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

func 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

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

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

参数:

返回: Line3: 直线

源代码在GitHub上查看
python
@classmethod
+        self.point.z = 0

@classmethod

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

def __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)

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

def __eq__(self, other) -> bool

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

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

参数:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源代码在GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
@@ -192,7 +192,7 @@
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
     return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)

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

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

mbcp.mp_math

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

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

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

mbcp.mp_math.mp_math_typing

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

var RealNumber

  • 说明: 实数

  • 类型: TypeAlias

  • 默认值: int | float

var Number

  • 说明: 数

  • 类型: TypeAlias

  • 默认值: RealNumber | complex

var SingleVar

  • 说明: 单变量

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

var ArrayVar

  • 说明: 数组变量

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

var Var

  • 说明: 变量

  • 类型: TypeAlias

  • 默认值: SingleVar | ArrayVar

var OneSingleVarFunc

  • 说明: 一元单变量函数

  • 类型: TypeAlias

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

var OneArrayFunc

  • 说明: 一元数组函数

  • 类型: TypeAlias

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

var OneVarFunc

  • 说明: 一元函数

  • 类型: TypeAlias

  • 默认值: OneSingleVarFunc | OneArrayFunc

var TwoSingleVarsFunc

  • 说明: 二元单变量函数

  • 类型: TypeAlias

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

var TwoArraysFunc

  • 说明: 二元数组函数

  • 类型: TypeAlias

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

var TwoVarsFunc

  • 说明: 二元函数

  • 类型: TypeAlias

  • 默认值: TwoSingleVarsFunc | TwoArraysFunc

var ThreeSingleVarsFunc

  • 说明: 三元单变量函数

  • 类型: TypeAlias

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

var ThreeArraysFunc

  • 说明: 三元数组函数

  • 类型: TypeAlias

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

var ThreeVarsFunc

  • 说明: 三元函数

  • 类型: TypeAlias

  • 默认值: ThreeSingleVarsFunc | ThreeArraysFunc

var MultiSingleVarsFunc

  • 说明: 多元单变量函数

  • 类型: TypeAlias

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

var MultiArraysFunc

  • 说明: 多元数组函数

  • 类型: TypeAlias

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

var MultiVarsFunc

  • 说明: 多元函数

  • 类型: TypeAlias

  • 默认值: MultiSingleVarsFunc | MultiArraysFunc

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

- + \ No newline at end of file diff --git a/api/mp_math/plane.html b/api/mp_math/plane.html index a5d7baf..91844cd 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

def __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

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):
     """
         平面方程:ax + by + cz + d = 0
         Args:
@@ -30,7 +30,7 @@
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

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

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

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

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

func 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

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

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

参数:

返回: AnyAngle: 夹角

引发:

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

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

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

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

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

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

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

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

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

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

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

func 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

def normal(self) -> Vector3

说明: 平面的法向量。

返回: Vector3: 法向量

源代码在GitHub上查看
python
@property
+    return self.normal.is_parallel(other.normal)

@property

func 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

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

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

参数:

返回: Plane3: 平面

源代码在GitHub上查看
python
@classmethod
+    return Vector3(self.a, self.b, self.c)

@classmethod

func 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

def 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

func 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

def 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

func 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

def 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

func 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

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

源代码在GitHub上查看
python
@overload
+    return cls.from_point_and_normal(point, line.direction)

@overload

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

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

@overload

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

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

@overload

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

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

def __and__(self, other)

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

参数:

返回: Line3 | Point3 | None: 交集

引发:

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

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

def __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)}'")

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

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

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

- + \ No newline at end of file diff --git a/api/mp_math/point.html b/api/mp_math/point.html index 6f0ce09..183ae2d 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

def __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

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):
     """
         笛卡尔坐标系中的点。
         Args:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    self.z = z

func 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

def 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

func self + other: Vector3 => Point3

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

@overload

def self + other: Point3 => Point3

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

@overload

func self + other: Point3 => Point3

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

def self + other

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

参数:

返回: Point3: 新的点

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

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

def __eq__(self, other)

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

参数:

返回: bool: 是否相等

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

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

func self - other: Point3 => Vector3

说明: P - P -> V

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

参数:

返回: Vector3: 新的向量

源代码在GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':
     """
         P - P -> V
 
@@ -70,7 +70,7 @@
         """
     from .vector import Vector3
     return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)

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

- + \ No newline at end of file diff --git a/api/mp_math/segment.html b/api/mp_math/segment.html index bdef62d..3e45fed 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

def __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

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

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

参数:

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

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

- + \ No newline at end of file diff --git a/api/mp_math/utils.html b/api/mp_math/utils.html index 5da3fc6..e21a2f0 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

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

def 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

def __init__(self, value: RealNumber)

说明: 用于近似比较对象

参数:

源代码在GitHub上查看
python
def __init__(self, value: RealNumber):
+    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

说明: 用于近似比较对象

参数:

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

def __eq__(self, other)

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

func __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,9 +45,9 @@
         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)

def raise_type_error(self, other)

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

def __ne__(self, other)

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

def 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:
+            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):
+    return not self.__eq__(other)

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

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

参数:

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

返回: bool: 是否近似相等

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

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

说明: 获取数的符号。

参数:

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

返回: str: 符号 + - ""

源代码在GitHub上查看
python
def sign(x: float, only_neg: bool=False) -> str:
+    return abs(x - y) < epsilon

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

说明: 获取数的符号。

参数:

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

返回: str: 符号 + - ""

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

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

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

参数:

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

返回: str: 符号 + - ""

源代码在GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
+        return ''

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

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

参数:

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

返回: str: 符号 + - ""

源代码在GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
     """格式化符号数
     -1 -> -1
     1 -> +1
@@ -87,7 +87,7 @@
         return f'-{abs(x)}'
     else:
         return ''

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

- + \ No newline at end of file diff --git a/api/mp_math/vector.html b/api/mp_math/vector.html index d33a5a4..cd122ec 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

def __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

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):
     """
         3维向量
         Args:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

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

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

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    self.z = z

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

def 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])

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

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

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

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

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:
     """
         判断两个向量是否近似平行。
         Args:
@@ -75,7 +75,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

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

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

参数:

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> bool:
+    return self.cross(other).length < epsilon

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

def normalize(self)

说明: 将向量归一化。

自体归一化,不返回值。

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

func normalize(self)

说明: 将向量归一化。

自体归一化,不返回值。

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

@property

def np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源代码在GitHub上查看
python
@property
+    self.z /= length

@property

func 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

def length(self) -> float

说明: 向量的模。

返回: float: 模

源代码在GitHub上查看
python
@property
+    return np.array([self.x, self.y, self.z])

@property

func 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

def unit(self) -> Vector3

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

返回: Vector3: 单位向量

源代码在GitHub上查看
python
@property
+    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

func unit(self) -> Vector3

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

返回: Vector3: 单位向量

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

def __abs__(self)

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

@overload

def self + other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
+    return self / self.length

func __abs__(self)

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

@overload

func self + other: Vector3 => Vector3

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

@overload

def self + other: Point3 => Point3

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

@overload

func self + other: Point3 => Point3

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

def self + other

说明: V + P -> P

V + V -> V

参数:

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

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

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

def __eq__(self, other)

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

参数:

返回: bool: 是否相等

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

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

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

func 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

def self - other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
+    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

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

@overload

def self - other: Point3 => Point3

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

@overload

func self - other: Point3 => Point3

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

def self - other

说明: V - P -> P

V - V -> V

参数:

返回: Vector3 | Point3: 新的向量

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

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

def 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)}"')

func 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

def self * other: Vector3 => Vector3

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

@overload

func self * other: Vector3 => Vector3

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

@overload

def self * other: RealNumber => Vector3

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

@overload

func self * other: RealNumber => Vector3

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

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

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

参数:

返回: Vector3: 数组运算结果

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

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

def self * other: RealNumber => Vector3

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

def 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)}'")

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':
     """
         点乘。
         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

def self / other: RealNumber => Vector3

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

def - self => Vector3

说明: 取负。

返回: Vector3: 负向量

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

var zero_vector3

  • 说明: 零向量

  • 类型: Vector3

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

var x_axis

  • 说明: x轴单位向量

  • 类型: Vector3

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

var y_axis

  • 说明: y轴单位向量

  • 类型: Vector3

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

var z_axis

  • 说明: z轴单位向量

  • 类型: Vector3

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

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

- + \ No newline at end of file diff --git a/api/particle/index.html b/api/particle/index.html index 5ef47ad..74a2f6b 100644 --- a/api/particle/index.html +++ b/api/particle/index.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/api/particle/particle.html b/api/particle/particle.html index a348987..392c032 100644 --- a/api/particle/particle.html +++ b/api/particle/particle.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/api/presets/index.html b/api/presets/index.html index 10ab9da..d46bb5f 100644 --- a/api/presets/index.html +++ b/api/presets/index.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/api/presets/model/index.html b/api/presets/model/index.html index bb6be2e..6e2215a 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

def sphere(radius: float, density: float)

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

参数:

  • radius:
  • density:

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

源代码在GitHub上查看
python
@staticmethod
+    
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):
     """
         生成球体上的点集。
@@ -36,7 +36,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

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

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

mbcp.presets.model

说明: 几何模型点集

class GeometricModels

@staticmethod

def sphere(radius: float, density: float)

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

参数:

  • radius:
  • density:

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

源代码在GitHub上查看
python
@staticmethod
+    
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):
     """
         生成球体上的点集。
@@ -36,7 +36,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

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

- + \ No newline at end of file diff --git a/api/presets/presets.html b/api/presets/presets.html index 5739169..7c104da 100644 --- a/api/presets/presets.html +++ b/api/presets/presets.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/assets/api_mp_math_angle.md.3Na5IaYp.js b/assets/api_mp_math_angle.md.D0ius2dn.js similarity index 61% rename from assets/api_mp_math_angle.md.3Na5IaYp.js rename to assets/api_mp_math_angle.md.D0ius2dn.js index e2e4fa5..66a9b69 100644 --- a/assets/api_mp_math_angle.md.3Na5IaYp.js +++ b/assets/api_mp_math_angle.md.D0ius2dn.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)

def __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":"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)

说明: 任意角度。

参数:

  • 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

def complementary(self) -> AnyAngle

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

返回: 余角

源代码在GitHub上查看
python
@property
+        self.radian = value * PI / 180

@property

func 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

def supplementary(self) -> AnyAngle

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

返回: 补角

源代码在GitHub上查看
python
@property
+    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

func supplementary(self) -> AnyAngle

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

返回: 补角

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

@property

def degree(self) -> float

说明: 角度。

返回: 弧度

源代码在GitHub上查看
python
@property
+    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

func degree(self) -> float

说明: 角度。

返回: 弧度

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

@property

def minimum_positive(self) -> AnyAngle

说明: 最小正角。

返回: 最小正角度

源代码在GitHub上查看
python
@property
+    return self.radian * 180 / PI

@property

func minimum_positive(self) -> AnyAngle

说明: 最小正角。

返回: 最小正角度

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

@property

def maximum_negative(self) -> AnyAngle

说明: 最大负角。

返回: 最大负角度

源代码在GitHub上查看
python
@property
+    return AnyAngle(self.radian % (2 * PI))

@property

func maximum_negative(self) -> AnyAngle

说明: 最大负角。

返回: 最大负角度

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

@property

def sin(self) -> float

说明: 正弦值。

返回: 正弦值

源代码在GitHub上查看
python
@property
+    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

func sin(self) -> float

说明: 正弦值。

返回: 正弦值

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

@property

def cos(self) -> float

说明: 余弦值。

返回: 余弦值

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

@property

func cos(self) -> float

说明: 余弦值。

返回: 余弦值

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

@property

def tan(self) -> float

说明: 正切值。

返回: 正切值

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

@property

func tan(self) -> float

说明: 正切值。

返回: 正切值

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

@property

def cot(self) -> float

说明: 余切值。

返回: 余切值

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

@property

func cot(self) -> float

说明: 余切值。

返回: 余切值

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

@property

def sec(self) -> float

说明: 正割值。

返回: 正割值

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

@property

func sec(self) -> float

说明: 正割值。

返回: 正割值

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

@property

def csc(self) -> float

说明: 余割值。

返回: 余割值

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

@property

func csc(self) -> float

说明: 余割值。

返回: 余割值

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

def self + other: AnyAngle => AnyAngle

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

def __eq__(self, other)

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

def self - other: AnyAngle => AnyAngle

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

def self * other: float => AnyAngle

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

@overload

def self / other: float => AnyAngle

源代码在GitHub上查看
python
@overload
+    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
 def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

def self / other: AnyAngle => float

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

@overload

func self / other: AnyAngle => float

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

def self / other

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

func 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,d,o,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c 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 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.3Na5IaYp.lean.js b/assets/api_mp_math_angle.md.D0ius2dn.lean.js similarity index 86% rename from assets/api_mp_math_angle.md.3Na5IaYp.lean.js rename to assets/api_mp_math_angle.md.D0ius2dn.lean.js index a2c29e4..5db2722 100644 --- a/assets/api_mp_math_angle.md.3Na5IaYp.lean.js +++ b/assets/api_mp_math_angle.md.D0ius2dn.lean.js @@ -1 +1 @@ -import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/angle.md","filePath":"zh/api/mp_math/angle.md"}'),t={name:"api/mp_math/angle.md"},e=n("",80),l=[e];function h(p,k,r,d,o,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; +import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/angle.md","filePath":"zh/api/mp_math/angle.md"}'),t={name:"api/mp_math/angle.md"},e=n("",80),l=[e];function h(p,k,r,o,d,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; diff --git a/assets/api_mp_math_equation.md.z85zyCZL.js b/assets/api_mp_math_equation.md.D9gepkm-.js similarity index 71% rename from assets/api_mp_math_equation.md.z85zyCZL.js rename to assets/api_mp_math_equation.md.D9gepkm-.js index 84f5944..c81ecfd 100644 --- a/assets/api_mp_math_equation.md.z85zyCZL.js +++ b/assets/api_mp_math_equation.md.D9gepkm-.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

def __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

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):
     """
         曲线方程。
         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

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

说明: 计算曲线上的点。

参数:

  • *t:
  • 参数:

返回: 目标点

源代码在GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    self.z_func = z_func

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

说明: 计算曲线上的点。

参数:

  • *t:
  • 参数:

返回: 目标点

源代码在GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
     """
         计算曲线上的点。
         Args:
@@ -20,7 +20,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
-        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

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

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

WARNING

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

参数:

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

返回: 偏导函数

引发:

  • ValueError 无效变量类型
源代码在GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
+        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

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

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

WARNING

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

参数:

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

返回: 偏导函数

引发:

  • ValueError 无效变量类型
源代码在GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
     """
     求N元函数一阶偏导函数。这玩意不太稳定,慎用。
     > [!warning]
@@ -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,d,g){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(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}; diff --git a/assets/api_mp_math_equation.md.z85zyCZL.lean.js b/assets/api_mp_math_equation.md.D9gepkm-.lean.js similarity index 86% rename from assets/api_mp_math_equation.md.z85zyCZL.lean.js rename to assets/api_mp_math_equation.md.D9gepkm-.lean.js index 9c85f74..6be3a53 100644 --- a/assets/api_mp_math_equation.md.z85zyCZL.lean.js +++ b/assets/api_mp_math_equation.md.D9gepkm-.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/equation.md","filePath":"zh/api/mp_math/equation.md"}'),t={name:"api/mp_math/equation.md"},l=n("",23),p=[l];function h(e,k,r,E,d,g){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(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}; diff --git a/assets/api_mp_math_function.md.BhmJqpOo.js b/assets/api_mp_math_function.md.BhmJqpOo.js deleted file mode 100644 index 48c44bc..0000000 --- a/assets/api_mp_math_function.md.BhmJqpOo.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

def 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),y=[c],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("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)

def 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,y)),u]),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.js b/assets/api_mp_math_function.md.DCuJC29A.js new file mode 100644 index 0000000..f45ba9b --- /dev/null +++ b/assets/api_mp_math_function.md.DCuJC29A.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.BhmJqpOo.lean.js b/assets/api_mp_math_function.md.DCuJC29A.lean.js similarity index 95% rename from assets/api_mp_math_function.md.BhmJqpOo.lean.js rename to assets/api_mp_math_function.md.DCuJC29A.lean.js index 17003ac..48b5568 100644 --- a/assets/api_mp_math_function.md.BhmJqpOo.lean.js +++ b/assets/api_mp_math_function.md.DCuJC29A.lean.js @@ -1 +1 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/function.md","filePath":"zh/api/mp_math/function.md"}'),e={name:"api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),y=[c],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,y)),u]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; +import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"api/mp_math/function.md","filePath":"zh/api/mp_math/function.md"}'),e={name:"api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; diff --git a/assets/api_mp_math_line.md.Dovi6bdM.js b/assets/api_mp_math_line.md.ByGRRi0A.js similarity index 60% rename from assets/api_mp_math_line.md.Dovi6bdM.js rename to assets/api_mp_math_line.md.ByGRRi0A.js index 369c7ed..f408df4 100644 --- a/assets/api_mp_math_line.md.Dovi6bdM.js +++ b/assets/api_mp_math_line.md.ByGRRi0A.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

def __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":"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'):
     """
         三维空间中的直线。由一个点和一个方向向量确定。
         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

def 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

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:
     """
         判断两条直线是否近似相等。
         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)

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

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

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

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

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

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

参数:

  • other (Line3): 另一条直线

返回: Point3: 交点

引发:

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

func 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

def 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

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

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

func 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

def 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

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

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

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:
     """
         判断两条直线是否近似平行。
         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)

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

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

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

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

参数:

返回: bool: 是否共线

源代码在GitHub上查看
python
def is_collinear(self, other: 'Line3') -> 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:
     """
         判断两条直线是否共线。
         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)

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

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

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

func 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

def simplify(self)

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

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

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

func 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

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

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

参数:

返回: Line3: 直线

源代码在GitHub上查看
python
@classmethod
+        self.point.z = 0

@classmethod

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

def __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)

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

def __eq__(self, other) -> bool

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

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

参数:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源代码在GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
diff --git a/assets/api_mp_math_line.md.Dovi6bdM.lean.js b/assets/api_mp_math_line.md.ByGRRi0A.lean.js
similarity index 100%
rename from assets/api_mp_math_line.md.Dovi6bdM.lean.js
rename to assets/api_mp_math_line.md.ByGRRi0A.lean.js
diff --git a/assets/api_mp_math_plane.md.Dv-GWbJg.js b/assets/api_mp_math_plane.md.Ir4HtSn5.js
similarity index 72%
rename from assets/api_mp_math_plane.md.Dv-GWbJg.js
rename to assets/api_mp_math_plane.md.Ir4HtSn5.js
index 1cc8c7a..33c0d60 100644
--- a/assets/api_mp_math_plane.md.Dv-GWbJg.js
+++ b/assets/api_mp_math_plane.md.Ir4HtSn5.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.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

def __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 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):
     """
         平面方程: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 y
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

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

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

参数:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

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

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

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

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

参数:

返回: AnyAngle: 夹角

引发:

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

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

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

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

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

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

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

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

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

func 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 y
         Returns:
             [\`Plane3\`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

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

func 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 y
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.normal.is_parallel(other.normal)

@property

def normal(self) -> Vector3

说明: 平面的法向量。

返回: Vector3: 法向量

源代码在GitHub上查看
python
@property
+    return self.normal.is_parallel(other.normal)

@property

func 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

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

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

参数:

返回: Plane3: 平面

源代码在GitHub上查看
python
@classmethod
+    return Vector3(self.a, self.b, self.c)

@classmethod

func 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 y
         """
     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

def 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

func 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 y
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

def 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

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

def 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

func 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 y
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

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

源代码在GitHub上查看
python
@overload
+    return cls.from_point_and_normal(point, line.direction)

@overload

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

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

@overload

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

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

@overload

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

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

def __and__(self, other)

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

参数:

返回: Line3 | Point3 | None: 交集

引发:

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

func __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 y
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

def __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)}'")

func __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 y
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

def __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}; + 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}; diff --git a/assets/api_mp_math_plane.md.Dv-GWbJg.lean.js b/assets/api_mp_math_plane.md.Ir4HtSn5.lean.js similarity index 69% rename from assets/api_mp_math_plane.md.Dv-GWbJg.lean.js rename to assets/api_mp_math_plane.md.Ir4HtSn5.lean.js index 217bc99..aff7000 100644 --- a/assets/api_mp_math_plane.md.Dv-GWbJg.lean.js +++ b/assets/api_mp_math_plane.md.Ir4HtSn5.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.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}; +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}; diff --git a/assets/api_mp_math_point.md.BvvrKTY8.js b/assets/api_mp_math_point.md.CIRBY4Zg.js similarity index 57% rename from assets/api_mp_math_point.md.BvvrKTY8.js rename to assets/api_mp_math_point.md.CIRBY4Zg.js index e469f51..c9710a1 100644 --- a/assets/api_mp_math_point.md.BvvrKTY8.js +++ b/assets/api_mp_math_point.md.CIRBY4Zg.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

def __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":"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):
     """
         笛卡尔坐标系中的点。
         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

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

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

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    self.z = z

func 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

def 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

func self + other: Vector3 => Point3

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

@overload

def self + other: Point3 => Point3

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

@overload

func self + other: Point3 => Point3

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

def self + other

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

参数:

返回: Point3: 新的点

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

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

def __eq__(self, other)

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

参数:

返回: bool: 是否相等

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

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

func 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 e(p,k,o,r,d,g){return a(),i("div",null,h)}const y=s(n,[["render",e]]);export{E as __pageData,y as default}; + 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}; diff --git a/assets/api_mp_math_point.md.BvvrKTY8.lean.js b/assets/api_mp_math_point.md.CIRBY4Zg.lean.js similarity index 72% rename from assets/api_mp_math_point.md.BvvrKTY8.lean.js rename to assets/api_mp_math_point.md.CIRBY4Zg.lean.js index 2a6ff66..47771f4 100644 --- a/assets/api_mp_math_point.md.BvvrKTY8.lean.js +++ b/assets/api_mp_math_point.md.CIRBY4Zg.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 e(p,k,o,r,d,g){return a(),i("div",null,h)}const y=s(n,[["render",e]]);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"},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}; diff --git a/assets/api_mp_math_segment.md._n__ViVt.js b/assets/api_mp_math_segment.md.DFwFkY98.js similarity index 78% rename from assets/api_mp_math_segment.md._n__ViVt.js rename to assets/api_mp_math_segment.md.DFwFkY98.js index a4b157f..d3a0a79 100644 --- a/assets/api_mp_math_segment.md._n__ViVt.js +++ b/assets/api_mp_math_segment.md.DFwFkY98.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

def __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

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

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

参数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源代码在GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
     """
         三维空间中的线段。
         Args:
diff --git a/assets/api_mp_math_segment.md._n__ViVt.lean.js b/assets/api_mp_math_segment.md.DFwFkY98.lean.js
similarity index 100%
rename from assets/api_mp_math_segment.md._n__ViVt.lean.js
rename to assets/api_mp_math_segment.md.DFwFkY98.lean.js
diff --git a/assets/api_mp_math_utils.md.kW3A-lG9.js b/assets/api_mp_math_utils.md.CFXHDZgH.js
similarity index 58%
rename from assets/api_mp_math_utils.md.kW3A-lG9.js
rename to assets/api_mp_math_utils.md.CFXHDZgH.js
index fb79da9..5904472 100644
--- a/assets/api_mp_math_utils.md.kW3A-lG9.js
+++ b/assets/api_mp_math_utils.md.CFXHDZgH.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

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

def 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

def __init__(self, value: RealNumber)

说明: 用于近似比较对象

参数:

源代码在GitHub上查看
python
def __init__(self, value: RealNumber):
+    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

说明: 用于近似比较对象

参数:

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

def __eq__(self, other)

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

func __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,9 +25,9 @@ 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)

def raise_type_error(self, other)

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

def __ne__(self, other)

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

def 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:
+            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):
+    return not self.__eq__(other)

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

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

参数:

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

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
     """
     判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
     Args:
@@ -37,7 +37,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     Returns:
         [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
     """
-    return abs(x - y) < epsilon

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

说明: 获取数的符号。

参数:

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

返回: str: 符号 + - ""

源代码在GitHub上查看
python
def sign(x: float, only_neg: bool=False) -> str:
+    return abs(x - y) < epsilon

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

说明: 获取数的符号。

参数:

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

返回: str: 符号 + - ""

源代码在GitHub上查看
python
def sign(x: float, only_neg: bool=False) -> str:
     """获取数的符号。
     Args:
         x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
@@ -50,7 +50,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif x < 0:
         return '-'
     else:
-        return ''

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

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

参数:

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

返回: str: 符号 + - ""

源代码在GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
+        return ''

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

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

参数:

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

返回: str: 符号 + - ""

源代码在GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
     """格式化符号数
     -1 -> -1
     1 -> +1
@@ -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 e(p,k,r,o,d,g){return a(),i("div",null,h)}const E=s(n,[["render",e]]);export{F as __pageData,E as default}; + return ''
`,38),h=[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}; diff --git a/assets/api_mp_math_utils.md.kW3A-lG9.lean.js b/assets/api_mp_math_utils.md.CFXHDZgH.lean.js similarity index 72% rename from assets/api_mp_math_utils.md.kW3A-lG9.lean.js rename to assets/api_mp_math_utils.md.CFXHDZgH.lean.js index db5f944..38c2963 100644 --- a/assets/api_mp_math_utils.md.kW3A-lG9.lean.js +++ b/assets/api_mp_math_utils.md.CFXHDZgH.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 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}; +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}; diff --git a/assets/api_mp_math_vector.md.mCFa4Azm.js b/assets/api_mp_math_vector.md.CuQ0WDoP.js similarity index 65% rename from assets/api_mp_math_vector.md.mCFa4Azm.js rename to assets/api_mp_math_vector.md.CuQ0WDoP.js index f126a2a..4a40469 100644 --- a/assets/api_mp_math_vector.md.mCFa4Azm.js +++ b/assets/api_mp_math_vector.md.CuQ0WDoP.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"},e=t(`

mbcp.mp_math.vector

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

class Vector3

def __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"},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):
     """
         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

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

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

参数:

返回: bool: 是否近似相等

源代码在GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    self.z = z

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

def 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])

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

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

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

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

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:
     """
         判断两个向量是否近似平行。
         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

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

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

参数:

返回: bool: 是否平行

源代码在GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> bool:
+    return self.cross(other).length < epsilon

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

def normalize(self)

说明: 将向量归一化。

自体归一化,不返回值。

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

func 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

def np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源代码在GitHub上查看
python
@property
+    self.z /= length

@property

func 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

def length(self) -> float

说明: 向量的模。

返回: float: 模

源代码在GitHub上查看
python
@property
+    return np.array([self.x, self.y, self.z])

@property

func 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

def unit(self) -> Vector3

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

返回: Vector3: 单位向量

源代码在GitHub上查看
python
@property
+    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

func unit(self) -> Vector3

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

返回: Vector3: 单位向量

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

def __abs__(self)

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

@overload

def self + other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
+    return self / self.length

func __abs__(self)

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

@overload

func self + other: Vector3 => Vector3

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

@overload

def self + other: Point3 => Point3

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

@overload

func self + other: Point3 => Point3

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

def self + other

说明: V + P -> P

V + V -> V

参数:

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

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

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

def __eq__(self, other)

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

参数:

返回: bool: 是否相等

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

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

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

func 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

def self - other: Vector3 => Vector3

源代码在GitHub上查看
python
@overload
+    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

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

@overload

def self - other: Point3 => Point3

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

@overload

func self - other: Point3 => Point3

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

def self - other

说明: V - P -> P

V - V -> V

参数:

返回: Vector3 | Point3: 新的向量

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

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

def 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)}"')

func 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

def self * other: Vector3 => Vector3

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

@overload

func self * other: Vector3 => Vector3

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

@overload

def self * other: RealNumber => Vector3

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

@overload

func self * other: RealNumber => Vector3

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

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

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

参数:

返回: Vector3: 数组运算结果

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

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

def self * other: RealNumber => Vector3

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

def 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)}'")

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':
     """
         点乘。
         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

def self / other: RealNumber => Vector3

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

def - self => Vector3

说明: 取负。

返回: Vector3: 负向量

源代码在GitHub上查看
python
def __neg__(self) -> 'Vector3':
+    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':
     """
         取负。
         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),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; + 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}; diff --git a/assets/api_mp_math_vector.md.mCFa4Azm.lean.js b/assets/api_mp_math_vector.md.CuQ0WDoP.lean.js similarity index 72% rename from assets/api_mp_math_vector.md.mCFa4Azm.lean.js rename to assets/api_mp_math_vector.md.CuQ0WDoP.lean.js index d0f648e..bc7bcb5 100644 --- a/assets/api_mp_math_vector.md.mCFa4Azm.lean.js +++ b/assets/api_mp_math_vector.md.CuQ0WDoP.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"},e=t("",138),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; +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}; diff --git a/assets/api_presets_model_index.md.F2zeh9P2.js b/assets/api_presets_model_index.md.BcL7qpu8.js similarity index 87% rename from assets/api_presets_model_index.md.F2zeh9P2.js rename to assets/api_presets_model_index.md.BcL7qpu8.js index 813bb0b..5fc2697 100644 --- a/assets/api_presets_model_index.md.F2zeh9P2.js +++ b/assets/api_presets_model_index.md.BcL7qpu8.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

def sphere(radius: float, density: float)

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

参数:

  • radius:
  • density:

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

源代码在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":"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
 def sphere(radius: float, density: float):
     """
         生成球体上的点集。
diff --git a/assets/api_presets_model_index.md.F2zeh9P2.lean.js b/assets/api_presets_model_index.md.BcL7qpu8.lean.js
similarity index 100%
rename from assets/api_presets_model_index.md.F2zeh9P2.lean.js
rename to assets/api_presets_model_index.md.BcL7qpu8.lean.js
diff --git a/assets/api_presets_model_model.md.BoocA59j.js b/assets/api_presets_model_model.md.Ch05JNzT.js
similarity index 85%
rename from assets/api_presets_model_model.md.BoocA59j.js
rename to assets/api_presets_model_model.md.Ch05JNzT.js
index df608b8..0fb7911 100644
--- a/assets/api_presets_model_model.md.BoocA59j.js
+++ b/assets/api_presets_model_model.md.Ch05JNzT.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":"api/presets/model/model.md","filePath":"zh/api/presets/model/model.md"}'),n={name:"api/presets/model/model.md"},h=t(`

mbcp.presets.model

说明: 几何模型点集

class GeometricModels

@staticmethod

def sphere(radius: float, density: float)

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

参数:

  • radius:
  • density:

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

源代码在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":"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):
     """
         生成球体上的点集。
@@ -15,4 +15,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y
     x_array = radius * np.sin(phi_list) * np.cos(theta_list)
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
-    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]
`,10),l=[h];function p(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}; + 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.BoocA59j.lean.js b/assets/api_presets_model_model.md.Ch05JNzT.lean.js similarity index 61% rename from assets/api_presets_model_model.md.BoocA59j.lean.js rename to assets/api_presets_model_model.md.Ch05JNzT.lean.js index 11e6d76..9be95df 100644 --- a/assets/api_presets_model_model.md.BoocA59j.lean.js +++ b/assets/api_presets_model_model.md.Ch05JNzT.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"api/presets/model/model.md","filePath":"zh/api/presets/model/model.md"}'),n={name:"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 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/app.Dikvw3nD.js b/assets/app.CaA7Rfbk.js similarity index 95% rename from assets/app.Dikvw3nD.js rename to assets/app.CaA7Rfbk.js index 1e44e57..023a2c1 100644 --- a/assets/app.Dikvw3nD.js +++ b/assets/app.CaA7Rfbk.js @@ -1 +1 @@ -import{t as p}from"./chunks/theme.BIB25x10.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.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}; diff --git a/assets/chunks/@localSearchIndexen.0nnzPzXo.js b/assets/chunks/@localSearchIndexen.0nnzPzXo.js deleted file mode 100644 index 5c53570..0000000 --- a/assets/chunks/@localSearchIndexen.0nnzPzXo.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":167,"nextId":167,"documentIds":{"0":"/en/api/api.html#mbcp","1":"/en/api/#mbcp","2":"/en/api/mp_math/angle.html#mbcp-mp-math-angle","3":"/en/api/mp_math/angle.html#class-angle","4":"/en/api/mp_math/angle.html#class-anyangle-angle","5":"/en/api/mp_math/angle.html#def-init-self-value-float-is-radian-bool-false","6":"/en/api/mp_math/angle.html#def-complementary-self-anyangle","7":"/en/api/mp_math/angle.html#def-supplementary-self-anyangle","8":"/en/api/mp_math/angle.html#def-degree-self-float","9":"/en/api/mp_math/angle.html#def-minimum-positive-self-anyangle","10":"/en/api/mp_math/angle.html#def-maximum-negative-self-anyangle","11":"/en/api/mp_math/angle.html#def-sin-self-float","12":"/en/api/mp_math/angle.html#def-cos-self-float","13":"/en/api/mp_math/angle.html#def-tan-self-float","14":"/en/api/mp_math/angle.html#def-cot-self-float","15":"/en/api/mp_math/angle.html#def-sec-self-float","16":"/en/api/mp_math/angle.html#def-csc-self-float","17":"/en/api/mp_math/angle.html#def-self-other-anyangle-anyangle","18":"/en/api/mp_math/angle.html#def-eq-self-other","19":"/en/api/mp_math/angle.html#def-self-other-anyangle-anyangle-1","20":"/en/api/mp_math/angle.html#def-self-other-float-anyangle","21":"/en/api/mp_math/angle.html#def-self-other-float-anyangle-1","22":"/en/api/mp_math/angle.html#def-self-other-anyangle-float","23":"/en/api/mp_math/angle.html#def-self-other","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#def-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","34":"/en/api/mp_math/equation.html#def-call-self-t-var-point3-tuple-point3","35":"/en/api/mp_math/equation.html#def-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#def-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","38":"/en/api/mp_math/function.html#def-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#def-init-self-point-point3-direction-vector3","43":"/en/api/mp_math/line.html#def-approx-self-other-line3-epsilon-float-approx-bool","44":"/en/api/mp_math/line.html#def-cal-angle-self-other-line3-anyangle","45":"/en/api/mp_math/line.html#def-cal-distance-self-other-line3-point3-float","46":"/en/api/mp_math/line.html#def-cal-intersection-self-other-line3-point3","47":"/en/api/mp_math/line.html#def-cal-perpendicular-self-point-point3-line3","48":"/en/api/mp_math/line.html#def-get-point-self-t-realnumber-point3","49":"/en/api/mp_math/line.html#def-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","50":"/en/api/mp_math/line.html#def-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","51":"/en/api/mp_math/line.html#def-is-parallel-self-other-line3-bool","52":"/en/api/mp_math/line.html#def-is-collinear-self-other-line3-bool","53":"/en/api/mp_math/line.html#def-is-point-on-self-point-point3-bool","54":"/en/api/mp_math/line.html#def-is-coplanar-self-other-line3-bool","55":"/en/api/mp_math/line.html#def-simplify-self","56":"/en/api/mp_math/line.html#def-from-two-points-cls-p1-point3-p2-point3-line3","57":"/en/api/mp_math/line.html#def-and-self-other-line3-line3-point3-none","58":"/en/api/mp_math/line.html#def-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#def-init-self-a-float-b-float-c-float-d-float","81":"/en/api/mp_math/plane.html#def-approx-self-other-plane3-bool","82":"/en/api/mp_math/plane.html#def-cal-angle-self-other-line3-plane3-anyangle","83":"/en/api/mp_math/plane.html#def-cal-distance-self-other-plane3-point3-float","84":"/en/api/mp_math/plane.html#def-cal-intersection-line3-self-other-plane3-line3","85":"/en/api/mp_math/plane.html#def-cal-intersection-point3-self-other-line3-point3","86":"/en/api/mp_math/plane.html#def-cal-parallel-plane3-self-point-point3-plane3","87":"/en/api/mp_math/plane.html#def-is-parallel-self-other-plane3-bool","88":"/en/api/mp_math/plane.html#def-normal-self-vector3","89":"/en/api/mp_math/plane.html#def-from-point-and-normal-cls-point-point3-normal-vector3-plane3","90":"/en/api/mp_math/plane.html#def-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","91":"/en/api/mp_math/plane.html#def-from-two-lines-cls-l1-line3-l2-line3-plane3","92":"/en/api/mp_math/plane.html#def-from-point-and-line-cls-point-point3-line-line3-plane3","93":"/en/api/mp_math/plane.html#def-and-self-other-line3-point3-none","94":"/en/api/mp_math/plane.html#def-and-self-other-plane3-line3-none","95":"/en/api/mp_math/plane.html#def-and-self-other","96":"/en/api/mp_math/plane.html#def-eq-self-other-bool","97":"/en/api/mp_math/plane.html#def-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#def-init-self-x-float-y-float-z-float","101":"/en/api/mp_math/point.html#def-approx-self-other-point3-epsilon-float-approx-bool","102":"/en/api/mp_math/point.html#def-self-other-vector3-point3","103":"/en/api/mp_math/point.html#def-self-other-point3-point3","104":"/en/api/mp_math/point.html#def-self-other","105":"/en/api/mp_math/point.html#def-eq-self-other","106":"/en/api/mp_math/point.html#def-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#def-init-self-p1-point3-p2-point3","110":"/en/api/mp_math/utils.html#mbcp-mp-math-utils","111":"/en/api/mp_math/utils.html#def-clamp-x-float-min-float-max-float-float","112":"/en/api/mp_math/utils.html#class-approx","113":"/en/api/mp_math/utils.html#def-init-self-value-realnumber","114":"/en/api/mp_math/utils.html#def-eq-self-other","115":"/en/api/mp_math/utils.html#def-raise-type-error-self-other","116":"/en/api/mp_math/utils.html#def-ne-self-other","117":"/en/api/mp_math/utils.html#def-approx-x-float-y-float-0-0-epsilon-float-approx-bool","118":"/en/api/mp_math/utils.html#def-sign-x-float-only-neg-bool-false-str","119":"/en/api/mp_math/utils.html#def-sign-format-x-float-only-neg-bool-false-str","120":"/en/api/mp_math/vector.html#mbcp-mp-math-vector","121":"/en/api/mp_math/vector.html#class-vector3","122":"/en/api/mp_math/vector.html#def-init-self-x-float-y-float-z-float","123":"/en/api/mp_math/vector.html#def-approx-self-other-vector3-epsilon-float-approx-bool","124":"/en/api/mp_math/vector.html#def-cal-angle-self-other-vector3-anyangle","125":"/en/api/mp_math/vector.html#def-cross-self-other-vector3-vector3","126":"/en/api/mp_math/vector.html#def-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","127":"/en/api/mp_math/vector.html#def-is-parallel-self-other-vector3-bool","128":"/en/api/mp_math/vector.html#def-normalize-self","129":"/en/api/mp_math/vector.html#def-np-array-self-np-ndarray","130":"/en/api/mp_math/vector.html#def-length-self-float","131":"/en/api/mp_math/vector.html#def-unit-self-vector3","132":"/en/api/mp_math/vector.html#def-abs-self","133":"/en/api/mp_math/vector.html#def-self-other-vector3-vector3","134":"/en/api/mp_math/vector.html#def-self-other-point3-point3","135":"/en/api/mp_math/vector.html#def-self-other","136":"/en/api/mp_math/vector.html#def-eq-self-other","137":"/en/api/mp_math/vector.html#def-self-other-point3-point3-1","138":"/en/api/mp_math/vector.html#def-self-other-vector3-vector3-1","139":"/en/api/mp_math/vector.html#def-self-other-point3-point3-2","140":"/en/api/mp_math/vector.html#def-self-other-1","141":"/en/api/mp_math/vector.html#def-self-other-point3","142":"/en/api/mp_math/vector.html#def-self-other-vector3-vector3-2","143":"/en/api/mp_math/vector.html#def-self-other-realnumber-vector3","144":"/en/api/mp_math/vector.html#def-self-other-int-float-vector3-vector3","145":"/en/api/mp_math/vector.html#def-self-other-realnumber-vector3-1","146":"/en/api/mp_math/vector.html#def-self-other-vector3-realnumber","147":"/en/api/mp_math/vector.html#def-self-other-realnumber-vector3-2","148":"/en/api/mp_math/vector.html#def-self-vector3","149":"/en/api/mp_math/vector.html#var-zero-vector3","150":"/en/api/mp_math/vector.html#var-x-axis","151":"/en/api/mp_math/vector.html#var-y-axis","152":"/en/api/mp_math/vector.html#var-z-axis","153":"/en/api/particle/#mbcp-particle","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/#def-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#def-sphere-radius-float-density-float","162":"/en/api/presets/presets.html#mbcp-presets","163":"/en/demo/best-practice.html#best-practice","164":"/en/demo/best-practice.html#works","165":"/en/guide/#开始不了一点","166":"/en/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,28],"6":[5,8,27],"7":[5,8,26],"8":[5,8,23],"9":[6,8,24],"10":[6,8,26],"11":[5,8,21],"12":[5,8,21],"13":[5,8,21],"14":[5,8,23],"15":[5,8,23],"16":[5,8,23],"17":[7,8,18],"18":[5,8,14],"19":[6,8,17],"20":[7,8,19],"21":[7,8,16],"22":[7,8,16],"23":[3,8,18],"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":[9,6,29],"34":[10,6,38],"35":[15,4,76],"36":[4,1,3],"37":[14,4,72],"38":[8,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":[4,1,4],"121":[2,4,1],"122":[8,6,32],"123":[11,6,47],"124":[8,6,34],"125":[6,6,46],"126":[13,6,46],"127":[8,6,40],"128":[4,6,20],"129":[6,6,34],"130":[5,6,36],"131":[5,6,24],"132":[4,6,13],"133":[7,6,15],"134":[7,6,15],"135":[4,6,49],"136":[5,6,40],"137":[7,6,34],"138":[6,6,15],"139":[6,6,15],"140":[3,6,48],"141":[4,6,45],"142":[6,6,15],"143":[7,6,16],"144":[9,6,58],"145":[7,6,16],"146":[7,6,41],"147":[7,6,18],"148":[5,6,24],"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,51],"159":[3,1,3],"160":[2,3,2],"161":[6,5,51],"162":[2,1,3],"163":[2,1,1],"164":[1,2,25],"165":[1,1,2],"166":[1,1,7]},"averageFieldLength":[5.544910179640721,4.922155688622752,24.29940119760479],"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":"def __init__(self, value: float, is_radian: bool = False)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"def complementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"def supplementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"def degree(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"def minimum_positive(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"def maximum_negative(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"def sin(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"def cos(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"def tan(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"def cot(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"def sec(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"def csc(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"def self + other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"def self - other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"def self * other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"def self / other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"def self / other: AnyAngle => float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"def 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":"def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["mbcp.mp_math.equation","class CurveEquation"]},"35":{"title":"def 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":"def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["mbcp.mp_math.function"]},"38":{"title":"def 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":"def __init__(self, point: Point3, direction: Vector3)","titles":["mbcp.mp_math.line","class Line3"]},"43":{"title":"def approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"44":{"title":"def cal_angle(self, other: Line3) -> AnyAngle","titles":["mbcp.mp_math.line","class Line3"]},"45":{"title":"def cal_distance(self, other: Line3 | Point3) -> float","titles":["mbcp.mp_math.line","class Line3"]},"46":{"title":"def cal_intersection(self, other: Line3) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"47":{"title":"def cal_perpendicular(self, point: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"48":{"title":"def get_point(self, t: RealNumber) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"49":{"title":"def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["mbcp.mp_math.line","class Line3"]},"50":{"title":"def is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"51":{"title":"def is_parallel(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"52":{"title":"def is_collinear(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"53":{"title":"def is_point_on(self, point: Point3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"54":{"title":"def is_coplanar(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"55":{"title":"def simplify(self)","titles":["mbcp.mp_math.line","class Line3"]},"56":{"title":"def from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"57":{"title":"def __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["mbcp.mp_math.line","class Line3"]},"58":{"title":"def __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":"def __init__(self, a: float, b: float, c: float, d: float)","titles":["mbcp.mp_math.plane","class Plane3"]},"81":{"title":"def approx(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"82":{"title":"def cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["mbcp.mp_math.plane","class Plane3"]},"83":{"title":"def cal_distance(self, other: Plane3 | Point3) -> float","titles":["mbcp.mp_math.plane","class Plane3"]},"84":{"title":"def cal_intersection_line3(self, other: Plane3) -> Line3","titles":["mbcp.mp_math.plane","class Plane3"]},"85":{"title":"def cal_intersection_point3(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"86":{"title":"def cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"87":{"title":"def is_parallel(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"88":{"title":"def normal(self) -> Vector3","titles":["mbcp.mp_math.plane","class Plane3"]},"89":{"title":"def from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"90":{"title":"def from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"91":{"title":"def from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"92":{"title":"def from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"93":{"title":"def __and__(self, other: Line3) -> Point3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"94":{"title":"def __and__(self, other: Plane3) -> Line3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"95":{"title":"def __and__(self, other)","titles":["mbcp.mp_math.plane","class Plane3"]},"96":{"title":"def __eq__(self, other) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"97":{"title":"def __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":"def __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.point","class Point3"]},"101":{"title":"def approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.point","class Point3"]},"102":{"title":"def self + other: Vector3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"103":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"104":{"title":"def self + other","titles":["mbcp.mp_math.point","class Point3"]},"105":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.point","class Point3"]},"106":{"title":"def 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":"def __init__(self, p1: Point3, p2: Point3)","titles":["mbcp.mp_math.segment","class Segment3"]},"110":{"title":"mbcp.mp_math.utils","titles":[]},"111":{"title":"def clamp(x: float, min_: float, max_: float) -> float","titles":["mbcp.mp_math.utils"]},"112":{"title":"class Approx","titles":["mbcp.mp_math.utils"]},"113":{"title":"def __init__(self, value: RealNumber)","titles":["mbcp.mp_math.utils","class Approx"]},"114":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"115":{"title":"def raise_type_error(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"116":{"title":"def __ne__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"117":{"title":"def approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.utils"]},"118":{"title":"def sign(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"119":{"title":"def 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":"def __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.vector","class Vector3"]},"123":{"title":"def approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"124":{"title":"def cal_angle(self, other: Vector3) -> AnyAngle","titles":["mbcp.mp_math.vector","class Vector3"]},"125":{"title":"def cross(self, other: Vector3) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"126":{"title":"def is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"127":{"title":"def is_parallel(self, other: Vector3) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"128":{"title":"def normalize(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"129":{"title":"def np_array(self) -> np.ndarray","titles":["mbcp.mp_math.vector","class Vector3"]},"130":{"title":"def length(self) -> float","titles":["mbcp.mp_math.vector","class Vector3"]},"131":{"title":"def unit(self) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"132":{"title":"def __abs__(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"133":{"title":"def self + other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"134":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"135":{"title":"def self + other","titles":["mbcp.mp_math.vector","class Vector3"]},"136":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.vector","class Vector3"]},"137":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"138":{"title":"def self - other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"139":{"title":"def self - other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"140":{"title":"def self - other","titles":["mbcp.mp_math.vector","class Vector3"]},"141":{"title":"def self - other: Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"142":{"title":"def self * other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"143":{"title":"def self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"144":{"title":"def self * other: int | float | Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"145":{"title":"def self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"146":{"title":"def self @ other: Vector3 => RealNumber","titles":["mbcp.mp_math.vector","class Vector3"]},"147":{"title":"def self / other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"148":{"title":"def - 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":"def 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":"def sphere(radius: float, density: float)","titles":["mbcp.presets.model","class GeometricModels"]},"162":{"title":"mbcp.presets","titles":[]},"163":{"title":"Best Practice","titles":[]},"164":{"title":"Works","titles":["Best Practice"]},"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}}],["works",{"0":{"164":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":{"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,"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}}],["best",{"0":{"163":1},"1":{"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":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}}],["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,"149":1,"150":1,"151":1,"152":1}}],["def",{"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,"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":{"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}}],["description",{"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}}],["$处的梯度向量为",{"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}}],["求高阶偏导函数",{"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}}],["慎用",{"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}}],["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,"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,"135":2,"140":2,"141":2,"144":2,"149":1,"150":1,"151":1,"152":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":{"21":1,"22":1,"23":1,"147":1}}],["tan",{"0":{"13":1},"2":{"13":2,"14":1}}],["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":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,"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}}],["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}}],[">",{"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}}],["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}}],["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}}],["return",{"2":{"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":1,"18":1,"19":1,"20":1,"23":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,"123":2,"124":2,"125":2,"126":2,"127":2,"129":2,"130":2,"131":2,"132":1,"135":3,"136":2,"137":2,"140":3,"141":2,"144":3,"145":1,"146":2,"147":1,"148":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":{"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":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":{"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}}],["operand",{"2":{"95":1,"135":1,"140":1,"141":1,"144":1}}],["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}}],["only",{"0":{"118":1,"119":1},"2":{"118":4,"119":4}}],["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}}],["on",{"0":{"53":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":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,"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}}],["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}}],["or",{"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":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,"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}}],["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}}],["view",{"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}}],["code",{"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}}],["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}}],["source",{"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}}],["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}}],["默认为否",{"2":{"5":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}}],["arguments",{"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}}],["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":2,"39":1,"59":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}}],["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":{"33":3,"35":2,"37":1,"38":1},"2":{"33":15,"34":6,"35":16,"37":9,"38":6}}],["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}}],["==",{"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}}],["预设",{"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}}],["practice",{"0":{"163":1},"1":{"164":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}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexen.DOhc_xuw.js b/assets/chunks/@localSearchIndexen.DOhc_xuw.js new file mode 100644 index 0000000..06f6ada --- /dev/null +++ b/assets/chunks/@localSearchIndexen.DOhc_xuw.js @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..eccf3fd --- /dev/null +++ b/assets/chunks/@localSearchIndexja.DUR797ye.js @@ -0,0 +1 @@ +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.GK1VDS5_.js b/assets/chunks/@localSearchIndexja.GK1VDS5_.js deleted file mode 100644 index 57fd707..0000000 --- a/assets/chunks/@localSearchIndexja.GK1VDS5_.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#def-init-self-value-float-is-radian-bool-false","6":"/ja/api/mp_math/angle.html#def-complementary-self-anyangle","7":"/ja/api/mp_math/angle.html#def-supplementary-self-anyangle","8":"/ja/api/mp_math/angle.html#def-degree-self-float","9":"/ja/api/mp_math/angle.html#def-minimum-positive-self-anyangle","10":"/ja/api/mp_math/angle.html#def-maximum-negative-self-anyangle","11":"/ja/api/mp_math/angle.html#def-sin-self-float","12":"/ja/api/mp_math/angle.html#def-cos-self-float","13":"/ja/api/mp_math/angle.html#def-tan-self-float","14":"/ja/api/mp_math/angle.html#def-cot-self-float","15":"/ja/api/mp_math/angle.html#def-sec-self-float","16":"/ja/api/mp_math/angle.html#def-csc-self-float","17":"/ja/api/mp_math/angle.html#def-self-other-anyangle-anyangle","18":"/ja/api/mp_math/angle.html#def-eq-self-other","19":"/ja/api/mp_math/angle.html#def-self-other-anyangle-anyangle-1","20":"/ja/api/mp_math/angle.html#def-self-other-float-anyangle","21":"/ja/api/mp_math/angle.html#def-self-other-float-anyangle-1","22":"/ja/api/mp_math/angle.html#def-self-other-anyangle-float","23":"/ja/api/mp_math/angle.html#def-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#def-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","34":"/ja/api/mp_math/equation.html#def-call-self-t-var-point3-tuple-point3","35":"/ja/api/mp_math/equation.html#def-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#def-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","38":"/ja/api/mp_math/function.html#def-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#def-init-self-point-point3-direction-vector3","43":"/ja/api/mp_math/line.html#def-approx-self-other-line3-epsilon-float-approx-bool","44":"/ja/api/mp_math/line.html#def-cal-angle-self-other-line3-anyangle","45":"/ja/api/mp_math/line.html#def-cal-distance-self-other-line3-point3-float","46":"/ja/api/mp_math/line.html#def-cal-intersection-self-other-line3-point3","47":"/ja/api/mp_math/line.html#def-cal-perpendicular-self-point-point3-line3","48":"/ja/api/mp_math/line.html#def-get-point-self-t-realnumber-point3","49":"/ja/api/mp_math/line.html#def-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","50":"/ja/api/mp_math/line.html#def-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","51":"/ja/api/mp_math/line.html#def-is-parallel-self-other-line3-bool","52":"/ja/api/mp_math/line.html#def-is-collinear-self-other-line3-bool","53":"/ja/api/mp_math/line.html#def-is-point-on-self-point-point3-bool","54":"/ja/api/mp_math/line.html#def-is-coplanar-self-other-line3-bool","55":"/ja/api/mp_math/line.html#def-simplify-self","56":"/ja/api/mp_math/line.html#def-from-two-points-cls-p1-point3-p2-point3-line3","57":"/ja/api/mp_math/line.html#def-and-self-other-line3-line3-point3-none","58":"/ja/api/mp_math/line.html#def-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#def-init-self-a-float-b-float-c-float-d-float","81":"/ja/api/mp_math/plane.html#def-approx-self-other-plane3-bool","82":"/ja/api/mp_math/plane.html#def-cal-angle-self-other-line3-plane3-anyangle","83":"/ja/api/mp_math/plane.html#def-cal-distance-self-other-plane3-point3-float","84":"/ja/api/mp_math/plane.html#def-cal-intersection-line3-self-other-plane3-line3","85":"/ja/api/mp_math/plane.html#def-cal-intersection-point3-self-other-line3-point3","86":"/ja/api/mp_math/plane.html#def-cal-parallel-plane3-self-point-point3-plane3","87":"/ja/api/mp_math/plane.html#def-is-parallel-self-other-plane3-bool","88":"/ja/api/mp_math/plane.html#def-normal-self-vector3","89":"/ja/api/mp_math/plane.html#def-from-point-and-normal-cls-point-point3-normal-vector3-plane3","90":"/ja/api/mp_math/plane.html#def-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","91":"/ja/api/mp_math/plane.html#def-from-two-lines-cls-l1-line3-l2-line3-plane3","92":"/ja/api/mp_math/plane.html#def-from-point-and-line-cls-point-point3-line-line3-plane3","93":"/ja/api/mp_math/plane.html#def-and-self-other-line3-point3-none","94":"/ja/api/mp_math/plane.html#def-and-self-other-plane3-line3-none","95":"/ja/api/mp_math/plane.html#def-and-self-other","96":"/ja/api/mp_math/plane.html#def-eq-self-other-bool","97":"/ja/api/mp_math/plane.html#def-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#def-init-self-x-float-y-float-z-float","101":"/ja/api/mp_math/point.html#def-approx-self-other-point3-epsilon-float-approx-bool","102":"/ja/api/mp_math/point.html#def-self-other-vector3-point3","103":"/ja/api/mp_math/point.html#def-self-other-point3-point3","104":"/ja/api/mp_math/point.html#def-self-other","105":"/ja/api/mp_math/point.html#def-eq-self-other","106":"/ja/api/mp_math/point.html#def-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#def-init-self-p1-point3-p2-point3","110":"/ja/api/mp_math/utils.html#mbcp-mp-math-utils","111":"/ja/api/mp_math/utils.html#def-clamp-x-float-min-float-max-float-float","112":"/ja/api/mp_math/utils.html#class-approx","113":"/ja/api/mp_math/utils.html#def-init-self-value-realnumber","114":"/ja/api/mp_math/utils.html#def-eq-self-other","115":"/ja/api/mp_math/utils.html#def-raise-type-error-self-other","116":"/ja/api/mp_math/utils.html#def-ne-self-other","117":"/ja/api/mp_math/utils.html#def-approx-x-float-y-float-0-0-epsilon-float-approx-bool","118":"/ja/api/mp_math/utils.html#def-sign-x-float-only-neg-bool-false-str","119":"/ja/api/mp_math/utils.html#def-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#def-init-self-x-float-y-float-z-float","123":"/ja/api/mp_math/vector.html#def-approx-self-other-vector3-epsilon-float-approx-bool","124":"/ja/api/mp_math/vector.html#def-cal-angle-self-other-vector3-anyangle","125":"/ja/api/mp_math/vector.html#def-cross-self-other-vector3-vector3","126":"/ja/api/mp_math/vector.html#def-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","127":"/ja/api/mp_math/vector.html#def-is-parallel-self-other-vector3-bool","128":"/ja/api/mp_math/vector.html#def-normalize-self","129":"/ja/api/mp_math/vector.html#def-np-array-self-np-ndarray","130":"/ja/api/mp_math/vector.html#def-length-self-float","131":"/ja/api/mp_math/vector.html#def-unit-self-vector3","132":"/ja/api/mp_math/vector.html#def-abs-self","133":"/ja/api/mp_math/vector.html#def-self-other-vector3-vector3","134":"/ja/api/mp_math/vector.html#def-self-other-point3-point3","135":"/ja/api/mp_math/vector.html#def-self-other","136":"/ja/api/mp_math/vector.html#def-eq-self-other","137":"/ja/api/mp_math/vector.html#def-self-other-point3-point3-1","138":"/ja/api/mp_math/vector.html#def-self-other-vector3-vector3-1","139":"/ja/api/mp_math/vector.html#def-self-other-point3-point3-2","140":"/ja/api/mp_math/vector.html#def-self-other-1","141":"/ja/api/mp_math/vector.html#def-self-other-point3","142":"/ja/api/mp_math/vector.html#def-self-other-vector3-vector3-2","143":"/ja/api/mp_math/vector.html#def-self-other-realnumber-vector3","144":"/ja/api/mp_math/vector.html#def-self-other-int-float-vector3-vector3","145":"/ja/api/mp_math/vector.html#def-self-other-realnumber-vector3-1","146":"/ja/api/mp_math/vector.html#def-self-other-vector3-realnumber","147":"/ja/api/mp_math/vector.html#def-self-other-realnumber-vector3-2","148":"/ja/api/mp_math/vector.html#def-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/#def-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#def-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":[9,6,26],"34":[10,6,35],"35":[15,4,74],"36":[4,1,3],"37":[14,4,69],"38":[8,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.538922155688623,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":"def __init__(self, value: float, is_radian: bool = False)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"def complementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"def supplementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"def degree(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"def minimum_positive(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"def maximum_negative(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"def sin(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"def cos(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"def tan(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"def cot(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"def sec(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"def csc(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"def self + other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"def self - other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"def self * other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"def self / other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"def self / other: AnyAngle => float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"def 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":"def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["mbcp.mp_math.equation","class CurveEquation"]},"35":{"title":"def 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":"def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["mbcp.mp_math.function"]},"38":{"title":"def 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":"def __init__(self, point: Point3, direction: Vector3)","titles":["mbcp.mp_math.line","class Line3"]},"43":{"title":"def approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"44":{"title":"def cal_angle(self, other: Line3) -> AnyAngle","titles":["mbcp.mp_math.line","class Line3"]},"45":{"title":"def cal_distance(self, other: Line3 | Point3) -> float","titles":["mbcp.mp_math.line","class Line3"]},"46":{"title":"def cal_intersection(self, other: Line3) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"47":{"title":"def cal_perpendicular(self, point: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"48":{"title":"def get_point(self, t: RealNumber) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"49":{"title":"def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["mbcp.mp_math.line","class Line3"]},"50":{"title":"def is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"51":{"title":"def is_parallel(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"52":{"title":"def is_collinear(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"53":{"title":"def is_point_on(self, point: Point3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"54":{"title":"def is_coplanar(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"55":{"title":"def simplify(self)","titles":["mbcp.mp_math.line","class Line3"]},"56":{"title":"def from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"57":{"title":"def __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["mbcp.mp_math.line","class Line3"]},"58":{"title":"def __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":"def __init__(self, a: float, b: float, c: float, d: float)","titles":["mbcp.mp_math.plane","class Plane3"]},"81":{"title":"def approx(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"82":{"title":"def cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["mbcp.mp_math.plane","class Plane3"]},"83":{"title":"def cal_distance(self, other: Plane3 | Point3) -> float","titles":["mbcp.mp_math.plane","class Plane3"]},"84":{"title":"def cal_intersection_line3(self, other: Plane3) -> Line3","titles":["mbcp.mp_math.plane","class Plane3"]},"85":{"title":"def cal_intersection_point3(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"86":{"title":"def cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"87":{"title":"def is_parallel(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"88":{"title":"def normal(self) -> Vector3","titles":["mbcp.mp_math.plane","class Plane3"]},"89":{"title":"def from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"90":{"title":"def from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"91":{"title":"def from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"92":{"title":"def from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"93":{"title":"def __and__(self, other: Line3) -> Point3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"94":{"title":"def __and__(self, other: Plane3) -> Line3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"95":{"title":"def __and__(self, other)","titles":["mbcp.mp_math.plane","class Plane3"]},"96":{"title":"def __eq__(self, other) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"97":{"title":"def __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":"def __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.point","class Point3"]},"101":{"title":"def approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.point","class Point3"]},"102":{"title":"def self + other: Vector3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"103":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"104":{"title":"def self + other","titles":["mbcp.mp_math.point","class Point3"]},"105":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.point","class Point3"]},"106":{"title":"def 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":"def __init__(self, p1: Point3, p2: Point3)","titles":["mbcp.mp_math.segment","class Segment3"]},"110":{"title":"mbcp.mp_math.utils","titles":[]},"111":{"title":"def clamp(x: float, min_: float, max_: float) -> float","titles":["mbcp.mp_math.utils"]},"112":{"title":"class Approx","titles":["mbcp.mp_math.utils"]},"113":{"title":"def __init__(self, value: RealNumber)","titles":["mbcp.mp_math.utils","class Approx"]},"114":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"115":{"title":"def raise_type_error(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"116":{"title":"def __ne__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"117":{"title":"def approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.utils"]},"118":{"title":"def sign(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"119":{"title":"def 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":"def __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.vector","class Vector3"]},"123":{"title":"def approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"124":{"title":"def cal_angle(self, other: Vector3) -> AnyAngle","titles":["mbcp.mp_math.vector","class Vector3"]},"125":{"title":"def cross(self, other: Vector3) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"126":{"title":"def is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"127":{"title":"def is_parallel(self, other: Vector3) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"128":{"title":"def normalize(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"129":{"title":"def np_array(self) -> np.ndarray","titles":["mbcp.mp_math.vector","class Vector3"]},"130":{"title":"def length(self) -> float","titles":["mbcp.mp_math.vector","class Vector3"]},"131":{"title":"def unit(self) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"132":{"title":"def __abs__(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"133":{"title":"def self + other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"134":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"135":{"title":"def self + other","titles":["mbcp.mp_math.vector","class Vector3"]},"136":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.vector","class Vector3"]},"137":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"138":{"title":"def self - other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"139":{"title":"def self - other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"140":{"title":"def self - other","titles":["mbcp.mp_math.vector","class Vector3"]},"141":{"title":"def self - other: Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"142":{"title":"def self * other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"143":{"title":"def self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"144":{"title":"def self * other: int | float | Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"145":{"title":"def self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"146":{"title":"def self @ other: Vector3 => RealNumber","titles":["mbcp.mp_math.vector","class Vector3"]},"147":{"title":"def self / other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"148":{"title":"def - 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":"def 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":"def 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",{"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,"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":{"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}}],["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}}],["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":{"33":3,"35":2,"37":1,"38":1},"2":{"33":15,"34":6,"35":16,"37":9,"38":6}}],["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}}],["==",{"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}}],["预设",{"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.7Fn6vDT0.js b/assets/chunks/@localSearchIndexroot.7Fn6vDT0.js new file mode 100644 index 0000000..e2ec7c9 --- /dev/null +++ b/assets/chunks/@localSearchIndexroot.7Fn6vDT0.js @@ -0,0 +1 @@ +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.BeMaMjA4.js b/assets/chunks/@localSearchIndexroot.BeMaMjA4.js deleted file mode 100644 index 650dfe7..0000000 --- a/assets/chunks/@localSearchIndexroot.BeMaMjA4.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#def-init-self-value-float-is-radian-bool-false","6":"/api/mp_math/angle.html#def-complementary-self-anyangle","7":"/api/mp_math/angle.html#def-supplementary-self-anyangle","8":"/api/mp_math/angle.html#def-degree-self-float","9":"/api/mp_math/angle.html#def-minimum-positive-self-anyangle","10":"/api/mp_math/angle.html#def-maximum-negative-self-anyangle","11":"/api/mp_math/angle.html#def-sin-self-float","12":"/api/mp_math/angle.html#def-cos-self-float","13":"/api/mp_math/angle.html#def-tan-self-float","14":"/api/mp_math/angle.html#def-cot-self-float","15":"/api/mp_math/angle.html#def-sec-self-float","16":"/api/mp_math/angle.html#def-csc-self-float","17":"/api/mp_math/angle.html#def-self-other-anyangle-anyangle","18":"/api/mp_math/angle.html#def-eq-self-other","19":"/api/mp_math/angle.html#def-self-other-anyangle-anyangle-1","20":"/api/mp_math/angle.html#def-self-other-float-anyangle","21":"/api/mp_math/angle.html#def-self-other-float-anyangle-1","22":"/api/mp_math/angle.html#def-self-other-anyangle-float","23":"/api/mp_math/angle.html#def-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#def-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","34":"/api/mp_math/equation.html#def-call-self-t-var-point3-tuple-point3","35":"/api/mp_math/equation.html#def-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#def-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","38":"/api/mp_math/function.html#def-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#def-init-self-point-point3-direction-vector3","43":"/api/mp_math/line.html#def-approx-self-other-line3-epsilon-float-approx-bool","44":"/api/mp_math/line.html#def-cal-angle-self-other-line3-anyangle","45":"/api/mp_math/line.html#def-cal-distance-self-other-line3-point3-float","46":"/api/mp_math/line.html#def-cal-intersection-self-other-line3-point3","47":"/api/mp_math/line.html#def-cal-perpendicular-self-point-point3-line3","48":"/api/mp_math/line.html#def-get-point-self-t-realnumber-point3","49":"/api/mp_math/line.html#def-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","50":"/api/mp_math/line.html#def-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","51":"/api/mp_math/line.html#def-is-parallel-self-other-line3-bool","52":"/api/mp_math/line.html#def-is-collinear-self-other-line3-bool","53":"/api/mp_math/line.html#def-is-point-on-self-point-point3-bool","54":"/api/mp_math/line.html#def-is-coplanar-self-other-line3-bool","55":"/api/mp_math/line.html#def-simplify-self","56":"/api/mp_math/line.html#def-from-two-points-cls-p1-point3-p2-point3-line3","57":"/api/mp_math/line.html#def-and-self-other-line3-line3-point3-none","58":"/api/mp_math/line.html#def-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/point.html#mbcp-mp-math-point","79":"/api/mp_math/point.html#class-point3","80":"/api/mp_math/point.html#def-init-self-x-float-y-float-z-float","81":"/api/mp_math/point.html#def-approx-self-other-point3-epsilon-float-approx-bool","82":"/api/mp_math/point.html#def-self-other-vector3-point3","83":"/api/mp_math/point.html#def-self-other-point3-point3","84":"/api/mp_math/point.html#def-self-other","85":"/api/mp_math/point.html#def-eq-self-other","86":"/api/mp_math/point.html#def-self-other-point3-vector3","87":"/api/mp_math/plane.html#mbcp-mp-math-plane","88":"/api/mp_math/plane.html#class-plane3","89":"/api/mp_math/plane.html#def-init-self-a-float-b-float-c-float-d-float","90":"/api/mp_math/plane.html#def-approx-self-other-plane3-bool","91":"/api/mp_math/plane.html#def-cal-angle-self-other-line3-plane3-anyangle","92":"/api/mp_math/plane.html#def-cal-distance-self-other-plane3-point3-float","93":"/api/mp_math/plane.html#def-cal-intersection-line3-self-other-plane3-line3","94":"/api/mp_math/plane.html#def-cal-intersection-point3-self-other-line3-point3","95":"/api/mp_math/plane.html#def-cal-parallel-plane3-self-point-point3-plane3","96":"/api/mp_math/plane.html#def-is-parallel-self-other-plane3-bool","97":"/api/mp_math/plane.html#def-normal-self-vector3","98":"/api/mp_math/plane.html#def-from-point-and-normal-cls-point-point3-normal-vector3-plane3","99":"/api/mp_math/plane.html#def-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","100":"/api/mp_math/plane.html#def-from-two-lines-cls-l1-line3-l2-line3-plane3","101":"/api/mp_math/plane.html#def-from-point-and-line-cls-point-point3-line-line3-plane3","102":"/api/mp_math/plane.html#def-and-self-other-line3-point3-none","103":"/api/mp_math/plane.html#def-and-self-other-plane3-line3-none","104":"/api/mp_math/plane.html#def-and-self-other","105":"/api/mp_math/plane.html#def-eq-self-other-bool","106":"/api/mp_math/plane.html#def-rand-self-other-line3-point3","107":"/api/mp_math/segment.html#mbcp-mp-math-segment","108":"/api/mp_math/segment.html#class-segment3","109":"/api/mp_math/segment.html#def-init-self-p1-point3-p2-point3","110":"/api/mp_math/utils.html#mbcp-mp-math-utils","111":"/api/mp_math/utils.html#def-clamp-x-float-min-float-max-float-float","112":"/api/mp_math/utils.html#class-approx","113":"/api/mp_math/utils.html#def-init-self-value-realnumber","114":"/api/mp_math/utils.html#def-eq-self-other","115":"/api/mp_math/utils.html#def-raise-type-error-self-other","116":"/api/mp_math/utils.html#def-ne-self-other","117":"/api/mp_math/utils.html#def-approx-x-float-y-float-0-0-epsilon-float-approx-bool","118":"/api/mp_math/utils.html#def-sign-x-float-only-neg-bool-false-str","119":"/api/mp_math/utils.html#def-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#def-init-self-x-float-y-float-z-float","123":"/api/mp_math/vector.html#def-approx-self-other-vector3-epsilon-float-approx-bool","124":"/api/mp_math/vector.html#def-cal-angle-self-other-vector3-anyangle","125":"/api/mp_math/vector.html#def-cross-self-other-vector3-vector3","126":"/api/mp_math/vector.html#def-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","127":"/api/mp_math/vector.html#def-is-parallel-self-other-vector3-bool","128":"/api/mp_math/vector.html#def-normalize-self","129":"/api/mp_math/vector.html#def-np-array-self-np-ndarray","130":"/api/mp_math/vector.html#def-length-self-float","131":"/api/mp_math/vector.html#def-unit-self-vector3","132":"/api/mp_math/vector.html#def-abs-self","133":"/api/mp_math/vector.html#def-self-other-vector3-vector3","134":"/api/mp_math/vector.html#def-self-other-point3-point3","135":"/api/mp_math/vector.html#def-self-other","136":"/api/mp_math/vector.html#def-eq-self-other","137":"/api/mp_math/vector.html#def-self-other-point3-point3-1","138":"/api/mp_math/vector.html#def-self-other-vector3-vector3-1","139":"/api/mp_math/vector.html#def-self-other-point3-point3-2","140":"/api/mp_math/vector.html#def-self-other-1","141":"/api/mp_math/vector.html#def-self-other-point3","142":"/api/mp_math/vector.html#def-self-other-vector3-vector3-2","143":"/api/mp_math/vector.html#def-self-other-realnumber-vector3","144":"/api/mp_math/vector.html#def-self-other-int-float-vector3-vector3","145":"/api/mp_math/vector.html#def-self-other-realnumber-vector3-1","146":"/api/mp_math/vector.html#def-self-other-vector3-realnumber","147":"/api/mp_math/vector.html#def-self-other-realnumber-vector3-2","148":"/api/mp_math/vector.html#def-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/#def-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#def-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":[9,6,26],"34":[10,6,34],"35":[15,4,73],"36":[4,1,3],"37":[14,4,69],"38":[8,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":[8,6,26],"81":[11,6,45],"82":[8,6,13],"83":[7,6,12],"84":[4,6,34],"85":[5,6,37],"86":[7,6,36],"87":[4,1,3],"88":[2,4,1],"89":[9,6,36],"90":[7,6,45],"91":[10,6,62],"92":[10,6,66],"93":[9,6,71],"94":[9,6,69],"95":[9,6,30],"96":[8,6,37],"97":[5,6,25],"98":[10,6,45],"99":[11,6,39],"100":[10,6,44],"101":[10,6,35],"102":[9,6,15],"103":[9,6,15],"104":[5,6,70],"105":[6,6,35],"106":[7,6,15],"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.4069767441860455,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":"def __init__(self, value: float, is_radian: bool = False)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"def complementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"def supplementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"def degree(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"def minimum_positive(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"def maximum_negative(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"def sin(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"def cos(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"def tan(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"def cot(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"def sec(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"def csc(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"def self + other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"def self - other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"def self * other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"def self / other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"def self / other: AnyAngle => float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"def 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":"def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["mbcp.mp_math.equation","class CurveEquation"]},"35":{"title":"def 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":"def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["mbcp.mp_math.function"]},"38":{"title":"def 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":"def __init__(self, point: Point3, direction: Vector3)","titles":["mbcp.mp_math.line","class Line3"]},"43":{"title":"def approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"44":{"title":"def cal_angle(self, other: Line3) -> AnyAngle","titles":["mbcp.mp_math.line","class Line3"]},"45":{"title":"def cal_distance(self, other: Line3 | Point3) -> float","titles":["mbcp.mp_math.line","class Line3"]},"46":{"title":"def cal_intersection(self, other: Line3) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"47":{"title":"def cal_perpendicular(self, point: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"48":{"title":"def get_point(self, t: RealNumber) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"49":{"title":"def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["mbcp.mp_math.line","class Line3"]},"50":{"title":"def is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"51":{"title":"def is_parallel(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"52":{"title":"def is_collinear(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"53":{"title":"def is_point_on(self, point: Point3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"54":{"title":"def is_coplanar(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"55":{"title":"def simplify(self)","titles":["mbcp.mp_math.line","class Line3"]},"56":{"title":"def from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"57":{"title":"def __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["mbcp.mp_math.line","class Line3"]},"58":{"title":"def __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.point","titles":[]},"79":{"title":"class Point3","titles":["mbcp.mp_math.point"]},"80":{"title":"def __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.point","class Point3"]},"81":{"title":"def approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.point","class Point3"]},"82":{"title":"def self + other: Vector3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"83":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"84":{"title":"def self + other","titles":["mbcp.mp_math.point","class Point3"]},"85":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.point","class Point3"]},"86":{"title":"def self - other: Point3 => Vector3","titles":["mbcp.mp_math.point","class Point3"]},"87":{"title":"mbcp.mp_math.plane","titles":[]},"88":{"title":"class Plane3","titles":["mbcp.mp_math.plane"]},"89":{"title":"def __init__(self, a: float, b: float, c: float, d: float)","titles":["mbcp.mp_math.plane","class Plane3"]},"90":{"title":"def approx(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"91":{"title":"def cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["mbcp.mp_math.plane","class Plane3"]},"92":{"title":"def cal_distance(self, other: Plane3 | Point3) -> float","titles":["mbcp.mp_math.plane","class Plane3"]},"93":{"title":"def cal_intersection_line3(self, other: Plane3) -> Line3","titles":["mbcp.mp_math.plane","class Plane3"]},"94":{"title":"def cal_intersection_point3(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"95":{"title":"def cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"96":{"title":"def is_parallel(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"97":{"title":"def normal(self) -> Vector3","titles":["mbcp.mp_math.plane","class Plane3"]},"98":{"title":"def from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"99":{"title":"def from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"100":{"title":"def from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"101":{"title":"def from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"102":{"title":"def __and__(self, other: Line3) -> Point3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"103":{"title":"def __and__(self, other: Plane3) -> Line3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"104":{"title":"def __and__(self, other)","titles":["mbcp.mp_math.plane","class Plane3"]},"105":{"title":"def __eq__(self, other) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"106":{"title":"def __rand__(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"107":{"title":"mbcp.mp_math.segment","titles":[]},"108":{"title":"class Segment3","titles":["mbcp.mp_math.segment"]},"109":{"title":"def __init__(self, p1: Point3, p2: Point3)","titles":["mbcp.mp_math.segment","class Segment3"]},"110":{"title":"mbcp.mp_math.utils","titles":[]},"111":{"title":"def clamp(x: float, min_: float, max_: float) -> float","titles":["mbcp.mp_math.utils"]},"112":{"title":"class Approx","titles":["mbcp.mp_math.utils"]},"113":{"title":"def __init__(self, value: RealNumber)","titles":["mbcp.mp_math.utils","class Approx"]},"114":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"115":{"title":"def raise_type_error(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"116":{"title":"def __ne__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"117":{"title":"def approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.utils"]},"118":{"title":"def sign(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"119":{"title":"def 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":"def __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.vector","class Vector3"]},"123":{"title":"def approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"124":{"title":"def cal_angle(self, other: Vector3) -> AnyAngle","titles":["mbcp.mp_math.vector","class Vector3"]},"125":{"title":"def cross(self, other: Vector3) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"126":{"title":"def is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"127":{"title":"def is_parallel(self, other: Vector3) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"128":{"title":"def normalize(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"129":{"title":"def np_array(self) -> np.ndarray","titles":["mbcp.mp_math.vector","class Vector3"]},"130":{"title":"def length(self) -> float","titles":["mbcp.mp_math.vector","class Vector3"]},"131":{"title":"def unit(self) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"132":{"title":"def __abs__(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"133":{"title":"def self + other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"134":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"135":{"title":"def self + other","titles":["mbcp.mp_math.vector","class Vector3"]},"136":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.vector","class Vector3"]},"137":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"138":{"title":"def self - other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"139":{"title":"def self - other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"140":{"title":"def self - other","titles":["mbcp.mp_math.vector","class Vector3"]},"141":{"title":"def self - other: Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"142":{"title":"def self * other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"143":{"title":"def self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"144":{"title":"def self * other: int | float | Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"145":{"title":"def self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"146":{"title":"def self @ other: Vector3 => RealNumber","titles":["mbcp.mp_math.vector","class Vector3"]},"147":{"title":"def self / other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"148":{"title":"def - 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":"def 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":"def 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":{"104":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,"91":1,"92":1,"104":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":{"86":2}}],["长度",{"2":{"109":1}}],["线段的另一个端点",{"2":{"109":2}}],["线段的一个端点",{"2":{"109":2}}],["人话",{"2":{"104":2}}],["法向量",{"2":{"97":2,"98":2}}],["k``",{"2":{"125":1}}],["k",{"2":{"90":12}}],["常数项",{"2":{"89":2}}],["常量",{"2":{"25":1}}],["平面上一点",{"2":{"98":2,"101":2}}],["平面的法向量",{"2":{"97":2}}],["平面",{"2":{"95":2,"98":2,"99":2,"100":2,"101":2}}],["平面与直线平行或重合",{"2":{"94":2}}],["平面平行且无交线",{"2":{"93":2}}],["平面方程",{"2":{"89":2}}],["平行线返回none",{"2":{"57":2}}],["新的向量或点",{"2":{"135":2}}],["新的向量",{"2":{"86":2,"140":2}}],["新的点",{"2":{"84":2,"137":2,"141":2}}],["已在",{"2":{"86":2}}],["已知一个函数$f",{"2":{"37":1}}],["已知一个函数f",{"2":{"37":1}}],["坐标",{"2":{"80":6}}],["笛卡尔坐标系中的点",{"2":{"80":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":{"93":2,"104":2}}],["交线返回交点",{"2":{"57":2}}],["交集",{"2":{"57":2,"104":2}}],["交点",{"2":{"46":2,"94":2}}],["重合线返回自身",{"2":{"57":2}}],["由点和直线构造平面",{"2":{"101":2}}],["由点和法向量构造平面",{"2":{"98":2}}],["由两直线构造平面",{"2":{"100":2}}],["由两点构造直线",{"2":{"56":2}}],["由三点构造平面",{"2":{"99":2}}],["由一个点和一个方向向量确定",{"2":{"42":2}}],["工厂函数",{"2":{"56":2,"98":2,"99":2,"100":2,"101":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,"91":2,"92":2,"104":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":{"96":2}}],["判断两个平面是否近似相等",{"2":{"90":2}}],["判断两个点是否相等",{"2":{"85":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":{"92":2}}],["另一个平面或直线",{"2":{"91":2,"104":2}}],["另一个平面",{"2":{"90":2,"93":2,"96":2,"105":2}}],["另一个点或向量",{"2":{"84":2}}],["另一个点",{"2":{"81":2,"85":2,"86":2,"137":2,"141":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,"95":2}}],["直线",{"2":{"56":2,"94":2,"100":4,"101":2}}],["直线不共面",{"2":{"46":2}}],["直线平行",{"2":{"46":2}}],["直线上的一点",{"2":{"42":2}}],["距离",{"2":{"45":2,"92":2}}],["夹角",{"2":{"44":2,"91":2,"124":2}}],["是否只返回负数的符号",{"2":{"118":2,"119":2}}],["是否相等",{"2":{"85":2,"136":2}}],["是否等价",{"2":{"58":2,"105":2}}],["是否共面",{"2":{"54":2}}],["是否共线",{"2":{"52":2}}],["是否在直线上",{"2":{"53":2}}],["是否平行",{"2":{"51":2,"96":2,"127":2}}],["是否近似平行",{"2":{"50":2,"126":2}}],["是否近似相等",{"2":{"43":2,"81":2,"90":2,"117":2,"123":2}}],["是否为弧度",{"2":{"5":2}}],["误差",{"2":{"43":2,"50":2,"81":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":{"107":1}}],["本模块定义了三维空间中的平面类",{"2":{"87":1}}],["本模块定义了三维空间中的直线类",{"2":{"40":1}}],["本模块定义了三维空间中点的类",{"2":{"78":1}}],["本模块定义了方程相关的类和函数以及一些常用的数学函数",{"2":{"31":1}}],["本模块定义了角度相关的类",{"2":{"2":1}}],["本模块是主模块",{"2":{"0":1,"1":1}}],["help",{"2":{"171":1}}],["heart",{"2":{"164":1}}],["have",{"2":{"93":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":2,"85":1,"89":1,"90":1,"91":1,"92":2,"93":1,"94":1,"96":1,"104":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":2,"85":1,"89":1,"90":1,"91":1,"92":2,"93":1,"94":1,"96":1,"104":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,"89":1,"91":1,"92":2,"93":1,"94":1,"96":1,"104":2,"105":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":2,"85":1,"89":1,"90":1,"91":1,"92":2,"93":1,"94":1,"96":1,"104":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":{"89":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,"90":1,"96":1,"105":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,"85":2,"90":3,"96":3,"105":3,"117":3,"118":2,"119":2,"123":3,"126":3,"127":3,"136":2}}],["b",{"0":{"89":1},"2":{"38":4,"89":5,"90":7,"92":2,"93":12,"94":2,"97":1,"98":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":{"89":1},"2":{"89":7,"90":6,"92":1,"93":6,"94":1,"98":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":2,"85":1,"89":1,"90":1,"91":1,"92":2,"93":1,"94":1,"96":1,"104":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,"92":1},"2":{"45":1,"92":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,"91":1,"93":2,"94":4,"100":1,"101":1,"104":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",{"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,"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,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"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":{"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,"82":1,"83":1,"97":1,"98":1,"99":1,"100":1,"101":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":{"99":2}}],["点法式构造",{"2":{"98":2}}],["点2",{"2":{"56":2,"99":2}}],["点1",{"2":{"56":2,"99":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":{"95":2}}],["计算平面与直线的交点",{"2":{"94":2}}],["计算平面与平面或点之间的距离",{"2":{"92":2}}],["计算平面与平面之间的夹角",{"2":{"91":2}}],["计算两个向量之间的夹角",{"2":{"124":2}}],["计算两平面的交线",{"2":{"93":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,"99":2,"100":4,"125":2}}],["v1",{"2":{"58":4,"99":2,"100":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,"84":1,"86":3,"97":1,"98":1,"144":1}}],["vector3",{"0":{"37":1,"42":1,"82":1,"86":1,"97":1,"98":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,"82":1,"84":2,"86":7,"97":4,"98":3,"100":1,"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,"84":2,"86":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,"93":3,"94":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":{"100":1},"2":{"100":5}}],["l1",{"0":{"100":1},"2":{"100":7}}],["lambda",{"2":{"49":3}}],["left",{"2":{"37":1}}],["length",{"0":{"130":1},"2":{"45":5,"46":1,"91":2,"109":2,"124":2,"126":1,"128":5,"130":1,"131":1,"132":1}}],["len",{"2":{"34":1}}],["linalg",{"2":{"93":3}}],["lines",{"0":{"100":1},"2":{"46":2,"100":1}}],["line",{"0":{"40":1,"101":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,"91":1,"93":1,"94":2,"100":1,"101":6,"104":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,"91":1,"93":2,"94":1,"100":2,"101":1,"102":1,"103":1,"106":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,"91":4,"93":5,"94":3,"100":5,"101":3,"102":1,"103":1,"104":6,"106":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":2,"85":1,"89":1,"90":1,"91":1,"92":2,"93":1,"94":1,"96":1,"104":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,"104":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":{"90":1,"91":1,"92":1,"93":1,"95":1,"96":1,"98":1,"104":1,"105":1}}],["`point3`",{"2":{"37":1,"42":1,"45":1,"46":1,"47":1,"48":1,"53":1,"56":2,"57":1,"81":1,"84":2,"85":1,"86":1,"92":1,"94":1,"95":1,"98":1,"99":3,"101":1,"104":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,"91":1,"92":1,"104":1}}],["`threesinglevarsfunc`",{"2":{"37":1}}],["`anyangle`",{"2":{"44":1,"91":1,"124":1}}],["`bool`",{"2":{"43":1,"50":1,"51":1,"52":1,"53":1,"54":1,"58":1,"81":1,"85":1,"90":1,"96":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":3,"81":1,"89":4,"92":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,"91":1,"93":1,"94":1,"100":2,"101":1,"104":2}}],["`valueerror`",{"2":{"46":2,"93":1,"94":1}}],["`var`",{"2":{"38":1}}],["`vector3`",{"2":{"42":1,"84":1,"86":2,"97":1,"98":1,"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,"91":1,"92":1,"93":1,"94":1,"104":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":{"93":9,"129":4,"158":9,"161":9}}],["no",{"2":{"93":1}}],["normal",{"0":{"97":1,"98":2},"2":{"91":5,"93":4,"94":1,"95":2,"96":2,"97":1,"98":7,"99":3,"100":1,"101":1,"104":3}}],["normalize",{"0":{"128":1},"2":{"55":1,"128":1}}],["none",{"0":{"57":1,"102":1,"103":1},"2":{"57":4,"102":1,"103":1,"104":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,"91":1,"92":1,"102":1,"103":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,"84":2,"91":3,"92":3,"102":1,"103":1,"104":6,"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":{"100":1,"127":1}}],["z系数",{"2":{"89":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,"80":1,"122":1,"152":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":4,"80":7,"81":2,"84":2,"85":2,"86":2,"92":1,"93":4,"94":4,"98":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":{"89":2}}],["y0",{"2":{"37":2}}],["y函数",{"2":{"33":2}}],["y",{"0":{"33":1,"80":1,"117":1,"122":1,"151":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":4,"80":7,"81":2,"84":2,"85":2,"86":2,"92":1,"93":4,"94":4,"98":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}}],["x26",{"2":{"104":1}}],["x系数",{"2":{"89":2}}],["x3c",{"2":{"81":3,"114":1,"117":1,"118":1,"119":1,"123":3,"126":1}}],["x0",{"2":{"37":2}}],["x函数",{"2":{"33":2}}],["x",{"0":{"33":1,"80":1,"111":1,"117":1,"118":1,"119":1,"122":1,"150":1},"2":{"33":5,"34":4,"37":11,"49":2,"55":2,"80":7,"81":2,"84":2,"85":2,"86":2,"92":1,"93":4,"94":4,"98":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,"89":2,"90":3,"92":2,"93":9,"94":1,"104":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,"92":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,"94":1,"100":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,"86":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"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,"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":{"84":2,"86":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":{"94":2,"171":1}}],["three",{"0":{"99":1},"2":{"99":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,"100":1},"2":{"56":1,"100":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,"91":3,"92":3,"104":3,"115":1,"135":1,"140":1,"141":1,"144":1}}],["type",{"0":{"115":1},"2":{"35":1,"45":1,"91":2,"92":2,"104":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,"94":4}}],["truediv",{"2":{"21":1,"22":1,"23":1,"147":1}}],["tan",{"0":{"13":1},"2":{"13":2,"14":1}}],["operand",{"2":{"104":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,"94":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":2,"85":1,"89":1,"90":1,"91":1,"92":2,"93":1,"94":1,"96":1,"104":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,"81":1,"82":2,"83":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,"86":1,"90":1,"91":1,"92":1,"93":1,"94":1,"96":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":6,"82":1,"83":1,"84":6,"85":6,"86":6,"90":15,"91":9,"92":9,"93":17,"94":11,"96":4,"102":1,"103":1,"104":10,"105":4,"106":2,"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,"81":1,"117":1,"123":1,"126":1},"2":{"35":7,"37":12,"43":5,"50":4,"81":6,"117":4,"123":6,"126":4}}],["error",{"0":{"115":1},"2":{"114":2,"115":1}}],["exceptions",{"2":{"45":1,"46":1,"91":1,"92":1,"93":1,"94":1,"104":1}}],["examples",{"2":{"38":1}}],["exp",{"2":{"26":1}}],["elif",{"2":{"35":1,"45":3,"57":1,"90":2,"91":1,"92":1,"93":2,"104":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,"90":1,"91":1,"92":1,"104":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,"94":1}}],["equation",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1}}],["eq",{"0":{"18":1,"58":1,"85":1,"105":1,"114":1,"136":1},"2":{"18":1,"58":1,"85":1,"105":1,"114":1,"116":1,"136":1}}],["+1",{"2":{"119":2}}],["+=",{"2":{"35":1}}],["+",{"0":{"17":1,"82":1,"83":1,"84":1,"133":1,"134":1,"135":1,"137":1},"2":{"17":1,"27":1,"37":3,"38":4,"46":1,"48":1,"49":3,"84":7,"89":6,"92":5,"94":5,"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,"100":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":{"104":1,"135":1,"140":1,"141":1,"144":1}}],["solve",{"2":{"93":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,"86":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,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":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":4,"81":4,"82":1,"83":1,"84":4,"85":4,"86":4,"89":5,"90":16,"91":4,"92":8,"93":15,"94":9,"95":2,"96":2,"97":4,"102":1,"103":1,"104":5,"105":2,"106":2,"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,"92":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":1,"84":1,"85":1,"86":1,"90":4,"91":2,"92":2,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"104":4,"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,"84":1,"85":1,"86":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"104":1,"105":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":{"106":1},"2":{"106":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,"91":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,"91":1,"92":1,"93":1,"94":1,"104":1,"114":2,"115":2,"135":1,"140":1,"141":1,"144":1}}],["raises",{"2":{"35":1,"45":1,"46":1,"91":1,"92":1,"93":1,"94":1,"104":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":2,"86":3,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"105":1,"106":1,"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,"84":1,"85":1,"86":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"104":1,"105":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,"91":1,"92":1,"93":1,"94":1,"95":1,"124":1},"2":{"37":1,"44":2,"45":1,"46":1,"47":1,"57":1,"91":2,"92":1,"93":1,"94":1,"95":1,"104":2,"106":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":{"89":2}}],["clamp",{"0":{"111":1},"2":{"111":1,"158":1,"161":1}}],["classmethod",{"2":{"55":1,"56":1,"97":1,"98":2,"99":2,"100":2,"101":1}}],["class",{"0":{"3":1,"4":1,"32":1,"41":1,"79":1,"88":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,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"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,"84":3,"85":1,"86":3,"90":1,"91":3,"92":2,"93":2,"94":2,"95":2,"96":1,"97":1,"98":3,"99":1,"100":1,"101":2,"104":4,"105":1,"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,"98":1,"99":1,"100":1,"101":1},"2":{"56":2,"98":2,"99":2,"100":2,"101":2}}],["cross",{"0":{"125":1},"2":{"45":4,"46":3,"47":1,"54":1,"93":1,"99":1,"100":1,"125":3,"126":1,"127":1}}],["c",{"0":{"89":1,"169":1},"1":{"170":1},"2":{"38":4,"89":5,"90":7,"92":2,"93":6,"94":2,"97":1,"98":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":{"94":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,"91":1}}],["com",{"2":{"38":1}}],["constants",{"2":{"57":1,"104":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}}],["acos",{"2":{"91":1,"124":1}}],["axis",{"0":{"150":1,"151":1,"152":1}}],["ax",{"2":{"89":2}}],["all",{"2":{"81":1,"114":1,"123":1}}],["arccos",{"2":{"158":1,"161":1}}],["array",{"0":{"129":1},"2":{"93":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,"93":1,"94":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,"84":1,"85":1,"86":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"98":1,"99":1,"100":1,"101":1,"104":1,"105":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,"81":3,"92":1,"114":1,"117":1,"119":1,"123":3,"132":1}}],["a",{"0":{"89":1},"2":{"38":4,"89":5,"90":7,"92":2,"93":12,"94":2,"97":1,"98":3}}],["aaa",{"0":{"167":1},"1":{"168":1},"2":{"36":1}}],["approx",{"0":{"30":1,"43":2,"50":1,"81":2,"90":1,"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":1,"85":3,"90":10,"105":1,"114":4,"117":1,"123":1,"126":1,"127":1,"136":3}}],["add",{"2":{"17":1,"38":8,"82":1,"83":1,"84":1,"133":1,"134":1,"135":1}}],["and",{"0":{"57":1,"98":1,"101":1,"102":1,"103":1,"104":1},"2":{"43":1,"46":2,"52":1,"57":1,"58":1,"85":2,"90":6,"93":4,"94":1,"95":1,"98":1,"99":1,"100":1,"101":2,"102":1,"103":1,"104":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,"91":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,"91":4,"124":4}}],["angle",{"0":{"2":1,"3":1,"4":1,"44":1,"91":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,"91":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,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"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,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"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,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"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,"84":1,"85":1,"86":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"98":1,"99":1,"100":1,"101":1,"104":1,"105":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}}],["from",{"0":{"56":1,"98":1,"99":1,"100":1,"101":1},"2":{"56":1,"86":1,"95":1,"98":1,"99":2,"100":2,"101":2,"164":1}}],["frac",{"2":{"37":3}}],["f",{"2":{"37":4,"91":1,"92":1,"104":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,"104":1,"135":1,"140":1,"141":1,"144":1,"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":2,"85":1,"89":1,"90":1,"92":1,"96":1,"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":{"33":3,"35":2,"37":1,"38":1},"2":{"33":15,"34":6,"35":16,"37":9,"38":6}}],["false",{"0":{"5":1,"118":1,"119":1},"2":{"90":1}}],["float=0",{"2":{"117":1}}],["float=1e",{"2":{"50":1}}],["float=approx",{"2":{"43":1,"81":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":3,"81":1,"89":4,"92":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":7,"81":2,"89":9,"92":3,"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}}],["==",{"2":{"34":1,"45":1,"54":1,"55":3,"94":1,"100":1,"104":1}}],["=",{"0":{"5":1,"17":1,"19":1,"20":1,"21":1,"22":1,"35":1,"37":1,"43":1,"50":1,"81":1,"82":1,"83":1,"86":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":3,"89":6,"90":6,"93":17,"94":2,"98":2,"99":3,"100":3,"109":5,"113":1,"122":3,"128":4,"158":7,"161":7}}],["improve",{"2":{"171":1}}],["import",{"2":{"86":1}}],["i",{"2":{"158":4,"161":4,"164":1}}],["invalid",{"2":{"35":1}}],["intersect",{"2":{"46":2}}],["intersection",{"0":{"46":1,"93":1,"94":1},"2":{"46":1,"57":1,"93":2,"94":1,"104":2,"106":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,"89":1,"109":1,"113":1,"122":1},"2":{"5":1,"33":1,"42":1,"80":1,"89":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,"90":1,"91":1,"92":1,"93":2,"94":1,"100":1,"104":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,"91":2,"92":2,"104":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,"96":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,"91":1,"93":1,"96":2,"104":1,"124":1,"126":1,"127":1}}],["预设",{"2":{"0":1,"1":1}}],["phi",{"2":{"158":5,"161":5}}],["p3",{"0":{"99":1},"2":{"99":4}}],["p2",{"0":{"56":1,"99":1,"109":1},"2":{"56":4,"58":2,"99":4,"109":9}}],["p1",{"0":{"56":1,"99":1,"109":1},"2":{"56":5,"58":2,"99":6,"109":9}}],["perpendicular",{"0":{"47":1},"2":{"47":1}}],["parametric",{"0":{"49":1},"2":{"49":1,"94":1}}],["parallel",{"0":{"50":1,"51":1,"95":1,"96":1,"126":1,"127":1},"2":{"43":2,"45":1,"46":2,"50":2,"51":2,"52":2,"53":1,"57":1,"58":2,"93":2,"94":1,"95":1,"96":2,"104":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":{"93":1}}],["plane",{"0":{"87":1},"1":{"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1},"2":{"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"98":1,"104":1,"105":1}}],["plane3",{"0":{"88":1,"90":1,"91":1,"92":1,"93":1,"95":2,"96":1,"98":1,"99":1,"100":1,"101":1,"103":1},"1":{"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1},"2":{"39":1,"59":1,"90":3,"91":4,"92":4,"93":3,"95":5,"96":3,"98":3,"99":1,"100":1,"101":1,"103":1,"104":4,"105":2,"114":1}}],["plus",{"2":{"35":3}}],["p",{"0":{"37":1},"2":{"37":21,"38":1,"84":10,"86":8,"135":4,"137":4,"140":4,"141":4}}],["points",{"0":{"56":1,"99":1},"2":{"56":1,"99":1}}],["point",{"0":{"42":1,"47":1,"48":1,"53":2,"78":1,"95":1,"98":2,"101":2},"1":{"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":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,"81":1,"84":2,"85":1,"86":1,"92":1,"94":4,"95":6,"98":8,"99":2,"100":6,"101":7,"104":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,"79":1,"81":1,"82":1,"83":2,"86":1,"92":1,"94":2,"95":1,"98":1,"99":3,"101":1,"102":1,"106":1,"109":2,"134":2,"137":2,"139":2,"141":1},"1":{"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":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,"81":3,"82":1,"83":2,"84":5,"85":2,"86":3,"92":4,"93":1,"94":5,"95":3,"98":3,"99":7,"101":3,"102":1,"104":3,"106":2,"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":2,"82":1,"83":1,"85":1,"89":1,"90":1,"91":1,"92":2,"93":1,"94":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":2,"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,"84":1,"85":1,"86":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":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,"96":1,"97":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,"87":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,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"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,"91":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,"87":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,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"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,"87":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,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"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,"84":1,"85":1,"86":1,"87":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"104":1,"105":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/@localSearchIndexzht.BZCP5Wsl.js b/assets/chunks/@localSearchIndexzht.BZCP5Wsl.js deleted file mode 100644 index 7e011a2..0000000 --- a/assets/chunks/@localSearchIndexzht.BZCP5Wsl.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#def-init-self-value-float-is-radian-bool-false","6":"/zht/api/mp_math/angle.html#def-complementary-self-anyangle","7":"/zht/api/mp_math/angle.html#def-supplementary-self-anyangle","8":"/zht/api/mp_math/angle.html#def-degree-self-float","9":"/zht/api/mp_math/angle.html#def-minimum-positive-self-anyangle","10":"/zht/api/mp_math/angle.html#def-maximum-negative-self-anyangle","11":"/zht/api/mp_math/angle.html#def-sin-self-float","12":"/zht/api/mp_math/angle.html#def-cos-self-float","13":"/zht/api/mp_math/angle.html#def-tan-self-float","14":"/zht/api/mp_math/angle.html#def-cot-self-float","15":"/zht/api/mp_math/angle.html#def-sec-self-float","16":"/zht/api/mp_math/angle.html#def-csc-self-float","17":"/zht/api/mp_math/angle.html#def-self-other-anyangle-anyangle","18":"/zht/api/mp_math/angle.html#def-eq-self-other","19":"/zht/api/mp_math/angle.html#def-self-other-anyangle-anyangle-1","20":"/zht/api/mp_math/angle.html#def-self-other-float-anyangle","21":"/zht/api/mp_math/angle.html#def-self-other-float-anyangle-1","22":"/zht/api/mp_math/angle.html#def-self-other-anyangle-float","23":"/zht/api/mp_math/angle.html#def-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#def-init-self-x-func-onevarfunc-y-func-onevarfunc-z-func-onevarfunc","34":"/zht/api/mp_math/equation.html#def-call-self-t-var-point3-tuple-point3","35":"/zht/api/mp_math/equation.html#def-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#def-cal-gradient-3vf-func-threesinglevarsfunc-p-point3-epsilon-float-epsilon-vector3","38":"/zht/api/mp_math/function.html#def-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#def-init-self-point-point3-direction-vector3","43":"/zht/api/mp_math/line.html#def-approx-self-other-line3-epsilon-float-approx-bool","44":"/zht/api/mp_math/line.html#def-cal-angle-self-other-line3-anyangle","45":"/zht/api/mp_math/line.html#def-cal-distance-self-other-line3-point3-float","46":"/zht/api/mp_math/line.html#def-cal-intersection-self-other-line3-point3","47":"/zht/api/mp_math/line.html#def-cal-perpendicular-self-point-point3-line3","48":"/zht/api/mp_math/line.html#def-get-point-self-t-realnumber-point3","49":"/zht/api/mp_math/line.html#def-get-parametric-equations-self-tuple-onesinglevarfunc-onesinglevarfunc-onesinglevarfunc","50":"/zht/api/mp_math/line.html#def-is-approx-parallel-self-other-line3-epsilon-float-1e-06-bool","51":"/zht/api/mp_math/line.html#def-is-parallel-self-other-line3-bool","52":"/zht/api/mp_math/line.html#def-is-collinear-self-other-line3-bool","53":"/zht/api/mp_math/line.html#def-is-point-on-self-point-point3-bool","54":"/zht/api/mp_math/line.html#def-is-coplanar-self-other-line3-bool","55":"/zht/api/mp_math/line.html#def-simplify-self","56":"/zht/api/mp_math/line.html#def-from-two-points-cls-p1-point3-p2-point3-line3","57":"/zht/api/mp_math/line.html#def-and-self-other-line3-line3-point3-none","58":"/zht/api/mp_math/line.html#def-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#def-init-self-a-float-b-float-c-float-d-float","81":"/zht/api/mp_math/plane.html#def-approx-self-other-plane3-bool","82":"/zht/api/mp_math/plane.html#def-cal-angle-self-other-line3-plane3-anyangle","83":"/zht/api/mp_math/plane.html#def-cal-distance-self-other-plane3-point3-float","84":"/zht/api/mp_math/plane.html#def-cal-intersection-line3-self-other-plane3-line3","85":"/zht/api/mp_math/plane.html#def-cal-intersection-point3-self-other-line3-point3","86":"/zht/api/mp_math/plane.html#def-cal-parallel-plane3-self-point-point3-plane3","87":"/zht/api/mp_math/plane.html#def-is-parallel-self-other-plane3-bool","88":"/zht/api/mp_math/plane.html#def-normal-self-vector3","89":"/zht/api/mp_math/plane.html#def-from-point-and-normal-cls-point-point3-normal-vector3-plane3","90":"/zht/api/mp_math/plane.html#def-from-three-points-cls-p1-point3-p2-point3-p3-point3-plane3","91":"/zht/api/mp_math/plane.html#def-from-two-lines-cls-l1-line3-l2-line3-plane3","92":"/zht/api/mp_math/plane.html#def-from-point-and-line-cls-point-point3-line-line3-plane3","93":"/zht/api/mp_math/plane.html#def-and-self-other-line3-point3-none","94":"/zht/api/mp_math/plane.html#def-and-self-other-plane3-line3-none","95":"/zht/api/mp_math/plane.html#def-and-self-other","96":"/zht/api/mp_math/plane.html#def-eq-self-other-bool","97":"/zht/api/mp_math/plane.html#def-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#def-init-self-x-float-y-float-z-float","101":"/zht/api/mp_math/point.html#def-approx-self-other-point3-epsilon-float-approx-bool","102":"/zht/api/mp_math/point.html#def-self-other-vector3-point3","103":"/zht/api/mp_math/point.html#def-self-other-point3-point3","104":"/zht/api/mp_math/point.html#def-self-other","105":"/zht/api/mp_math/point.html#def-eq-self-other","106":"/zht/api/mp_math/point.html#def-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#def-init-self-p1-point3-p2-point3","110":"/zht/api/mp_math/utils.html#mbcp-mp-math-utils","111":"/zht/api/mp_math/utils.html#def-clamp-x-float-min-float-max-float-float","112":"/zht/api/mp_math/utils.html#class-approx","113":"/zht/api/mp_math/utils.html#def-init-self-value-realnumber","114":"/zht/api/mp_math/utils.html#def-eq-self-other","115":"/zht/api/mp_math/utils.html#def-raise-type-error-self-other","116":"/zht/api/mp_math/utils.html#def-ne-self-other","117":"/zht/api/mp_math/utils.html#def-approx-x-float-y-float-0-0-epsilon-float-approx-bool","118":"/zht/api/mp_math/utils.html#def-sign-x-float-only-neg-bool-false-str","119":"/zht/api/mp_math/utils.html#def-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#def-init-self-x-float-y-float-z-float","123":"/zht/api/mp_math/vector.html#def-approx-self-other-vector3-epsilon-float-approx-bool","124":"/zht/api/mp_math/vector.html#def-cal-angle-self-other-vector3-anyangle","125":"/zht/api/mp_math/vector.html#def-cross-self-other-vector3-vector3","126":"/zht/api/mp_math/vector.html#def-is-approx-parallel-self-other-vector3-epsilon-float-approx-bool","127":"/zht/api/mp_math/vector.html#def-is-parallel-self-other-vector3-bool","128":"/zht/api/mp_math/vector.html#def-normalize-self","129":"/zht/api/mp_math/vector.html#def-np-array-self-np-ndarray","130":"/zht/api/mp_math/vector.html#def-length-self-float","131":"/zht/api/mp_math/vector.html#def-unit-self-vector3","132":"/zht/api/mp_math/vector.html#def-abs-self","133":"/zht/api/mp_math/vector.html#def-self-other-vector3-vector3","134":"/zht/api/mp_math/vector.html#def-self-other-point3-point3","135":"/zht/api/mp_math/vector.html#def-self-other","136":"/zht/api/mp_math/vector.html#def-eq-self-other","137":"/zht/api/mp_math/vector.html#def-self-other-point3-point3-1","138":"/zht/api/mp_math/vector.html#def-self-other-vector3-vector3-1","139":"/zht/api/mp_math/vector.html#def-self-other-point3-point3-2","140":"/zht/api/mp_math/vector.html#def-self-other-1","141":"/zht/api/mp_math/vector.html#def-self-other-point3","142":"/zht/api/mp_math/vector.html#def-self-other-vector3-vector3-2","143":"/zht/api/mp_math/vector.html#def-self-other-realnumber-vector3","144":"/zht/api/mp_math/vector.html#def-self-other-int-float-vector3-vector3","145":"/zht/api/mp_math/vector.html#def-self-other-realnumber-vector3-1","146":"/zht/api/mp_math/vector.html#def-self-other-vector3-realnumber","147":"/zht/api/mp_math/vector.html#def-self-other-realnumber-vector3-2","148":"/zht/api/mp_math/vector.html#def-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/#def-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#def-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":[9,6,26],"34":[10,6,35],"35":[15,4,74],"36":[4,1,3],"37":[14,4,69],"38":[8,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.538922155688623,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":"def __init__(self, value: float, is_radian: bool = False)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"6":{"title":"def complementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"7":{"title":"def supplementary(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"8":{"title":"def degree(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"9":{"title":"def minimum_positive(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"10":{"title":"def maximum_negative(self) -> AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"11":{"title":"def sin(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"12":{"title":"def cos(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"13":{"title":"def tan(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"14":{"title":"def cot(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"15":{"title":"def sec(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"16":{"title":"def csc(self) -> float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"17":{"title":"def self + other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"18":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"19":{"title":"def self - other: AnyAngle => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"20":{"title":"def self * other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"21":{"title":"def self / other: float => AnyAngle","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"22":{"title":"def self / other: AnyAngle => float","titles":["mbcp.mp_math.angle","class AnyAngle(Angle)"]},"23":{"title":"def 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":"def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc)","titles":["mbcp.mp_math.equation","class CurveEquation"]},"34":{"title":"def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]","titles":["mbcp.mp_math.equation","class CurveEquation"]},"35":{"title":"def 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":"def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSILON) -> Vector3","titles":["mbcp.mp_math.function"]},"38":{"title":"def 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":"def __init__(self, point: Point3, direction: Vector3)","titles":["mbcp.mp_math.line","class Line3"]},"43":{"title":"def approx(self, other: Line3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"44":{"title":"def cal_angle(self, other: Line3) -> AnyAngle","titles":["mbcp.mp_math.line","class Line3"]},"45":{"title":"def cal_distance(self, other: Line3 | Point3) -> float","titles":["mbcp.mp_math.line","class Line3"]},"46":{"title":"def cal_intersection(self, other: Line3) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"47":{"title":"def cal_perpendicular(self, point: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"48":{"title":"def get_point(self, t: RealNumber) -> Point3","titles":["mbcp.mp_math.line","class Line3"]},"49":{"title":"def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]","titles":["mbcp.mp_math.line","class Line3"]},"50":{"title":"def is_approx_parallel(self, other: Line3, epsilon: float = 1e-06) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"51":{"title":"def is_parallel(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"52":{"title":"def is_collinear(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"53":{"title":"def is_point_on(self, point: Point3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"54":{"title":"def is_coplanar(self, other: Line3) -> bool","titles":["mbcp.mp_math.line","class Line3"]},"55":{"title":"def simplify(self)","titles":["mbcp.mp_math.line","class Line3"]},"56":{"title":"def from_two_points(cls, p1: Point3, p2: Point3) -> Line3","titles":["mbcp.mp_math.line","class Line3"]},"57":{"title":"def __and__(self, other: Line3) -> Line3 | Point3 | None","titles":["mbcp.mp_math.line","class Line3"]},"58":{"title":"def __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":"def __init__(self, a: float, b: float, c: float, d: float)","titles":["mbcp.mp_math.plane","class Plane3"]},"81":{"title":"def approx(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"82":{"title":"def cal_angle(self, other: Line3 | Plane3) -> AnyAngle","titles":["mbcp.mp_math.plane","class Plane3"]},"83":{"title":"def cal_distance(self, other: Plane3 | Point3) -> float","titles":["mbcp.mp_math.plane","class Plane3"]},"84":{"title":"def cal_intersection_line3(self, other: Plane3) -> Line3","titles":["mbcp.mp_math.plane","class Plane3"]},"85":{"title":"def cal_intersection_point3(self, other: Line3) -> Point3","titles":["mbcp.mp_math.plane","class Plane3"]},"86":{"title":"def cal_parallel_plane3(self, point: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"87":{"title":"def is_parallel(self, other: Plane3) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"88":{"title":"def normal(self) -> Vector3","titles":["mbcp.mp_math.plane","class Plane3"]},"89":{"title":"def from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"90":{"title":"def from_three_points(cls, p1: Point3, p2: Point3, p3: Point3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"91":{"title":"def from_two_lines(cls, l1: Line3, l2: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"92":{"title":"def from_point_and_line(cls, point: Point3, line: Line3) -> Plane3","titles":["mbcp.mp_math.plane","class Plane3"]},"93":{"title":"def __and__(self, other: Line3) -> Point3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"94":{"title":"def __and__(self, other: Plane3) -> Line3 | None","titles":["mbcp.mp_math.plane","class Plane3"]},"95":{"title":"def __and__(self, other)","titles":["mbcp.mp_math.plane","class Plane3"]},"96":{"title":"def __eq__(self, other) -> bool","titles":["mbcp.mp_math.plane","class Plane3"]},"97":{"title":"def __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":"def __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.point","class Point3"]},"101":{"title":"def approx(self, other: Point3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.point","class Point3"]},"102":{"title":"def self + other: Vector3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"103":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.point","class Point3"]},"104":{"title":"def self + other","titles":["mbcp.mp_math.point","class Point3"]},"105":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.point","class Point3"]},"106":{"title":"def 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":"def __init__(self, p1: Point3, p2: Point3)","titles":["mbcp.mp_math.segment","class Segment3"]},"110":{"title":"mbcp.mp_math.utils","titles":[]},"111":{"title":"def clamp(x: float, min_: float, max_: float) -> float","titles":["mbcp.mp_math.utils"]},"112":{"title":"class Approx","titles":["mbcp.mp_math.utils"]},"113":{"title":"def __init__(self, value: RealNumber)","titles":["mbcp.mp_math.utils","class Approx"]},"114":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"115":{"title":"def raise_type_error(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"116":{"title":"def __ne__(self, other)","titles":["mbcp.mp_math.utils","class Approx"]},"117":{"title":"def approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.utils"]},"118":{"title":"def sign(x: float, only_neg: bool = False) -> str","titles":["mbcp.mp_math.utils"]},"119":{"title":"def 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":"def __init__(self, x: float, y: float, z: float)","titles":["mbcp.mp_math.vector","class Vector3"]},"123":{"title":"def approx(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"124":{"title":"def cal_angle(self, other: Vector3) -> AnyAngle","titles":["mbcp.mp_math.vector","class Vector3"]},"125":{"title":"def cross(self, other: Vector3) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"126":{"title":"def is_approx_parallel(self, other: Vector3, epsilon: float = APPROX) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"127":{"title":"def is_parallel(self, other: Vector3) -> bool","titles":["mbcp.mp_math.vector","class Vector3"]},"128":{"title":"def normalize(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"129":{"title":"def np_array(self) -> np.ndarray","titles":["mbcp.mp_math.vector","class Vector3"]},"130":{"title":"def length(self) -> float","titles":["mbcp.mp_math.vector","class Vector3"]},"131":{"title":"def unit(self) -> Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"132":{"title":"def __abs__(self)","titles":["mbcp.mp_math.vector","class Vector3"]},"133":{"title":"def self + other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"134":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"135":{"title":"def self + other","titles":["mbcp.mp_math.vector","class Vector3"]},"136":{"title":"def __eq__(self, other)","titles":["mbcp.mp_math.vector","class Vector3"]},"137":{"title":"def self + other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"138":{"title":"def self - other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"139":{"title":"def self - other: Point3 => Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"140":{"title":"def self - other","titles":["mbcp.mp_math.vector","class Vector3"]},"141":{"title":"def self - other: Point3","titles":["mbcp.mp_math.vector","class Vector3"]},"142":{"title":"def self * other: Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"143":{"title":"def self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"144":{"title":"def self * other: int | float | Vector3 => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"145":{"title":"def self * other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"146":{"title":"def self @ other: Vector3 => RealNumber","titles":["mbcp.mp_math.vector","class Vector3"]},"147":{"title":"def self / other: RealNumber => Vector3","titles":["mbcp.mp_math.vector","class Vector3"]},"148":{"title":"def - 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":"def 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":"def 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",{"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,"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":{"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}}],["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}}],["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":{"33":3,"35":2,"37":1,"38":1},"2":{"33":15,"34":6,"35":16,"37":9,"38":6}}],["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}}],["==",{"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}}],["预设",{"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/@localSearchIndexzht.nVtnMKQr.js b/assets/chunks/@localSearchIndexzht.nVtnMKQr.js new file mode 100644 index 0000000..7f2e1ce --- /dev/null +++ b/assets/chunks/@localSearchIndexzht.nVtnMKQr.js @@ -0,0 +1 @@ +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.DuQLF8sH.js b/assets/chunks/VPLocalSearchBox.CohV5IPn.js similarity index 99% rename from assets/chunks/VPLocalSearchBox.DuQLF8sH.js rename to assets/chunks/VPLocalSearchBox.CohV5IPn.js index d1e7c29..08bdbd1 100644 --- a/assets/chunks/VPLocalSearchBox.DuQLF8sH.js +++ b/assets/chunks/VPLocalSearchBox.CohV5IPn.js @@ -1,4 +1,4 @@ -var Ot=Object.defineProperty;var Rt=(a,e,t)=>e in a?Ot(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Me=(a,e,t)=>Rt(a,typeof e!="symbol"?e+"":e,t);import{X as ye,s as ne,h as ve,aj as tt,ak as Ct,al as Mt,v as $e,am as At,d as Lt,G as we,an as st,ao as Dt,ap as zt,x as Pt,aq as Vt,y as Ae,R as de,Q as _e,ar as jt,as as $t,Y as Bt,U as Wt,a1 as Kt,o as Q,b as Jt,j as x,a2 as Ut,k as D,at as qt,au as Gt,av as Qt,c as Z,n as nt,e as xe,E as it,F as rt,a as he,t as fe,aw as Ht,p as Yt,l as Zt,ax as at,ay as Xt,a8 as es,ae as ts,az as ss,_ as ns}from"./framework.DpC1ZpOZ.js";import{u as is,c as rs}from"./theme.BIB25x10.js";const as={en:()=>ye(()=>import("./@localSearchIndexen.0nnzPzXo.js"),[]),ja:()=>ye(()=>import("./@localSearchIndexja.GK1VDS5_.js"),[]),root:()=>ye(()=>import("./@localSearchIndexroot.BeMaMjA4.js"),[]),zht:()=>ye(()=>import("./@localSearchIndexzht.BZCP5Wsl.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.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"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var gt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ne=gt.join(","),bt=typeof Element>"u",re=bt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,ke=!bt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},Fe=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},os=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},yt=function(e,t,s){if(Fe(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&re.call(e,Ne)&&n.unshift(e),n=n.filter(s),n},wt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!Fe(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),c=o.length?o:i.children,l=a(c,!0,s);s.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=re.call(i,Ne);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var v=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),f=!Fe(v,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(v&&f){var b=a(v===!0?i.children:v.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},_t=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ie=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||os(e))&&!_t(e)?0:e.tabIndex},cs=function(e,t){var s=ie(e);return s<0&&t&&!_t(e)?0:s},ls=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},us=function(e){return xt(e)&&e.type==="hidden"},ds=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},hs=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(re.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var c=e.parentElement,l=ke(e);if(c&&!c.shadowRoot&&n(c)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!c&&l!==e.ownerDocument?e=l.host:e=c}e=o}if(ms(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return ot(e);return!1},bs=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s=0)},ws=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,c=cs(o,i),l=i?a(n.candidates):o;c===0?i?t.push.apply(t,l):t.push(o):s.push({documentOrder:r,tabIndex:c,item:n,isScope:i,content:l})}),s.sort(ls).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},_s=function(e,t){t=t||{};var s;return t.getShadowRoot?s=wt([e],t.includeContainer,{filter:Be.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:ys}):s=yt(e,t.includeContainer,Be.bind(null,t)),ws(s)},xs=function(e,t){t=t||{};var s;return t.getShadowRoot?s=wt([e],t.includeContainer,{filter:Oe.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=yt(e,t.includeContainer,Oe.bind(null,t)),s},ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,Ne)===!1?!1:Be(t,e)},Ss=gt.concat("iframe").join(","),Le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,Ss)===!1?!1:Oe(t,e)};/*! diff --git a/assets/chunks/theme.BIB25x10.js b/assets/chunks/theme.BhGtk3iD.js similarity index 99% rename from assets/chunks/theme.BIB25x10.js rename to assets/chunks/theme.BhGtk3iD.js index a05a87e..fd17615 100644 --- a/assets/chunks/theme.BIB25x10.js +++ b/assets/chunks/theme.BhGtk3iD.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.DuQLF8sH.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.DuQLF8sH.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.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}; diff --git a/assets/ja_api_mp_math_angle.md.CAq1hHov.js b/assets/en_api_mp_math_angle.md.DTo0bIGQ.js similarity index 59% rename from assets/ja_api_mp_math_angle.md.CAq1hHov.js rename to assets/en_api_mp_math_angle.md.DTo0bIGQ.js index a595c1c..195131e 100644 --- a/assets/ja_api_mp_math_angle.md.CAq1hHov.js +++ b/assets/en_api_mp_math_angle.md.DTo0bIGQ.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)

def __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 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):
     """
         任意角度。
         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

def complementary(self) -> AnyAngle

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

戻り値: 余角

ソースコード または GitHubで表示
python
@property
+        self.radian = value * PI / 180

@property

func 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

def supplementary(self) -> AnyAngle

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

戻り値: 补角

ソースコード または GitHubで表示
python
@property
+    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
 def supplementary(self) -> 'AnyAngle':
     """
         补角:两角的和为180°。
         Returns:
             补角
         """
-    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

def degree(self) -> float

説明: 角度。

戻り値: 弧度

ソースコード または GitHubで表示
python
@property
+    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
 def degree(self) -> float:
     """
         角度。
         Returns:
             弧度
         """
-    return self.radian * 180 / PI

@property

def minimum_positive(self) -> AnyAngle

説明: 最小正角。

戻り値: 最小正角度

ソースコード または GitHubで表示
python
@property
+    return self.radian * 180 / PI

@property

func 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

def maximum_negative(self) -> AnyAngle

説明: 最大负角。

戻り値: 最大负角度

ソースコード または GitHubで表示
python
@property
+    return AnyAngle(self.radian % (2 * PI))

@property

func 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

def sin(self) -> float

説明: 正弦值。

戻り値: 正弦值

ソースコード または GitHubで表示
python
@property
+    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

func sin(self) -> float

Description: 正弦值。

Return: 正弦值

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

@property

def cos(self) -> float

説明: 余弦值。

戻り値: 余弦值

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

@property

func cos(self) -> float

Description: 余弦值。

Return: 余弦值

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

@property

def tan(self) -> float

説明: 正切值。

戻り値: 正切值

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

@property

func tan(self) -> float

Description: 正切值。

Return: 正切值

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

@property

def cot(self) -> float

説明: 余切值。

戻り値: 余切值

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

@property

func 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

def sec(self) -> float

説明: 正割值。

戻り値: 正割值

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

@property

func 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

def csc(self) -> float

説明: 余割值。

戻り値: 余割值

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

@property

func csc(self) -> float

Description: 余割值。

Return: 余割值

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

def self + other: AnyAngle => AnyAngle

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

def __eq__(self, other)

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

def self - other: AnyAngle => AnyAngle

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

def self * other: float => AnyAngle

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

@overload

def self / other: float => AnyAngle

ソースコード または GitHubで表示
python
@overload
+    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
 def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

def self / other: AnyAngle => float

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

func self / other: AnyAngle => float

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

def self / other

ソースコード または GitHubで表示
python
def __truediv__(self, other):
+    ...

func 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,d,o,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c 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{y as __pageData,F as default}; diff --git a/assets/en_api_mp_math_angle.md.09R7pxw_.lean.js b/assets/en_api_mp_math_angle.md.DTo0bIGQ.lean.js similarity index 72% rename from assets/en_api_mp_math_angle.md.09R7pxw_.lean.js rename to assets/en_api_mp_math_angle.md.DTo0bIGQ.lean.js index 8f233a1..150c5ed 100644 --- a/assets/en_api_mp_math_angle.md.09R7pxw_.lean.js +++ b/assets/en_api_mp_math_angle.md.DTo0bIGQ.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.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}; +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}; diff --git a/assets/zht_api_mp_math_equation.md.CNqNdo8e.js b/assets/en_api_mp_math_equation.md.NTcIjf_k.js similarity index 68% rename from assets/zht_api_mp_math_equation.md.CNqNdo8e.js rename to assets/en_api_mp_math_equation.md.NTcIjf_k.js index 1c6b67f..d8a1c2d 100644 --- a/assets/zht_api_mp_math_equation.md.CNqNdo8e.js +++ b/assets/en_api_mp_math_equation.md.NTcIjf_k.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

def __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":"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):
     """
         曲线方程。
         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

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

説明: 计算曲线上的点。

變數説明:

  • *t:
  • 参数:

返回: 目标点

源碼於GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    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, ...]:
     """
         计算曲线上的点。
         Args:
@@ -20,7 +20,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
-        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

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

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

WARNING

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

變數説明:

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

返回: 偏导函数

抛出:

  • ValueError 无效变量类型
源碼於GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
+        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

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

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

WARNING

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

Arguments:

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

Return: 偏导函数

Raises:

  • ValueError 无效变量类型
Source code or View on GitHub
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
     """
     求N元函数一阶偏导函数。这玩意不太稳定,慎用。
     > [!warning]
@@ -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,d,g){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,c,d){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.DBXwIC0s.lean.js b/assets/en_api_mp_math_equation.md.NTcIjf_k.lean.js similarity index 86% rename from assets/en_api_mp_math_equation.md.DBXwIC0s.lean.js rename to assets/en_api_mp_math_equation.md.NTcIjf_k.lean.js index ec4bd2d..4358d3e 100644 --- a/assets/en_api_mp_math_equation.md.DBXwIC0s.lean.js +++ b/assets/en_api_mp_math_equation.md.NTcIjf_k.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/equation.md","filePath":"en/api/mp_math/equation.md"}'),t={name:"en/api/mp_math/equation.md"},l=n("",23),p=[l];function h(e,k,r,E,d,c){return a(),i("div",null,p)}const o=s(t,[["render",h]]);export{u as __pageData,o as default}; +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/equation.md","filePath":"en/api/mp_math/equation.md"}'),t={name:"en/api/mp_math/equation.md"},l=n("",23),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}; diff --git a/assets/en_api_mp_math_function.md.BXNFIE6F.js b/assets/en_api_mp_math_function.md.BXNFIE6F.js new file mode 100644 index 0000000..052be13 --- /dev/null +++ b/assets/en_api_mp_math_function.md.BXNFIE6F.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

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.nJ-E5W5r.lean.js b/assets/en_api_mp_math_function.md.BXNFIE6F.lean.js similarity index 97% rename from assets/en_api_mp_math_function.md.nJ-E5W5r.lean.js rename to assets/en_api_mp_math_function.md.BXNFIE6F.lean.js index 8b48bb7..d2c213a 100644 --- a/assets/en_api_mp_math_function.md.nJ-E5W5r.lean.js +++ b/assets/en_api_mp_math_function.md.BXNFIE6F.lean.js @@ -1 +1 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/function.md","filePath":"en/api/mp_math/function.md"}'),e={name:"en/api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),y=[c],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,y)),u]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const Z=l(e,[["render",x]]);export{V as __pageData,Z as default}; +import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const V=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/function.md","filePath":"en/api/mp_math/function.md"}'),e={name:"en/api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const Z=l(e,[["render",x]]);export{V as __pageData,Z as default}; diff --git a/assets/en_api_mp_math_function.md.nJ-E5W5r.js b/assets/en_api_mp_math_function.md.nJ-E5W5r.js deleted file mode 100644 index 034c018..0000000 --- a/assets/en_api_mp_math_function.md.nJ-E5W5r.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

def 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),y=[c],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("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)

def 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,y)),u]),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/ja_api_mp_math_line.md.BzytbSsM.js b/assets/en_api_mp_math_line.md.CxP-i4OT.js similarity index 58% rename from assets/ja_api_mp_math_line.md.BzytbSsM.js rename to assets/en_api_mp_math_line.md.CxP-i4OT.js index fc38906..aa92d9f 100644 --- a/assets/ja_api_mp_math_line.md.BzytbSsM.js +++ b/assets/en_api_mp_math_line.md.CxP-i4OT.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

def __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

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'):
     """
         三维空间中的直线。由一个点和一个方向向量确定。
         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

def 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

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:
     """
         判断两条直线是否近似相等。
         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)

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

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':
     """
         计算直线和直线之间的夹角。
         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)

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

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:
     """
         计算直线和直线或点之间的距离。
         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.')

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

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

引数:

  • other (Line3): 另一条直线

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
+        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':
     """
         计算两条直线的交点。
         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

def 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

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':
     """
         计算直线经过指定点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))

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

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':
     """
         获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个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

def 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

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]:
     """
         获取直线的参数方程。
         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)

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

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:
     """
         判断两条直线是否近似平行。
         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)

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

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:
     """
         判断两条直线是否平行。
         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)

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

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

引数:

戻り値: bool: 是否共线

ソースコード または GitHubで表示
python
def is_collinear(self, other: 'Line3') -> 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:
     """
         判断两条直线是否共线。
         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)

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

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:
     """
         判断点是否在直线上。
         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)

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

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:
     """
         判断两条直线是否共面。
         充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为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

def simplify(self)

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

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

ソースコード または GitHubで表示
python
def simplify(self):
+    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):
     """
         简化直线方程,等价相等。
         自体简化,不返回值。
@@ -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

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

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

引数:

戻り値: Line3: 直线

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

def __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)

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':
     """
         计算两条直线点集合的交集。重合线返回自身,平行线返回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)

def __eq__(self, other) -> bool

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

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

引数:

  • other (Line3): 另一条直线

戻り値: bool: 是否等价

ソースコード または GitHubで表示
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
@@ -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 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}; diff --git a/assets/en_api_mp_math_line.md.D0AfsxWD.lean.js b/assets/en_api_mp_math_line.md.CxP-i4OT.lean.js similarity index 86% rename from assets/en_api_mp_math_line.md.D0AfsxWD.lean.js rename to assets/en_api_mp_math_line.md.CxP-i4OT.lean.js index 0eaf12d..8a7176f 100644 --- a/assets/en_api_mp_math_line.md.D0AfsxWD.lean.js +++ b/assets/en_api_mp_math_line.md.CxP-i4OT.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,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":"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}; diff --git a/assets/zht_api_mp_math_plane.md.Cbo0QRQD.js b/assets/en_api_mp_math_plane.md.BsgpTZdY.js similarity index 70% rename from assets/zht_api_mp_math_plane.md.Cbo0QRQD.js rename to assets/en_api_mp_math_plane.md.BsgpTZdY.js index 40b0940..666725f 100644 --- a/assets/zht_api_mp_math_plane.md.Cbo0QRQD.js +++ b/assets/en_api_mp_math_plane.md.BsgpTZdY.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.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

def __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 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):
     """
         平面方程: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 y
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

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

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

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

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

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

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

變數説明:

返回: AnyAngle: 夹角

抛出:

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

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

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:
     """
         计算平面与平面或点之间的距离。
         Args:
@@ -58,7 +58,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y
     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)}')

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

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':
     """
         计算两平面的交线。
         Args:
@@ -84,7 +84,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y
         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)

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

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':
     """
         计算平面与直线的交点。
         Args:
@@ -98,7 +98,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y
         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))

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

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':
     """
         计算平行于该平面且过指定点的平面。
         Args:
@@ -106,7 +106,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const y
         Returns:
             [\`Plane3\`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

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

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

@property

def normal(self) -> Vector3

説明: 平面的法向量。

返回: Vector3: 法向量

源碼於GitHub上查看
python
@property
+    return self.normal.is_parallel(other.normal)

@property

func 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

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

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

變數説明:

返回: Plane3: 平面

源碼於GitHub上查看
python
@classmethod
+    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
 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 y
         """
     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

def 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

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
 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 y
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

def 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

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
 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 y
     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

def 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

func 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 y
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

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

源碼於GitHub上查看
python
@overload
+    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
 def __and__(self, other: 'Line3') -> 'Point3 | None':
-    ...

@overload

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

源碼於GitHub上查看
python
@overload
+    ...

@overload

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

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

def __and__(self, other)

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

變數説明:

返回: Line3 | Point3 | None: 交集

抛出:

源碼於GitHub上查看
python
def __and__(self, other):
+    ...

func __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 y
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

def __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)}'")

func __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 y
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

def __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}; + 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}; diff --git a/assets/en_api_mp_math_plane.md.3xsZdWoR.lean.js b/assets/en_api_mp_math_plane.md.BsgpTZdY.lean.js similarity index 54% rename from assets/en_api_mp_math_plane.md.3xsZdWoR.lean.js rename to assets/en_api_mp_math_plane.md.BsgpTZdY.lean.js index 96be146..d91e863 100644 --- a/assets/en_api_mp_math_plane.md.3xsZdWoR.lean.js +++ b/assets/en_api_mp_math_plane.md.BsgpTZdY.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.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 e(p,k,r,o,d,E){return a(),i("div",null,h)}const c=s(l,[["render",e]]);export{y as __pageData,c 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.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/zht_api_mp_math_point.md.Ci0RyJlm.js b/assets/en_api_mp_math_point.md.DcGqVqiO.js similarity index 56% rename from assets/zht_api_mp_math_point.md.Ci0RyJlm.js rename to assets/en_api_mp_math_point.md.DcGqVqiO.js index 6df7f7c..e6a82a0 100644 --- a/assets/zht_api_mp_math_point.md.Ci0RyJlm.js +++ b/assets/en_api_mp_math_point.md.DcGqVqiO.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

def __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"},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):
     """
         笛卡尔坐标系中的点。
         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

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

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

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    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:
     """
         判断两个点是否近似相等。
         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

def 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

func self + other: Vector3 => Point3

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

@overload

def self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

func self + other: Point3 => Point3

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

def self + other

説明: P + V -> P P + P -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __add__(self, other):
+    ...

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

def __eq__(self, other)

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

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
+    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):
     """
         判断两个点是否相等。
         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)

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

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':
     """
         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 e(p,k,o,r,d,g){return a(),i("div",null,h)}const y=s(n,[["render",e]]);export{E as __pageData,y as default}; + 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}; diff --git a/assets/en_api_mp_math_point.md.CxCgy181.lean.js b/assets/en_api_mp_math_point.md.DcGqVqiO.lean.js similarity index 72% rename from assets/en_api_mp_math_point.md.CxCgy181.lean.js rename to assets/en_api_mp_math_point.md.DcGqVqiO.lean.js index 8047eb5..1533944 100644 --- a/assets/en_api_mp_math_point.md.CxCgy181.lean.js +++ b/assets/en_api_mp_math_point.md.DcGqVqiO.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/point.md","filePath":"en/api/mp_math/point.md"}'),n={name:"en/api/mp_math/point.md"},e=t("",39),l=[e];function h(p,o,k,r,d,c){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const E=JSON.parse('{"title":"mbcp.mp_math.point","description":"","frontmatter":{"title":"mbcp.mp_math.point","lastUpdated":false},"headers":[],"relativePath":"en/api/mp_math/point.md","filePath":"en/api/mp_math/point.md"}'),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}; diff --git a/assets/zht_api_mp_math_segment.md.D_xbGo8n.js b/assets/en_api_mp_math_segment.md.Cge1J0TK.js similarity index 66% rename from assets/zht_api_mp_math_segment.md.D_xbGo8n.js rename to assets/en_api_mp_math_segment.md.Cge1J0TK.js index fac510b..f6dc84f 100644 --- a/assets/zht_api_mp_math_segment.md.D_xbGo8n.js +++ b/assets/en_api_mp_math_segment.md.Cge1J0TK.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

def __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 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'):
     """
         三维空间中的线段。
         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,o,E){return a(),i("div",null,h)}const F=s(t,[["render",l]]);export{c as __pageData,F as default}; diff --git a/assets/en_api_mp_math_segment.md.BevquOvV.lean.js b/assets/en_api_mp_math_segment.md.Cge1J0TK.lean.js similarity index 53% rename from assets/en_api_mp_math_segment.md.BevquOvV.lean.js rename to assets/en_api_mp_math_segment.md.Cge1J0TK.lean.js index f54225f..8e9289f 100644 --- a/assets/en_api_mp_math_segment.md.BevquOvV.lean.js +++ b/assets/en_api_mp_math_segment.md.Cge1J0TK.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":"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}; +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}; diff --git a/assets/zht_api_mp_math_utils.md.BsNVdUjt.js b/assets/en_api_mp_math_utils.md.Bu0IGkds.js similarity index 57% rename from assets/zht_api_mp_math_utils.md.BsNVdUjt.js rename to assets/en_api_mp_math_utils.md.Bu0IGkds.js index c5f9ed3..dffb3c5 100644 --- a/assets/zht_api_mp_math_utils.md.BsNVdUjt.js +++ b/assets/en_api_mp_math_utils.md.Bu0IGkds.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

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

def 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 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:
     """
     区间限定函数
     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

def __init__(self, value: RealNumber)

説明: 用于近似比较对象

變數説明:

源碼於GitHub上查看
python
def __init__(self, value: RealNumber):
+    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):
     """
         用于近似比较对象
         Args:
             value ([\`RealNumber\`](./mp_math_typing#realnumber)): 实数
         """
-    self.value = value

def __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
+    self.value = value

func __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,9 +25,9 @@ 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)

def raise_type_error(self, other)

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

def __ne__(self, other)

源碼於GitHub上查看
python
def __ne__(self, other):
-    return not self.__eq__(other)

def 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:
+            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):
+    return not self.__eq__(other)

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

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

Arguments:

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

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
     """
     判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
     Args:
@@ -37,7 +37,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     Returns:
         [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
     """
-    return abs(x - y) < epsilon

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

説明: 获取数的符号。

變數説明:

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

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign(x: float, only_neg: bool=False) -> str:
+    return abs(x - y) < epsilon

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

Description: 获取数的符号。

Arguments:

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

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign(x: float, only_neg: bool=False) -> str:
     """获取数的符号。
     Args:
         x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
@@ -50,7 +50,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif x < 0:
         return '-'
     else:
-        return ''

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

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

變數説明:

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

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
+        return ''

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

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

Arguments:

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

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign_format(x: float, only_neg: bool=False) -> str:
     """格式化符号数
     -1 -> -1
     1 -> +1
@@ -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 e(p,k,r,o,d,g){return a(),i("div",null,h)}const E=s(n,[["render",e]]);export{F as __pageData,E as default}; + return ''
`,38),h=[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.lean.js b/assets/en_api_mp_math_utils.md.Bu0IGkds.lean.js new file mode 100644 index 0000000..80d9fc9 --- /dev/null +++ b/assets/en_api_mp_math_utils.md.Bu0IGkds.lean.js @@ -0,0 +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.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.rVP-A71G.lean.js b/assets/en_api_mp_math_utils.md.rVP-A71G.lean.js deleted file mode 100644 index c3c1302..0000000 --- a/assets/en_api_mp_math_utils.md.rVP-A71G.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F=JSON.parse('{"title":"mbcp.mp_math.utils","description":"","frontmatter":{"title":"mbcp.mp_math.utils","lastUpdated":false},"headers":[],"relativePath":"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 E=s(n,[["render",e]]);export{F as __pageData,E as default}; diff --git a/assets/en_api_mp_math_vector.md.BEIFYOwe.js b/assets/en_api_mp_math_vector.md.DpvjNLj_.js similarity index 66% rename from assets/en_api_mp_math_vector.md.BEIFYOwe.js rename to assets/en_api_mp_math_vector.md.DpvjNLj_.js index cef3097..89b3469 100644 --- a/assets/en_api_mp_math_vector.md.BEIFYOwe.js +++ b/assets/en_api_mp_math_vector.md.DpvjNLj_.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

def __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

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

def 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

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:
     """
         判断两个向量是否近似相等。
         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])

def 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])

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':
     """
         计算两个向量之间的夹角。
         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)

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

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':
     """
         向量积 叉乘: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)

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

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:
     """
         判断两个向量是否近似平行。
         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

def 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

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:
     """
         判断两个向量是否平行。
         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)

def normalize(self)

Description: 将向量归一化。

自体归一化,不返回值。

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

func 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

def np_array(self) -> np.ndarray

Return: np.ndarray: numpy数组

Source code or View on GitHub
python
@property
+    self.z /= length

@property

func 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

def length(self) -> float

Description: 向量的模。

Return: float: 模

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

def 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

func 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

def __abs__(self)

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

@overload

def self + other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
+    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
 def __add__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self + other: Point3 => Point3

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

@overload

func self + other: Point3 => Point3

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

def self + other

Description: V + P -> P

V + V -> V

Arguments:

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

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

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):
     """
         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)}'")

def __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)}'")

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

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

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':
     """
         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

def 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

func self - other: Vector3 => Vector3

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

@overload

def self - other: Point3 => Point3

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

@overload

func self - other: Point3 => Point3

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

def self - other

Description: V - P -> P

V - V -> V

Arguments:

Return: Vector3 | Point3: 新的向量

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

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):
     """
         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)}"')

def 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)}"')

func 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

def 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

func self * other: Vector3 => Vector3

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

@overload

def self * other: RealNumber => Vector3

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

@overload

func self * other: RealNumber => Vector3

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

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

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':
     """
         数组运算 非点乘。点乘使用@,叉乘使用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)}'")

def self * other: RealNumber => Vector3

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

def 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)}'")

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':
     """
         点乘。
         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

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

def - 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

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':
     """
         取负。
         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,g){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),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}; diff --git a/assets/en_api_mp_math_vector.md.BEIFYOwe.lean.js b/assets/en_api_mp_math_vector.md.DpvjNLj_.lean.js similarity index 86% rename from assets/en_api_mp_math_vector.md.BEIFYOwe.lean.js rename to assets/en_api_mp_math_vector.md.DpvjNLj_.lean.js index 0a3a5a2..12b0de0 100644 --- a/assets/en_api_mp_math_vector.md.BEIFYOwe.lean.js +++ b/assets/en_api_mp_math_vector.md.DpvjNLj_.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,g){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),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}; diff --git a/assets/en_api_presets_model_index.md._hbR1U40.js b/assets/en_api_presets_model_index.md.BJWo1DBU.js similarity index 87% rename from assets/en_api_presets_model_index.md._hbR1U40.js rename to assets/en_api_presets_model_index.md.BJWo1DBU.js index f94ebdf..acf033b 100644 --- a/assets/en_api_presets_model_index.md._hbR1U40.js +++ b/assets/en_api_presets_model_index.md.BJWo1DBU.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

def 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

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):
     """
         生成球体上的点集。
diff --git a/assets/en_api_presets_model_index.md._hbR1U40.lean.js b/assets/en_api_presets_model_index.md.BJWo1DBU.lean.js
similarity index 100%
rename from assets/en_api_presets_model_index.md._hbR1U40.lean.js
rename to assets/en_api_presets_model_index.md.BJWo1DBU.lean.js
diff --git a/assets/en_api_presets_model_model.md.B9FfcMgc.js b/assets/en_api_presets_model_model.md.Cmq9KKw_.js
similarity index 87%
rename from assets/en_api_presets_model_model.md.B9FfcMgc.js
rename to assets/en_api_presets_model_model.md.Cmq9KKw_.js
index 1e2d7ff..e1b5d6c 100644
--- a/assets/en_api_presets_model_model.md.B9FfcMgc.js
+++ b/assets/en_api_presets_model_model.md.Cmq9KKw_.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/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

def 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/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):
     """
         生成球体上的点集。
diff --git a/assets/en_api_presets_model_model.md.B9FfcMgc.lean.js b/assets/en_api_presets_model_model.md.Cmq9KKw_.lean.js
similarity index 100%
rename from assets/en_api_presets_model_model.md.B9FfcMgc.lean.js
rename to assets/en_api_presets_model_model.md.Cmq9KKw_.lean.js
diff --git a/assets/zht_api_mp_math_angle.md.xBQ5jf2w.js b/assets/ja_api_mp_math_angle.md.DmogilJK.js
similarity index 61%
rename from assets/zht_api_mp_math_angle.md.xBQ5jf2w.js
rename to assets/ja_api_mp_math_angle.md.DmogilJK.js
index 25d4c95..56307b2 100644
--- a/assets/zht_api_mp_math_angle.md.xBQ5jf2w.js
+++ b/assets/ja_api_mp_math_angle.md.DmogilJK.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)

def __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)

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

def complementary(self) -> AnyAngle

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

返回: 余角

源碼於GitHub上查看
python
@property
+        self.radian = value * PI / 180

@property

func 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

def supplementary(self) -> AnyAngle

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

返回: 补角

源碼於GitHub上查看
python
@property
+    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

func supplementary(self) -> AnyAngle

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

戻り値: 补角

ソースコード または GitHubで表示
python
@property
 def supplementary(self) -> 'AnyAngle':
     """
         补角:两角的和为180°。
         Returns:
             补角
         """
-    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

def degree(self) -> float

説明: 角度。

返回: 弧度

源碼於GitHub上查看
python
@property
+    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

func degree(self) -> float

説明: 角度。

戻り値: 弧度

ソースコード または GitHubで表示
python
@property
 def degree(self) -> float:
     """
         角度。
         Returns:
             弧度
         """
-    return self.radian * 180 / PI

@property

def minimum_positive(self) -> AnyAngle

説明: 最小正角。

返回: 最小正角度

源碼於GitHub上查看
python
@property
+    return self.radian * 180 / PI

@property

func minimum_positive(self) -> AnyAngle

説明: 最小正角。

戻り値: 最小正角度

ソースコード または GitHubで表示
python
@property
 def minimum_positive(self) -> 'AnyAngle':
     """
         最小正角。
         Returns:
             最小正角度
         """
-    return AnyAngle(self.radian % (2 * PI))

@property

def maximum_negative(self) -> AnyAngle

説明: 最大负角。

返回: 最大负角度

源碼於GitHub上查看
python
@property
+    return AnyAngle(self.radian % (2 * PI))

@property

func maximum_negative(self) -> AnyAngle

説明: 最大负角。

戻り値: 最大负角度

ソースコード または GitHubで表示
python
@property
 def maximum_negative(self) -> 'AnyAngle':
     """
         最大负角。
         Returns:
             最大负角度
         """
-    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

def sin(self) -> float

説明: 正弦值。

返回: 正弦值

源碼於GitHub上查看
python
@property
+    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

func sin(self) -> float

説明: 正弦值。

戻り値: 正弦值

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

@property

def cos(self) -> float

説明: 余弦值。

返回: 余弦值

源碼於GitHub上查看
python
@property
+    return math.sin(self.radian)

@property

func cos(self) -> float

説明: 余弦值。

戻り値: 余弦值

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

@property

def tan(self) -> float

説明: 正切值。

返回: 正切值

源碼於GitHub上查看
python
@property
+    return math.cos(self.radian)

@property

func tan(self) -> float

説明: 正切值。

戻り値: 正切值

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

@property

def cot(self) -> float

説明: 余切值。

返回: 余切值

源碼於GitHub上查看
python
@property
+    return math.tan(self.radian)

@property

func cot(self) -> float

説明: 余切值。

戻り値: 余切值

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

@property

def sec(self) -> float

説明: 正割值。

返回: 正割值

源碼於GitHub上查看
python
@property
+    return 1 / math.tan(self.radian)

@property

func sec(self) -> float

説明: 正割值。

戻り値: 正割值

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

@property

def csc(self) -> float

説明: 余割值。

返回: 余割值

源碼於GitHub上查看
python
@property
+    return 1 / math.cos(self.radian)

@property

func csc(self) -> float

説明: 余割值。

戻り値: 余割值

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

def self + other: AnyAngle => AnyAngle

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

def __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
-    return approx(self.radian, other.radian)

def self - other: AnyAngle => AnyAngle

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

def self * other: float => AnyAngle

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

@overload

def self / other: float => AnyAngle

源碼於GitHub上查看
python
@overload
+    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
 def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

def self / other: AnyAngle => float

源碼於GitHub上查看
python
@overload
+    ...

@overload

func self / other: AnyAngle => float

ソースコード または GitHubで表示
python
@overload
 def __truediv__(self, other: 'AnyAngle') -> float:
-    ...

def self / other

源碼於GitHub上查看
python
def __truediv__(self, other):
+    ...

func 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,d,o,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c 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 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.CAq1hHov.lean.js b/assets/ja_api_mp_math_angle.md.DmogilJK.lean.js similarity index 86% rename from assets/ja_api_mp_math_angle.md.CAq1hHov.lean.js rename to assets/ja_api_mp_math_angle.md.DmogilJK.lean.js index d5f4fc6..feff6a6 100644 --- a/assets/ja_api_mp_math_angle.md.CAq1hHov.lean.js +++ b/assets/ja_api_mp_math_angle.md.DmogilJK.lean.js @@ -1 +1 @@ -import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/angle.md","filePath":"ja/api/mp_math/angle.md"}'),t={name:"ja/api/mp_math/angle.md"},e=n("",80),l=[e];function h(p,k,r,d,o,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; +import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/angle.md","filePath":"ja/api/mp_math/angle.md"}'),t={name:"ja/api/mp_math/angle.md"},e=n("",80),l=[e];function h(p,k,r,o,d,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; diff --git a/assets/ja_api_mp_math_equation.md.CwX1EUnA.js b/assets/ja_api_mp_math_equation.md.DuGNts4i.js similarity index 71% rename from assets/ja_api_mp_math_equation.md.CwX1EUnA.js rename to assets/ja_api_mp_math_equation.md.DuGNts4i.js index f9def83..723e7dd 100644 --- a/assets/ja_api_mp_math_equation.md.CwX1EUnA.js +++ b/assets/ja_api_mp_math_equation.md.DuGNts4i.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

def __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

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):
     """
         曲线方程。
         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

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

説明: 计算曲线上的点。

引数:

  • *t:
  • 参数:

戻り値: 目标点

ソースコード または GitHubで表示
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    self.z_func = z_func

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

説明: 计算曲线上的点。

引数:

  • *t:
  • 参数:

戻り値: 目标点

ソースコード または GitHubで表示
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
     """
         计算曲线上的点。
         Args:
@@ -20,7 +20,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
-        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

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

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

WARNING

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

引数:

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

戻り値: 偏导函数

例外:

  • ValueError 无效变量类型
ソースコード または GitHubで表示
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
+        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

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

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

WARNING

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

引数:

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

戻り値: 偏导函数

例外:

  • ValueError 无效变量类型
ソースコード または GitHubで表示
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
     """
     求N元函数一阶偏导函数。这玩意不太稳定,慎用。
     > [!warning]
@@ -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,d,g){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(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}; diff --git a/assets/ja_api_mp_math_equation.md.CwX1EUnA.lean.js b/assets/ja_api_mp_math_equation.md.DuGNts4i.lean.js similarity index 73% rename from assets/ja_api_mp_math_equation.md.CwX1EUnA.lean.js rename to assets/ja_api_mp_math_equation.md.DuGNts4i.lean.js index dde37b1..f4c7504 100644 --- a/assets/ja_api_mp_math_equation.md.CwX1EUnA.lean.js +++ b/assets/ja_api_mp_math_equation.md.DuGNts4i.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/equation.md","filePath":"ja/api/mp_math/equation.md"}'),t={name:"ja/api/mp_math/equation.md"},l=n("",23),p=[l];function h(e,k,r,E,d,g){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(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}; diff --git a/assets/ja_api_mp_math_function.md.BpyLWMmS.js b/assets/ja_api_mp_math_function.md.BpyLWMmS.js deleted file mode 100644 index 5555d81..0000000 --- a/assets/ja_api_mp_math_function.md.BpyLWMmS.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

def 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),y=[c],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("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)

def 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,y)),u]),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.js b/assets/ja_api_mp_math_function.md.DIn5uL0A.js new file mode 100644 index 0000000..4bc4e78 --- /dev/null +++ b/assets/ja_api_mp_math_function.md.DIn5uL0A.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.BpyLWMmS.lean.js b/assets/ja_api_mp_math_function.md.DIn5uL0A.lean.js similarity index 97% rename from assets/ja_api_mp_math_function.md.BpyLWMmS.lean.js rename to assets/ja_api_mp_math_function.md.DIn5uL0A.lean.js index 3894173..e407719 100644 --- a/assets/ja_api_mp_math_function.md.BpyLWMmS.lean.js +++ b/assets/ja_api_mp_math_function.md.DIn5uL0A.lean.js @@ -1 +1 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/function.md","filePath":"ja/api/mp_math/function.md"}'),e={name:"ja/api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),y=[c],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,y)),u]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; +import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"ja/api/mp_math/function.md","filePath":"ja/api/mp_math/function.md"}'),e={name:"ja/api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; diff --git a/assets/en_api_mp_math_line.md.D0AfsxWD.js b/assets/ja_api_mp_math_line.md.Ber05s-D.js similarity index 60% rename from assets/en_api_mp_math_line.md.D0AfsxWD.js rename to assets/ja_api_mp_math_line.md.Ber05s-D.js index fa7aacb..0ad60c2 100644 --- a/assets/en_api_mp_math_line.md.D0AfsxWD.js +++ b/assets/ja_api_mp_math_line.md.Ber05s-D.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

def __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":"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'):
     """
         三维空间中的直线。由一个点和一个方向向量确定。
         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

def 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

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:
     """
         判断两条直线是否近似相等。
         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)

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

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

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

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

def 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.')

func 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

def 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

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

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

func 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

def 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

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

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

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:
     """
         判断两条直线是否近似平行。
         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)

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

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

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

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

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

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

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

func 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

def 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

func 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

def 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

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

def __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)

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

def __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)

func __eq__(self, other) -> bool

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

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

引数:

  • other (Line3): 另一条直线

戻り値: bool: 是否等价

ソースコード または GitHubで表示
python
def __eq__(self, other) -> bool:
     """
         判断两条直线是否等价。
 
diff --git a/assets/ja_api_mp_math_line.md.BzytbSsM.lean.js b/assets/ja_api_mp_math_line.md.Ber05s-D.lean.js
similarity index 100%
rename from assets/ja_api_mp_math_line.md.BzytbSsM.lean.js
rename to assets/ja_api_mp_math_line.md.Ber05s-D.lean.js
diff --git a/assets/ja_api_mp_math_plane.md.Bw6ecTDW.js b/assets/ja_api_mp_math_plane.md.BlhqSUWq.js
similarity index 70%
rename from assets/ja_api_mp_math_plane.md.Bw6ecTDW.js
rename to assets/ja_api_mp_math_plane.md.BlhqSUWq.js
index b4ab779..113b075 100644
--- a/assets/ja_api_mp_math_plane.md.Bw6ecTDW.js
+++ b/assets/ja_api_mp_math_plane.md.BlhqSUWq.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.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

def __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 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):
     """
         平面方程: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 y
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

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

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

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Plane3') -> bool:
+    self.d = d

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

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

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

引数:

戻り値: AnyAngle: 夹角

例外:

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+        return False

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

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

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

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

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

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

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

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

func 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 y
         Returns:
             [\`Plane3\`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

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

func 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 y
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.normal.is_parallel(other.normal)

@property

def normal(self) -> Vector3

説明: 平面的法向量。

戻り値: Vector3: 法向量

ソースコード または GitHubで表示
python
@property
+    return self.normal.is_parallel(other.normal)

@property

func 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

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

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

引数:

戻り値: Plane3: 平面

ソースコード または GitHubで表示
python
@classmethod
+    return Vector3(self.a, self.b, self.c)

@classmethod

func 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 y
         """
     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

def 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

func 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 y
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

def 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

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

def 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

func 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 y
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

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

ソースコード または GitHubで表示
python
@overload
+    return cls.from_point_and_normal(point, line.direction)

@overload

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

ソースコード または GitHubで表示
python
@overload
 def __and__(self, other: 'Line3') -> 'Point3 | None':
-    ...

@overload

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

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

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

ソースコード または GitHubで表示
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
-    ...

def __and__(self, other)

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

引数:

戻り値: Line3 | Point3 | None: 交集

例外:

ソースコード または GitHubで表示
python
def __and__(self, other):
+    ...

func __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 y
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

def __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)}'")

func __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 y
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

def __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}; + 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}; diff --git a/assets/ja_api_mp_math_plane.md.Bw6ecTDW.lean.js b/assets/ja_api_mp_math_plane.md.BlhqSUWq.lean.js similarity index 68% rename from assets/ja_api_mp_math_plane.md.Bw6ecTDW.lean.js rename to assets/ja_api_mp_math_plane.md.BlhqSUWq.lean.js index 8a72354..711844a 100644 --- a/assets/ja_api_mp_math_plane.md.Bw6ecTDW.lean.js +++ b/assets/ja_api_mp_math_plane.md.BlhqSUWq.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.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}; +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}; diff --git a/assets/ja_api_mp_math_point.md.CFCWaCvm.js b/assets/ja_api_mp_math_point.md.Czyuzvxa.js similarity index 58% rename from assets/ja_api_mp_math_point.md.CFCWaCvm.js rename to assets/ja_api_mp_math_point.md.Czyuzvxa.js index c14faff..be1e367 100644 --- a/assets/ja_api_mp_math_point.md.CFCWaCvm.js +++ b/assets/ja_api_mp_math_point.md.Czyuzvxa.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

def __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"},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):
     """
         笛卡尔坐标系中的点。
         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

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

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

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    self.z = z

func 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

def 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

func self + other: Vector3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Vector3') -> 'Point3':
-    ...

@overload

def self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

func self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

def self + other

説明: P + V -> P P + P -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __add__(self, other):
+    ...

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

def __eq__(self, other)

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

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
+    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):
     """
         判断两个点是否相等。
         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)

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

func 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 e(p,k,o,r,d,g){return a(),i("div",null,h)}const y=s(n,[["render",e]]);export{E as __pageData,y as default}; + 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}; diff --git a/assets/ja_api_mp_math_point.md.CFCWaCvm.lean.js b/assets/ja_api_mp_math_point.md.Czyuzvxa.lean.js similarity index 72% rename from assets/ja_api_mp_math_point.md.CFCWaCvm.lean.js rename to assets/ja_api_mp_math_point.md.Czyuzvxa.lean.js index c6bf4a4..c278532 100644 --- a/assets/ja_api_mp_math_point.md.CFCWaCvm.lean.js +++ b/assets/ja_api_mp_math_point.md.Czyuzvxa.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 e(p,k,o,r,d,g){return a(),i("div",null,h)}const y=s(n,[["render",e]]);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"},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}; diff --git a/assets/ja_api_mp_math_segment.md.cuLLXTSO.js b/assets/ja_api_mp_math_segment.md.DfoJ389C.js similarity index 78% rename from assets/ja_api_mp_math_segment.md.cuLLXTSO.js rename to assets/ja_api_mp_math_segment.md.DfoJ389C.js index 6f97ce1..be1679f 100644 --- a/assets/ja_api_mp_math_segment.md.cuLLXTSO.js +++ b/assets/ja_api_mp_math_segment.md.DfoJ389C.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

def __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

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

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

引数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
ソースコード または GitHubで表示
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
     """
         三维空间中的线段。
         Args:
diff --git a/assets/ja_api_mp_math_segment.md.cuLLXTSO.lean.js b/assets/ja_api_mp_math_segment.md.DfoJ389C.lean.js
similarity index 100%
rename from assets/ja_api_mp_math_segment.md.cuLLXTSO.lean.js
rename to assets/ja_api_mp_math_segment.md.DfoJ389C.lean.js
diff --git a/assets/ja_api_mp_math_utils.md.CrPKk6ui.js b/assets/ja_api_mp_math_utils.md.Dnl5rkoo.js
similarity index 58%
rename from assets/ja_api_mp_math_utils.md.CrPKk6ui.js
rename to assets/ja_api_mp_math_utils.md.Dnl5rkoo.js
index fd4c830..29d1c44 100644
--- a/assets/ja_api_mp_math_utils.md.CrPKk6ui.js
+++ b/assets/ja_api_mp_math_utils.md.Dnl5rkoo.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

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

def 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

def __init__(self, value: RealNumber)

説明: 用于近似比较对象

引数:

ソースコード または GitHubで表示
python
def __init__(self, value: RealNumber):
+    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

説明: 用于近似比较对象

引数:

ソースコード または GitHubで表示
python
def __init__(self, value: RealNumber):
     """
         用于近似比较对象
         Args:
             value ([\`RealNumber\`](./mp_math_typing#realnumber)): 实数
         """
-    self.value = value

def __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
+    self.value = value

func __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,9 +25,9 @@ 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)

def raise_type_error(self, other)

ソースコード または GitHubで表示
python
def raise_type_error(self, other):
-    raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

def __ne__(self, other)

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

def 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:
+            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):
+    return not self.__eq__(other)

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

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

引数:

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

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
     """
     判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
     Args:
@@ -37,7 +37,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     Returns:
         [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
     """
-    return abs(x - y) < epsilon

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

説明: 获取数的符号。

引数:

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

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign(x: float, only_neg: bool=False) -> str:
+    return abs(x - y) < epsilon

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

説明: 获取数的符号。

引数:

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

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign(x: float, only_neg: bool=False) -> str:
     """获取数的符号。
     Args:
         x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
@@ -50,7 +50,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif x < 0:
         return '-'
     else:
-        return ''

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

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

引数:

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

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign_format(x: float, only_neg: bool=False) -> str:
+        return ''

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

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

引数:

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

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign_format(x: float, only_neg: bool=False) -> str:
     """格式化符号数
     -1 -> -1
     1 -> +1
@@ -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 e(p,k,r,o,d,g){return a(),i("div",null,h)}const E=s(n,[["render",e]]);export{F as __pageData,E as default}; + return ''
`,38),h=[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}; diff --git a/assets/ja_api_mp_math_utils.md.CrPKk6ui.lean.js b/assets/ja_api_mp_math_utils.md.Dnl5rkoo.lean.js similarity index 68% rename from assets/ja_api_mp_math_utils.md.CrPKk6ui.lean.js rename to assets/ja_api_mp_math_utils.md.Dnl5rkoo.lean.js index 935a7fb..48b11b3 100644 --- a/assets/ja_api_mp_math_utils.md.CrPKk6ui.lean.js +++ b/assets/ja_api_mp_math_utils.md.Dnl5rkoo.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 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}; +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}; diff --git a/assets/ja_api_mp_math_vector.md.mfFeokXv.js b/assets/ja_api_mp_math_vector.md.CD5nfzHo.js similarity index 65% rename from assets/ja_api_mp_math_vector.md.mfFeokXv.js rename to assets/ja_api_mp_math_vector.md.CD5nfzHo.js index 7a056d3..3617bc2 100644 --- a/assets/ja_api_mp_math_vector.md.mfFeokXv.js +++ b/assets/ja_api_mp_math_vector.md.CD5nfzHo.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"},e=t(`

mbcp.mp_math.vector

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

class Vector3

def __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"},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):
     """
         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

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

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

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    self.z = z

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

def 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])

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

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

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

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

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:
     """
         判断两个向量是否近似平行。
         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

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

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

引数:

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Vector3') -> bool:
+    return self.cross(other).length < epsilon

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

def normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

ソースコード または GitHubで表示
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

func 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

def np_array(self) -> np.ndarray

戻り値: np.ndarray: numpy数组

ソースコード または GitHubで表示
python
@property
+    self.z /= length

@property

func 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

def length(self) -> float

説明: 向量的模。

戻り値: float: 模

ソースコード または GitHubで表示
python
@property
+    return np.array([self.x, self.y, self.z])

@property

func 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

def unit(self) -> Vector3

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

戻り値: Vector3: 单位向量

ソースコード または GitHubで表示
python
@property
+    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

func unit(self) -> Vector3

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

戻り値: Vector3: 单位向量

ソースコード または GitHubで表示
python
@property
 def unit(self) -> 'Vector3':
     """
         获取该向量的单位向量。
         Returns:
             [\`Vector3\`](#class-vector3): 单位向量
         """
-    return self / self.length

def __abs__(self)

ソースコード または GitHubで表示
python
def __abs__(self):
-    return self.length

@overload

def self + other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+    return self / self.length

func __abs__(self)

ソースコード または GitHubで表示
python
def __abs__(self):
+    return self.length

@overload

func self + other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

func self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

def self + other

説明: V + P -> P

V + V -> V

引数:

戻り値: Vector3 | Point3: 新的向量或点

ソースコード または GitHubで表示
python
def __add__(self, other):
+    ...

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

def __eq__(self, other)

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

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
+        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

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

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

func 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

def self - other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
 def __sub__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self - other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

func self - other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __sub__(self, other: 'Point3') -> 'Point3':
-    ...

def self - other

説明: V - P -> P

V - V -> V

引数:

戻り値: Vector3 | Point3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other):
+    ...

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

def 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)}"')

func 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

def self * other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

func self * other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
 def __mul__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

func self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

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

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

引数:

戻り値: Vector3: 数组运算结果

ソースコード または GitHubで表示
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
+    ...

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

def self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

def 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)}'")

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':
     """
         点乘。
         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

def self / other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
-    return Vector3(self.x / other, self.y / other, self.z / other)

def - self => Vector3

説明: 取负。

戻り値: Vector3: 负向量

ソースコード または GitHubで表示
python
def __neg__(self) -> 'Vector3':
+    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':
     """
         取负。
         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),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; + 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}; diff --git a/assets/ja_api_mp_math_vector.md.mfFeokXv.lean.js b/assets/ja_api_mp_math_vector.md.CD5nfzHo.lean.js similarity index 72% rename from assets/ja_api_mp_math_vector.md.mfFeokXv.lean.js rename to assets/ja_api_mp_math_vector.md.CD5nfzHo.lean.js index f1f838d..8a862f9 100644 --- a/assets/ja_api_mp_math_vector.md.mfFeokXv.lean.js +++ b/assets/ja_api_mp_math_vector.md.CD5nfzHo.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"},e=t("",138),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; +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}; diff --git a/assets/ja_api_presets_model_index.md.ub3RsBC9.js b/assets/ja_api_presets_model_index.md.D3Q5KLfq.js similarity index 87% rename from assets/ja_api_presets_model_index.md.ub3RsBC9.js rename to assets/ja_api_presets_model_index.md.D3Q5KLfq.js index d189d35..cf0be25 100644 --- a/assets/ja_api_presets_model_index.md.ub3RsBC9.js +++ b/assets/ja_api_presets_model_index.md.D3Q5KLfq.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

def sphere(radius: float, density: float)

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

引数:

  • radius:
  • density:

戻り値: List[Point3]: 球体上的点集。

ソースコード または 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":"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
 def sphere(radius: float, density: float):
     """
         生成球体上的点集。
diff --git a/assets/ja_api_presets_model_index.md.ub3RsBC9.lean.js b/assets/ja_api_presets_model_index.md.D3Q5KLfq.lean.js
similarity index 100%
rename from assets/ja_api_presets_model_index.md.ub3RsBC9.lean.js
rename to assets/ja_api_presets_model_index.md.D3Q5KLfq.lean.js
diff --git a/assets/ja_api_presets_model_model.md.Dw-6mfuk.js b/assets/ja_api_presets_model_model.md.vKB1wVU9.js
similarity index 85%
rename from assets/ja_api_presets_model_model.md.Dw-6mfuk.js
rename to assets/ja_api_presets_model_model.md.vKB1wVU9.js
index a7a440a..8d90f28 100644
--- a/assets/ja_api_presets_model_model.md.Dw-6mfuk.js
+++ b/assets/ja_api_presets_model_model.md.vKB1wVU9.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":"ja/api/presets/model/model.md","filePath":"ja/api/presets/model/model.md"}'),n={name:"ja/api/presets/model/model.md"},h=t(`

mbcp.presets.model

説明: 几何模型点集

class GeometricModels

@staticmethod

def sphere(radius: float, density: float)

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

引数:

  • radius:
  • density:

戻り値: List[Point3]: 球体上的点集。

ソースコード または 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":"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):
     """
         生成球体上的点集。
@@ -15,4 +15,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y
     x_array = radius * np.sin(phi_list) * np.cos(theta_list)
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
-    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]
`,10),l=[h];function p(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}; + 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.Dw-6mfuk.lean.js b/assets/ja_api_presets_model_model.md.vKB1wVU9.lean.js similarity index 61% rename from assets/ja_api_presets_model_model.md.Dw-6mfuk.lean.js rename to assets/ja_api_presets_model_model.md.vKB1wVU9.lean.js index ab3791c..1f52640 100644 --- a/assets/ja_api_presets_model_model.md.Dw-6mfuk.lean.js +++ b/assets/ja_api_presets_model_model.md.vKB1wVU9.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"ja/api/presets/model/model.md","filePath":"ja/api/presets/model/model.md"}'),n={name:"ja/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 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/style.D-YKQyMb.css b/assets/style.D-YKQyMb.css new file mode 100644 index 0000000..0e2e363 --- /dev/null +++ b/assets/style.D-YKQyMb.css @@ -0,0 +1 @@ +:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-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} diff --git a/assets/style.UiSpMRXd.css b/assets/style.UiSpMRXd.css deleted file mode 100644 index 5e755b7..0000000 --- a/assets/style.UiSpMRXd.css +++ /dev/null @@ -1 +0,0 @@ -:root{--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe 30%, #41d1ff)}@media (min-width: 640px){:root{--vp-home-hero-image-filter: blur(56px)}}@media (min-width: 960px){:root{--vp-home-hero-image-filter: blur(68px)}}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-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}.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} diff --git a/assets/en_api_mp_math_angle.md.09R7pxw_.js b/assets/zht_api_mp_math_angle.md.CEIly6_X.js similarity index 61% rename from assets/en_api_mp_math_angle.md.09R7pxw_.js rename to assets/zht_api_mp_math_angle.md.CEIly6_X.js index bf5fd7c..b872440 100644 --- a/assets/en_api_mp_math_angle.md.09R7pxw_.js +++ b/assets/zht_api_mp_math_angle.md.CEIly6_X.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.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)

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

@property

def complementary(self) -> AnyAngle

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

Return: 余角

Source code or View on GitHub
python
@property
+        self.radian = value * PI / 180

@property

func 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

def 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

func supplementary(self) -> AnyAngle

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

返回: 补角

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

@property

def degree(self) -> float

Description: 角度。

Return: 弧度

Source code or View on GitHub
python
@property
+    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

func degree(self) -> float

説明: 角度。

返回: 弧度

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

@property

def minimum_positive(self) -> AnyAngle

Description: 最小正角。

Return: 最小正角度

Source code or View on GitHub
python
@property
+    return self.radian * 180 / PI

@property

func minimum_positive(self) -> AnyAngle

説明: 最小正角。

返回: 最小正角度

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

@property

def maximum_negative(self) -> AnyAngle

Description: 最大负角。

Return: 最大负角度

Source code or View on GitHub
python
@property
+    return AnyAngle(self.radian % (2 * PI))

@property

func maximum_negative(self) -> AnyAngle

説明: 最大负角。

返回: 最大负角度

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

@property

def sin(self) -> float

Description: 正弦值。

Return: 正弦值

Source code or View on GitHub
python
@property
+    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

func sin(self) -> float

説明: 正弦值。

返回: 正弦值

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

@property

def cos(self) -> float

Description: 余弦值。

Return: 余弦值

Source code or View on GitHub
python
@property
+    return math.sin(self.radian)

@property

func cos(self) -> float

説明: 余弦值。

返回: 余弦值

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

@property

def tan(self) -> float

Description: 正切值。

Return: 正切值

Source code or View on GitHub
python
@property
+    return math.cos(self.radian)

@property

func tan(self) -> float

説明: 正切值。

返回: 正切值

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

@property

def cot(self) -> float

Description: 余切值。

Return: 余切值

Source code or View on GitHub
python
@property
+    return math.tan(self.radian)

@property

func cot(self) -> float

説明: 余切值。

返回: 余切值

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

@property

def sec(self) -> float

Description: 正割值。

Return: 正割值

Source code or View on GitHub
python
@property
+    return 1 / math.tan(self.radian)

@property

func sec(self) -> float

説明: 正割值。

返回: 正割值

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

@property

def csc(self) -> float

Description: 余割值。

Return: 余割值

Source code or View on GitHub
python
@property
+    return 1 / math.cos(self.radian)

@property

func csc(self) -> float

説明: 余割值。

返回: 余割值

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

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

def __eq__(self, other)

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

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

def 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

def self / other: float => AnyAngle

Source code or View on GitHub
python
@overload
+    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
 def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

def self / other: AnyAngle => float

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

@overload

func self / other: AnyAngle => float

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

def self / other

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

func 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 a(),i("div",null,l)}const F=s(t,[["render",h]]);export{c 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 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.xBQ5jf2w.lean.js b/assets/zht_api_mp_math_angle.md.CEIly6_X.lean.js similarity index 86% rename from assets/zht_api_mp_math_angle.md.xBQ5jf2w.lean.js rename to assets/zht_api_mp_math_angle.md.CEIly6_X.lean.js index c0c9943..a629079 100644 --- a/assets/zht_api_mp_math_angle.md.xBQ5jf2w.lean.js +++ b/assets/zht_api_mp_math_angle.md.CEIly6_X.lean.js @@ -1 +1 @@ -import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/angle.md","filePath":"zht/api/mp_math/angle.md"}'),t={name:"zht/api/mp_math/angle.md"},e=n("",80),l=[e];function h(p,k,r,d,o,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; +import{_ as s,c as a,o as i,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const c=JSON.parse('{"title":"mbcp.mp_math.angle","description":"","frontmatter":{"title":"mbcp.mp_math.angle","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/angle.md","filePath":"zht/api/mp_math/angle.md"}'),t={name:"zht/api/mp_math/angle.md"},e=n("",80),l=[e];function h(p,k,r,o,d,g){return i(),a("div",null,l)}const F=s(t,[["render",h]]);export{c as __pageData,F as default}; diff --git a/assets/en_api_mp_math_equation.md.DBXwIC0s.js b/assets/zht_api_mp_math_equation.md.BPMLYcpO.js similarity index 72% rename from assets/en_api_mp_math_equation.md.DBXwIC0s.js rename to assets/zht_api_mp_math_equation.md.BPMLYcpO.js index 1b7edf9..0f4d793 100644 --- a/assets/en_api_mp_math_equation.md.DBXwIC0s.js +++ b/assets/zht_api_mp_math_equation.md.BPMLYcpO.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

def __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":"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):
     """
         曲线方程。
         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

def __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

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

説明: 计算曲线上的点。

變數説明:

  • *t:
  • 参数:

返回: 目标点

源碼於GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
     """
         计算曲线上的点。
         Args:
@@ -20,7 +20,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
-        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

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

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

WARNING

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

Arguments:

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

Return: 偏导函数

Raises:

  • ValueError 无效变量类型
Source code or View on GitHub
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
+        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

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

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

WARNING

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

變數説明:

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

返回: 偏导函数

抛出:

  • ValueError 无效变量类型
源碼於GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
     """
     求N元函数一阶偏导函数。这玩意不太稳定,慎用。
     > [!warning]
@@ -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,d,c){return a(),i("div",null,p)}const o=s(t,[["render",h]]);export{u as __pageData,o as default}; + raise ValueError('Invalid var type')
`,23),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}; diff --git a/assets/zht_api_mp_math_equation.md.CNqNdo8e.lean.js b/assets/zht_api_mp_math_equation.md.BPMLYcpO.lean.js similarity index 73% rename from assets/zht_api_mp_math_equation.md.CNqNdo8e.lean.js rename to assets/zht_api_mp_math_equation.md.BPMLYcpO.lean.js index a290646..593b902 100644 --- a/assets/zht_api_mp_math_equation.md.CNqNdo8e.lean.js +++ b/assets/zht_api_mp_math_equation.md.BPMLYcpO.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DpC1ZpOZ.js";const u=JSON.parse('{"title":"mbcp.mp_math.equation","description":"","frontmatter":{"title":"mbcp.mp_math.equation","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/equation.md","filePath":"zht/api/mp_math/equation.md"}'),t={name:"zht/api/mp_math/equation.md"},l=n("",23),p=[l];function h(e,k,r,E,d,g){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(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}; diff --git a/assets/zht_api_mp_math_function.md.BYw-sqJL.js b/assets/zht_api_mp_math_function.md.BYw-sqJL.js deleted file mode 100644 index d66b819..0000000 --- a/assets/zht_api_mp_math_function.md.BYw-sqJL.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

def 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),y=[c],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("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)

def 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,y)),u]),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.js b/assets/zht_api_mp_math_function.md.D9y8K44X.js new file mode 100644 index 0000000..1eab202 --- /dev/null +++ b/assets/zht_api_mp_math_function.md.D9y8K44X.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.BYw-sqJL.lean.js b/assets/zht_api_mp_math_function.md.D9y8K44X.lean.js similarity index 97% rename from assets/zht_api_mp_math_function.md.BYw-sqJL.lean.js rename to assets/zht_api_mp_math_function.md.D9y8K44X.lean.js index f9d5421..39dd29d 100644 --- a/assets/zht_api_mp_math_function.md.BYw-sqJL.lean.js +++ b/assets/zht_api_mp_math_function.md.D9y8K44X.lean.js @@ -1 +1 @@ -import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/function.md","filePath":"zht/api/mp_math/function.md"}'),e={name:"zht/api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),y=[c],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,y)),u]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; +import{_ as l,c as t,j as s,a as n,a4 as a,o as i}from"./chunks/framework.DpC1ZpOZ.js";const Z=JSON.parse('{"title":"mbcp.mp_math.function","description":"","frontmatter":{"title":"mbcp.mp_math.function","lastUpdated":false},"headers":[],"relativePath":"zht/api/mp_math/function.md","filePath":"zht/api/mp_math/function.md"}'),e={name:"zht/api/mp_math/function.md"},Q=a("",4),T={class:"tip custom-block github-alert"},h=s("p",{class:"custom-block-title"},"TIP",-1),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.471ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3744.3 1000","aria-hidden":"true"},d=a("",1),o=[d],k=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",null,","),s("mi",null,"z"),s("mo",{stretchy:"false"},")")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.19ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4504 1000","aria-hidden":"true"},c=a("",1),u=[c],y=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")")])],-1),E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-1.469ex"},xmlns:"http://www.w3.org/2000/svg",width:"29.427ex",height:"4.07ex",role:"img",focusable:"false",viewBox:"0 -1149.5 13006.8 1799","aria-hidden":"true"},f=a("",1),_=[f],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",{mathvariant:"normal"},"∇"),s("mi",null,"f"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"y"),s("mn",null,"0")]),s("mo",null,","),s("msub",null,[s("mi",null,"z"),s("mn",null,"0")]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"x")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"y")])]),s("mo",null,","),s("mfrac",null,[s("mrow",null,[s("mi",null,"∂"),s("mi",null,"f")]),s("mrow",null,[s("mi",null,"∂"),s("mi",null,"z")])]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])])],-1),w=a("",13);function x(b,L,H,M,B,v){return i(),t("div",null,[Q,s("div",T,[h,s("p",null,[n("已知一个函数"),s("mjx-container",p,[(i(),t("svg",r,o)),k]),n(",则其在点"),s("mjx-container",m,[(i(),t("svg",g,u)),y]),n("处的梯度向量为: "),s("mjx-container",E,[(i(),t("svg",F,_)),C])])]),w])}const V=l(e,[["render",x]]);export{Z as __pageData,V as default}; diff --git a/assets/zht_api_mp_math_line.md.BKWlVJmv.js b/assets/zht_api_mp_math_line.md.V0JKiMxX.js similarity index 60% rename from assets/zht_api_mp_math_line.md.BKWlVJmv.js rename to assets/zht_api_mp_math_line.md.V0JKiMxX.js index 7ab4604..8ba92ac 100644 --- a/assets/zht_api_mp_math_line.md.BKWlVJmv.js +++ b/assets/zht_api_mp_math_line.md.V0JKiMxX.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

def __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

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

def 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

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:
     """
         判断两条直线是否近似相等。
         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)

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

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

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

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

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

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

變數説明:

  • other (Line3): 另一条直线

返回: Point3: 交点

抛出:

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

func 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

def 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

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

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

func 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

def 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

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

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

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:
     """
         判断两条直线是否近似平行。
         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)

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

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

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

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

變數説明:

返回: bool: 是否共线

源碼於GitHub上查看
python
def is_collinear(self, other: 'Line3') -> 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:
     """
         判断两条直线是否共线。
         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)

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

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

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

func 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

def simplify(self)

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

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

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

func 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

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

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

變數説明:

返回: Line3: 直线

源碼於GitHub上查看
python
@classmethod
+        self.point.z = 0

@classmethod

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

def __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)

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

def __eq__(self, other) -> bool

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

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

變數説明:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源碼於GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
diff --git a/assets/zht_api_mp_math_line.md.BKWlVJmv.lean.js b/assets/zht_api_mp_math_line.md.V0JKiMxX.lean.js
similarity index 100%
rename from assets/zht_api_mp_math_line.md.BKWlVJmv.lean.js
rename to assets/zht_api_mp_math_line.md.V0JKiMxX.lean.js
diff --git a/assets/en_api_mp_math_plane.md.3xsZdWoR.js b/assets/zht_api_mp_math_plane.md.CKWKiFtm.js
similarity index 71%
rename from assets/en_api_mp_math_plane.md.3xsZdWoR.js
rename to assets/zht_api_mp_math_plane.md.CKWKiFtm.js
index f57c5f9..b4fffaf 100644
--- a/assets/en_api_mp_math_plane.md.3xsZdWoR.js
+++ b/assets/zht_api_mp_math_plane.md.CKWKiFtm.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.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

def __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 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):
     """
         平面方程: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 y
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

def 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

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

def 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

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

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

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

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

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

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

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

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

func 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 y
         Returns:
             [\`Plane3\`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

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

func 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 y
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.normal.is_parallel(other.normal)

@property

def normal(self) -> Vector3

Description: 平面的法向量。

Return: Vector3: 法向量

Source code or View on GitHub
python
@property
+    return self.normal.is_parallel(other.normal)

@property

func 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

def 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

func 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 y
         """
     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

def 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

func 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 y
     v1 = p2 - p1
     v2 = p3 - p1
     normal = v1.cross(v2)
-    return cls.from_point_and_normal(p1, normal)

@classmethod

def 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

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

def 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

func 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 y
         Returns:
             平面
         """
-    return cls.from_point_and_normal(point, line.direction)

@overload

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

Source code or View on GitHub
python
@overload
+    return cls.from_point_and_normal(point, line.direction)

@overload

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

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

@overload

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

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

@overload

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

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

def __and__(self, other)

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

Arguments:

Return: Line3 | Point3 | None: 交集

Raises:

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

func __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 y
             return None
         return self.cal_intersection_point3(other)
     else:
-        raise TypeError(f"unsupported operand type(s) for &: 'Plane3' and '{type(other)}'")

def __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)}'")

func __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 y
         Returns:
             [\`bool\`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
-    return self.approx(other)

def __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 e(p,k,r,o,d,E){return a(),i("div",null,h)}const c=s(l,[["render",e]]);export{y as __pageData,c as default}; + 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}; diff --git a/assets/zht_api_mp_math_plane.md.Cbo0QRQD.lean.js b/assets/zht_api_mp_math_plane.md.CKWKiFtm.lean.js similarity index 67% rename from assets/zht_api_mp_math_plane.md.Cbo0QRQD.lean.js rename to assets/zht_api_mp_math_plane.md.CKWKiFtm.lean.js index 43a9b72..00a9c41 100644 --- a/assets/zht_api_mp_math_plane.md.Cbo0QRQD.lean.js +++ b/assets/zht_api_mp_math_plane.md.CKWKiFtm.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.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}; +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}; diff --git a/assets/en_api_mp_math_point.md.CxCgy181.js b/assets/zht_api_mp_math_point.md.D7bOx2HI.js similarity index 61% rename from assets/en_api_mp_math_point.md.CxCgy181.js rename to assets/zht_api_mp_math_point.md.D7bOx2HI.js index 14d07b0..2f6fe97 100644 --- a/assets/en_api_mp_math_point.md.CxCgy181.js +++ b/assets/zht_api_mp_math_point.md.D7bOx2HI.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"},e=t(`

mbcp.mp_math.point

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

class Point3

def __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":"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):
     """
         笛卡尔坐标系中的点。
         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

def 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

func 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

def 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

func self + other: Vector3 => Point3

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

@overload

def self + other: Point3 => Point3

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

@overload

func self + other: Point3 => Point3

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

def self + other

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

Arguments:

Return: Point3: 新的点

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

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

def __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)

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

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

func 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),l=[e];function h(p,o,k,r,d,c){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; + 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}; diff --git a/assets/zht_api_mp_math_point.md.Ci0RyJlm.lean.js b/assets/zht_api_mp_math_point.md.D7bOx2HI.lean.js similarity index 72% rename from assets/zht_api_mp_math_point.md.Ci0RyJlm.lean.js rename to assets/zht_api_mp_math_point.md.D7bOx2HI.lean.js index c875422..54ef0dc 100644 --- a/assets/zht_api_mp_math_point.md.Ci0RyJlm.lean.js +++ b/assets/zht_api_mp_math_point.md.D7bOx2HI.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 e(p,k,o,r,d,g){return a(),i("div",null,h)}const y=s(n,[["render",e]]);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"},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}; diff --git a/assets/en_api_mp_math_segment.md.BevquOvV.js b/assets/zht_api_mp_math_segment.md.pWjtiCkV.js similarity index 80% rename from assets/en_api_mp_math_segment.md.BevquOvV.js rename to assets/zht_api_mp_math_segment.md.pWjtiCkV.js index cc6747c..515bbfd 100644 --- a/assets/en_api_mp_math_segment.md.BevquOvV.js +++ b/assets/zht_api_mp_math_segment.md.pWjtiCkV.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":"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

def __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":"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'):
     """
         三维空间中的线段。
         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 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}; + 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}; diff --git a/assets/zht_api_mp_math_segment.md.D_xbGo8n.lean.js b/assets/zht_api_mp_math_segment.md.pWjtiCkV.lean.js similarity index 100% rename from assets/zht_api_mp_math_segment.md.D_xbGo8n.lean.js rename to assets/zht_api_mp_math_segment.md.pWjtiCkV.lean.js diff --git a/assets/en_api_mp_math_utils.md.rVP-A71G.js b/assets/zht_api_mp_math_utils.md.DIDbd5be.js similarity index 63% rename from assets/en_api_mp_math_utils.md.rVP-A71G.js rename to assets/zht_api_mp_math_utils.md.DIDbd5be.js index d9f58a2..00d94e8 100644 --- a/assets/en_api_mp_math_utils.md.rVP-A71G.js +++ b/assets/zht_api_mp_math_utils.md.DIDbd5be.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":"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

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

def 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":"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

def __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

func __init__(self, value: RealNumber)

説明: 用于近似比较对象

變數説明:

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

def __eq__(self, other)

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

func __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,9 +25,9 @@ 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)

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

def __ne__(self, other)

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

def 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:
+            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):
+    return not self.__eq__(other)

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

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

變數説明:

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

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
     """
     判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
     Args:
@@ -37,7 +37,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     Returns:
         [\`bool\`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
     """
-    return abs(x - y) < epsilon

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

Description: 获取数的符号。

Arguments:

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

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign(x: float, only_neg: bool=False) -> str:
+    return abs(x - y) < epsilon

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

説明: 获取数的符号。

變數説明:

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

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign(x: float, only_neg: bool=False) -> str:
     """获取数的符号。
     Args:
         x ([\`float\`](https://docs.python.org/3/library/functions.html#float)): 数
@@ -50,7 +50,7 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const F
     elif x < 0:
         return '-'
     else:
-        return ''

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

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

Arguments:

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

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign_format(x: float, only_neg: bool=False) -> str:
+        return ''

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

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

變數説明:

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

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
     """格式化符号数
     -1 -> -1
     1 -> +1
@@ -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 e(p,k,r,o,d,g){return a(),i("div",null,h)}const E=s(n,[["render",e]]);export{F as __pageData,E as default}; + return ''
`,38),h=[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}; diff --git a/assets/zht_api_mp_math_utils.md.BsNVdUjt.lean.js b/assets/zht_api_mp_math_utils.md.DIDbd5be.lean.js similarity index 67% rename from assets/zht_api_mp_math_utils.md.BsNVdUjt.lean.js rename to assets/zht_api_mp_math_utils.md.DIDbd5be.lean.js index 24b504f..ce79bcd 100644 --- a/assets/zht_api_mp_math_utils.md.BsNVdUjt.lean.js +++ b/assets/zht_api_mp_math_utils.md.DIDbd5be.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 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}; +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}; diff --git a/assets/zht_api_mp_math_vector.md.vRujd3bN.js b/assets/zht_api_mp_math_vector.md.4G7-2lGN.js similarity index 66% rename from assets/zht_api_mp_math_vector.md.vRujd3bN.js rename to assets/zht_api_mp_math_vector.md.4G7-2lGN.js index f3580dd..094f149 100644 --- a/assets/zht_api_mp_math_vector.md.vRujd3bN.js +++ b/assets/zht_api_mp_math_vector.md.4G7-2lGN.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"},e=t(`

mbcp.mp_math.vector

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

class Vector3

def __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"},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):
     """
         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

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

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

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    self.z = z

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

def 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])

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

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

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

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

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:
     """
         判断两个向量是否近似平行。
         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

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

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

變數説明:

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> bool:
+    return self.cross(other).length < epsilon

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

def normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

源碼於GitHub上查看
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

func 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

def np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源碼於GitHub上查看
python
@property
+    self.z /= length

@property

func 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

def length(self) -> float

説明: 向量的模。

返回: float: 模

源碼於GitHub上查看
python
@property
+    return np.array([self.x, self.y, self.z])

@property

func 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

def unit(self) -> Vector3

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

返回: Vector3: 单位向量

源碼於GitHub上查看
python
@property
+    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

func unit(self) -> Vector3

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

返回: Vector3: 单位向量

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

def __abs__(self)

源碼於GitHub上查看
python
def __abs__(self):
-    return self.length

@overload

def self + other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+    return self / self.length

func __abs__(self)

源碼於GitHub上查看
python
def __abs__(self):
+    return self.length

@overload

func self + other: Vector3 => Vector3

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

@overload

def self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

func self + other: Point3 => Point3

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

def self + other

説明: V + P -> P

V + V -> V

變數説明:

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

源碼於GitHub上查看
python
def __add__(self, other):
+    ...

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

def __eq__(self, other)

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

變數説明:

返回: bool: 是否相等

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

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

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

func 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

def self - other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

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

@overload

def self - other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

func self - other: Point3 => Point3

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

def self - other

説明: V - P -> P

V - V -> V

變數説明:

返回: Vector3 | Point3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other):
+    ...

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

def 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)}"')

func 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

def self * other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

func self * other: Vector3 => Vector3

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

@overload

def self * other: RealNumber => Vector3

源碼於GitHub上查看
python
@overload
+    ...

@overload

func self * other: RealNumber => Vector3

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

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

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

變數説明:

返回: Vector3: 数组运算结果

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

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

def self * other: RealNumber => Vector3

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

def 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)}'")

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':
     """
         点乘。
         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

def self / other: RealNumber => Vector3

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

def - self => Vector3

説明: 取负。

返回: Vector3: 负向量

源碼於GitHub上查看
python
def __neg__(self) -> 'Vector3':
+    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':
     """
         取负。
         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),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; + 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}; diff --git a/assets/zht_api_mp_math_vector.md.vRujd3bN.lean.js b/assets/zht_api_mp_math_vector.md.4G7-2lGN.lean.js similarity index 73% rename from assets/zht_api_mp_math_vector.md.vRujd3bN.lean.js rename to assets/zht_api_mp_math_vector.md.4G7-2lGN.lean.js index 4ec8288..0cc6efe 100644 --- a/assets/zht_api_mp_math_vector.md.vRujd3bN.lean.js +++ b/assets/zht_api_mp_math_vector.md.4G7-2lGN.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"},e=t("",138),l=[e];function h(p,k,r,o,d,g){return a(),i("div",null,l)}const y=s(n,[["render",h]]);export{E as __pageData,y as default}; +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}; diff --git a/assets/zht_api_presets_model_index.md.a46BvX0I.js b/assets/zht_api_presets_model_index.md.BMgFAAtM.js similarity index 85% rename from assets/zht_api_presets_model_index.md.a46BvX0I.js rename to assets/zht_api_presets_model_index.md.BMgFAAtM.js index f0d8967..32b7ff7 100644 --- a/assets/zht_api_presets_model_index.md.a46BvX0I.js +++ b/assets/zht_api_presets_model_index.md.BMgFAAtM.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/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

def sphere(radius: float, density: float)

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

變數説明:

  • radius:
  • density:

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

源碼於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":"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):
     """
         生成球体上的点集。
@@ -15,4 +15,4 @@ import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y
     x_array = radius * np.sin(phi_list) * np.cos(theta_list)
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
-    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]
`,10),l=[h];function p(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}; + 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.a46BvX0I.lean.js b/assets/zht_api_presets_model_index.md.BMgFAAtM.lean.js similarity index 63% rename from assets/zht_api_presets_model_index.md.a46BvX0I.lean.js rename to assets/zht_api_presets_model_index.md.BMgFAAtM.lean.js index 51a0c5b..971fa91 100644 --- a/assets/zht_api_presets_model_index.md.a46BvX0I.lean.js +++ b/assets/zht_api_presets_model_index.md.BMgFAAtM.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DpC1ZpOZ.js";const y=JSON.parse('{"title":"mbcp.presets.model","description":"","frontmatter":{"title":"mbcp.presets.model","lastUpdated":false,"collapsed":true},"headers":[],"relativePath":"zht/api/presets/model/index.md","filePath":"zht/api/presets/model/index.md"}'),n={name:"zht/api/presets/model/index.md"},h=t("",10),l=[h];function p(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 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.C8PKDM2B.js b/assets/zht_api_presets_model_model.md.hVmtKMyB.js similarity index 87% rename from assets/zht_api_presets_model_model.md.C8PKDM2B.js rename to assets/zht_api_presets_model_model.md.hVmtKMyB.js index a7ba29e..26da939 100644 --- a/assets/zht_api_presets_model_model.md.C8PKDM2B.js +++ b/assets/zht_api_presets_model_model.md.hVmtKMyB.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

def 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/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
 def sphere(radius: float, density: float):
     """
         生成球体上的点集。
diff --git a/assets/zht_api_presets_model_model.md.C8PKDM2B.lean.js b/assets/zht_api_presets_model_model.md.hVmtKMyB.lean.js
similarity index 100%
rename from assets/zht_api_presets_model_model.md.C8PKDM2B.lean.js
rename to assets/zht_api_presets_model_model.md.hVmtKMyB.lean.js
diff --git a/demo/best-practice.html b/demo/best-practice.html
index de67b8b..279bd0e 100644
--- a/demo/best-practice.html
+++ b/demo/best-practice.html
@@ -6,10 +6,10 @@
     最佳实践 | MBCP 文档
     
     
-    
+    
     
-    
-    
+    
+    
     
     
     
@@ -19,7 +19,7 @@
   
   
     
-    
+    
     
   
 
\ No newline at end of file
diff --git a/demo/index.html b/demo/index.html
index 69c7815..2c679f8 100644
--- a/demo/index.html
+++ b/demo/index.html
@@ -6,10 +6,10 @@
     demo | MBCP 文档
     
     
-    
+    
     
-    
-    
+    
+    
     
     
     
@@ -19,7 +19,7 @@
   
   
     
Skip to content

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

- + \ No newline at end of file diff --git a/en/api/api.html b/en/api/api.html index 327cc23..43630fc 100644 --- a/en/api/api.html +++ b/en/api/api.html @@ -6,10 +6,10 @@ mbcp | MBCP docs - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/en/api/index.html b/en/api/index.html index 59941f2..e2a73d9 100644 --- a/en/api/index.html +++ b/en/api/index.html @@ -6,10 +6,10 @@ mbcp | MBCP docs - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/en/api/mp_math/angle.html b/en/api/mp_math/angle.html index c77d99a..817111f 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)

def __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

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):
     """
         任意角度。
         Args:
@@ -28,96 +28,96 @@
     if is_radian:
         self.radian = value
     else:
-        self.radian = value * PI / 180

@property

def complementary(self) -> AnyAngle

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

Return: 余角

Source code or View on GitHub
python
@property
+        self.radian = value * PI / 180

@property

func 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

def 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

func 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

def degree(self) -> float

Description: 角度。

Return: 弧度

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

@property

def minimum_positive(self) -> AnyAngle

Description: 最小正角。

Return: 最小正角度

Source code or View on GitHub
python
@property
+    return self.radian * 180 / PI

@property

func 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

def maximum_negative(self) -> AnyAngle

Description: 最大负角。

Return: 最大负角度

Source code or View on GitHub
python
@property
+    return AnyAngle(self.radian % (2 * PI))

@property

func 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

def sin(self) -> float

Description: 正弦值。

Return: 正弦值

Source code or View on GitHub
python
@property
+    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

func sin(self) -> float

Description: 正弦值。

Return: 正弦值

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

@property

def cos(self) -> float

Description: 余弦值。

Return: 余弦值

Source code or View on GitHub
python
@property
+    return math.sin(self.radian)

@property

func cos(self) -> float

Description: 余弦值。

Return: 余弦值

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

@property

def tan(self) -> float

Description: 正切值。

Return: 正切值

Source code or View on GitHub
python
@property
+    return math.cos(self.radian)

@property

func tan(self) -> float

Description: 正切值。

Return: 正切值

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

@property

def cot(self) -> float

Description: 余切值。

Return: 余切值

Source code or View on GitHub
python
@property
+    return math.tan(self.radian)

@property

func 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

def sec(self) -> float

Description: 正割值。

Return: 正割值

Source code or View on GitHub
python
@property
+    return 1 / math.tan(self.radian)

@property

func 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

def csc(self) -> float

Description: 余割值。

Return: 余割值

Source code or View on GitHub
python
@property
+    return 1 / math.cos(self.radian)

@property

func csc(self) -> float

Description: 余割值。

Return: 余割值

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

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

def __eq__(self, other)

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

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

def 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

def self / other: float => AnyAngle

Source code or View on GitHub
python
@overload
+    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
 def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

def self / other: AnyAngle => float

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

@overload

func self / other: AnyAngle => float

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

def self / other

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

func 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

- + \ No newline at end of file diff --git a/en/api/mp_math/const.html b/en/api/mp_math/const.html index b770d9b..9a5d92b 100644 --- a/en/api/mp_math/const.html +++ b/en/api/mp_math/const.html @@ -6,10 +6,10 @@ mbcp.mp_math.const | MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

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

- + \ No newline at end of file diff --git a/en/api/mp_math/equation.html b/en/api/mp_math/equation.html index 24df0d9..e3a8a47 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

def __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

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):
     """
         曲线方程。
         Args:
@@ -28,7 +28,7 @@
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

def __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

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, ...]:
     """
         计算曲线上的点。
         Args:
@@ -40,7 +40,7 @@
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
-        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

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

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

WARNING

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

Arguments:

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

Return: 偏导函数

Raises:

  • ValueError 无效变量类型
Source code or View on GitHub
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
+        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

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

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

WARNING

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

Arguments:

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

Return: 偏导函数

Raises:

  • ValueError 无效变量类型
Source code or View on GitHub
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
     """
     求N元函数一阶偏导函数。这玩意不太稳定,慎用。
     > [!warning]
@@ -83,7 +83,7 @@
         return high_order_partial_derivative_func
     else:
         raise ValueError('Invalid var type')

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/function.html b/en/api/mp_math/function.html index 429e6cc..dc5b900 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

def 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

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:
     """
     计算三元函数在某点的梯度向量。
     > [!tip]
@@ -34,7 +34,7 @@
     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)

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

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

TIP

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

Arguments:

Return: 柯里化后的函数

Examples:

python
def add(a: int, b: int, c: int) -> int:
+    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:
@@ -60,7 +60,7 @@
         """@litedoc-hide"""
         return func(*args, *args2)
     return curried_func

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/index.html b/en/api/mp_math/index.html index a887067..a816b0b 100644 --- a/en/api/mp_math/index.html +++ b/en/api/mp_math/index.html @@ -6,10 +6,10 @@ mbcp.mp_math | MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

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/line.html b/en/api/mp_math/line.html index dd704b1..351eca9 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

def __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

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'):
     """
         三维空间中的直线。由一个点和一个方向向量确定。
         Args:
@@ -26,7 +26,7 @@
             direction ([`Vector3`](./vector#class-vector3)): 方向向量
         """
     self.point = point
-    self.direction = direction

def 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

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:
     """
         判断两条直线是否近似相等。
         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)

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

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':
     """
         计算直线和直线之间的夹角。
         Args:
@@ -43,7 +43,7 @@
         Returns:
             [`AnyAngle`](./angle#class-anyangle): 夹角
         """
-    return self.direction.cal_angle(other.direction)

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

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:
     """
         计算直线和直线或点之间的距离。
         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.')

def 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.')

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':
     """
         计算两条直线的交点。
         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

def 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

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':
     """
         计算直线经过指定点p的垂线。
         Args:
@@ -88,7 +88,7 @@
         Returns:
             [`Line3`](./line#class-line3): 垂线
         """
-    return Line3(point, self.direction.cross(point - self.point))

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

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':
     """
         获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。
         Args:
@@ -96,13 +96,13 @@
         Returns:
             [`Point3`](./point#class-point3): 点
         """
-    return self.point + t * self.direction

def 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

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]:
     """
         获取直线的参数方程。
         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)

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

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:
     """
         判断两条直线是否近似平行。
         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)

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

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:
     """
         判断两条直线是否平行。
         Args:
@@ -119,7 +119,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.direction.is_parallel(other.direction)

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

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:
     """
         判断两条直线是否共线。
         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)

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

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:
     """
         判断点是否在直线上。
         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)

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

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:
     """
         判断两条直线是否共面。
         充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为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

def 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

func 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

def 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

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

def __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)

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':
     """
         计算两条直线点集合的交集。重合线返回自身,平行线返回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)

def __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)

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:
     """
         判断两条直线是否等价。
 
@@ -192,7 +192,7 @@
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
     return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/mp_math.html b/en/api/mp_math/mp_math.html index 95e3007..62bba41 100644 --- a/en/api/mp_math/mp_math.html +++ b/en/api/mp_math/mp_math.html @@ -6,10 +6,10 @@ mbcp.mp_math | MBCP docs - + - - + + @@ -19,7 +19,7 @@
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 5b14004..e2c2c0f 100644 --- a/en/api/mp_math/mp_math_typing.html +++ b/en/api/mp_math/mp_math_typing.html @@ -6,10 +6,10 @@ mbcp.mp_math.mp_math_typing | MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

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

- + \ No newline at end of file diff --git a/en/api/mp_math/plane.html b/en/api/mp_math/plane.html index ceb6b6a..667402d 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

def __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

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):
     """
         平面方程:ax + by + cz + d = 0
         Args:
@@ -30,7 +30,7 @@
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

def 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

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:
     """
         判断两个平面是否近似相等。
         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

def 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

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':
     """
         计算平面与平面之间的夹角。
         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)}')

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

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:
     """
         计算平面与平面或点之间的距离。
         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)}')

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

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':
     """
         计算两平面的交线。
         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)

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

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':
     """
         计算平面与直线的交点。
         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))

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

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':
     """
         计算平行于该平面且过指定点的平面。
         Args:
@@ -126,7 +126,7 @@
         Returns:
             [`Plane3`](./plane#class-plane3): 平面
         """
-    return Plane3.from_point_and_normal(point, self.normal)

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

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:
     """
         判断两个平面是否平行。
         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

def normal(self) -> Vector3

Description: 平面的法向量。

Return: Vector3: 法向量

Source code or View on GitHub
python
@property
+    return self.normal.is_parallel(other.normal)

@property

func 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

def 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

func 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

def 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

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

def 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

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

def 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

func 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

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

Source code or View on GitHub
python
@overload
+    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
 def __and__(self, other: 'Line3') -> 'Point3 | None':
-    ...

@overload

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

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

@overload

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

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

def __and__(self, other)

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

Arguments:

Return: Line3 | Point3 | None: 交集

Raises:

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

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

def __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)}'")

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

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

Source code or View on GitHub
python
def __rand__(self, other: 'Line3') -> 'Point3':
+    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

- + \ No newline at end of file diff --git a/en/api/mp_math/point.html b/en/api/mp_math/point.html index 424e701..5f38a1b 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

def __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

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):
     """
         笛卡尔坐标系中的点。
         Args:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

def 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

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:
     """
         判断两个点是否近似相等。
         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

def 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

func self + other: Vector3 => Point3

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

@overload

def self + other: Point3 => Point3

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

@overload

func self + other: Point3 => Point3

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

def self + other

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

Arguments:

Return: Point3: 新的点

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

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

def __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)

func __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)

def 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)

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':
     """
         P - P -> V
 
@@ -70,7 +70,7 @@
         """
     from .vector import Vector3
     return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/segment.html b/en/api/mp_math/segment.html index 30ab545..7f39923 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

def __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

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'):
     """
         三维空间中的线段。
         Args:
@@ -33,7 +33,7 @@
     self.length = self.direction.length
     '中心点'
     self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/utils.html b/en/api/mp_math/utils.html index 5dab145..95731c8 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: 本模块定义了一些常用的工具函数

def 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

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:
     """
     区间限定函数
     Args:
@@ -29,13 +29,13 @@
     Returns:
         `float`: 限定在区间内的值
     """
-    return max(min(x, max_), min_)

class Approx

def __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

func __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

def __eq__(self, other)

Source code or View on GitHub
python
def __eq__(self, other):
+    self.value = value

func __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,9 +45,9 @@
         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)

def 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)}')

def __ne__(self, other)

Source code or View on GitHub
python
def __ne__(self, other):
-    return not self.__eq__(other)

def 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:
+            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):
+    return not self.__eq__(other)

func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool

Description: 判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

Arguments:

  • x (float): 数1
  • y (float): 数2
  • epsilon (float): 误差

Return: bool: 是否近似相等

Source code or View on GitHub
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
     """
     判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
     Args:
@@ -57,7 +57,7 @@
     Returns:
         [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
     """
-    return abs(x - y) < epsilon

def sign(x: float, only_neg: bool = False) -> str

Description: 获取数的符号。

Arguments:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign(x: float, only_neg: bool=False) -> str:
+    return abs(x - y) < epsilon

func sign(x: float, only_neg: bool = False) -> str

Description: 获取数的符号。

Arguments:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign(x: float, only_neg: bool=False) -> str:
     """获取数的符号。
     Args:
         x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数
@@ -70,7 +70,7 @@
     elif x < 0:
         return '-'
     else:
-        return ''

def sign_format(x: float, only_neg: bool = False) -> str

Description: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

Arguments:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign_format(x: float, only_neg: bool=False) -> str:
+        return ''

func sign_format(x: float, only_neg: bool = False) -> str

Description: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

Arguments:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

Return: str: 符号 + - ""

Source code or View on GitHub
python
def sign_format(x: float, only_neg: bool=False) -> str:
     """格式化符号数
     -1 -> -1
     1 -> +1
@@ -87,7 +87,7 @@
         return f'-{abs(x)}'
     else:
         return ''

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/mp_math/vector.html b/en/api/mp_math/vector.html index 82039b0..2f46eda 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

def __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

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):
     """
         3维向量
         Args:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

def 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

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:
     """
         判断两个向量是否近似相等。
         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])

def 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])

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':
     """
         计算两个向量之间的夹角。
         Args:
@@ -46,7 +46,7 @@
         Returns:
             [`AnyAngle`](./angle#class-anyangle): 夹角
         """
-    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

def 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)

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':
     """
         向量积 叉乘: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)

def 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)

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:
     """
         判断两个向量是否近似平行。
         Args:
@@ -75,7 +75,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

def 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

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:
     """
         判断两个向量是否平行。
         Args:
@@ -83,7 +83,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否平行
         """
-    return self.cross(other).approx(zero_vector3)

def normalize(self)

Description: 将向量归一化。

自体归一化,不返回值。

Source code or View on GitHub
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

func 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

def np_array(self) -> np.ndarray

Return: np.ndarray: numpy数组

Source code or View on GitHub
python
@property
+    self.z /= length

@property

func 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

def length(self) -> float

Description: 向量的模。

Return: float: 模

Source code or View on GitHub
python
@property
+    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
 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

def 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

func 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

def __abs__(self)

Source code or View on GitHub
python
def __abs__(self):
-    return self.length

@overload

def self + other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
+    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
 def __add__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self + other: Point3 => Point3

Source code or View on GitHub
python
@overload
+    ...

@overload

func self + other: Point3 => Point3

Source code or View on GitHub
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

def self + other

Description: V + P -> P

V + V -> V

Arguments:

Return: Vector3 | Point3: 新的向量或点

Source code or View on GitHub
python
def __add__(self, other):
+    ...

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):
     """
         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)}'")

def __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)}'")

func __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)

def 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)

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':
     """
         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

def 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

func self - other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
 def __sub__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self - other: Point3 => Point3

Source code or View on GitHub
python
@overload
+    ...

@overload

func self - other: Point3 => Point3

Source code or View on GitHub
python
@overload
 def __sub__(self, other: 'Point3') -> 'Point3':
-    ...

def self - other

Description: V - P -> P

V - V -> V

Arguments:

Return: Vector3 | Point3: 新的向量

Source code or View on GitHub
python
def __sub__(self, other):
+    ...

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):
     """
         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)}"')

def 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)}"')

func 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

def 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

func self * other: Vector3 => Vector3

Source code or View on GitHub
python
@overload
 def __mul__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self * other: RealNumber => Vector3

Source code or View on GitHub
python
@overload
+    ...

@overload

func self * other: RealNumber => Vector3

Source code or View on GitHub
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

def 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':
+    ...

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':
     """
         数组运算 非点乘。点乘使用@,叉乘使用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)}'")

def self * other: RealNumber => Vector3

Source code or View on GitHub
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

def 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)}'")

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':
     """
         点乘。
         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

def 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)

def - 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

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':
     """
         取负。
         Returns:
             [`Vector3`](#class-vector3): 负向量
         """
     return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • Description: 零向量

  • Type: Vector3

  • Default: Vector3(0, 0, 0)

var x_axis

  • Description: x轴单位向量

  • Type: Vector3

  • Default: Vector3(1, 0, 0)

var y_axis

  • Description: y轴单位向量

  • Type: Vector3

  • Default: Vector3(0, 1, 0)

var z_axis

  • Description: z轴单位向量

  • Type: Vector3

  • Default: Vector3(0, 0, 1)

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/particle/index.html b/en/api/particle/index.html index 01afd36..233cd34 100644 --- a/en/api/particle/index.html +++ b/en/api/particle/index.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP docs - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/en/api/particle/particle.html b/en/api/particle/particle.html index 934dba2..8c0a05c 100644 --- a/en/api/particle/particle.html +++ b/en/api/particle/particle.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP docs - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/en/api/presets/index.html b/en/api/presets/index.html index 013181d..c81424c 100644 --- a/en/api/presets/index.html +++ b/en/api/presets/index.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP docs - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/en/api/presets/model/index.html b/en/api/presets/model/index.html index 838e136..ccbb1c8 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

def 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

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):
     """
         生成球体上的点集。
@@ -36,7 +36,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/presets/model/model.html b/en/api/presets/model/model.html index b4b3327..1cd0d71 100644 --- a/en/api/presets/model/model.html +++ b/en/api/presets/model/model.html @@ -6,19 +6,19 @@ mbcp.presets.model | MBCP docs - + - - + + - + -
Skip to content

mbcp.presets.model

Description: 几何模型点集

class GeometricModels

@staticmethod

def 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

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):
     """
         生成球体上的点集。
@@ -36,7 +36,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/api/presets/presets.html b/en/api/presets/presets.html index 5f80e31..cd15014 100644 --- a/en/api/presets/presets.html +++ b/en/api/presets/presets.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP docs - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/en/demo/best-practice.html b/en/demo/best-practice.html index 7b929e0..fa60012 100644 --- a/en/demo/best-practice.html +++ b/en/demo/best-practice.html @@ -6,10 +6,10 @@ Best Practice | MBCP docs - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/en/guide/index.html b/en/guide/index.html index e72375c..cc1cd5e 100644 --- a/en/guide/index.html +++ b/en/guide/index.html @@ -6,10 +6,10 @@ 开始不了一点 | MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

开始不了一点

12x111

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/index.html b/en/index.html index 4c343de..1c07f11 100644 --- a/en/index.html +++ b/en/index.html @@ -6,10 +6,10 @@ MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

MBCP

More basic change particle

A Library for Python to create Minecraft particle effects and geometric figures

MBCP logo

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/en/refer/index.html b/en/refer/index.html index aa3ac8d..a691228 100644 --- a/en/refer/index.html +++ b/en/refer/index.html @@ -6,10 +6,10 @@ Reference | MBCP docs - + - - + + @@ -19,7 +19,7 @@
Skip to content

Reference

help us to improve the documentation

Documentation built with VitePress | API references generated by litedoc

- + \ No newline at end of file diff --git a/guide/index.html b/guide/index.html index 4e29a58..cbfa92b 100644 --- a/guide/index.html +++ b/guide/index.html @@ -6,10 +6,10 @@ 开始不了一点 | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

开始不了一点

12x111

AAA

BBB

C

ddd

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index 7039ee1..458fb13 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"api_api.md":"rnPOv6-O","api_index.md":"qnrSd__i","api_mp_math_angle.md":"3Na5IaYp","api_mp_math_const.md":"O6cTulwX","api_mp_math_equation.md":"z85zyCZL","api_mp_math_function.md":"BhmJqpOo","api_mp_math_index.md":"DHhPNV6R","api_mp_math_line.md":"Dovi6bdM","api_mp_math_mp_math.md":"mVabZTHd","api_mp_math_mp_math_typing.md":"CEryCREV","api_mp_math_plane.md":"Dv-GWbJg","api_mp_math_point.md":"BvvrKTY8","api_mp_math_segment.md":"_n__ViVt","api_mp_math_utils.md":"kW3A-lG9","api_mp_math_vector.md":"mCFa4Azm","api_particle_index.md":"BxLVuqry","api_particle_particle.md":"CioLG9Ab","api_presets_index.md":"C7sBj6Q8","api_presets_model_index.md":"F2zeh9P2","api_presets_model_model.md":"BoocA59j","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":"09R7pxw_","en_api_mp_math_const.md":"DjbxFoGO","en_api_mp_math_equation.md":"DBXwIC0s","en_api_mp_math_function.md":"nJ-E5W5r","en_api_mp_math_index.md":"ypHGEnmb","en_api_mp_math_line.md":"D0AfsxWD","en_api_mp_math_mp_math.md":"5IisTIt3","en_api_mp_math_mp_math_typing.md":"DWjztCj6","en_api_mp_math_plane.md":"3xsZdWoR","en_api_mp_math_point.md":"CxCgy181","en_api_mp_math_segment.md":"BevquOvV","en_api_mp_math_utils.md":"rVP-A71G","en_api_mp_math_vector.md":"BEIFYOwe","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":"_hbR1U40","en_api_presets_model_model.md":"B9FfcMgc","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":"CAq1hHov","ja_api_mp_math_const.md":"CACmM3Q4","ja_api_mp_math_equation.md":"CwX1EUnA","ja_api_mp_math_function.md":"BpyLWMmS","ja_api_mp_math_index.md":"B_UDRWJp","ja_api_mp_math_line.md":"BzytbSsM","ja_api_mp_math_mp_math.md":"DGl-Yqoj","ja_api_mp_math_mp_math_typing.md":"BANGfx9Q","ja_api_mp_math_plane.md":"Bw6ecTDW","ja_api_mp_math_point.md":"CFCWaCvm","ja_api_mp_math_segment.md":"cuLLXTSO","ja_api_mp_math_utils.md":"CrPKk6ui","ja_api_mp_math_vector.md":"mfFeokXv","ja_api_particle_index.md":"SXvJHpqE","ja_api_particle_particle.md":"DpDqAPA7","ja_api_presets_index.md":"DrJ0aeZq","ja_api_presets_model_index.md":"ub3RsBC9","ja_api_presets_model_model.md":"Dw-6mfuk","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":"xBQ5jf2w","zht_api_mp_math_const.md":"DhnGo46u","zht_api_mp_math_equation.md":"CNqNdo8e","zht_api_mp_math_function.md":"BYw-sqJL","zht_api_mp_math_index.md":"C-ytwIT_","zht_api_mp_math_line.md":"BKWlVJmv","zht_api_mp_math_mp_math.md":"WAo96wsQ","zht_api_mp_math_mp_math_typing.md":"2475K9x4","zht_api_mp_math_plane.md":"Cbo0QRQD","zht_api_mp_math_point.md":"Ci0RyJlm","zht_api_mp_math_segment.md":"D_xbGo8n","zht_api_mp_math_utils.md":"BsNVdUjt","zht_api_mp_math_vector.md":"vRujd3bN","zht_api_particle_index.md":"C8wv1sGB","zht_api_particle_particle.md":"DLxDzJsb","zht_api_presets_index.md":"CKWpXp08","zht_api_presets_model_index.md":"a46BvX0I","zht_api_presets_model_model.md":"C8PKDM2B","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_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"} diff --git a/index.html b/index.html index 6a873d7..dcea9a6 100644 --- a/index.html +++ b/index.html @@ -6,10 +6,10 @@ MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

MBCP

更多基础变换粒子

用于几何运算和Minecraft粒子制作的库

MBCP logo

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/ja/api/api.html b/ja/api/api.html index 5f2bf3a..ff74f06 100644 --- a/ja/api/api.html +++ b/ja/api/api.html @@ -6,10 +6,10 @@ mbcp | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/ja/api/index.html b/ja/api/index.html index 1434d8d..78a64ac 100644 --- a/ja/api/index.html +++ b/ja/api/index.html @@ -6,10 +6,10 @@ mbcp | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/ja/api/mp_math/angle.html b/ja/api/mp_math/angle.html index 62da1d0..dc9bcbf 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)

def __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)

func __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

def complementary(self) -> AnyAngle

説明: 余角:两角的和为90°。

戻り値: 余角

ソースコード または GitHubで表示
python
@property
+        self.radian = value * PI / 180

@property

func 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

def supplementary(self) -> AnyAngle

説明: 补角:两角的和为180°。

戻り値: 补角

ソースコード または GitHubで表示
python
@property
+    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

func supplementary(self) -> AnyAngle

説明: 补角:两角的和为180°。

戻り値: 补角

ソースコード または GitHubで表示
python
@property
 def supplementary(self) -> 'AnyAngle':
     """
         补角:两角的和为180°。
         Returns:
             补角
         """
-    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

def degree(self) -> float

説明: 角度。

戻り値: 弧度

ソースコード または GitHubで表示
python
@property
+    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

func degree(self) -> float

説明: 角度。

戻り値: 弧度

ソースコード または GitHubで表示
python
@property
 def degree(self) -> float:
     """
         角度。
         Returns:
             弧度
         """
-    return self.radian * 180 / PI

@property

def minimum_positive(self) -> AnyAngle

説明: 最小正角。

戻り値: 最小正角度

ソースコード または GitHubで表示
python
@property
+    return self.radian * 180 / PI

@property

func minimum_positive(self) -> AnyAngle

説明: 最小正角。

戻り値: 最小正角度

ソースコード または GitHubで表示
python
@property
 def minimum_positive(self) -> 'AnyAngle':
     """
         最小正角。
         Returns:
             最小正角度
         """
-    return AnyAngle(self.radian % (2 * PI))

@property

def maximum_negative(self) -> AnyAngle

説明: 最大负角。

戻り値: 最大负角度

ソースコード または GitHubで表示
python
@property
+    return AnyAngle(self.radian % (2 * PI))

@property

func maximum_negative(self) -> AnyAngle

説明: 最大负角。

戻り値: 最大负角度

ソースコード または GitHubで表示
python
@property
 def maximum_negative(self) -> 'AnyAngle':
     """
         最大负角。
         Returns:
             最大负角度
         """
-    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

def sin(self) -> float

説明: 正弦值。

戻り値: 正弦值

ソースコード または GitHubで表示
python
@property
+    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

func sin(self) -> float

説明: 正弦值。

戻り値: 正弦值

ソースコード または GitHubで表示
python
@property
 def sin(self) -> float:
     """
         正弦值。
         Returns:
             正弦值
         """
-    return math.sin(self.radian)

@property

def cos(self) -> float

説明: 余弦值。

戻り値: 余弦值

ソースコード または GitHubで表示
python
@property
+    return math.sin(self.radian)

@property

func cos(self) -> float

説明: 余弦值。

戻り値: 余弦值

ソースコード または GitHubで表示
python
@property
 def cos(self) -> float:
     """
         余弦值。
         Returns:
             余弦值
         """
-    return math.cos(self.radian)

@property

def tan(self) -> float

説明: 正切值。

戻り値: 正切值

ソースコード または GitHubで表示
python
@property
+    return math.cos(self.radian)

@property

func tan(self) -> float

説明: 正切值。

戻り値: 正切值

ソースコード または GitHubで表示
python
@property
 def tan(self) -> float:
     """
         正切值。
         Returns:
             正切值
         """
-    return math.tan(self.radian)

@property

def cot(self) -> float

説明: 余切值。

戻り値: 余切值

ソースコード または GitHubで表示
python
@property
+    return math.tan(self.radian)

@property

func cot(self) -> float

説明: 余切值。

戻り値: 余切值

ソースコード または GitHubで表示
python
@property
 def cot(self) -> float:
     """
         余切值。
         Returns:
             余切值
         """
-    return 1 / math.tan(self.radian)

@property

def sec(self) -> float

説明: 正割值。

戻り値: 正割值

ソースコード または GitHubで表示
python
@property
+    return 1 / math.tan(self.radian)

@property

func sec(self) -> float

説明: 正割值。

戻り値: 正割值

ソースコード または GitHubで表示
python
@property
 def sec(self) -> float:
     """
         正割值。
         Returns:
             正割值
         """
-    return 1 / math.cos(self.radian)

@property

def csc(self) -> float

説明: 余割值。

戻り値: 余割值

ソースコード または GitHubで表示
python
@property
+    return 1 / math.cos(self.radian)

@property

func csc(self) -> float

説明: 余割值。

戻り値: 余割值

ソースコード または GitHubで表示
python
@property
 def csc(self) -> float:
     """
         余割值。
         Returns:
             余割值
         """
-    return 1 / math.sin(self.radian)

def self + other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian + other.radian, is_radian=True)

def __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
-    return approx(self.radian, other.radian)

def self - other: AnyAngle => AnyAngle

ソースコード または GitHubで表示
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian - other.radian, is_radian=True)

def self * other: float => AnyAngle

ソースコード または GitHubで表示
python
def __mul__(self, other: float) -> 'AnyAngle':
-    return AnyAngle(self.radian * other, is_radian=True)

@overload

def self / other: float => AnyAngle

ソースコード または GitHubで表示
python
@overload
+    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
 def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

def self / other: AnyAngle => float

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

func self / other: AnyAngle => float

ソースコード または GitHubで表示
python
@overload
 def __truediv__(self, other: 'AnyAngle') -> float:
-    ...

def self / other

ソースコード または GitHubで表示
python
def __truediv__(self, other):
+    ...

func 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リファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/const.html b/ja/api/mp_math/const.html index d5a417e..63f2ceb 100644 --- a/ja/api/mp_math/const.html +++ b/ja/api/mp_math/const.html @@ -6,10 +6,10 @@ mbcp.mp_math.const | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

mbcp.mp_math.const

説明: 本模块定义了一些常用的常量

var PI

  • 説明: 常量 π

  • デフォルト: math.pi

var E

  • 説明: 自然对数的底 exp(1)

  • デフォルト: math.e

var GOLDEN_RATIO

  • 説明: 黄金分割比

  • デフォルト: (1 + math.sqrt(5)) / 2

var GAMMA

  • 説明: 欧拉常数

  • デフォルト: 0.5772156649015329

var EPSILON

  • 説明: 精度误差

  • デフォルト: 0.0001

var APPROX

  • 説明: 约等于判定误差

  • デフォルト: 0.001

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/equation.html b/ja/api/mp_math/equation.html index 029ebcb..efeac0f 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

def __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

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):
     """
         曲线方程。
         Args:
@@ -28,7 +28,7 @@
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

説明: 计算曲线上的点。

引数:

  • *t:
  • 参数:

戻り値: 目标点

ソースコード または GitHubで表示
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    self.z_func = z_func

func __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

説明: 计算曲线上的点。

引数:

  • *t:
  • 参数:

戻り値: 目标点

ソースコード または GitHubで表示
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
     """
         计算曲线上的点。
         Args:
@@ -40,7 +40,7 @@
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
-        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

説明: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

引数:

  • func (MultiVarsFunc): N元函数
  • var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
  • epsilon: 偏移量

戻り値: 偏导函数

例外:

  • ValueError 无效变量类型
ソースコード または GitHubで表示
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
+        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

説明: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

引数:

  • func (MultiVarsFunc): N元函数
  • var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
  • epsilon: 偏移量

戻り値: 偏导函数

例外:

  • ValueError 无效变量类型
ソースコード または GitHubで表示
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
     """
     求N元函数一阶偏导函数。这玩意不太稳定,慎用。
     > [!warning]
@@ -83,7 +83,7 @@
         return high_order_partial_derivative_func
     else:
         raise ValueError('Invalid var type')

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/function.html b/ja/api/mp_math/function.html index 4c3e5bd..c173582 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

def 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]
@@ -34,7 +34,7 @@
     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)

def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc

説明: 对多参数函数进行柯里化。

TIP

有关函数柯里化,可参考函数式编程--柯理化(Currying)

引数:

戻り値: 柯里化后的函数

:

python
def add(a: int, b: int, c: int) -> int:
+    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:
@@ -60,7 +60,7 @@
         """@litedoc-hide"""
         return func(*args, *args2)
     return curried_func

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/index.html b/ja/api/mp_math/index.html index 86a5de9..6f59f4b 100644 --- a/ja/api/mp_math/index.html +++ b/ja/api/mp_math/index.html @@ -6,10 +6,10 @@ mbcp.mp_math | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

mbcp.mp_math

説明: 本包定义了一些常用的导入,可直接从mbcp.mp_math导入使用 导入的类有:

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/line.html b/ja/api/mp_math/line.html index 5f6aa15..f7f110c 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

def __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

func __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

def 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

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:
     """
         判断两条直线是否近似相等。
         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)

def 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)

func 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)

def 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)

func 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.')

def cal_intersection(self, other: Line3) -> Point3

説明: 计算两条直线的交点。

引数:

  • other (Line3): 另一条直线

戻り値: Point3: 交点

例外:

ソースコード または GitHubで表示
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
+        raise TypeError('Unsupported type.')

func 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

def 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

func 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))

def 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))

func 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

def 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

func 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)

def 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)

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:
     """
         判断两条直线是否近似平行。
         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)

def 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)

func 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)

def is_collinear(self, other: Line3) -> bool

説明: 判断两条直线是否共线。

引数:

戻り値: bool: 是否共线

ソースコード または GitHubで表示
python
def is_collinear(self, other: 'Line3') -> 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:
     """
         判断两条直线是否共线。
         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)

def 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)

func 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)

def 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)

func 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

def simplify(self)

説明: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

ソースコード または GitHubで表示
python
def simplify(self):
+    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

func 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

def from_two_points(cls, p1: Point3, p2: Point3) -> Line3

説明: 工厂函数 由两点构造直线。

引数:

戻り値: Line3: 直线

ソースコード または GitHubで表示
python
@classmethod
+        self.point.z = 0

@classmethod

func 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)

def __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)

func __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)

def __eq__(self, other) -> bool

説明: 判断两条直线是否等价。

v1 // v2 ∧ (p1 - p2) // v1

引数:

  • other (Line3): 另一条直线

戻り値: bool: 是否等价

ソースコード または GitHubで表示
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
@@ -192,7 +192,7 @@
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
     return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/mp_math.html b/ja/api/mp_math/mp_math.html index 2d5c71b..d84968a 100644 --- a/ja/api/mp_math/mp_math.html +++ b/ja/api/mp_math/mp_math.html @@ -6,10 +6,10 @@ mbcp.mp_math | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

mbcp.mp_math

説明: 本包定义了一些常用的导入,可直接从mbcp.mp_math导入使用 导入的类有:

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/mp_math_typing.html b/ja/api/mp_math/mp_math_typing.html index 8862e20..9cb2edd 100644 --- a/ja/api/mp_math/mp_math_typing.html +++ b/ja/api/mp_math/mp_math_typing.html @@ -6,10 +6,10 @@ mbcp.mp_math.mp_math_typing | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

mbcp.mp_math.mp_math_typing

説明: 本模块用于内部类型提示

var RealNumber

  • 説明: 实数

  • タイプ: TypeAlias

  • デフォルト: int | float

var Number

  • 説明: 数

  • タイプ: TypeAlias

  • デフォルト: RealNumber | complex

var SingleVar

  • 説明: 单变量

  • デフォルト: TypeVar('SingleVar', bound=Number)

var ArrayVar

  • 説明: 数组变量

  • デフォルト: TypeVar('ArrayVar', bound=Iterable[Number])

var Var

  • 説明: 变量

  • タイプ: TypeAlias

  • デフォルト: SingleVar | ArrayVar

var OneSingleVarFunc

  • 説明: 一元单变量函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[SingleVar], SingleVar]

var OneArrayFunc

  • 説明: 一元数组函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[ArrayVar], ArrayVar]

var OneVarFunc

  • 説明: 一元函数

  • タイプ: TypeAlias

  • デフォルト: OneSingleVarFunc | OneArrayFunc

var TwoSingleVarsFunc

  • 説明: 二元单变量函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[SingleVar, SingleVar], SingleVar]

var TwoArraysFunc

  • 説明: 二元数组函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[ArrayVar, ArrayVar], ArrayVar]

var TwoVarsFunc

  • 説明: 二元函数

  • タイプ: TypeAlias

  • デフォルト: TwoSingleVarsFunc | TwoArraysFunc

var ThreeSingleVarsFunc

  • 説明: 三元单变量函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[SingleVar, SingleVar, SingleVar], SingleVar]

var ThreeArraysFunc

  • 説明: 三元数组函数

  • タイプ: TypeAlias

  • デフォルト: Callable[[ArrayVar, ArrayVar, ArrayVar], ArrayVar]

var ThreeVarsFunc

  • 説明: 三元函数

  • タイプ: TypeAlias

  • デフォルト: ThreeSingleVarsFunc | ThreeArraysFunc

var MultiSingleVarsFunc

  • 説明: 多元单变量函数

  • タイプ: TypeAlias

  • デフォルト: Callable[..., SingleVar]

var MultiArraysFunc

  • 説明: 多元数组函数

  • タイプ: TypeAlias

  • デフォルト: Callable[..., ArrayVar]

var MultiVarsFunc

  • 説明: 多元函数

  • タイプ: TypeAlias

  • デフォルト: MultiSingleVarsFunc | MultiArraysFunc

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/plane.html b/ja/api/mp_math/plane.html index bfa9e6e..ef74bc9 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

def __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

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):
     """
         平面方程:ax + by + cz + d = 0
         Args:
@@ -30,7 +30,7 @@
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

def approx(self, other: Plane3) -> bool

説明: 判断两个平面是否近似相等。

引数:

  • other (Plane3): 另一个平面

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Plane3') -> bool:
+    self.d = d

func 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

def cal_angle(self, other: Line3 | Plane3) -> AnyAngle

説明: 计算平面与平面之间的夹角。

引数:

戻り値: AnyAngle: 夹角

例外:

ソースコード または GitHubで表示
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+        return False

func 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)}')

def 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)}')

func 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)}')

def 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)}')

func 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)

def 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)

func 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))

def 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))

func 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)

def 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)

func 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

def normal(self) -> Vector3

説明: 平面的法向量。

戻り値: Vector3: 法向量

ソースコード または GitHubで表示
python
@property
+    return self.normal.is_parallel(other.normal)

@property

func 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

def from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3

説明: 工厂函数 由点和法向量构造平面(点法式构造)。

引数:

戻り値: Plane3: 平面

ソースコード または GitHubで表示
python
@classmethod
+    return Vector3(self.a, self.b, self.c)

@classmethod

func 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

def 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

func 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

def 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

func 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

def 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

func 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

def __and__(self, other: Line3) -> Point3 | None

ソースコード または GitHubで表示
python
@overload
+    return cls.from_point_and_normal(point, line.direction)

@overload

func __and__(self, other: Line3) -> Point3 | None

ソースコード または GitHubで表示
python
@overload
 def __and__(self, other: 'Line3') -> 'Point3 | None':
-    ...

@overload

def __and__(self, other: Plane3) -> Line3 | None

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

func __and__(self, other: Plane3) -> Line3 | None

ソースコード または GitHubで表示
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
-    ...

def __and__(self, other)

説明: 取两平面的交集(人话:交线)

引数:

戻り値: Line3 | Point3 | None: 交集

例外:

ソースコード または GitHubで表示
python
def __and__(self, other):
+    ...

func __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)}'")

def __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)}'")

func __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)

def __rand__(self, other: Line3) -> Point3

ソースコード または GitHubで表示
python
def __rand__(self, other: 'Line3') -> 'Point3':
+    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リファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/point.html b/ja/api/mp_math/point.html index c1a83b8..755a30e 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

def __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

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):
     """
         笛卡尔坐标系中的点。
         Args:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

def approx(self, other: Point3, epsilon: float = APPROX) -> bool

説明: 判断两个点是否近似相等。

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    self.z = z

func 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

def 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

func self + other: Vector3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Vector3') -> 'Point3':
-    ...

@overload

def self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

func self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

def self + other

説明: P + V -> P P + P -> P

引数:

戻り値: Point3: 新的点

ソースコード または GitHubで表示
python
def __add__(self, other):
+    ...

func 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)

def __eq__(self, other)

説明: 判断两个点是否相等。

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
+    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):
     """
         判断两个点是否相等。
         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)

def 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)

func self - other: Point3 => Vector3

説明: P - P -> V

P - V -> P 已在 Vector3 中实现

引数:

戻り値: Vector3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other: 'Point3') -> 'Vector3':
     """
         P - P -> V
 
@@ -70,7 +70,7 @@
         """
     from .vector import Vector3
     return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/segment.html b/ja/api/mp_math/segment.html index 6cb21b1..b36ea46 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

def __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

func __init__(self, p1: Point3, p2: Point3)

説明: 三维空间中的线段。

引数:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
ソースコード または GitHubで表示
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
     """
         三维空间中的线段。
         Args:
@@ -33,7 +33,7 @@
     self.length = self.direction.length
     '中心点'
     self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/utils.html b/ja/api/mp_math/utils.html index 2876ec2..092ef15 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

説明: 本模块定义了一些常用的工具函数

def 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

def __init__(self, value: RealNumber)

説明: 用于近似比较对象

引数:

ソースコード または GitHubで表示
python
def __init__(self, value: RealNumber):
+    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

説明: 用于近似比较对象

引数:

ソースコード または GitHubで表示
python
def __init__(self, value: RealNumber):
     """
         用于近似比较对象
         Args:
             value ([`RealNumber`](./mp_math_typing#realnumber)): 实数
         """
-    self.value = value

def __eq__(self, other)

ソースコード または GitHubで表示
python
def __eq__(self, other):
+    self.value = value

func __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,9 +45,9 @@
         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)

def raise_type_error(self, other)

ソースコード または GitHubで表示
python
def raise_type_error(self, other):
-    raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

def __ne__(self, other)

ソースコード または GitHubで表示
python
def __ne__(self, other):
-    return not self.__eq__(other)

def 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:
+            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):
+    return not self.__eq__(other)

func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool

説明: 判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

引数:

  • x (float): 数1
  • y (float): 数2
  • epsilon (float): 误差

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
     """
     判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
     Args:
@@ -57,7 +57,7 @@
     Returns:
         [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
     """
-    return abs(x - y) < epsilon

def sign(x: float, only_neg: bool = False) -> str

説明: 获取数的符号。

引数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign(x: float, only_neg: bool=False) -> str:
+    return abs(x - y) < epsilon

func sign(x: float, only_neg: bool = False) -> str

説明: 获取数的符号。

引数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign(x: float, only_neg: bool=False) -> str:
     """获取数的符号。
     Args:
         x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数
@@ -70,7 +70,7 @@
     elif x < 0:
         return '-'
     else:
-        return ''

def sign_format(x: float, only_neg: bool = False) -> str

説明: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

引数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign_format(x: float, only_neg: bool=False) -> str:
+        return ''

func sign_format(x: float, only_neg: bool = False) -> str

説明: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

引数:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

戻り値: str: 符号 + - ""

ソースコード または GitHubで表示
python
def sign_format(x: float, only_neg: bool=False) -> str:
     """格式化符号数
     -1 -> -1
     1 -> +1
@@ -87,7 +87,7 @@
         return f'-{abs(x)}'
     else:
         return ''

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/mp_math/vector.html b/ja/api/mp_math/vector.html index 6d343f2..4e316f8 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

def __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

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):
     """
         3维向量
         Args:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

def approx(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似相等。

引数:

戻り値: bool: 是否近似相等

ソースコード または GitHubで表示
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    self.z = z

func 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])

def 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])

func 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)

def 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)

func 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)

def 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)

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:
     """
         判断两个向量是否近似平行。
         Args:
@@ -75,7 +75,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

def is_parallel(self, other: Vector3) -> bool

説明: 判断两个向量是否平行。

引数:

戻り値: bool: 是否平行

ソースコード または GitHubで表示
python
def is_parallel(self, other: 'Vector3') -> bool:
+    return self.cross(other).length < epsilon

func 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)

def normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

ソースコード または GitHubで表示
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

func normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

ソースコード または GitHubで表示
python
def normalize(self):
     """
         将向量归一化。
 
@@ -92,33 +92,33 @@
     length = self.length
     self.x /= length
     self.y /= length
-    self.z /= length

@property

def np_array(self) -> np.ndarray

戻り値: np.ndarray: numpy数组

ソースコード または GitHubで表示
python
@property
+    self.z /= length

@property

func 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

def length(self) -> float

説明: 向量的模。

戻り値: float: 模

ソースコード または GitHubで表示
python
@property
+    return np.array([self.x, self.y, self.z])

@property

func 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

def unit(self) -> Vector3

説明: 获取该向量的单位向量。

戻り値: Vector3: 单位向量

ソースコード または GitHubで表示
python
@property
+    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

func unit(self) -> Vector3

説明: 获取该向量的单位向量。

戻り値: Vector3: 单位向量

ソースコード または GitHubで表示
python
@property
 def unit(self) -> 'Vector3':
     """
         获取该向量的单位向量。
         Returns:
             [`Vector3`](#class-vector3): 单位向量
         """
-    return self / self.length

def __abs__(self)

ソースコード または GitHubで表示
python
def __abs__(self):
-    return self.length

@overload

def self + other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+    return self / self.length

func __abs__(self)

ソースコード または GitHubで表示
python
def __abs__(self):
+    return self.length

@overload

func self + other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

func self + other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

def self + other

説明: V + P -> P

V + V -> V

引数:

戻り値: Vector3 | Point3: 新的向量或点

ソースコード または GitHubで表示
python
def __add__(self, other):
+    ...

func 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)}'")

def __eq__(self, other)

説明: 判断两个向量是否相等。

引数:

戻り値: bool: 是否相等

ソースコード または GitHubで表示
python
def __eq__(self, other):
+        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

func __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)

def 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)

func 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

def self - other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
 def __sub__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self - other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

func self - other: Point3 => Point3

ソースコード または GitHubで表示
python
@overload
 def __sub__(self, other: 'Point3') -> 'Point3':
-    ...

def self - other

説明: V - P -> P

V - V -> V

引数:

戻り値: Vector3 | Point3: 新的向量

ソースコード または GitHubで表示
python
def __sub__(self, other):
+    ...

func 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)}"')

def 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)}"')

func 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

def self * other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
+        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

func self * other: Vector3 => Vector3

ソースコード または GitHubで表示
python
@overload
 def __mul__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
@overload
+    ...

@overload

func self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

def self * other: int | float | Vector3 => Vector3

説明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

引数:

戻り値: Vector3: 数组运算结果

ソースコード または GitHubで表示
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
+    ...

func 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)}'")

def self * other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

def 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)}'")

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':
     """
         点乘。
         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

def self / other: RealNumber => Vector3

ソースコード または GitHubで表示
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
-    return Vector3(self.x / other, self.y / other, self.z / other)

def - self => Vector3

説明: 取负。

戻り値: Vector3: 负向量

ソースコード または GitHubで表示
python
def __neg__(self) -> 'Vector3':
+    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':
     """
         取负。
         Returns:
             [`Vector3`](#class-vector3): 负向量
         """
     return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • 説明: 零向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 0, 0)

var x_axis

  • 説明: x轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(1, 0, 0)

var y_axis

  • 説明: y轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 1, 0)

var z_axis

  • 説明: z轴单位向量

  • タイプ: Vector3

  • デフォルト: Vector3(0, 0, 1)

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/particle/index.html b/ja/api/particle/index.html index be16ae6..dde6619 100644 --- a/ja/api/particle/index.html +++ b/ja/api/particle/index.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/ja/api/particle/particle.html b/ja/api/particle/particle.html index 9e21d0b..f2c25b8 100644 --- a/ja/api/particle/particle.html +++ b/ja/api/particle/particle.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/ja/api/presets/index.html b/ja/api/presets/index.html index c03edd3..b2ed878 100644 --- a/ja/api/presets/index.html +++ b/ja/api/presets/index.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/ja/api/presets/model/index.html b/ja/api/presets/model/index.html index 8a9fae5..68faea3 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

def sphere(radius: float, density: float)

説明: 生成球体上的点集。

引数:

  • radius:
  • density:

戻り値: List[Point3]: 球体上的点集。

ソースコード または GitHubで表示
python
@staticmethod
+    
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):
     """
         生成球体上的点集。
@@ -36,7 +36,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/presets/model/model.html b/ja/api/presets/model/model.html index fb5d010..55b5a1e 100644 --- a/ja/api/presets/model/model.html +++ b/ja/api/presets/model/model.html @@ -6,19 +6,19 @@ mbcp.presets.model | MBCP ドキュメント - + - - + + - + -
Skip to content

mbcp.presets.model

説明: 几何模型点集

class GeometricModels

@staticmethod

def sphere(radius: float, density: float)

説明: 生成球体上的点集。

引数:

  • radius:
  • density:

戻り値: List[Point3]: 球体上的点集。

ソースコード または GitHubで表示
python
@staticmethod
+    
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):
     """
         生成球体上的点集。
@@ -36,7 +36,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/api/presets/presets.html b/ja/api/presets/presets.html index 7516c9b..542f607 100644 --- a/ja/api/presets/presets.html +++ b/ja/api/presets/presets.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/ja/demo/best-practice.html b/ja/demo/best-practice.html index 634bc04..c1f044e 100644 --- a/ja/demo/best-practice.html +++ b/ja/demo/best-practice.html @@ -6,10 +6,10 @@ ベストプラクティス | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/ja/guide/index.html b/ja/guide/index.html index 95568fc..a7f2f68 100644 --- a/ja/guide/index.html +++ b/ja/guide/index.html @@ -6,10 +6,10 @@ 开始不了一点 | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

开始不了一点

12x111

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/index.html b/ja/index.html index 86126fb..227265d 100644 --- a/ja/index.html +++ b/ja/index.html @@ -6,10 +6,10 @@ MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

MBCP

More basic change particle

ジオメトリ演算とパーティクル作成のためのライブラリ

MBCP logo

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/ja/refer/index.html b/ja/refer/index.html index 86ef534..ea798ef 100644 --- a/ja/refer/index.html +++ b/ja/refer/index.html @@ -6,10 +6,10 @@ Reference | MBCP ドキュメント - + - - + + @@ -19,7 +19,7 @@
Skip to content

Reference

Help us to improve the documentation

VitePress で構築されたドキュメント | litedoc によって生成されたAPIリファレンス

- + \ No newline at end of file diff --git a/refer/function/curry.html b/refer/function/curry.html index 78723d2..5f7a4fd 100644 --- a/refer/function/curry.html +++ b/refer/function/curry.html @@ -6,10 +6,10 @@ 柯里化 | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/refer/function/function.html b/refer/function/function.html index 604b603..faf69a1 100644 --- a/refer/function/function.html +++ b/refer/function/function.html @@ -6,10 +6,10 @@ 函数 | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/refer/index.html b/refer/index.html index d3fd950..37d8d41 100644 --- a/refer/index.html +++ b/refer/index.html @@ -6,10 +6,10 @@ 参考 | MBCP 文档 - + - - + + @@ -19,7 +19,7 @@
Skip to content

Reference

Help us to improve the documentation

文档由 VitePress 构建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/api.html b/zht/api/api.html index 1437afc..351f60b 100644 --- a/zht/api/api.html +++ b/zht/api/api.html @@ -6,10 +6,10 @@ mbcp | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/zht/api/index.html b/zht/api/index.html index e793bac..5054955 100644 --- a/zht/api/index.html +++ b/zht/api/index.html @@ -6,10 +6,10 @@ mbcp | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/zht/api/mp_math/angle.html b/zht/api/mp_math/angle.html index d77474c..d660f46 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)

def __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)

func __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

def complementary(self) -> AnyAngle

説明: 余角:两角的和为90°。

返回: 余角

源碼於GitHub上查看
python
@property
+        self.radian = value * PI / 180

@property

func 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

def supplementary(self) -> AnyAngle

説明: 补角:两角的和为180°。

返回: 补角

源碼於GitHub上查看
python
@property
+    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

func supplementary(self) -> AnyAngle

説明: 补角:两角的和为180°。

返回: 补角

源碼於GitHub上查看
python
@property
 def supplementary(self) -> 'AnyAngle':
     """
         补角:两角的和为180°。
         Returns:
             补角
         """
-    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

def degree(self) -> float

説明: 角度。

返回: 弧度

源碼於GitHub上查看
python
@property
+    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

func degree(self) -> float

説明: 角度。

返回: 弧度

源碼於GitHub上查看
python
@property
 def degree(self) -> float:
     """
         角度。
         Returns:
             弧度
         """
-    return self.radian * 180 / PI

@property

def minimum_positive(self) -> AnyAngle

説明: 最小正角。

返回: 最小正角度

源碼於GitHub上查看
python
@property
+    return self.radian * 180 / PI

@property

func minimum_positive(self) -> AnyAngle

説明: 最小正角。

返回: 最小正角度

源碼於GitHub上查看
python
@property
 def minimum_positive(self) -> 'AnyAngle':
     """
         最小正角。
         Returns:
             最小正角度
         """
-    return AnyAngle(self.radian % (2 * PI))

@property

def maximum_negative(self) -> AnyAngle

説明: 最大负角。

返回: 最大负角度

源碼於GitHub上查看
python
@property
+    return AnyAngle(self.radian % (2 * PI))

@property

func maximum_negative(self) -> AnyAngle

説明: 最大负角。

返回: 最大负角度

源碼於GitHub上查看
python
@property
 def maximum_negative(self) -> 'AnyAngle':
     """
         最大负角。
         Returns:
             最大负角度
         """
-    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

def sin(self) -> float

説明: 正弦值。

返回: 正弦值

源碼於GitHub上查看
python
@property
+    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

func sin(self) -> float

説明: 正弦值。

返回: 正弦值

源碼於GitHub上查看
python
@property
 def sin(self) -> float:
     """
         正弦值。
         Returns:
             正弦值
         """
-    return math.sin(self.radian)

@property

def cos(self) -> float

説明: 余弦值。

返回: 余弦值

源碼於GitHub上查看
python
@property
+    return math.sin(self.radian)

@property

func cos(self) -> float

説明: 余弦值。

返回: 余弦值

源碼於GitHub上查看
python
@property
 def cos(self) -> float:
     """
         余弦值。
         Returns:
             余弦值
         """
-    return math.cos(self.radian)

@property

def tan(self) -> float

説明: 正切值。

返回: 正切值

源碼於GitHub上查看
python
@property
+    return math.cos(self.radian)

@property

func tan(self) -> float

説明: 正切值。

返回: 正切值

源碼於GitHub上查看
python
@property
 def tan(self) -> float:
     """
         正切值。
         Returns:
             正切值
         """
-    return math.tan(self.radian)

@property

def cot(self) -> float

説明: 余切值。

返回: 余切值

源碼於GitHub上查看
python
@property
+    return math.tan(self.radian)

@property

func cot(self) -> float

説明: 余切值。

返回: 余切值

源碼於GitHub上查看
python
@property
 def cot(self) -> float:
     """
         余切值。
         Returns:
             余切值
         """
-    return 1 / math.tan(self.radian)

@property

def sec(self) -> float

説明: 正割值。

返回: 正割值

源碼於GitHub上查看
python
@property
+    return 1 / math.tan(self.radian)

@property

func sec(self) -> float

説明: 正割值。

返回: 正割值

源碼於GitHub上查看
python
@property
 def sec(self) -> float:
     """
         正割值。
         Returns:
             正割值
         """
-    return 1 / math.cos(self.radian)

@property

def csc(self) -> float

説明: 余割值。

返回: 余割值

源碼於GitHub上查看
python
@property
+    return 1 / math.cos(self.radian)

@property

func csc(self) -> float

説明: 余割值。

返回: 余割值

源碼於GitHub上查看
python
@property
 def csc(self) -> float:
     """
         余割值。
         Returns:
             余割值
         """
-    return 1 / math.sin(self.radian)

def self + other: AnyAngle => AnyAngle

源碼於GitHub上查看
python
def __add__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian + other.radian, is_radian=True)

def __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
-    return approx(self.radian, other.radian)

def self - other: AnyAngle => AnyAngle

源碼於GitHub上查看
python
def __sub__(self, other: 'AnyAngle') -> 'AnyAngle':
-    return AnyAngle(self.radian - other.radian, is_radian=True)

def self * other: float => AnyAngle

源碼於GitHub上查看
python
def __mul__(self, other: float) -> 'AnyAngle':
-    return AnyAngle(self.radian * other, is_radian=True)

@overload

def self / other: float => AnyAngle

源碼於GitHub上查看
python
@overload
+    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
 def __truediv__(self, other: float) -> 'AnyAngle':
-    ...

@overload

def self / other: AnyAngle => float

源碼於GitHub上查看
python
@overload
+    ...

@overload

func self / other: AnyAngle => float

源碼於GitHub上查看
python
@overload
 def __truediv__(self, other: 'AnyAngle') -> float:
-    ...

def self / other

源碼於GitHub上查看
python
def __truediv__(self, other):
+    ...

func 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 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/const.html b/zht/api/mp_math/const.html index 94053c6..5e5a32c 100644 --- a/zht/api/mp_math/const.html +++ b/zht/api/mp_math/const.html @@ -6,10 +6,10 @@ mbcp.mp_math.const | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

mbcp.mp_math.const

説明: 本模块定义了一些常用的常量

var PI

  • 説明: 常量 π

  • 默認值: math.pi

var E

  • 説明: 自然对数的底 exp(1)

  • 默認值: math.e

var GOLDEN_RATIO

  • 説明: 黄金分割比

  • 默認值: (1 + math.sqrt(5)) / 2

var GAMMA

  • 説明: 欧拉常数

  • 默認值: 0.5772156649015329

var EPSILON

  • 説明: 精度误差

  • 默認值: 0.0001

var APPROX

  • 説明: 约等于判定误差

  • 默認值: 0.001

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/equation.html b/zht/api/mp_math/equation.html index 4f32acb..19e0c3b 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

def __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

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):
     """
         曲线方程。
         Args:
@@ -28,7 +28,7 @@
         """
     self.x_func = x_func
     self.y_func = y_func
-    self.z_func = z_func

def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

説明: 计算曲线上的点。

變數説明:

  • *t:
  • 参数:

返回: 目标点

源碼於GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
+    self.z_func = z_func

func __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]

説明: 计算曲线上的点。

變數説明:

  • *t:
  • 参数:

返回: 目标点

源碼於GitHub上查看
python
def __call__(self, *t: Var) -> Point3 | tuple[Point3, ...]:
     """
         计算曲线上的点。
         Args:
@@ -40,7 +40,7 @@
     if len(t) == 1:
         return Point3(self.x_func(t[0]), self.y_func(t[0]), self.z_func(t[0]))
     else:
-        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

説明: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

變數説明:

  • func (MultiVarsFunc): N元函数
  • var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
  • epsilon: 偏移量

返回: 偏导函数

抛出:

  • ValueError 无效变量类型
源碼於GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
+        return tuple([Point3(x, y, z) for x, y, z in zip(self.x_func(t), self.y_func(t), self.z_func(t))])

func get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number = EPSILON) -> MultiVarsFunc

説明: 求N元函数一阶偏导函数。这玩意不太稳定,慎用。

WARNING

目前数学界对于一个函数的导函数并没有通解的说法,因此该函数的稳定性有待提升

變數説明:

  • func (MultiVarsFunc): N元函数
  • var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
  • epsilon: 偏移量

返回: 偏导函数

抛出:

  • ValueError 无效变量类型
源碼於GitHub上查看
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
     """
     求N元函数一阶偏导函数。这玩意不太稳定,慎用。
     > [!warning]
@@ -83,7 +83,7 @@
         return high_order_partial_derivative_func
     else:
         raise ValueError('Invalid var type')

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/function.html b/zht/api/mp_math/function.html index e7053d5..fdf936e 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

def 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]
@@ -34,7 +34,7 @@
     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)

def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc

説明: 对多参数函数进行柯里化。

TIP

有关函数柯里化,可参考函数式编程--柯理化(Currying)

變數説明:

返回: 柯里化后的函数

範例:

python
def add(a: int, b: int, c: int) -> int:
+    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:
@@ -60,7 +60,7 @@
         """@litedoc-hide"""
         return func(*args, *args2)
     return curried_func

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/index.html b/zht/api/mp_math/index.html index 7ed021a..1255371 100644 --- a/zht/api/mp_math/index.html +++ b/zht/api/mp_math/index.html @@ -6,10 +6,10 @@ mbcp.mp_math | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

mbcp.mp_math

説明: 本包定义了一些常用的导入,可直接从mbcp.mp_math导入使用 导入的类有:

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/line.html b/zht/api/mp_math/line.html index a29327c..0e45ecc 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

def __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

func __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

def 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

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:
     """
         判断两条直线是否近似相等。
         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)

def 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)

func 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)

def 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)

func 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.')

def cal_intersection(self, other: Line3) -> Point3

説明: 计算两条直线的交点。

變數説明:

  • other (Line3): 另一条直线

返回: Point3: 交点

抛出:

源碼於GitHub上查看
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
+        raise TypeError('Unsupported type.')

func 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

def 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

func 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))

def 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))

func 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

def 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

func 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)

def 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)

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:
     """
         判断两条直线是否近似平行。
         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)

def 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)

func 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)

def is_collinear(self, other: Line3) -> bool

説明: 判断两条直线是否共线。

變數説明:

返回: bool: 是否共线

源碼於GitHub上查看
python
def is_collinear(self, other: 'Line3') -> 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:
     """
         判断两条直线是否共线。
         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)

def 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)

func 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)

def 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)

func 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

def simplify(self)

説明: 简化直线方程,等价相等。 自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

源碼於GitHub上查看
python
def simplify(self):
+    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

func 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

def from_two_points(cls, p1: Point3, p2: Point3) -> Line3

説明: 工厂函数 由两点构造直线。

變數説明:

返回: Line3: 直线

源碼於GitHub上查看
python
@classmethod
+        self.point.z = 0

@classmethod

func 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)

def __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)

func __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)

def __eq__(self, other) -> bool

説明: 判断两条直线是否等价。

v1 // v2 ∧ (p1 - p2) // v1

變數説明:

  • other (Line3): 另一条直线

返回: bool: 是否等价

源碼於GitHub上查看
python
def __eq__(self, other) -> bool:
+        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:
     """
         判断两条直线是否等价。
 
@@ -192,7 +192,7 @@
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否等价
         """
     return self.direction.is_parallel(other.direction) and (self.point - other.point).is_parallel(self.direction)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/mp_math.html b/zht/api/mp_math/mp_math.html index aaf3f7e..cc67713 100644 --- a/zht/api/mp_math/mp_math.html +++ b/zht/api/mp_math/mp_math.html @@ -6,10 +6,10 @@ mbcp.mp_math | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

mbcp.mp_math

説明: 本包定义了一些常用的导入,可直接从mbcp.mp_math导入使用 导入的类有:

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/mp_math_typing.html b/zht/api/mp_math/mp_math_typing.html index 7048dfa..71fb2d4 100644 --- a/zht/api/mp_math/mp_math_typing.html +++ b/zht/api/mp_math/mp_math_typing.html @@ -6,10 +6,10 @@ mbcp.mp_math.mp_math_typing | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

mbcp.mp_math.mp_math_typing

説明: 本模块用于内部类型提示

var RealNumber

  • 説明: 实数

  • 類型: TypeAlias

  • 默認值: int | float

var Number

  • 説明: 数

  • 類型: TypeAlias

  • 默認值: RealNumber | complex

var SingleVar

  • 説明: 单变量

  • 默認值: TypeVar('SingleVar', bound=Number)

var ArrayVar

  • 説明: 数组变量

  • 默認值: TypeVar('ArrayVar', bound=Iterable[Number])

var Var

  • 説明: 变量

  • 類型: TypeAlias

  • 默認值: SingleVar | ArrayVar

var OneSingleVarFunc

  • 説明: 一元单变量函数

  • 類型: TypeAlias

  • 默認值: Callable[[SingleVar], SingleVar]

var OneArrayFunc

  • 説明: 一元数组函数

  • 類型: TypeAlias

  • 默認值: Callable[[ArrayVar], ArrayVar]

var OneVarFunc

  • 説明: 一元函数

  • 類型: TypeAlias

  • 默認值: OneSingleVarFunc | OneArrayFunc

var TwoSingleVarsFunc

  • 説明: 二元单变量函数

  • 類型: TypeAlias

  • 默認值: Callable[[SingleVar, SingleVar], SingleVar]

var TwoArraysFunc

  • 説明: 二元数组函数

  • 類型: TypeAlias

  • 默認值: Callable[[ArrayVar, ArrayVar], ArrayVar]

var TwoVarsFunc

  • 説明: 二元函数

  • 類型: TypeAlias

  • 默認值: TwoSingleVarsFunc | TwoArraysFunc

var ThreeSingleVarsFunc

  • 説明: 三元单变量函数

  • 類型: TypeAlias

  • 默認值: Callable[[SingleVar, SingleVar, SingleVar], SingleVar]

var ThreeArraysFunc

  • 説明: 三元数组函数

  • 類型: TypeAlias

  • 默認值: Callable[[ArrayVar, ArrayVar, ArrayVar], ArrayVar]

var ThreeVarsFunc

  • 説明: 三元函数

  • 類型: TypeAlias

  • 默認值: ThreeSingleVarsFunc | ThreeArraysFunc

var MultiSingleVarsFunc

  • 説明: 多元单变量函数

  • 類型: TypeAlias

  • 默認值: Callable[..., SingleVar]

var MultiArraysFunc

  • 説明: 多元数组函数

  • 類型: TypeAlias

  • 默認值: Callable[..., ArrayVar]

var MultiVarsFunc

  • 説明: 多元函数

  • 類型: TypeAlias

  • 默認值: MultiSingleVarsFunc | MultiArraysFunc

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/plane.html b/zht/api/mp_math/plane.html index d7a2012..4f644d5 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

def __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

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):
     """
         平面方程:ax + by + cz + d = 0
         Args:
@@ -30,7 +30,7 @@
     self.a = a
     self.b = b
     self.c = c
-    self.d = d

def approx(self, other: Plane3) -> bool

説明: 判断两个平面是否近似相等。

變數説明:

  • other (Plane3): 另一个平面

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Plane3') -> bool:
+    self.d = d

func 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

def cal_angle(self, other: Line3 | Plane3) -> AnyAngle

説明: 计算平面与平面之间的夹角。

變數説明:

返回: AnyAngle: 夹角

抛出:

源碼於GitHub上查看
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+        return False

func 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)}')

def 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)}')

func 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)}')

def 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)}')

func 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)

def 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)

func 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))

def 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))

func 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)

def 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)

func 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

def normal(self) -> Vector3

説明: 平面的法向量。

返回: Vector3: 法向量

源碼於GitHub上查看
python
@property
+    return self.normal.is_parallel(other.normal)

@property

func 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

def from_point_and_normal(cls, point: Point3, normal: Vector3) -> Plane3

説明: 工厂函数 由点和法向量构造平面(点法式构造)。

變數説明:

返回: Plane3: 平面

源碼於GitHub上查看
python
@classmethod
+    return Vector3(self.a, self.b, self.c)

@classmethod

func 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

def 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

func 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

def 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

func 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

def 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

func 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

def __and__(self, other: Line3) -> Point3 | None

源碼於GitHub上查看
python
@overload
+    return cls.from_point_and_normal(point, line.direction)

@overload

func __and__(self, other: Line3) -> Point3 | None

源碼於GitHub上查看
python
@overload
 def __and__(self, other: 'Line3') -> 'Point3 | None':
-    ...

@overload

def __and__(self, other: Plane3) -> Line3 | None

源碼於GitHub上查看
python
@overload
+    ...

@overload

func __and__(self, other: Plane3) -> Line3 | None

源碼於GitHub上查看
python
@overload
 def __and__(self, other: 'Plane3') -> 'Line3 | None':
-    ...

def __and__(self, other)

説明: 取两平面的交集(人话:交线)

變數説明:

返回: Line3 | Point3 | None: 交集

抛出:

源碼於GitHub上查看
python
def __and__(self, other):
+    ...

func __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)}'")

def __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)}'")

func __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)

def __rand__(self, other: Line3) -> Point3

源碼於GitHub上查看
python
def __rand__(self, other: 'Line3') -> 'Point3':
+    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 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/point.html b/zht/api/mp_math/point.html index cba9018..a0cf2ec 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

def __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

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):
     """
         笛卡尔坐标系中的点。
         Args:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

def approx(self, other: Point3, epsilon: float = APPROX) -> bool

説明: 判断两个点是否近似相等。

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    self.z = z

func 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

def 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

func self + other: Vector3 => Point3

源碼於GitHub上查看
python
@overload
 def __add__(self, other: 'Vector3') -> 'Point3':
-    ...

@overload

def self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

func self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

def self + other

説明: P + V -> P P + P -> P

變數説明:

返回: Point3: 新的点

源碼於GitHub上查看
python
def __add__(self, other):
+    ...

func 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)

def __eq__(self, other)

説明: 判断两个点是否相等。

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
+    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):
     """
         判断两个点是否相等。
         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)

def 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)

func self - other: Point3 => Vector3

説明: P - P -> V

P - V -> P 已在 Vector3 中实现

變數説明:

返回: Vector3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other: 'Point3') -> 'Vector3':
     """
         P - P -> V
 
@@ -70,7 +70,7 @@
         """
     from .vector import Vector3
     return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/segment.html b/zht/api/mp_math/segment.html index fd9eefc..353205a 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

def __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

func __init__(self, p1: Point3, p2: Point3)

説明: 三维空间中的线段。

變數説明:

  • p1 (Point3): 线段的一个端点
  • p2 (Point3): 线段的另一个端点
源碼於GitHub上查看
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
     """
         三维空间中的线段。
         Args:
@@ -33,7 +33,7 @@
     self.length = self.direction.length
     '中心点'
     self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/utils.html b/zht/api/mp_math/utils.html index 3c85dac..4c21b76 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

説明: 本模块定义了一些常用的工具函数

def 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

def __init__(self, value: RealNumber)

説明: 用于近似比较对象

變數説明:

源碼於GitHub上查看
python
def __init__(self, value: RealNumber):
+    return max(min(x, max_), min_)

class Approx

func __init__(self, value: RealNumber)

説明: 用于近似比较对象

變數説明:

源碼於GitHub上查看
python
def __init__(self, value: RealNumber):
     """
         用于近似比较对象
         Args:
             value ([`RealNumber`](./mp_math_typing#realnumber)): 实数
         """
-    self.value = value

def __eq__(self, other)

源碼於GitHub上查看
python
def __eq__(self, other):
+    self.value = value

func __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,9 +45,9 @@
         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)

def raise_type_error(self, other)

源碼於GitHub上查看
python
def raise_type_error(self, other):
-    raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')

def __ne__(self, other)

源碼於GitHub上查看
python
def __ne__(self, other):
-    return not self.__eq__(other)

def 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:
+            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):
+    return not self.__eq__(other)

func approx(x: float, y: float = 0.0, epsilon: float = APPROX) -> bool

説明: 判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

變數説明:

  • x (float): 数1
  • y (float): 数2
  • epsilon (float): 误差

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
     """
     判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
     Args:
@@ -57,7 +57,7 @@
     Returns:
         [`bool`](https://docs.python.org/3/library/functions.html#bool): 是否近似相等
     """
-    return abs(x - y) < epsilon

def sign(x: float, only_neg: bool = False) -> str

説明: 获取数的符号。

變數説明:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign(x: float, only_neg: bool=False) -> str:
+    return abs(x - y) < epsilon

func sign(x: float, only_neg: bool = False) -> str

説明: 获取数的符号。

變數説明:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign(x: float, only_neg: bool=False) -> str:
     """获取数的符号。
     Args:
         x ([`float`](https://docs.python.org/3/library/functions.html#float)): 数
@@ -70,7 +70,7 @@
     elif x < 0:
         return '-'
     else:
-        return ''

def sign_format(x: float, only_neg: bool = False) -> str

説明: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

變數説明:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
+        return ''

func sign_format(x: float, only_neg: bool = False) -> str

説明: 格式化符号数 -1 -> -1 1 -> +1 0 -> ""

變數説明:

  • x (float): 数
  • only_neg (bool): 是否只返回负数的符号

返回: str: 符号 + - ""

源碼於GitHub上查看
python
def sign_format(x: float, only_neg: bool=False) -> str:
     """格式化符号数
     -1 -> -1
     1 -> +1
@@ -87,7 +87,7 @@
         return f'-{abs(x)}'
     else:
         return ''

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/mp_math/vector.html b/zht/api/mp_math/vector.html index 0666646..087a15a 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

def __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

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):
     """
         3维向量
         Args:
@@ -28,7 +28,7 @@
         """
     self.x = x
     self.y = y
-    self.z = z

def approx(self, other: Vector3, epsilon: float = APPROX) -> bool

説明: 判断两个向量是否近似相等。

變數説明:

返回: bool: 是否近似相等

源碼於GitHub上查看
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    self.z = z

func 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])

def 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])

func 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)

def 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)

func 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)

def 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)

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:
     """
         判断两个向量是否近似平行。
         Args:
@@ -75,7 +75,7 @@
         Returns:
             [`bool`](https%3A//docs.python.org/3/library/functions.html#bool): 是否近似平行
         """
-    return self.cross(other).length < epsilon

def is_parallel(self, other: Vector3) -> bool

説明: 判断两个向量是否平行。

變數説明:

返回: bool: 是否平行

源碼於GitHub上查看
python
def is_parallel(self, other: 'Vector3') -> bool:
+    return self.cross(other).length < epsilon

func 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)

def normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

源碼於GitHub上查看
python
def normalize(self):
+    return self.cross(other).approx(zero_vector3)

func normalize(self)

説明: 将向量归一化。

自体归一化,不返回值。

源碼於GitHub上查看
python
def normalize(self):
     """
         将向量归一化。
 
@@ -92,33 +92,33 @@
     length = self.length
     self.x /= length
     self.y /= length
-    self.z /= length

@property

def np_array(self) -> np.ndarray

返回: np.ndarray: numpy数组

源碼於GitHub上查看
python
@property
+    self.z /= length

@property

func 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

def length(self) -> float

説明: 向量的模。

返回: float: 模

源碼於GitHub上查看
python
@property
+    return np.array([self.x, self.y, self.z])

@property

func 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

def unit(self) -> Vector3

説明: 获取该向量的单位向量。

返回: Vector3: 单位向量

源碼於GitHub上查看
python
@property
+    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

func unit(self) -> Vector3

説明: 获取该向量的单位向量。

返回: Vector3: 单位向量

源碼於GitHub上查看
python
@property
 def unit(self) -> 'Vector3':
     """
         获取该向量的单位向量。
         Returns:
             [`Vector3`](#class-vector3): 单位向量
         """
-    return self / self.length

def __abs__(self)

源碼於GitHub上查看
python
def __abs__(self):
-    return self.length

@overload

def self + other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+    return self / self.length

func __abs__(self)

源碼於GitHub上查看
python
def __abs__(self):
+    return self.length

@overload

func self + other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
 def __add__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

func self + other: Point3 => Point3

源碼於GitHub上查看
python
@overload
 def __add__(self, other: 'Point3') -> 'Point3':
-    ...

def self + other

説明: V + P -> P

V + V -> V

變數説明:

返回: Vector3 | Point3: 新的向量或点

源碼於GitHub上查看
python
def __add__(self, other):
+    ...

func 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)}'")

def __eq__(self, other)

説明: 判断两个向量是否相等。

變數説明:

返回: bool: 是否相等

源碼於GitHub上查看
python
def __eq__(self, other):
+        raise TypeError(f"unsupported operand type(s) for +: 'Vector3' and '{type(other)}'")

func __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)

def 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)

func 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

def self - other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+    return Point3(self.x + other.x, self.y + other.y, self.z + other.z)

@overload

func self - other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
 def __sub__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self - other: Point3 => Point3

源碼於GitHub上查看
python
@overload
+    ...

@overload

func self - other: Point3 => Point3

源碼於GitHub上查看
python
@overload
 def __sub__(self, other: 'Point3') -> 'Point3':
-    ...

def self - other

説明: V - P -> P

V - V -> V

變數説明:

返回: Vector3 | Point3: 新的向量

源碼於GitHub上查看
python
def __sub__(self, other):
+    ...

func 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)}"')

def 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)}"')

func 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

def self * other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
+        raise TypeError(f"unsupported operand type(s) for -: '{type(other)}' and 'Vector3'")

@overload

func self * other: Vector3 => Vector3

源碼於GitHub上查看
python
@overload
 def __mul__(self, other: 'Vector3') -> 'Vector3':
-    ...

@overload

def self * other: RealNumber => Vector3

源碼於GitHub上查看
python
@overload
+    ...

@overload

func self * other: RealNumber => Vector3

源碼於GitHub上查看
python
@overload
 def __mul__(self, other: RealNumber) -> 'Vector3':
-    ...

def self * other: int | float | Vector3 => Vector3

説明: 数组运算 非点乘。点乘使用@,叉乘使用cross。

變數説明:

返回: Vector3: 数组运算结果

源碼於GitHub上查看
python
def __mul__(self, other: 'int | float | Vector3') -> 'Vector3':
+    ...

func 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)}'")

def self * other: RealNumber => Vector3

源碼於GitHub上查看
python
def __rmul__(self, other: 'RealNumber') -> 'Vector3':
-    return self.__mul__(other)

def 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)}'")

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':
     """
         点乘。
         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

def self / other: RealNumber => Vector3

源碼於GitHub上查看
python
def __truediv__(self, other: RealNumber) -> 'Vector3':
-    return Vector3(self.x / other, self.y / other, self.z / other)

def - self => Vector3

説明: 取负。

返回: Vector3: 负向量

源碼於GitHub上查看
python
def __neg__(self) -> 'Vector3':
+    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':
     """
         取负。
         Returns:
             [`Vector3`](#class-vector3): 负向量
         """
     return Vector3(-self.x, -self.y, -self.z)

var zero_vector3

  • 説明: 零向量

  • 類型: Vector3

  • 默認值: Vector3(0, 0, 0)

var x_axis

  • 説明: x轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(1, 0, 0)

var y_axis

  • 説明: y轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(0, 1, 0)

var z_axis

  • 説明: z轴单位向量

  • 類型: Vector3

  • 默認值: Vector3(0, 0, 1)

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/particle/index.html b/zht/api/particle/index.html index 11913a5..2599a92 100644 --- a/zht/api/particle/index.html +++ b/zht/api/particle/index.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/zht/api/particle/particle.html b/zht/api/particle/particle.html index a524375..4952378 100644 --- a/zht/api/particle/particle.html +++ b/zht/api/particle/particle.html @@ -6,10 +6,10 @@ mbcp.particle | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/zht/api/presets/index.html b/zht/api/presets/index.html index ac9c60c..4d59034 100644 --- a/zht/api/presets/index.html +++ b/zht/api/presets/index.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/zht/api/presets/model/index.html b/zht/api/presets/model/index.html index aaa432e..2fe2757 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

def sphere(radius: float, density: float)

説明: 生成球体上的点集。

變數説明:

  • radius:
  • density:

返回: List[Point3]: 球体上的点集。

源碼於GitHub上查看
python
@staticmethod
+    
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):
     """
         生成球体上的点集。
@@ -36,7 +36,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/presets/model/model.html b/zht/api/presets/model/model.html index 3f2f5ce..57ca40e 100644 --- a/zht/api/presets/model/model.html +++ b/zht/api/presets/model/model.html @@ -6,19 +6,19 @@ mbcp.presets.model | MBCP 文檔 - + - - + + - + -
Skip to content

mbcp.presets.model

説明: 几何模型点集

class GeometricModels

@staticmethod

def sphere(radius: float, density: float)

説明: 生成球体上的点集。

變數説明:

  • radius:
  • density:

返回: List[Point3]: 球体上的点集。

源碼於GitHub上查看
python
@staticmethod
+    
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):
     """
         生成球体上的点集。
@@ -36,7 +36,7 @@
     y_array = radius * np.sin(phi_list) * np.sin(theta_list)
     z_array = radius * np.cos(phi_list)
     return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/api/presets/presets.html b/zht/api/presets/presets.html index b7bea0c..d1e9bd8 100644 --- a/zht/api/presets/presets.html +++ b/zht/api/presets/presets.html @@ -6,10 +6,10 @@ mbcp.presets | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/zht/demo/best-practice.html b/zht/demo/best-practice.html index 581bc73..28cd8d4 100644 --- a/zht/demo/best-practice.html +++ b/zht/demo/best-practice.html @@ -6,10 +6,10 @@ 最佳實踐 | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/zht/guide/index.html b/zht/guide/index.html index 1cb0eb1..2976075 100644 --- a/zht/guide/index.html +++ b/zht/guide/index.html @@ -6,10 +6,10 @@ 开始不了一点 | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

开始不了一点

12x111

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/index.html b/zht/index.html index 87d6546..51cc448 100644 --- a/zht/index.html +++ b/zht/index.html @@ -6,10 +6,10 @@ MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

MBCP

更多基礎變化粒子

用於幾何運算和 當個創世神 粒子製作的軟體庫

MBCP logo

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file diff --git a/zht/refer/index.html b/zht/refer/index.html index ccfa113..14963a0 100644 --- a/zht/refer/index.html +++ b/zht/refer/index.html @@ -6,10 +6,10 @@ Reference | MBCP 文檔 - + - - + + @@ -19,7 +19,7 @@
Skip to content

Reference

Help us to improve the documentation

文檔由 VitePress 構建 | API引用由 litedoc 生成

- + \ No newline at end of file