我正在构建一个2D物理引擎,我想添加宽相碰撞检测,但我只知道2或3种类型:
但肯定还有更多选择吗?这些是什么?并且可以提供每个的基本描述或链接到描述吗?
我已经看到了这个,但我要求提供一系列可用的算法,而不是最符合我需求的算法.
在这种情况下,"广泛相位碰撞检测"是物理引擎用来确定模拟中哪些物体足够接近以保证进一步调查和可能的碰撞解决的方法.
我有一些自动递增id的mysql表是主键,但我注意到我从未真正使用它们......我曾经认为每个表都必须有一个主键,所以我想这就是我之前创建它们的原因.如果我根本不使用它们,我应该将它们全部删除吗?
如何检查TreeView中是否选择了某个项目?在C#中
我想检查是否选择了任何内容,而不是特定项目
假设我在iPhone上有一个加密文件,每次我要解密它时,我想"画"一个解密符号,而不是用键盘输入.
如果您要求用户在每次需要时绘制符号来解密文件(例如,每次他们启动您的应用程序时),他们可能更喜欢它必须在小键盘上键入20个字符左右的密码,并且他们仍然会得到一个20字符密码给他们的安全性(取决于他们绘制的形状/符号有多复杂).
他们绘制的符号很可能是一个笔划(例如,一旦你抬起手指就会结束),但可能非常复杂,以至于其他人很难重复它,即使他们确实看到你画了它.比如每个人的签名是如何独特且难以复制的.实际上,如果它必须防止被复制,这可能会使它过于复杂,所以现在可以忽略它,我们可以假设其他人不会看到符号,因此它是否可以重复无关紧要他们与否.
我想真正的问题是你如何将相同(合理)的笔划一致地转换为相同的密钥(例如哈希值).在算法中显然应该有一些宽恕的门槛,因为用户不能期望完全重复100%的笔画.
使用符号作为解密方法会为此问题添加一个完整的其他维度.您永远不希望以未加密的形式将生成的哈希值存储在任何位置,因此有人可能能够访问硬盘驱动器的该部分并获取解密密钥,而无需完成整个绘图过程并手动解密文件.您也很可能不想存储有关如何绘制形状的任何信息.
用户可能用作其解密符号的笔划的一个很好的例子是"&"符号.想象一下,用户每次需要解密文件时都会在iPhone上绘制此符号.每次绘制时,符号的大小可能不同.而且,符号的旋转可以根据用户如何握住他们的设备而不同.理想情况下,在两种情况下,因为绘制符号,相对于用户笔划,相同,它应该能够生成相同的哈希值,从而解密文件.
我认为形状或字符识别之类的东西是类似的算法.用户绘制某些东西(合理地表示形状)然后将其固定为正确的形状,每次绘制时都具有相同的散列值.但是,对于像这样的东西,你很可能需要一个可以绘制的形状数据库,如果你选择像字母表中所有字母的东西,你只能得到26个字母.假设用户只需要绘制一个符号来解密文件,那么你就有了一个极不安全的密码,只有26种可能性.
我想到的另一件事是你可以分解绘制成小段的符号,然后对它们进行符号识别.因此,假设您在数据库中有4个符号:垂直线,水平线和两个方向的对角线.现在,当用户绘制时,每个段被识别为其中之一,然后它们被组合以形成一些散列值.因此,假设用户选择小写字母"r"作为其解密符号.因此,他们首先绘制一条垂直线,然后是垂直线,然后是对角线和右边.这种方法的一个问题是你怎么知道何时将笔划分成单个部分?您可能还需要考虑每个单独段的粗略长度(例如,以40像素为增量).这样,如果有人画了一个变形的"r",其中驼峰出现在底部附近,它不会被识别为相同的符号,因此不会解密文件.
第三种方法可能是将屏幕划分为一个网格(不确定哪个尺寸)并简单地查看绘制笔划的单元格,并以某种方式使用此数据生成字符串.
关于如何实现这一点的任何其他想法?你听说过这样的事吗?是否存在任何阻碍此类系统工作的根本缺陷?
谢谢
我将选项更改为UserInstance ="False"后,错误开始发生.
因为我想使用全文搜索,所以需要更改选项.但它停止工作了.有没有办法让它再次运作?
我正在运行应用程序池作为网络服务完全控制.
使用C++:
我目前有一种方法,如果事件发生,就会创建一个对象,并将指向该对象的指针存储在指向该类对象的指针向量中。但是,由于一旦局部作用域结束,对象就会被销毁,这是否意味着我存储在向量中的对象的指针现在为空或未定义?如果是这样,是否有任何通用方法可以解决这个问题 - 我假设最好的方法是在堆上分配。
我问这个问题是因为当我尝试访问向量并对内容进行操作时,我遇到了奇怪的行为,并且我不确定这是否可能是原因,或者是否是完全不相关的东西。
我在我的一些项目中使用异步方法,我喜欢它,因为它允许我的应用程序更具可伸缩性.但是,我想知道异步方法在后台如何真正起作用?.NET(或Windows?)如何知道呼叫已完成?根据我所做的异步调用的数量,我可以看到创建了新线程(但并不总是......).为什么?
另外,我想监控请求完成的时间.为了测试这个概念,我编写了以下代码,它在启动秒表后立即异步调用Web服务.
for (int i = 0; i < 10000; i++)
{
myWebService.BeginMyMethod(new MyRequest(), result, new AsyncCallback(callback), i);
stopWatches[i].Start();
}
// Call back stop the stopwatch after calling EndMyMethod
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为所有请求(10000)具有相同的开始时间并且持续时间将线性上升(调用0 =持续时间1,调用1 =持续时间2等).如何使用异步方法监控呼叫的实际持续时间(从请求真正执行到结束的那一刻)?
更新:异步方法是否会阻止流程?我知道它使用.NET ThreadPool但是如何IAsyncResult知道调用已完成并且是时候调用该CallBack方法了?
我正在编写一个PHP页面,将上传的文件转换为XML.我只想将新闻文件转换为XML.唯一需要转换的文件是news.htm.我把问题缩小到这个if语句.这有什么问题?
$fileName = basename( $_FILES['uploaded']['name'] );
if( strcmp( $fileName, "news.htm") == 0 )
(
//convertToXML();
)
Run Code Online (Sandbox Code Playgroud) 我把它设置为iPhone /网络模式,但设备永远不会出现在任何地方.通过xcode连接并运行应用程序.你知道一个有用的教程吗?
有没有办法打印出当前正在执行当前方法的线程ID?
(Objective-c please)
algorithm ×2
c# ×2
iphone ×2
.net-3.5 ×1
asynchronous ×1
broad-phase ×1
c++ ×1
cocoa ×1
drawing ×1
encryption ×1
file-upload ×1
filenames ×1
mysql ×1
objective-c ×1
performance ×1
php ×1
physics ×1
primary-key ×1
shark ×1
sql-server ×1
strcmp ×1
winforms ×1
xml ×1