TiXL 中 Cos 运算符实战:用余弦波驱动实时运动图形

发布时间:2026/9/21 16:27:41
TiXL 中 Cos 运算符实战:用余弦波驱动实时运动图形 音视频图形学桌面应用【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址https://gitcode.com/GitHub_Trending/t3/t3点击查看免费下载导读Cos 是 TiXL 运算符库Lib.numbers.float.trigonometry中生成余弦波cosine wave又称 cosinusoidal wave / cosinusoid的核心运算符。在实时运动图形realtime motion graphics制作中它最常见的用途是把 Time 运算符的时间信号转换成周期性的往返运动——例如让图层平滑地上下浮动、左右摆动或者驱动颜色、旋转、不透明度做有节奏的循环变化。阅读完本文你将掌握 Cos 的输入输出结构、底层求值实现、与 Sin 及 AnimValue 等替代方案的选型思路并能在 TiXL 图形编辑器中直接搭建可运行的余弦波动画。Cos 运算符速览Cos 属于 Lib.numbers.float.trigonometry 系列该系列共三个运算符Atan2、Cos、Sin。其官方文档定义如下功能Creates a cosine wave生成余弦波推荐组合以 Time 作为输入替代方案Sin提供更多参数选项相关参考AnimValue、SampleCurve。输入与输出名称类型说明InputSystem.Single输入值典型用法为接入 Time 的输出Result输出System.Single输入角度对应的余弦值取值范围[-1, 1]从节点的符号定义文件 Cos.t3 可以看到Input 的默认值为0.0即节点在无连接输入时输出Math.Cos(0) 1。底层实现一次求值的完整链路Cos 的 C# 实现位于 Cos.cs核心逻辑极为简洁[Output(Guid 4480F970-9E51-456A-8D66-D501FCA2C15B)] public readonly Slotfloat Result new(); public Cos() { Result.UpdateAction Update; } private void Update(EvaluationContext context) { Result.Value (float)Math.Cos(Input.GetValue(context)); }理解这段代码需要注意三点惰性求值Result.UpdateAction Update将Update注册为输出槽的更新动作。只有当下游节点真正请求Result的值时Update才会被调用这是 TiXL 求值框架EvaluationContext典型的按需求值机制避免在每一帧无谓地计算未被消费的数值。单输入单输出Cos 只有一个InputSlotfloat与一个Slotfloat不做任何周期、相位、幅值处理直接调用Math.Cos得到结果。返回值域Math.Cos对任意输入返回[-1, 1]的值。也就是说直接驱动位移时运动幅度固定在 ±1如需更大行程需要级联 Float 一类的算术节点进行缩放或者改用参数更丰富的 Sin。实战一让图层随时间做往返运动官方文档明确推荐“以 Time 作为输入”这一组合。TiXL 中的 Time 运算符输出随时间增长的时间值可选择以小节/秒为单位并支持SpeedFactor调速把它接入 Cos 的 Input在节点图中放置 Time 与 Cos 两个节点将 Time 的Timefloat输出连接到 Cos 的Input输入将 Cos 的Result输出连接到目标图层的位移Position或旋转Rotation输入运行工程观察图层以余弦规律往返摆动。由于余弦函数的周期性时间每增加2π约 6.283 秒波形完成一个完整周期。如果你希望波形的往返速度更快或更慢可以在 Time 与 Cos 之间插入一个乘法节点对时间进行缩放例如乘以2π / 期望周期秒数Time 运算符自身的SpeedFactor输入也能直接调整时间流速。实战二通过复制 Sin 节点获得周期、相位、幅值控制当需求超出“±1 范围内纯余弦摆动”时官方文档给出的替代方案是 Sin。之所以说它“feature more options”从 Sin.cs 的实现可以看得一清二楚Result.Value (float)Math.Sin(Input.GetValue(context) / Period.GetValue(context) Phase.GetValue(context)) * Amplitude.GetValue(context) Offset.GetValue(context);Sin 在余弦/正弦函数之外还提供了四个可调节参数参数类型作用PeriodSingle控制波形在高点与低点之间波动的快慢周期PhaseSingle将波形整体向前/向后平移相位偏移AmplitudeSingle定义波形的最高与最低值幅度OffsetSingle在输出上叠加/减去一个常数值直流偏置因此当你需要精确控制动画的幅度与中心位置时直接复制Duplicate一个 Sin 节点并接入相同的时间输入即可得到带完整参数面板的波形输出Cos 与 Sin 波形之间只相差 π/2 的相位视觉上表现为“从最高点开始下降”与“从零点开始上升”的区别。更多替代方案AnimValue 与 SampleCurve除 Sin 外官方文档还列出了两个可参考的替代节点AnimValue生成与当前 BPM 速率同步的 LFO 式周期信号支持多种波形形状Shape、速率Rate、相位、幅度、偏置与 Bias 等参数且可直接在图形编辑器中按住CTRL 左键拖动实时调整速率与形状。它更偏“音乐节拍驱动”的动画场景是 VJ 现场演出常用的节奏化工具。SampleCurve在 Lib.numbers.curve 系列中按时间采样自定义曲线适合需要完全自定义、非正弦形状的动画需求。选择建议需要最纯粹的三角函数运算用 Cos需要周期/相位/幅度控制用 Sin需要与音乐 BPM 同步的 LFO 波形用 AnimValue需要任意自定义波形用 SampleCurve。节点在仓库中的位置与扩展方式Cos 运算符在仓库中的完整文件三件套如下Cos.cs——C# 实现求值逻辑与输入输出槽定义Cos.t3——符号定义输入默认值、连接关系Cos.t3ui——编辑器 UI 布局节点在画布上的位置与描述文本。其中Cos.t3ui中记录了输入槽的说明“Input value / Example: [Time]”与官方文档“Useful combinations: [Time]”互相印证。如果你需要自定义一个“带周期、相位、幅度、偏移控制的余弦节点”完全可以仿照 Sin.cs 的结构把Math.Sin换成Math.Cos并保留四个输入槽即可——这正是 TiXL 运算符库“符号定义 自动生成文档”模式的直接体现trigonometry README 注明文档由运算符库自动生成。小结Cos 是 TiXL 中生成周期性余弦波的最小单元一个输入、一个输出底层即Math.Cos的一次调用。将它接入 Time 即可快速获得平滑的往返运动配合缩放节点或直接改用 Sin/AnimValue/SampleCurve 则能进一步控制速度、相位、幅度与波形形状。对实时运动图形创作者而言掌握 Cos 及其兄弟节点的求值机制等于掌握了最基础的“周期性运动生成器”足以支撑从简单摆动到复杂节拍动画的绝大部分需求。赞分享音视频图形学桌面应用【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址https://gitcode.com/GitHub_Trending/t3/t3点击查看免费下载相关推荐TiXL CrossVec3 运算符详解用叉积驱动实时视觉的向量运算指南TiXL CrossVec3 运算符详解用叉积驱动实时视觉的向量运算指南 导读 CrossVec3 是 TiXLtooll3开源实时动态图形软件中 Lib音视频图形学桌面应用TiXL 三角运算算子实战指南Sin、Cos 与 Atan2 的波形生成与角度计算TiXL 三角运算算子实战指南Sin、Cos 与 Atan2 的波形生成与角度计算 导读 本文以 TiXL 内置算子库中的 Lib.numbers.float音视频图形学桌面应用TiXL OKLChToColor 算子全解用 OKLCh 感知色彩空间驱动实时运动图形配色TiXL OKLChToColor 算子全解用 OKLCh 感知色彩空间驱动实时运动图形配色 OKLChToColor 是 TiXL开源实时运动图形创作工具音视频图形学桌面应用上一篇PaddleOCR 文本识别教程从安装到出第一条结果的 3 条命令下一篇Coqui TTS故障排除手册常见问题解决方案与调试技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考