如何在给定的持续时间内从0..1..0..1..0等创建脉动值?

pol*_*lux 2 c# c++ math trigonometry pulse

我正在研究一些代码,其中我有Time一个成员的对象time.Time.time给我自应用程序以秒开始的时间(浮点值).现在我想创建一个介于0和1之间,然后再次从1到0的脉动值,这将继续执行,直到应用程序停止.

我正在考虑使用sin(),但不知道将什么传递给它作为创建这个脉冲值的参数.

如何创建这个脉动值?

亲切的问候,Pollux

Kle*_*ist 15

你提到使用sin(),所以我想你希望它在0和1之间连续脉冲.

这样的事情会做:

float pulse(float time) {
    const float pi = 3.14;
    const float frequency = 10; // Frequency in Hz
    return 0.5*(1+sin(2 * pi * frequency * time));
}
Run Code Online (Sandbox Code Playgroud)

1/frequency = 0.1 second 是期间,即1的时间.