gpt4 book ai didi

c++ - 易于运动,编程补间,c++

转载 作者:行者123 更新时间:2023-11-30 03:35:16 25 4
gpt4 key购买 nike

补间是一个视频编辑术语,用于描述运动的轻松程度。例如,使用电梯时,电梯不会全速运行,而是在到达所需楼层时完全停止。它知道自己在哪一层,要去哪一层,以及到达那里需要多长时间。然后它使用该数据来平滑其运动。

我希望能够使用补间动画为我的项目编写这种平滑的 Action 。

执行此操作的方法在 http://robertpenner.com/easing/penner_chapter7_tweening.pdf 中列出。

具体看pg207-211

本指南解释什么是补间,然后显示 Action Script 中的代码。老实说,我觉得有点愚蠢,因为我尝试使用提供的示例,但我似乎无法用其他语言复制它,例如 c++、java、javascript 或 lua。

我不想使用包或插件来编写补间代码,我想学习如何实际编写补间功能代码。因此,如果任何具有更好的理解能力或编程技能的人认为他们理解,那么我将非常感谢您的解释。

示例 ActionScript 函数...

Math.easeInQuad = function (t, b, c, d) {
return c*(t/=d)*t + b;
};

Math.easeOutQuad = function (t, b, c, d) {
return -c * (t/=d)*(t-2) + b;
};

Math.easeInOutQuad = function (t, b, c, d) {
if ((t/=d/2) < 1)
return c/2*t*t + b;
return -c/2 * ((--t)*(t-2) - 1) + b;
};

最佳答案

AS3 中的一个适当的补间函数接受 6 个 Number 参数,最后两个参数默认为 0。它应该按如下方式解释参数:

  • 第一个参数是主要的,它填充了一个从0到补间持续时间的值;
  • 第二个参数是当第一个参数为零时您尝试补间的参数值;
  • 第三个参数是补间参数预期分配的值区间的大小;
  • 第四个参数是用户提供的任何单位的持续时间,因此是数字而不是整数;
  • 第五个和第六个参数是可选的,不在 AS3 内置补间库中使用,但如果在其他地方习惯使用,它们可用于修改函数内部完成的插值。

预期结果是second(second+third)参数之间的值,或者它们的规范名称t, b, c, d, a, p 介于 bb+c 之间。

您可以使用像这样的简单算法绘制函数图:

function graph(f:Function,w:Number,h:Number):Shape {
// returns a shape with black on white graph drawn within a rectangle of given dimensions
var s:Shape=new Shape();
s.graphics.lineStyle(0); // black
s.graphics.moveTo(0,h); // lower left corner
for (var i:int=0;i<w;i++) {
s.graphics.lineTo(i,f(i,h,-1*h,w));
}
return s;
}

说到 C++,例如 easeInQuad 应该像这样编程(如果我没有弄乱 C++ 语法):

double easeInQuad(double t, double b, double c, double d) {
double td=t/d;
return b+c*td*td;
}

关于c++ - 易于运动,编程补间,c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41405619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com