我正在考虑为Android手机实施一个惯性导航系统,我意识到加速度计的准确性和读数的不断波动很难实现.
首先,我将手机放在一个平面上,并在X和Y方向上取样1000个加速度计读数(平行于工作台,因此没有重力作用于这些方向).然后我平均这些读数并使用该值来校准手机(从每个后续读数中减去该值).
然后我再次将它放在桌面上并在X和Y方向上采样5000个加速度计读数来测试系统.考虑到校准,我预计这些加速度应该在每个方向上加起来为0(大致).然而,情况并非如此,并且超过5000次迭代的总加速度远不及0(每个轴上平均大约10).
我意识到没有看到我的代码,这可能很难回答,但在更一般的意义上......
这只是移动电话(HTC Desire S)上加速度计读数不准确的一个例子,还是我在编码中出错的可能性更大?
在iPhone 3.0中立即停止减速UIScrollView的最佳方法是什么?
我想保持UIScrollView的减速直到它自然停止或用户执行某个动作,无论先发生什么.
谢谢!
我正在尝试使用JavaScript在窗口中重新创建iPhone轻弹/滚动事件.
从JQuery开始,我在使用计时器点击 - 拖动 - 释放事件期间测量鼠标的加速度和偏移量:
var MouseY = {
init: function(context) {
var self = this;
self._context = context || window
self._down = false;
self._now = 0;
self._last = 0;
self._offset = 0;
self._timer = 0;
self._acceleration = 0;
$(self._context).mousedown(function() {self._down = true;});
$(self._context).mouseup(function() {self._down = false;});
$(self._context).mousemove(function(e) {self.move(e);});
},
move: function(e) {
var self = this;
self._timer++;
self._last = self._now;
self._now = e.clientY + window.document.body.scrollTop;
self._offset = self._now - self._last;
self._acceleration = self._offset / self._timer;
},
reset: function() …Run Code Online (Sandbox Code Playgroud) 我想建立这样的东西,但使用Android手机:http://www.youtube.com/watch?v = Awt9mb5QqRs
我已经构建了一个通过套接字发送传感器信息的应用程序(仍在为android寻找一个好的websocket实现).我打算使用该信息与Web应用程序进行交互,例如,我可以根据手机的移动来移动图像.问题是我试图根据加速度计数据计算距离,但结果非常糟糕.我想知道是否有人可以帮助我找到正确的方程式,但首先,是否有可能做到这一点?
直到现在我使用以下等式:
velocity = acceleration * time;
distance = velocity * time + (acceleration * time^2) / 2;
然后我根据显示器屏幕分辨率将距离从米/秒转换为像素.
每次我收到传感器数据时都会在浏览器中用javascript计算,每隔约80ms.
我已经为此尝试了典型的物理方程,但它们都没有真正起作用,因为方程式处理的是恒定加速度,我的需要改变才能正常工作.基本上我有一辆可以在很大的速度范围内行驶的汽车,当它到达路径的末端时需要减速并停留给定的距离和时间.
所以,我有:
V0,或当前速度
Vf,或我想要达到的速度(通常为0)
t,或者我想要达到路径末端的时间量
d,或者我想改变的距离从V0到Vf
我想计算
a,或从V0到Vf所需的加速度
这成为一个特定于编程的问题的原因是因为a需要在汽车停止时每一个时间步重新计算.因此,V0不断地改变为V0从最后的时间步长plus的a是计算最后的时间步长.所以基本上它会开始缓慢停止然后最终会突然停止,有点像现实生活中的汽车.
编辑:
好的,谢谢你们的好评.我需要的很多东西只是帮助思考这个问题.现在让我更具体一点,我从你们所有人那里得到了更多的想法:
我有一辆车c是64 pixels从它的目的地,所以d=64.它正在开车2 pixels per timestep,在哪里timestep is 1/60 of a second.我想找到加速度a,使其达到0.2 pixels per timestep行进时的速度d.
d = 64 //distance
V0 = 2 //initial velocity (in ppt)
Vf = 0.2 //final velocity (in ppt)
此外,因为这发生在游戏循环中,变量delta将传递给每个动作,即multiple of 1/60s that …
我正在寻找适当的加速结构来进行射线球交叉测试(在游戏中).以下条件适用:
- 每帧有100个球体和100个射线相互测试
- 球体在每一帧中移动,射线也是如此
- 可以在每个帧中添加/删除光线/球体(但是它们中的大部分在两个帧之间是相同的,只是略微移动)
- 全是3D的东西
一个KD-Tree非常适合Ray交叉测试,但是由于球体移动,我必须在每个帧中重建KD树,这是昂贵的
Oct-tree更易于维护,但对于光线交叉测试非常无效.
对100个球体的100条射线似乎并不多,但我在非常低的资源上编码,所以我正在寻找一些加速度
有人可以给我一些提示吗?
我正在构建一个执行网络加速的程序,我需要知道如何在Linux上创建一个网络接口,而不是将数据导向实际接口,将信息定向到我的程序,以便加速.我们的想法是使它成为一个透明的系统,因此程序只需像普通的那样使用界面,但流量运行得更快.
大家好
我的意思是当鼠标移向窗口边缘(x或y或两者)时,我希望页面滚动,当鼠标停止移动时,我希望页面停止滚动.
有很多关于如何基于在窗口边缘使用onClick事件或滚动区域进行滚动的示例,但基于鼠标光标的移动并不多.
任何帮助将非常感激.
简短版本: 使用android禁用硬件加速:xml中的hardwareAccelerated ="false"会将Theme.Sherlock.Light.DarkActionBar主题的背景颜色更改为更白的"白色". 编辑:这曾经是主要问题.我更改了标题以强调第二个问题.
仅为mapView禁用硬件加速会导致不断重绘.
长版:
API级别14及更高版本默认启用AFAIK硬件加速.(参考)
由于我正在构建和测试API级别16,因此我的硬件加速通常是开启的,这就是我以前所看到的.主题是浅色但不是很纯白色,它是浅灰色(默认).
我在地图上绘制了一些圆形叠加,当我放大时,mapview变得非常迟钝,我在logcat中得到一个"太大而无法渲染到纹理中"的形状.我发现关闭硬件加速可以解决问题.
当我为Android清单中的应用程序(或单个活动)关闭硬件加速时,布局的背景颜色会发生变化.它从浅灰色到非常浅灰色,几乎是纯白色.这是正常的行为吗?
我试着为mapview关闭硬件加速:
if(android.os.Build.VERSION.SDK_INT>=11) {
mapView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); }
Run Code Online (Sandbox Code Playgroud)
这很好地摆脱了纹理太大的错误,因为mapview不是硬件加速的,它还可以加速我的应用硬件的其余部分.这将是理想的解决方案.但是,这会导致另一个问题.它使我使用此代码的覆盖的onDraw方法不断被调用.也就是说,onDraw本身被一遍又一遍地调用,而不需要在mapview上调用invalidate().知道为什么会这样吗?
更新:
下面是一些简单的代码,当仅为mapView(我想要的)禁用硬件加速时,将使用常量重绘重新创建问题:
MapActivity:
public class SettingsActivity extends MapActivity {
private MapView mapView;
private static List<Overlay> overlayList;
private static AccuracyCircleOverlay accuracyCircleOverlay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_manage_maps);
mapView = (MapView) findViewById(R.id.map);
overlayList = mapView.getOverlays();
accuracyCircleOverlay = new AccuracyCircleOverlay(this);
overlayList.add(accuracyCircleOverlay);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
覆盖:
public class AccuracyCircleOverlay extends Overlay {
private Context context; …Run Code Online (Sandbox Code Playgroud) 我必须在 cython 中编写一个小型模拟,通常使用 numba 加速。但我必须进行这种转换,因为 numba 不支持我想用来修改函数的 scipy 函数。
所以本质上我已经将我的模拟程序翻译成 cython,这使得一切都比 numba 慢。所以也许我的 cython 代码中存在我没有看到的瓶颈。
我的 cython 代码:
import numpy as np
cimport numpy as cnp
cimport cython
cnp.import_array()
@cython.boundscheck(False)
@cython.wraparound(False)
def simulation(int N=10000, int N_save=10000):
cdef cnp.ndarray[double] x = np.empty(N_save, dtype=np.double)
cdef cnp.ndarray[double] r = np.random.standard_normal(size=N_save)
cdef fs = int(N / N_save)
cdef xold = 0
x[0] = 0
for i in range(1, N):
if i%N_save == 0:
r = np.random.standard_normal(size=N_save)
xnew = xold + r[i%N_save]
if (i % …Run Code Online (Sandbox Code Playgroud) acceleration ×10
android ×3
iphone ×2
javascript ×2
physics ×2
background ×1
calibration ×1
colors ×1
cython ×1
distance ×1
formula ×1
hardware ×1
iframe ×1
intersection ×1
jquery ×1
linux ×1
mouse ×1
networking ×1
numba ×1
python ×1
scroll ×1
uiscrollview ×1