c – 这种动画轨迹背后的数学是什么?
作者:互联网
这样的事情背后的数学是什么? C透视.
关于这个MSDN page here的更多例子.
UPDATE: Was asked for a more concrete question. What’s the math/animation theory for 07001? How do you come up with those formulas? What are the math principles they are based on?
我和数学,我们不是BFF!我正在研究一个用于我正在编写的UI事物的多FLOAT值动画师,我想知道从本机C程序员的角度来看产生这样一个轨迹的数学是什么.
用Google搜索并找到代码,但我也从编程角度寻找一些理论……不仅仅是代码或纯数学.我可以从我在网上找到的代码一起鞭打我需要的代码,但我想在此过程中理解它.像这个允许人们试验easing function generator的网站.
我也可以使用Windows动画管理器(如果事情变得血腥,我可能会使用它),但是它可以在一个浮点数上运行.只需设置RGB动画,就需要自己动画每个FLOAT.它导致巨大的代码膨胀……非常糟糕.
如果有人有一些提示,我会非常感激.我从编程的角度来看主要是理论.最终目标是编写一组不同的动画算法,这些算法可以在一段时间或速度等范围内将一组FLOAT从其初始值设置为目标值.
该计划不仅要编写代码,还要了解其背后的原因.然后可能会对这些动画有所创造……除非这些被证明是一些严格的标准数学函数.
解决方法:
数学是数学是数学.
Riemann Sum的一个很好的教程将展示这个概念.
在基础编程中,您有一个数学方程式,可以为给定的X(时间)生成Y值(高度).例如,像每秒一次,你插入一个新的X(时间)值并获得高度.
您评估此函数的次数越多,分辨率就越高(这是黎曼和和微积分的图表所在的位置).您将获得的最佳结果是曲线的近似值,看起来像阶梯.
在嵌入式系统中,没有太多资源可以非常频繁地评估这样的函数.可以使用线段来近似曲线.线段越多,近似值越高(提高精度).因此,一种方法是将曲线分解为线段.对于给定的x,请使用线的相应线性公式.对线的评估通常比评估更高度方程需要更少的资源.
您的曲线通常由物理方程生成.因此,您不仅需要改进数学,还应该改进物理学.
否则,您可以在Web上搜索处理轨迹的库.
当我们越靠近硬件时,可以使用计时器来调用评估给定X的轨迹函数的方法.计时器有助于产生更准确的时间值.
在网上搜索“曲线拟合算法”,“Bresenham算法”,“图形碰撞检测算法”
标签:c,animation,math,tweener 来源: https://codeday.me/bug/20190825/1716879.html