Share via


ConditionForceEffect.SetParameters Método

Definición

Establece los parámetros para el efecto de comentarios de fuerza condicional.

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)

Parámetros

direction
Vector3 Vector3

float3

Vector que describe la dirección y la magnitud del efecto en cada eje. Cada eje individual tiene un intervalo de -1,0 a 1,0 y es independiente de los demás ejes. Al especificar un valor negativo para un eje, se invierten los valores de entrada del eje.

positiveCoefficient
Single

float

Pendiente de la línea que describe la rapidez con la que aumenta la fuerza a medida que la entrada se aleja del punto central en la dirección positiva a lo largo del eje especificado. Range es de -infinity a +infinity.

negativeCoefficient
Single

float

Pendiente de la línea que describe cómo aumenta rápidamente la fuerza a medida que la entrada se aleja del punto central en la dirección negativa a lo largo del eje especificado. Range es de -infinity a +infinity.

maxPositiveMagnitude
Single

float

La magnitud máxima de los comentarios de fuerza a medida que la entrada se aleja del punto central en la dirección positiva a lo largo del eje especificado. El intervalo es de 0 a 1,0.

maxNegativeMagnitude
Single

float

La magnitud máxima de los comentarios de fuerza a medida que la entrada se aleja del punto central en la dirección negativa a lo largo del eje especificado. El intervalo es de 0 a 1,0.

deadZone
Single

float

Especifica el valor debajo del cual no se aplica la fuerza de comentarios. El intervalo es de 0,0 a 1,0 y se aplica asimétricamente alrededor del punto central.

bias
Single

float

Desplazamiento al punto central en los cálculos de efectos. El intervalo es de -1.0 a 1.0.

Ejemplos

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

Comentarios

En la imagen siguiente se muestran los efectos de los argumentos en SetParameters:

Efectos de los parámetros a la fuerza. En la imagen, todos los valores de coeficiente son positivos.  Un valor negativo para el coeficiente hará que la fuerza (la línea verde) vaya negativa por debajo de la línea del eje naranja, de forma eficaz, reversando la dirección de la fuerza.  Esto no se recomienda porque, a menos que lo haga cuidadosamente, normalmente dará como resultado un bucle de comentarios positivo que hará que el motor se saturará en esa dirección. Los valores de magnitud y zona muerta siempre son positivos y simétricos sobre sus ejes respectivos.  (Esto se ilustra para la zona muerta, pero la magnitud funciona de la misma manera: un valor de 0,5 limita la fuerza de comentarios a cualquier lugar entre -0,5 y +0,5). El sesgo se muestra aquí en 0,0, pero cambiar el valor simplemente desliza la línea naranja media de una manera u otra.  Tenga en cuenta que esto no afecta a la pendiente de las líneas verdes, definidas por los valores de coeficiente.

Se aplica a