我想移动一定距离.但是在我的系统中存在惯性/拖动/负加速.我正在使用这样的简单计算:
v = oldV + ((targetV - oldV) * inertia)
Run Code Online (Sandbox Code Playgroud)
将其应用于多个帧会使运动"上升"或衰减,例如:
v = 10 + ((0 - 10) * 0.25) = 7.5 // velocity changes from 10 to 7.5 this frame
Run Code Online (Sandbox Code Playgroud)
所以我知道我想要旅行的距离和加速度,但不知道能让我到达那里的初始速度.也许一个更好的解释是我想知道有多难以击中一个台球,以便它停在某一点上.
我一直在研究运动方程(http://en.wikipedia.org/wiki/Equations_of_motion),但无法弄清楚我的问题的正确方法是什么......
有任何想法吗?谢谢 - 我来自设计而不是科学背景.
更新:Fiirhok拥有固定加速度值的解决方案; HTML + jQuery演示:
http://pastebin.com/ekDwCYvj
有没有办法用小数值或缓动函数做到这一点?根据我的经验,这样做的好处是固定加速度和基于帧的动画有时会超过最终点并需要强制,从而产生轻微的捕捉故障.
如何计算滚动事件的滚动动量?
我知道在结尾滚动的开头必须有两个时间戳.还必须有一个"轴变化"变量,它基本上是没有惯性滚动的量.
这是我当前负责结束滚动的代码:
if ((type == kMXTEnd || type == kMXTMovedOut) && _isScrolling)
{
long int finishTime = MXTimestamp();
printf("SCEnd: Ending scroll at %ld\n",finishTime-_beginTime);
/* scrollX is the change in X axis */
/* finishTime is time from touch down to touch up */
printf(" * Time: %ld ChangeX: %f\n",finishTime,scrollX);
_isScrolling = FALSE;
_originalScrollPoint = _scrollPoint;
}
Run Code Online (Sandbox Code Playgroud)
是否有可能计算出" 惯性加成 "?就像惯性所获得的额外偏移量一样,除了主要滚动值之外我还可以滚动.或者我需要获得其他变量吗?
我需要这个,因为我正在编写自己的UI工具包,它实际上不是基于任何东西.
这是关于使用惯性进行室内跟踪的另一个问题(智能手机 + aceel + 陀螺仪) 首先,我想说我已经阅读了几乎所有关于这个主题的 stackoverflow 帖子。而且我知道要跟踪位置我们必须将加速度集成两次,这在现实生活中的应用程序中非常无用,因为所有的漂移误差......
但事实证明,我不需要建造飞机或其他任何东西,而且我不需要开发必须工作才能出售的应用程序或其他东西。我只想实现一个简单的 Android 应用程序,它使用室内跟踪的“理论”概念-
基本上,如果将我的手机推到 2 或 3 米,然后我旋转它并再次将其推 2 或 3 米,我的手机就会在已知位置 (0,0) 处朝上放置在桌面屏幕上,我将看到之后如何许多仪表变得不准确,因此使用标签重新校准测量值 <---这是我的主要问题
我需要什么 ?- 角度?(确定集成陀螺仪)(我不想使用指南针)-加速度?(我有) - 速度?(积分加速度) - 和位置(双加速度积分)
我想知道的是如何将这个数字放在一起?这是正确的方法吗?是否有另一种解决方案(解决我的问题,而不是真正准确地跟踪某人)?
我还查看了 DCM 的理论(如果我理解正确,它会给我电话在 6 轴上的方向对吗?但是从 Accel 或陀螺仪(俯仰、滚动等)获取角度有什么区别。 ) ?
谢谢
我遇到了一个烦人的样式问题,如果我打开抽屉,我会在 Android 的导航栏下看到空白。而如果我不在抽屉里,它会显示正确的颜色就好了。
我正在为我的抽屉小部件使用以下代码:
drawer: new Drawer(
child: new ListView(
children: <Widget>[
new UserAccountsDrawerHeader(
accountEmail: new Text("juhlinus@gmail.com"),
accountName: new Text("Linus Juhlin"),
currentAccountPicture: new CircleAvatar(
backgroundColor: Colors.pinkAccent,
child: new Text("LJ"),
),
otherAccountsPictures: <Widget>[
new CircleAvatar(
backgroundColor: Colors.purpleAccent,
child: new Text("MH"),
)
],
),
new ListTile(
title: new Text("Artiklar"),
leading: new Icon(Icons.web),
),
new ListTile(
title: new Text("Media"),
leading: new Icon(Icons.wallpaper),
),
new Divider(),
new ListTile(
title: new Text("Inställningar"),
leading: new Icon(Icons.settings)
),
],
),
),
Run Code Online (Sandbox Code Playgroud)