29 lines
1.0 KiB
C#
29 lines
1.0 KiB
C#
using Car_simulation.Core.Physics;
|
|
|
|
namespace Car_simulation.Core.Components
|
|
{
|
|
public class Aerodynamics
|
|
{
|
|
public float DragCoefficient { get; set; } = 0.3f;
|
|
public float FrontalArea { get; set; } = 2.2f; // m²
|
|
public float RollingResistanceCoefficient { get; set; } = 0.015f;
|
|
|
|
private readonly ResistanceCalculator _resistanceCalculator = new ResistanceCalculator();
|
|
|
|
public float CalculateDragForce(float speed)
|
|
{
|
|
return _resistanceCalculator.CalculateDragForce(speed, DragCoefficient, FrontalArea);
|
|
}
|
|
|
|
public float CalculateRollingResistanceForce(float mass)
|
|
{
|
|
return _resistanceCalculator.CalculateRollingResistanceForce(mass, RollingResistanceCoefficient);
|
|
}
|
|
|
|
public float CalculateTotalResistanceForce(float speed, float mass)
|
|
{
|
|
return _resistanceCalculator.CalculateTotalResistanceForce(
|
|
speed, mass, DragCoefficient, FrontalArea, RollingResistanceCoefficient);
|
|
}
|
|
}
|
|
} |