Freigeben über


ConditionForceEffect.SetParameters Methode

Definition

Legt die Parameter für den Rückkopplungseffekt für bedingte Erzwingung fest.

public:
 virtual void SetParameters(float3 direction, float positiveCoefficient, float negativeCoefficient, float maxPositiveMagnitude, float maxNegativeMagnitude, float deadZone, float bias) = SetParameters;
void SetParameters(float3 const& direction, float const& positiveCoefficient, float const& negativeCoefficient, float const& maxPositiveMagnitude, float const& maxNegativeMagnitude, float const& deadZone, float const& bias);
public void SetParameters(Vector3 direction, float positiveCoefficient, float negativeCoefficient, float maxPositiveMagnitude, float maxNegativeMagnitude, float deadZone, float bias);
function setParameters(direction, positiveCoefficient, negativeCoefficient, maxPositiveMagnitude, maxNegativeMagnitude, deadZone, bias)
Public Sub SetParameters (direction As Vector3, positiveCoefficient As Single, negativeCoefficient As Single, maxPositiveMagnitude As Single, maxNegativeMagnitude As Single, deadZone As Single, bias As Single)

Parameter

direction
Vector3 Vector3

float3

Ein Vektor, der die Richtung und Größe des Effekts auf jeder Achse beschreibt. Jede einzelne Achse hat einen Bereich von -1,0 bis 1,0 und ist unabhängig von den anderen Achsen. Wenn Sie einen negativen Wert für eine Achse angeben, werden die Eingabewerte von der Achse umgekehrt.

positiveCoefficient
Single

float

Die Steigung der Linie, die beschreibt, wie schnell die Kraft zunimmt, wenn sich die Eingabe vom Mittelpunkt in positive Richtung entlang der angegebenen Achse entfernt. Bereich ist von -unendlich bis +unendlich.

negativeCoefficient
Single

float

Die Steigung der Linie, die beschreibt, wie schnell die Kraft zunimmt, wenn sich die Eingabe vom Mittelpunkt in negative Richtung entlang der angegebenen Achse entfernt. Bereich ist von -unendlich bis +unendlich.

maxPositiveMagnitude
Single

float

Die maximale Größe des Kraftfeedbacks, wenn sich die Eingabe vom Mittelpunkt in positiver Richtung entlang der angegebenen Achse entfernt. Der Bereich liegt zwischen 0 und 1,0.

maxNegativeMagnitude
Single

float

Die maximale Größe des Kraftfeedbacks, wenn sich die Eingabe vom Mittelpunkt in negativer Richtung entlang der angegebenen Achse entfernt. Der Bereich liegt zwischen 0 und 1,0.

deadZone
Single

float

Gibt den Wert an, unter dem das Erzwingungsfeedback nicht angewendet wird. Der Bereich liegt zwischen 0,0 und 1,0 und wird asymmetrisch um den Mittelpunkt angewendet.

bias
Single

float

Der Offset zum Mittelpunkt in Effektberechnungen. Der Bereich liegt zwischen -1,0 und 1,0.

Beispiele

// Create a spring effect and load it into the device.  This is an async operation
// since it might take a brief amount of time for the driver to complete this.
ConditionForceEffect ^ springEffect = ref new ConditionForceEffect(ConditionEffectKind::Spring);
if (springEffect)
{
    IAsyncAction ^ action = motor->LoadEffectAsync(springEffect);
    concurrency::create_task(action).then([=]()
    {
        // Make sure the effect was loaded successfully.  There is a finite amount
        // of storage available for effects in the hardware, so this is expected
        // to fail if there is not enough room.  Alternatively, the motor might
        // not support the requested effect (although this is rare).
        if (action->Status == AsyncStatus::Completed)
        {
            // Set the parameters for the spring effect.  Note how the parameters
            // can be modified after the effect has been loaded into the hardware.
            springEffect->SetParameters(
                { 1.0f, 0.0f, 0.0f },   // Unit vector indicating the effect applies to the X axis
                1.0f, -1.0f,            // Full strength when the wheel is turned to its maximum angle
                0.3f, -0.3f,            // Limit the maximum feedback force to 30%
                0.025f,                 // Apply a small dead zone when the wheel is centered
                0.0f);                  // Equal force in both directions

            // Go ahead and start the effect, since we want this running all the time
            springEffect->StartEffect();
        }
    });
}          

Hinweise

Die folgende Abbildung veranschaulicht die Auswirkungen der Argumente auf SetParameters:

Auswirkungen von Parametern auf die Kraft. In der Abbildung sind alle Koeffizientenwerte positiv.  Ein negativer Wert für den Koeffizient führt dazu, dass die Kraft (die grüne Linie) unterhalb der orangefarbenen Achsenlinie negativ wird, wodurch die Richtung der Kraft umgekehrt wird.  Dies wird nicht empfohlen, da dies in der Regel zu einer positiven Rückkopplungsschleife führt, die dazu führt, dass der Motor in diese Richtung gesättigt wird. Magnitude- und Dead-Zone-Werte sind immer positiv und symmetrisch für ihre jeweiligen Achsen.  (Dies wird für die tote Zone veranschaulicht, aber die Größe funktioniert auf die gleiche Weise – ein Wert von 0,5 begrenzt die Feedbackkraft auf eine beliebige Stelle zwischen -0,5 und +0,5.) Die Verzerrung wird hier bei 0,0 angezeigt, aber durch Ändern des Werts wird nur die mittlere orange Linie in die eine oder andere Richtung geschiebet.  Beachten Sie, dass sich dies nicht auf die Steigung der grünen Linien auswirkt, die durch die Koeffizientenwerte definiert werden.

Gilt für: