Показать сообщение отдельно
Старый 02.05.2012, 19:36   #173
Malinovskiy
RO Admin
 
Аватар для Malinovskiy
 
Регистрация: 13.02.2007
Адрес: Москва
Сообщений: 4,789
Сказал cпасибо: 1,000
Поблагодарили 2,559 раз в 1,229 сообщениях
Чет вы не то курили мужики. Пробить лобовую плиту можно лишь в том случае, если она была повреждена до этого.

Снаряд ПТРС

BallisticCoefficient=0.80
Speed=50500 //1010 m/s
MaxSpeed=50500
ImpactDamage=125
Damage=200

Caliber=14.5
ActualRHA=36
TestPlateHardness=300
SlopeEffect=0.47989
ShatterNumber=1.1
ShatterTd=1.0
ShatteredPenEffectiveness=0.9
[свернуть]


Передний нижний бронелист

ArmorPlates(0)=(PlateName=FRONTLOWER,ArmorZoneType=AZT_Front,PlateThickness=50,OverallHardness=357,bHighHardness=false)
[свернуть]


Считаем

Код:
if( !ShellProjectile.bProjectileIsHEAT ) Снаряд не кумулятивный? Да!
{
     Td = ArmorPlates[PlateIndex].PlateThickness/ShellProjectile.Caliber; 50/14.5 ~ 3.45 Отношение толщины брони к калибру.
     SlopeCoefficient = Td + ShellProjectile.SlopeEffect; 3.45 + 0.47989 ~ 3.93
}
WeakenedPlateResistance = ArmorPlates[PlateIndex].PlateThickness * ArmorPlates[PlateIndex].PlateStrength; 50*1.0 = 50 - целая плита, у поврежденной меньше.
if( !ShellProjectile.bProjectileIsHEAT ) Снаряд не кумулятивный? Да!
{
     if( ArmorPlates[PlateIndex].bHighHardness ) Бронеплита повышенной закалки? Нет!
     else
          BaseResistanceOne = WeakenedPlateResistance; 50
     BaseResistanceTwo = BaseResistanceOne * (1 - ((ShellProjectile.TestPlateHardness - ArmorPlates[PlateIndex].OverallHardness)/500));  50*(1-((300-357)/500)) = 50*(1+0.114)= 55.7
     if( Td > ShellProjectile.ShatterTd ) 3.93 > 1.0? Да! 
          bMayShatter = true; Если правда, то снаряд может быть разрушен при ударе об броню.В нашем случае - да.
     MuzzleVelocityPercent = VSize(ShellProjectile.Velocity)/ShellProjectile.default.Speed; Процент от начальной скорости. В упор - 100%
     PenetrationAmount = ShellProjectile.ActualRHA * MuzzleVelocityPercent; Пробиваемость. В упор - 36*100%=36
}
AOI = GetArmorAngleForShot(ArmorHitZones[HitIndex].PhysBodyBoneName, ArmorHitZones[HitIndex].ZoneName, ShotDirection, HitLocation, ArmorNormal); Вычисление угла между линией падения и нормалью к поверхности брони. В нашем случае 0гр.
if( AOI < 1.570796326794888 ) Угол меньше 90гр.? Да! 
{
     if( !ShellProjectile.bProjectileIsHEAT ) Снаряд не кумулятивный? Да!
          Resistance = BaseResistanceTwo * ((1 / Cos(AOI)) ** SlopeCoefficient ); 55.7*(1/cos(0))^3.93 ~ 55.7
     PRRatio = PenetrationAmount/Resistance; 36/55.7 ~ 0.646
     if( bMayShatter && PRRatio > ShellProjectile.ShatterNumber && !ShellProjectile.bProjectileIsHEAT ) Может быть разрушен? Да! 0.646 > 1.1? Нет! Не кумуклятивный? Да! (Итого - Нет)
     else
          FinalPRRatio = PRRatio; 0.646
     if( FinalPRRatio < 0.89 ) 0.646 < 0.89? Да!
          bUndermatched = true; Снаряд не прошел сквозь броню. Сосем болт.
[свернуть]


Так что сегодня устраиваем полевые испытания. Часиков в 10 буду сидеть в своем ТС. Нужен подопытный - 1 штука.
Malinovskiy вне форума   Ответить с цитированием