Partager via


ConditionForceEffect.SetParameters Méthode

Définition

Définit les paramètres de l’effet de retour de force conditionnel.

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)

Paramètres

direction
Vector3 Vector3

float3

Vecteur décrivant la direction et l’ampleur de l’effet sur chaque axe. Chaque axe individuel a une plage comprise entre -1.0 et 1.0 et est indépendant des autres axes. La spécification d’une valeur négative pour un axe inverse les valeurs d’entrée de l’axe.

positiveCoefficient
Single

float

Pente de la ligne décrivant la vitesse à laquelle la force augmente à mesure que l’entrée s’éloigne du point central dans la direction positive le long de l’axe spécifié. La plage est comprise entre -infini et +infini.

negativeCoefficient
Single

float

Pente de la ligne décrivant la vitesse à laquelle la force augmente à mesure que l’entrée s’éloigne du point central dans la direction négative le long de l’axe spécifié. La plage est comprise entre -infini et +infini.

maxPositiveMagnitude
Single

float

Amplitude maximale de la rétroaction de force à mesure que l’entrée s’éloigne du point central dans la direction positive le long de l’axe spécifié. La plage est comprise entre 0 et 1,0.

maxNegativeMagnitude
Single

float

Amplitude maximale de la rétroaction de force lorsque l’entrée s’éloigne du point central dans la direction négative le long de l’axe spécifié. La plage est comprise entre 0 et 1,0.

deadZone
Single

float

Spécifie la valeur en dessous de laquelle le retour de force n’est pas appliqué. La plage est comprise entre 0,0 et 1,0 et est appliquée de manière asymétrique autour du point central.

bias
Single

float

Décalage vers le point central dans les calculs d’effet. La plage est comprise entre -1.0 et 1.0.

Exemples

// 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();
        }
    });
}          

Remarques

L’image suivante illustre les effets des arguments sur SetParameters :

Effets des paramètres sur la force. Dans l’image, toutes les valeurs de coefficient sont positives.  Une valeur négative pour le coefficient entraîne une baisse de la force (la ligne verte) au-dessous de la ligne d’axe orange, inversant ainsi la direction de la force.  Cela n’est pas recommandé, car à moins d’être soigneusement effectué, il en résultera généralement une boucle de rétroaction positive qui provoquera la saturation du moteur dans cette direction. Les valeurs de magnitude et de zone morte sont toujours positives et symétriques sur leurs axes respectifs.  (Ceci est illustré pour la zone morte, mais la magnitude fonctionne de la même façon : une valeur de 0,5 limite la force de retour à n’importe où entre -0,5 et +0,5.) Le biais est affiché ici à 0,0, mais la modification de la valeur fait simplement glisser la ligne orange moyenne d’une façon ou de l’autre.  Notez que cela n’affecte pas la pente des lignes vertes, définie par les valeurs de coefficient.

S’applique à