小编Mic*_*ers的帖子

巨大圈子的碰撞检测

检查大量圈子碰撞的最佳方法是什么?
检测两个圆之间的碰撞非常容易,但是如果我们检查每个组合,则它是O(n 2),这绝对不是最佳解决方案.

我们可以假设circle对象具有以下属性:

  • 坐标
  • 半径
  • 速度
  • 方向

速度是恒定的,但方向可以改变.

我想出了两个解决方案,但也许有更好的解决方案.

解决方案1将
整个空间划分为重叠的正方形,并仅检查与同一正方形的圆形的碰撞.正方形需要重叠,因此当圆从一个方格移动到另一个方格时不会出现问题.

解决方案2
在开始时,需要计算每对圆之间的距离.
如果距离很小,那么这些对存储在一些列表中,我们需要检查每次更新中的冲突.
如果距离很大,那么我们存储后更新可能会发生碰撞(可以计算,因为我们知道距离和速度).它需要存储在某种优先级队列中.在先前计算的更新数量之后,需要再次检查距离,然后我们执行相同的过程 - 将其放在列表中或再次放入优先级队列中.

Mark Byers的答案问题

  1. 是游戏吗?
    这是为了模拟,但也可以作为游戏来对待
  2. 您想要每n毫秒重新计算一次新位置,还要检查此时的碰撞情况吗?
    是的,更新之间的时间是不变的.
  3. 您想找到发生第一次/每次碰撞的时间吗?
    不,我想找到每一次碰撞,并在碰撞时做"有所作为".
  4. 准确性有多重要?
    这取决于你的准确度是什么意思.我需要检测所有碰撞.
  5. 如果非常小的快速移动的圆圈偶尔会相互穿过,这是一个大问题吗?
    可以假设速度太小而不会发生.

algorithm geometry collision-detection

52
推荐指数
3
解决办法
8684
查看次数

请求之前的HTTP响应

我的问题可能听起来很愚蠢,但我只是想确定一下:

  • 是否可以在请求该资源之前发送HTTP响应?

比如说你有一个HTML页面index.html,只显示一个名为的图片img.jpg.现在,如果您的服务器知道访问者每次都会请求HTML文件然后请求jpg图像:

服务器是否可以在HTML文件之后发送图像以节省时间?

我知道HTTP是一种同步协议,所以理论上它不应该工作,但我只是想让某人确认(或不是).

networking tcp comet http

51
推荐指数
2
解决办法
3886
查看次数

如何在Java中模拟C#as-operator

在某些情况下,使用类型转换返回null值而不是抛出ClassCastException是切实可行的.C#让as操作员这样做.Java中是否存在等效的东西,因此您不必显式检查ClassCastException?

java casting

49
推荐指数
4
解决办法
2万
查看次数

我应该在哪里进行JUnit测试?

我有2个关于组织单元测试的问题.

  1. 我是否必须将测试放在与测试类相同的包中,还是可以在不同的包中组织测试?

    例如,如果我有有效性其他测试,将它们分成不同的包是否正确,即使它们是同一个类?

  2. 模拟和存根类怎么样?我应该将它们与仅包含测试的包分开,还是将它们放在一起?

java junit unit-testing

49
推荐指数
2
解决办法
2万
查看次数

使用空字段的JAXB编组

这是一个非常简单的请求,但我没有找到办法.

我基本上试图在JAXB中设置一个角色,它表示只要遇到空字段,而不是在输出中忽略它,将其设置为空值.所以对于班级:

@XMLRootElement
Class Foo {
   Integer num;
   Date date;
….
}
Run Code Online (Sandbox Code Playgroud)

如果日期字段为空,则将其编组到XML文件中时,我的输出中没有该元素.我想要做的是包括输出中的所有字段; 如果它们为null,则将它们替换为 - 例如空白.所以输出应该是:

<foo>
  <num>123</num>
  <date></date>
</foo>
Run Code Online (Sandbox Code Playgroud)

谢谢,

Jalpesh.

java jaxb marshalling

48
推荐指数
2
解决办法
6万
查看次数

Eclipse编辑器中的矩形选择与任何Microsoft工具一样

在Word和Visual Studio等Microsoft工具中,有一项功能可以在选择时按Alt键以矩形方式选择文本.Eclipse中有类似的东西吗?

eclipse editor

47
推荐指数
3
解决办法
2万
查看次数

二进制数据发布与卷曲

所以基本上,我正在尝试编写一系列与Dot Net Nuke交互的脚本.我一直在分析流量,现在可以登录并执行一些基本任务.但是,我从未使用curl处理二进制文件上传.有人愿意看这个来帮助我吗?这是请求的解剖:

http://pastebin.com/qU8ZEMaQ

这是我到目前为止卷曲的原因:

http://pastebin.com/LG2ubFZG

编辑:对于懒惰 -

实现文件的长度并存储在LENGTH中 .Bullshit只是带参数的请求URL的复制/粘贴,减去URL本身.

curl -L --cookie ~/.cms --data-binary "@background.jpg" \
--header "Content-Length: $LENGTH" \
--header "Content-Disposition: form-data" \
--header "name=\"RadFileExplorer1_upload1file0\"" \
--header "Content-Type: image/jpg" \
--header "Filename=\"background.jpg\"" \
--data $STUFF \
--referer "Kept-Secret" \
"Kept-Secret"
Run Code Online (Sandbox Code Playgroud)

bash post curl dotnetnuke binary-data

47
推荐指数
1
解决办法
12万
查看次数

如何将泛型参数作为实现接口的枚举?

我不是100%确信这是一个好主意,但我今天碰到了一些目前实现的代码:

class MyWidget <T extends Enum<T> > {
  MyWidget(Map<T, Integer> valueMap) {
    mValueMap = valueMap;
  }

  Map<T, Integer> mValueMap;
}
Run Code Online (Sandbox Code Playgroud)

其中,MyWidget然后提供使用方法mValueMap转换传入的Enum从一个到/ Integer.

我正在考虑做的是试图重构这个,以便我宣布我的枚举:

interface MyInterface {
  public Integer getValue();
}

enum MyEnum implements MyInterface {
  foo, bar;
  public Integer getValue() {
    return ordinal();
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我就可以重MyWidget写成看起来像这样模糊的东西:

public class MyWidget<T extends Enum<T> extends MyInterface> {
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后就可以getValue()从内部的MyInterfaceon T-type对象调用该方法MyWidget.当然,问题是" <T extends Enum<T> extends MyInterface>"不是有效的语法.有什么办法可以解决这个问题吗? …

java generics enums

46
推荐指数
1
解决办法
1万
查看次数

Java Arrays&Generics:Java等价于C#IEnumerable <T>

所以在C#中,我可以将a string[]视为一个IEnumerable<string>.

是否有Java等价物?

java arrays generics

45
推荐指数
3
解决办法
3万
查看次数

在尝试增加jvm内存时,是否可以设置Xmx的最大数量?

有最大值吗?您可以将Xmx设置为?我把它设置为1024米,eclipse打开正常.当我将其设置为1024以上时,eclipse不会打开,我收到错误"jvm已终止.退出代码= -1"...

我这样做是因为我不断得到"java.lang.OutOfMemoryError:Java堆空间".我正在读取35.5Mb .txt文件,当它只是使用" while((line = reader.readLine()) != null)"循环读取文件时会发生此错误.我原本以为1024mb就足够了.谁能帮我?

java eclipse jvm

45
推荐指数
2
解决办法
11万
查看次数