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