tools_func

物理工具函数模块。

该模块提供计算各种形状转动惯量的便利函数,用于配置Pymunk刚体的物理属性。

Functions

get_moment_for_box(mass, width, height)[source]

计算矩形形状的转动惯量。

基于矩形的质量、宽度和高度计算绕中心的转动惯量。

Args:

mass (float): 矩形的质量。 width (float): 矩形的宽度。 height (float): 矩形的高度。

Returns:

float: 转动惯量值。

Parameters:
  • mass (float)

  • width (float)

  • height (float)

Return type:

float

get_moment_for_circle(mass, inner_radius, outer_radius, x_offset=0, y_offset=0)[source]

计算圆环/圆形的转动惯量。

基于圆环的质量、内外半径和偏移量计算转动惯量。 当内半径为0时,计算实心圆的转动惯量。

Args:

mass (float): 圆环的质量。 inner_radius (float): 内半径。 outer_radius (float): 外半径。 x_offset (float, optional): 中心X偏移,默认为0。 y_offset (float, optional): 中心Y偏移,默认为0。

Returns:

float: 转动惯量值。

Parameters:
  • mass (float)

  • inner_radius (float)

  • outer_radius (float)

  • x_offset (float)

  • y_offset (float)

Return type:

float

get_moment_for_line(mass, start, end, stroke_width)[source]

计算线段的转动惯量。

基于线段的质量、端点和宽度计算转动惯量。

Args:

mass (float): 线段的质量。 start (tuple[float, float]): 线段起点坐标(x, y)。 end (tuple[float, float]): 线段终点坐标(x, y)。 stroke_width (float): 线段的宽度(半径)。

Returns:

float: 转动惯量值。

Parameters:
  • mass (float)

  • start (tuple[float, float])

  • end (tuple[float, float])

  • stroke_width (float)

Return type:

float

get_moment_for_poly(mass, vertices, x_offset=0, y_offset=0, stroke_width=0)[source]

计算多边形的转动惯量。

基于多边形的质量、顶点坐标和偏移量计算转动惯量。

Args:

mass (float): 多边形的质量。 vertices (list[tuple[float, float]]): 多边形顶点列表,每个顶点为(x, y)坐标。 x_offset (float, optional): 中心X偏移,默认为0。 y_offset (float, optional): 中心Y偏移,默认为0。 stroke_width (float, optional): 形状的半径(用于线宽),默认为0。

Returns:

float: 转动惯量值。

Parameters:
  • mass (float)

  • vertices (list[tuple[float, float]])

  • x_offset (float)

  • y_offset (float)

  • stroke_width (float)

Return type:

float

get_moment_for_box(mass, width, height)[source]

计算矩形形状的转动惯量。

基于矩形的质量、宽度和高度计算绕中心的转动惯量。

Args:

mass (float): 矩形的质量。 width (float): 矩形的宽度。 height (float): 矩形的高度。

Returns:

float: 转动惯量值。

Parameters:
  • mass (float)

  • width (float)

  • height (float)

Return type:

float

get_moment_for_circle(mass, inner_radius, outer_radius, x_offset=0, y_offset=0)[source]

计算圆环/圆形的转动惯量。

基于圆环的质量、内外半径和偏移量计算转动惯量。 当内半径为0时,计算实心圆的转动惯量。

Args:

mass (float): 圆环的质量。 inner_radius (float): 内半径。 outer_radius (float): 外半径。 x_offset (float, optional): 中心X偏移,默认为0。 y_offset (float, optional): 中心Y偏移,默认为0。

Returns:

float: 转动惯量值。

Parameters:
  • mass (float)

  • inner_radius (float)

  • outer_radius (float)

  • x_offset (float)

  • y_offset (float)

Return type:

float

get_moment_for_line(mass, start, end, stroke_width)[source]

计算线段的转动惯量。

基于线段的质量、端点和宽度计算转动惯量。

Args:

mass (float): 线段的质量。 start (tuple[float, float]): 线段起点坐标(x, y)。 end (tuple[float, float]): 线段终点坐标(x, y)。 stroke_width (float): 线段的宽度(半径)。

Returns:

float: 转动惯量值。

Parameters:
  • mass (float)

  • start (tuple[float, float])

  • end (tuple[float, float])

  • stroke_width (float)

Return type:

float

get_moment_for_poly(mass, vertices, x_offset=0, y_offset=0, stroke_width=0)[source]

计算多边形的转动惯量。

基于多边形的质量、顶点坐标和偏移量计算转动惯量。

Args:

mass (float): 多边形的质量。 vertices (list[tuple[float, float]]): 多边形顶点列表,每个顶点为(x, y)坐标。 x_offset (float, optional): 中心X偏移,默认为0。 y_offset (float, optional): 中心Y偏移,默认为0。 stroke_width (float, optional): 形状的半径(用于线宽),默认为0。

Returns:

float: 转动惯量值。

Parameters:
  • mass (float)

  • vertices (list[tuple[float, float]])

  • x_offset (float)

  • y_offset (float)

  • stroke_width (float)

Return type:

float