mbcp/docs/api/mp_math/utils.md
2024-08-28 10:52:17 +08:00

2.8 KiB
Raw Blame History

title order icon category
mbcp.mp\nmath.utils 1 laptop-code API

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

区间截断函数。

Args:

x:

min_:

max_:

Returns:

限制后的值
源代码
def clamp(x: float, min_: float, max_: float) -> float:
    """
    区间截断函数。
    Args:
        x:
        min_:
        max_:

    Returns:
        限制后的值
    """
    return max(min(x, max_), min_)

def approx(x: float, y: float, epsilon: float) -> bool

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

Args:

x:

y:

epsilon:

Returns:

是否近似相等
源代码
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
    """
    判断两个数是否近似相等。或包装一个实数用于判断是否近似于0。
    Args:
        x:
        y:
        epsilon:

    Returns:
        是否近似相等
    """
    return abs(x - y) < epsilon

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

获取数的符号。

Args:

x: 数

only_neg: 是否只返回负数的符号

Returns:

符号 + - ""
源代码
def sign(x: float, only_neg: bool=False) -> str:
    """获取数的符号。
    Args:
        x: 数
        only_neg: 是否只返回负数的符号
    Returns:
        符号 + - ""
    """
    if x > 0:
        return '+' if not only_neg else ''
    elif x < 0:
        return '-'
    else:
        return ''

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

格式化符号数

-1 -> -1

1 -> +1

0 -> ""

Args:

x: 数

only_neg: 是否只返回负数的符号

Returns:

符号 + - ""
源代码
def sign_format(x: float, only_neg: bool=False) -> str:
    """格式化符号数
    -1 -> -1
    1 -> +1
    0 -> ""
    Args:
        x: 数
        only_neg: 是否只返回负数的符号
    Returns:
        符号 + - ""
    """
    if x > 0:
        return f'+{x}' if not only_neg else f'{x}'
    elif x < 0:
        return f'-{abs(x)}'
    else:
        return ''

class Approx

用于近似比较对象

已实现对象 实数 Vector3 Point3 Plane3 Line3

def __init__(self, value: RealNumber) -> None

源代码
def __init__(self, value: RealNumber):
    self.value = value

def raise_type_error(self, other: Any) -> None

源代码
def raise_type_error(self, other):
    raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')