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

标签 c# c++ math pulse trigonometry

我正在编写一些代码,其中我有一个 Time 对象和一个成员 timeTime.time 给出 我的应用程序启动后的时间(以秒为单位)(浮点值)。现在我想创建一个介于 0 和 1 之间的脉动值,然后再次从 1 到 0,它会继续执行直到应用程序停止。

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

我将如何创造这种脉动值(value)?

亲切的问候, 北河三

最佳答案

你提到使用 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));
}

1/frequency = 0.1 second 是周期,也就是 1 之间的时间。

关于c# - 如何在给定的持续时间内从 0..1..0..1..0 等创建脉动值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3018550/

相关文章:

c# - 将目标放置在嵌套控件中

c# - 更改 Y 轴的比例

c++ - 编码时如何获取我的自定义函数执行地址?

c++ - 升级到 Qt 5.15 后,ListView 委托(delegate)中的父级为空

java - 鼠标滚轮滚动后计算图表的偏移和缩放

matlab - matlab 中非均匀网格的数值积分。有什么功能吗?

C# 使用 JSON.Net 解析 JSON 数字属性

c# - WPF - 将窗口标题绑定(bind)到其他项目公共(public)设置

c++ - 何时使用 "Static"进行持久化

python - 从截断几何分布中采样整数