On Wed, 12 Feb 2003 14:24:29 -0500
 David Megginson <[EMAIL PROTECTED]> wrote:

Sounds good -- I was hoping to provoke Jon into doing something like
that.  Note that we do also model horizonal wind gusts (of longer
duration) through FGEnvironment.
Here is what's in Turbulence(), now:

--- start ---

vDirectiondAccelDt(eX) = 1 - 2.0*(((double)(rand()))/RAND_MAX);
vDirectiondAccelDt(eY) = 1 - 2.0*(((double)(rand()))/RAND_MAX);
vDirectiondAccelDt(eZ) = 1 - 2.0*(((double)(rand()))/RAND_MAX);

MagnitudedAccelDt = 1 - 2.0*(((double)(rand()))/RAND_MAX);
MagnitudeAccel += MagnitudedAccelDt*rate*State->Getdt();
Magnitude += MagnitudeAccel*rate*State->Getdt();

vDirectiondAccelDt.Normalize();
vDirectionAccel += vDirectiondAccelDt*rate*State->Getdt();
vDirectionAccel.Normalize();
vDirection += vDirectionAccel*rate*State->Getdt();
vDirection.Normalize();
vTurbulence = TurbGain*Magnitude * vDirection;
vTurbulenceGrad = TurbGain*MagnitudeAccel * vDirection;

--- end ---

I think this is what should be done to make the turbulence account for ground proximity:

vDirectiondAccelDt(eX) = 1 - 2.0*(((double)(rand()))/RAND_MAX);
vDirectiondAccelDt(eY) = 1 - 2.0*(((double)(rand()))/RAND_MAX);
vDirectiondAccelDt(eZ) = 1 - 2.0*(((double)(rand()))/RAND_MAX);

MagnitudedAccelDt = 1 - 2.0*(((double)(rand()))/RAND_MAX);
MagnitudeAccel += MagnitudedAccelDt*rate*State->Getdt();
Magnitude += MagnitudeAccel*rate*State->Getdt();

vDirectiondAccelDt.Normalize();
vDirectionAccel += vDirectiondAccelDt*rate*State->Getdt();
vDirectionAccel.Normalize();
vDirection += vDirectionAccel*rate*State->Getdt();

// new stuff here:

if (altitude < GroundProximityAltitude) {
vDirection(eZ) *= (altitude/GroundProximityAltitude);
}

/// end new stuff

vDirection.Normalize();
vTurbulence = TurbGain*Magnitude * vDirection;
vTurbulenceGrad = TurbGain*MagnitudeAccel * vDirection;

--- end ---

It's easy and worth a try. Mind you, this is a really off-the-cuff quick-and-dirty stab. There may be a far better way to do it. I haven't looked at the turbulence code in some time.

Jon


_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to