ConditionForceEffect.SetParameters Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define os parâmetros para o efeito de comentários de força 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
Um vetor que descreve a direção e a magnitude do efeito em cada eixo. Cada eixo individual tem um intervalo de -1,0 a 1,0 e é independente dos outros eixos. Especificar um valor negativo para um eixo inverte os valores de entrada do eixo.
- positiveCoefficient
-
Single
float
A inclinação da linha que descreve a rapidez com que a força aumenta à medida que a entrada se afasta do ponto central na direção positiva ao longo do eixo especificado. O intervalo é de -infinity a +infinity.
- negativeCoefficient
-
Single
float
A inclinação da linha que descreve a rapidez com que a força aumenta à medida que a entrada se afasta do ponto central na direção negativa ao longo do eixo especificado. O intervalo é de -infinity a +infinity.
- maxPositiveMagnitude
-
Single
float
A magnitude máxima dos comentários de força à medida que a entrada se afasta do ponto central na direção positiva ao longo do eixo especificado. O intervalo é de 0 a 1,0.
- maxNegativeMagnitude
-
Single
float
A magnitude máxima dos comentários de força à medida que a entrada se afasta do ponto central na direção negativa ao longo do eixo especificado. O intervalo é de 0 a 1,0.
- deadZone
-
Single
float
Especifica o valor abaixo do qual os comentários forçados não são aplicados. O intervalo é de 0,0 a 1,0 e é aplicado de forma assimétrica ao redor do ponto central.
- bias
-
Single
float
O deslocamento para os cálculos de ponto central em vigor. O intervalo é de -1.0 a 1.0.
Exemplos
// 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();
}
});
}
Comentários
A imagem a seguir ilustra os efeitos dos argumentos para SetParameters:
Na imagem, todos os valores de coeficiente são positivos. Um valor negativo para o coeficiente fará com que a força (a linha verde) fique negativa abaixo da linha do eixo laranja, invertendo efetivamente a direção da força. Isso não é recomendado porque, a menos que seja feito com cuidado, normalmente resultará em um loop de comentários positivos que fará com que o motor saturar nessa direção. Valores de magnitude e zona morta são sempre positivos e simétricos sobre seus respectivos eixos. (Isso é ilustrado para a zona morta, mas a magnitude funciona da mesma maneira – um valor de 0,5 limita a força de comentários a qualquer lugar entre -0,5 e +0,5.) O viés é mostrado aqui em 0,0, mas alterar o valor apenas desliza a linha laranja média de uma forma ou de outra. Observe que isso não afeta a inclinação das linhas verdes, definidas pelos valores coeficientes.