Articles of algorithm

加速度计重力组件

我知道这个问题肯定已经解决了很多次,如果你知道他们的存在,请赐教,谢谢。 快速破解:我想从三轴加速计计算这三个轴上的重力分量。 我已经使用了2轴自由体图来计算世界XZ,YZ和XY轴上的加速度计重力分量。 但是解决scheme似乎稍微偏离了一些情况,对于极端情况,只有一个加速度计轴受到重力的影响是可以接受的,但是对于45度的俯仰和滚动,总的合成幅度大于重力(由Xa ^ 2 + Ya ^ 2 + Za ^ 2 = g ^ 2; Xa,Ya和Za是在其X,Y和Z轴上的加速度计读数。 更多细节:该设备是Nexus One,除了3轴加速度传感器之外,还有一个用于方位angular,俯仰angular和滚转angular的磁场传感器。 在世界轴线(Z方向与重力方向一致,X或Y指向北极方向,不要以为这很重要?),我假设我的装置在YZ轴上有一个节距(P)和XZ轴上的卷(R)。 我用这个简单的trig来得到:Sin(R)= Ax / Gxz Cos(R)= Az / Gxz Tan(R)= Ax / Az 还有另外一组音调P 现在我定义了重力在世界轴上有三个分量,一个只能在XZ轴上测量的Gxz,一个在YZ上的Gyz,在XY轴上的Gxy。 Gxz ^ 2 + Gyz ^ 2 + Gxy ^ 2 = 2 * G ^ 2因为重力在这个定义中被有效地包含了两次。 哦,XY轴产生更奇特的东西…我会解释如果需要以后。 从这些方程中,我得到了Az的公式,并删除了tan操作,因为我不知道如何处理tan90的计算(无穷大?)。 […]

使用Androidaudio和方向传感器的机械安全破解

我正在编写一个应用程序,通过安全操作来帮助锁匠,主要是通过创build他们需要的图表。 当试图通过操纵进入安全区时,需要对“轮组”进行详细分析,并通过绘制“围栏”在“门”上的相对深度来完成。 如果所有的门都排列在包装上,围栏杆将落入凸轮门,锁将打开。 如果有人对更详细的解释感兴趣,你可以在这里findMatt Blaze的一个很棒的对待(从3.3开始):www.crypto.com/papers/safelocks.pdf 制作图表很重要,而且真正需要的是精确测量表盘上的两个位置,并logging两个声音之间的拨号距离。 所以说,“落入”点在10到15之间,可能发生在11.5和14.5的声音事件,或者下一次可能发生在12和15之间。数字,在图表上查找数字,缩小数字,也可能只是图表上的最低点。 我正在通过我的Android耳机插孔使用一个老式的收音机电话听筒(吸盘式麦克风)来收听声音事件。 为了在发生事件的表盘上精确测量,我简单的用魔术贴将手机挂在表盘上,并使用SensorManager根据手机从audio尖峰事件旋转到峰值的距离来计算声音之间的距离-事件。 这很好,但我想这样做,而不需要把手机挂在拨号盘上。 一些公司曾经通过networking摄像头来观察拨号盘本身,但是这样做似乎远不如安装手机那么准确,因为我可以使用小数的旋转angular度来获得更高的精度。 一旦你进入放置位置,你总是会打一个声音,然后将拨号盘备份到下一个声音,所以我想我可以简单地听声音事件,然后一旦拨盘反转方向测量到下一个声音事件,但是这将要求拨号盘不断移动,这在现实生活中不会发生。 而且我想我可以通过使用dynamic像素或舵机来为锁匠移动表盘,但是这不是一个好的解决scheme。 所以我的问题是,如果你们中的任何一个聪明的人都可以想象的方式,这些相关的速度(声音事件之间的距离和拨号位置的变化)可以量化,而无需将电话挂在拨号?

滚动骰子物理的想法

我想制作像加速度计上反应的骰子一样的滚动立方体。 所以加速度计给出了立方体移动的参数。 我认为应该在这里使用小物理。 我的问题是什么公式,技术,我应该用来完成这个没有任何物理引擎。

如何在openCV中findRect对象的angular点?

我在Android平台上使用openCV库。 我已经成功地从图像中检测到最大的矩形,但由于我的应用程序将用于扫描目的,我想要具有透视更改function。 我知道,如何应用perspectiveTransform和warpPerspectiveTransform,但为此,我将需要源矩形的矩形的angular点。 看起来很容易findangular落给定的事实,我们有第一个angular落(左上angular)和宽度/高度与Rect对象相关的坐标,但问题是,对于旋转的矩形(通常boundingRect但双方不平行这些值是非常不同的。在这种情况下,它存储对应于另一个具有边平行于轴的矩形的值,并覆盖旋转的矩形,使得我无法检测到实际矩形的拐angular。 另外我想做一个比较这两种algorithm来检测图像中的工作表。 Canny边缘 – >最大的轮廓 – >最大的矩形 – >找angular落 – >透视变化 Canny边缘 – > Hough线 – >线的交集 – >透视变化 我想要问的是,如果我们有一个Rect对象,如何获得矩形的所有angular落? 提前致谢。

Android,即时模糊位图?

所以我试图尽可能快地模糊图像(即时感觉),因为当按下模糊button时活动需要被更新。 我遇到的问题是,我无法find足够快的模糊效果。 注意:模糊,最好是高斯模糊,并不一定是最好的质量。 我尝试了以下内容,但需要几秒钟,是否有代码可以使质量牺牲更快运行? 还是有其他的select吗? 我会研究GPU的东西,但这种模糊只是一个与用户界面相关的效果,只有当我按下打开一个透明的活动,大小为一个小方块… 有任何想法吗? static Bitmap fastblur(Bitmap sentBitmap, int radius, int fromX, int fromY, int width, int height) { // Stack Blur v1.0 from // http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html // // Java Author: Mario Klingemann <mario at quasimondo.com> // http://incubator.quasimondo.com // created Feburary 29, 2004 // Android port : Yahel Bouaziz <yahel at kayenko.com> // […]

无法编写用于根据每个项目保存的长时间筛选出RecyclerView中的项目的algorithm

我在RecyclerView有几个项目,每个项目都有一个long值保存。 我正在使用FastAdapter作为我的RecyclerView的适配器。 假设RecyclerView有7个项目的值很长,分别为: -98811 , -88009和-22113 。 所以, 我想要做的是,我想要使用这个逻辑基于上述给定的长值过滤项目: if (l <= 1000) { // show items with long value <=1000 } else if (l > 1000) { // show items with long value >1000 } 我尝试了各种各样的东西,但没有解决。 更新1 :这里的项目是存储在CardView中的一种不同的数据,然后在RecyclerView 。 每张卡包含不同的数据,其中之一是以上给定的long值。 我想根据上面给出的逻辑基于存储在每个卡中的这些long值来过滤数据。 请帮我解决这个问题,并提出一些algorithm或代码,我可以做到这一点。

在ImageView FloodFillalgorithm中获取触摸坐标不准确

我正在尝试使用Fill Floodalgorithm为应用程序创build多维数据集绘图工具。 这是algorithm的代码: public class QueueLinearFloodFiller { protected Bitmap image = null; protected int[] tolerance = new int[] { 0, 0, 0 }; protected int width = 0; protected int height = 0; protected int[] pixels = null; protected int fillColor = 0; protected int[] startColor = new int[] { 0, 0, 0 }; protected […]

我的algorithm来计算智能手机的位置 – GPS和传感器

我正在开发一个android应用程序来计算位置基于传感器的数据 加速度计 – >计算线性加速度 磁力计+加速度计 – >运动方向 初始位置将取自GPS(纬度+经度)。 现在基于传感器的读数,我需要计算智能手机的新位置: 我的algorithm如下 – (但是不计算准确位置):请帮我改进它。 注意: 我的algorithm代码是C#(我正在发送传感器数据到服务器 – 数据存储在数据库中,我正在计算服务器上的位置) 所有date时间对象已经使用时间戳计算 – 从01-01-1970 var prevLocation = ServerHandler.getLatestPosition(IMEI); var newLocation = new ReceivedDataDTO() { LocationDataDto = new LocationDataDTO(), UsersDto = new UsersDTO(), DeviceDto = new DeviceDTO(), SensorDataDto = new SensorDataDTO() }; //First Reading if (prevLocation.Latitude == null) { //Save GPS […]

在Android中生成强度不等的振动模式的algorithm?

我试图以“微脉冲”的方式编程生成Android振动模式,以控制最终用户对振动的感受程度。 这是我见过的几个类似的话题推荐的解决scheme,因为API没有提供控制振动强度的接口(因为我了解它的硬件function)。 然而,生成这些模式的algorithm似乎只是暗示,但没有实际的algorithm发布。 我想要做的是,给定0.0f和1.0f之间的input强度,按照如下的模式生成一个数组: (zero intensity) [20,0] [9,1,9,1] … [3,1,3,1,3,1,3,1,3,1] [2,1,2,1,2,1,2,1,2,1,2,1,2] (half intensity) [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] [1,2,1,2,1,2,1,2,1,2,1,2,1,1] [1,3,1,3,1,3,1,3,1,3] … [1,9,1,9] (full intensity) [0,20] 任何帮助写这样一个algorithm(或更好的策略,以达到相同的目标的build议)? 编辑:我已经添加了一个100的声誉的组合奖励:)

对包含string的文件名数组进行sorting

对于我的项目,我需要从FTP服务器下载一个zip文件,每年发布一个新的zip约13次。 我需要按照服务器的命名约定来下载最新的文件: Prefix + release number (one or two digits) + year (two digits) + suffix + ".zip" 例如: ALFP1016F.zip 前缀总是相同的(ALFP),后缀是F或P(代表“全部”或“部分”;我只需要以后缀F结尾的文件)。 最重要的是,在我需要忽略的目录中还有其他几个文件,因为它们有不同的前缀。 然后,我需要按照以下优先顺序获取数组中最近的文件: 最近一年。 当然99不应该被视为最近的一年。 最近的版本号 例如,如果我有这个文件名列表( 完整的服务器目录 ): 1stpage712.pdf 1stpage914.pdf ALFP1015F.zip ALFP1015P.zip ALFP716F.zip ALFP716P.zip FSFP816F.zip FSFP816P.zip 我的预期产出将是 ALFP716F.zip 是因为16是最近一年,而7是当年最新的发行版本号 。 以下是我迄今为止所做的: //necessary imports import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; //initialize FTP client ftpClient = […]