Показать сообщение отдельно
Старый 06.04.2025, 02:03   #9813
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,639
По умолчанию

В классе RealFlightModel есть такая строка:
Cwl.x = -d3 * (double)(Wing.new_CxM(f4, fullMach) + f8 + 0.5F * GearCX * CT.getGearR() + 0.5F * GearCX * CT.getGearL() + radiatorCX * (EI.getRadiatorPos() + CT.getCockpitDoor() + f9) + Sq.dragAirbrakeCx * CT.getAirBrake());
Похоже, открытый фонарь на что-то влияет. Если и влияет на общее сопротивление, то несильно, я не заметил.
Проверил, вроде, внешние подвесы влияют на скорость. Есть какой-то код, который обсчитывает влияние торпед и бомб на внешних подвесах.
Код:
    public void calculateBombMomentum()
    {
        BulletEmitter abulletemitter[][] = CT.Weapons;
        Vector3d vector3d = new Vector3d();
        bombAM.set(0.0D, 0.0D, 0.0D);
        for(int i = 0; i < abulletemitter.length; i++)
            if(abulletemitter[i] != null && abulletemitter[i].length > 0)
            {
                for(int j = 0; j < abulletemitter[i].length; j += 2)
                    if(((abulletemitter[i][j] instanceof BombGun) || (abulletemitter[i][j] instanceof TorpedoGun)) && j < abulletemitter[i].length - 1 && (abulletemitter[i][j + 1] instanceof BombGun) && abulletemitter[i][j + 1].haveBullets() != abulletemitter[i][j].haveBullets())
                    {
                        String s = abulletemitter[i][j].getHookName();
                        String s1 = abulletemitter[i][j + 1].getHookName();
                        if(s.startsWith("_External") && s1.startsWith("_External"))
                        {
                            Hook hook = actor.findHook(s);
                            String s2 = hook.chunkName();
                            Hook hook1 = actor.findHook(s1);
                            String s3 = hook1.chunkName();
                            if(s2.toLowerCase().startsWith("wing") && s3.toLowerCase().startsWith("wing"))
                            {
                                Loc loc = new Loc(0.0D, 0.0D, 0.0D, 0.0F, 0.0F, 0.0F);
                                Loc loc1 = new Loc();
                                loc1.set(0.0D, 0.0D, 0.0D, 0.0F, 0.0F, 0.0F);
                                hook1.computePos(actor, loc, loc1);
                                Point3d point3d = loc1.getPoint();
                                double d = point3d.y;
                                float f = abulletemitter[i][j + 1].bulletMassa();
                                float f1 = Property.floatValue(((BombGun)abulletemitter[i][j + 1]).bulletClass(), "kalibr", 0.0F);
                                float f2 = (float)(3.1415926535897931D * (double)f1 * (double)f1);
                                vector3d.set(-d * (double)f * 15D, 0.0D, d * (double)f2 * (double)getSpeed() * 300D);
                            }
                        }
                    }

            }

        bombAM.x += vector3d.x;
        bombAM.y += vector3d.y;
        bombAM.z += vector3d.z;
    }
Dimas1999 вне форума   Ответить с цитированием