首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >负向指数公式?

负向指数公式?
EN

Stack Overflow用户
提问于 2010-09-29 23:05:42
回答 5查看 529关注 0票数 0

我被困住了,找出了消极方向吗?它一定很简单,但只是看不懂!

x =当前x位置

dir =x轴上的运动方向

代码语言:javascript
复制
if (tween == 'linear'){

    if (dir == 1) {

        x += (x / 5);
    }

    else if (dir == -1){

        //what here??
    }
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-30 04:35:25

这里所缺少的是,您需要考虑偏离起点,而不是x=0 (还需要考虑方向的符号,其他人都正确地指出了这一点)。也就是说,如果您的起点是x0,那么您的方程应该更类似于:

代码语言:javascript
复制
x += (x-x0)/5

这是正方向和负方向的运动图(注意位置在垂直轴上,时间在水平方向)

这是Python代码。(请注意,我添加了dt项,因为在没有明确时间的情况下进行动态模拟太奇怪了。)

代码语言:javascript
复制
from pylab import *

x0, b, dt = 11.5, 5, .1

xmotion, times = [], []

for direction in (+1, -1):
    x, t = x0+direction*dt/b, 0  # give system an initial kick in the direction it should move
    for i in range(360):
        x += dt*(x-x0)/b
        t += dt
        xmotion.append(x)
        times.append(t)

plot(times, xmotion, '.')
xlabel('time (seconds)')
ylabel('x-position')
show()
票数 2
EN

Stack Overflow用户

发布于 2010-09-29 23:39:02

代码语言:javascript
复制
x += (abs(x) / 5) * dir;
票数 1
EN

Stack Overflow用户

发布于 2010-09-30 00:04:54

如果你做了像x -= (x/5)这样的事情,就不可能跨越x = 0 --当x接近0时,它开始变得越来越少。尝试使用最小增量

代码语言:javascript
复制
v = abs(x) / 5;
x += ((v > MINVEL) ? v : MINVEL) * dir;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3826530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档