标签: dynamic

对象之间有效碰撞检测的最佳算法

我糊涂了.好吧不要混淆,不要想做6个测试程序,看看哪个算法最好.所以我想我会问我在这里的专家朋友给我带来他们经验的好处.

该场景是一个3d场景,与其内部对象的大小相比,可能面积相当大.场景中可能存在数千个对象.物体的大小从十分之一到大约10个单位不等,但不大(或更小).对象倾向于聚集在一起,但这些聚类可能会出现在场景中的任何位置.所有物体都是动态的,动人的.集群倾向于一起移动,但是当它们发生时,它们的速度可能不会一直相同.还需要考虑静态几何.虽然有大量的动态对象,但场景中也有一些静态对象(静态对象往往比动态对象大一到两个数量级).

现在,我想要的是一个空间数据结构,用于有效地对场景中的所有项目执行碰撞检测.如果算法也支持可见性查询,那么对于渲染管道来说会很棒.为简单起见,假设此处的碰撞检测是宽相的(即所有动态对象都是完美的球体).

所以,在我的研究中,我可以使用以下方法之一:

(1)八叉树(2)松散八叉树(3)线性八叉树(+松散)(4)KD树(5)BSP树(6)哈希

到目前为止(6)是我尝试过的唯一一个.它实际上是在速度方面完全高超(8192项碰撞下1ms的检查我的系统上),如果场景中的对象是平均均匀地分布.如果所有物体都被卷入一个较小的区域,这不是一个好的算法,我想这是可能的.

有没有人对使用哪一个有所了解,或者我可以用来加快速度的任何技巧?我想无论发生什么,我都可以使用单独的BSP树作为静态几何体.我想动态的"领域"是我最关心的问题.注意:没有CUDA,这只是CPU:p.

谢谢

编辑:好的,多亏了Floris,我发现了更多关于AABB Trees的信息.这里有关于GameDev的旧讨论:http://www.gamedev.net/topic/308665-aabb-tree---wheres-the-poly-o_o/ .看起来是一个很好的妥协.

最终编辑:决定不重新发明轮子.子弹物理库可能会为我做所有这些(它有AABB树,也可能非常优化).

structure dynamic collision-detection

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

如何为java预处理语句插入使用tablename变量

我正在使用java PreparedStatment对象来构造一系列批量INSERT查询.查询语句的格式是......

String strQuery = "INSERT INTO ? (col1, col2, col3, col4, col5) VALUES (?,?,?,?,?,?);";
Run Code Online (Sandbox Code Playgroud)

...所以字段值和表名都是变量(即,我有多个具有相同列格式的表,其中每个插入将指向不同的一个).如果删除"?",我可以让执行工作 tablename变量和硬代码,但每个预处理语句将被插入到不同的表中,因此需要保留一个变量,我在执行批处理查询之前立即填充...

stmt.setString(1, "tableName1");
Run Code Online (Sandbox Code Playgroud)

我怎么能让这个变成动态变量呢?

java sql variables dynamic prepared-statement

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

在handsontable单元格中渲染角度组件

在我的一个项目中,我尝试在表格中显示Angular Components(如自动完成下拉搜索).由于我的要求(比如用ctrl+点击多选不同的单元格),我决定给它一个动手的去.

我使用了handontable渲染器动态添加组件.

代码看起来像这样

matrix.component.ts

       this.hot = new Handsontable(this.handsontable.nativeElement, {
            data: this.tableData,
            colWidths: [80, 300],
            colHeaders: ['Id', 'Custom Component'],
            columns: [
                {
                    data: 'id',
                },
                {
                    data: 'id',
                    renderer: (instance: any, td: any, row: any, col: any, prop: any, value: any, cellProperties: any) => {
                        if (cellProperties.hasOwnProperty('ref')) {
                            (cellProperties.ref as ComponentRef<CellContainerComponent>).instance.value = row;
                        } else {
                            cellProperties.ref = this.loadComponentAtDom(
                                CellContainerComponent,
                                td,
                                ((component: any) => {
                                    component.template = this.button4Matrix;
                                    component.value = row;
                                }));
                        }
                        return …
Run Code Online (Sandbox Code Playgroud)

dom dynamic handsontable typescript angular

41
推荐指数
1
解决办法
1569
查看次数

仅当“--module”选项为“es2020”、“esnext”或“system”时才允许使用“import.meta”元属性。ts(1343)

尝试使用 import.meta 时,我不断收到“仅当 '--module' 选项为 'es2020'、'esnext' 或 'system'.ts(1343) 时才允许使用 'import.meta' 元属性” .url(如Parcel 文档中所示)。是的,我已经按照消息中的建议配置了 tsconfig(尝试了所有 3 个选项)。

我正在尝试使用 React、Typescript 和 Parcel 2 从资产文件夹动态加载图像。我在互联网上搜索解决方案,并且阅读了有关 Typescript 中合并和增强类型的内容,但我似乎无法做到这一点工作。

image dynamic typescript reactjs parceljs

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

什么使编程语言具有动态性?

什么使编程语言被称为动态语言?我应该使用动态编程语言来解决哪些问题?静态编程语言和动态编程语言之间的主要区别是什么?

static programming-languages dynamic

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

动态的使用被认为是一种不好的做法吗?

在C#中,有人可以这样做:

MyClass myInstance        = new MyClass();
dynamic mydynamicInstance = myInstance;
Run Code Online (Sandbox Code Playgroud)

然后,调用一个方法,如:

//This method takes a MyClass argument and does something.
Caller.InvokeMethod(myDynamicInstance);
Run Code Online (Sandbox Code Playgroud)

现在,这将导致在运行时确定myInstance类型,如果它有效,Caller.InvokeMethod将正常调用.

现在,我的问题是,如果这被认为是一种不好的做法dynamic,特别是在以下情况下:

1)InvokeMethod使用内部反射实例化myDynamicInstance类型的另一个实例.

2)有一个抽象基类MyBaseClass和它的许多子类,包括MyBaseClass.如果我们InvokeMethod为所有这些派生类提供了许多重载方法,我们是否可以使用它来在运行时允许类型确定,然后通过方法重载(或对该类方法调用的后期绑定)进行适当的调用)?:

public abstract class MyBaseClass         {/*...*/}
public class MyClass        : MyBaseClass {/*...*/}
public class MyAnotherClass : MyBaseClass {/*...*/}

MyBaseClass myBaseClassRef = new MyClass();
dynamic myDynamicInstance  = myBaseClassRef;

Caller.InvokeMethod(myDynamicInstance);
Run Code Online (Sandbox Code Playgroud)

c# reflection dynamic

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

匿名类型与动态类型

c#3.0中的匿名类型(var)和c#4.0中的动态类型(动态)之间的真正区别是什么?

.net c# dynamic anonymous-types

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

以编程方式将ImageView的重力设置为android中心

我想用以下代码将Imageview数组的重力,ImageIcons [i]设置到中心,

ImageIcons[i] = new ImageView(this);
ImageIcons[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
layout.addView(ImageIcons[i]);
Run Code Online (Sandbox Code Playgroud)

在设定引力时我被困住了.我要求SO人员指导我.

谢谢

android center dynamic gravity android-imageview

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

动态编程和贪婪方法有什么区别?

在使用方面,动态编程和贪婪方法之间的主要区别是什么?

据我所知,贪婪的方法有时会提供最佳解决方案; 在其他情况下,动态编程方法提供了最佳解决方案.

为了使用一种方法(或另一种方法)获得最佳解决方案,是否必须满足任何特定条件?

algorithm graph dynamic greedy

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

使用动态名称在ES6中创建类的实例?

我希望能够通过将字符串变量传递给函数来实例化特定的ES6类.根据变量的值,将创建一个不同的类.

示例 - 我有2个类ClassOne,ClassTwo.我希望能够将变量传递给函数并返回一个新类.类的名称将与变量相关 - 例如.传球'Two'将创造ClassTwo.

希望只用一个switch条款是这样的:

function createRelevantClass( desiredSubclassName )
{
  let args = [],
      newClass;

  switch( desiredSubclassName )
  {
    case 'One' :
      newClass = new ClassOne(args);
      break;
    case 'Two' :
      newClass = new ClassTwo(args);
      break;
  }

  return newClass;
}
Run Code Online (Sandbox Code Playgroud)

相反,我想以某种方式能够使用变量名创建构造函数调用.那可能吗?

function createRelevantClass( desiredSubclassName )
{
  // desiredSubclassName would be string 'One' or 'Two'

  // how to use the 'new' operator or Reflect here to create the …
Run Code Online (Sandbox Code Playgroud)

javascript class dynamic ecmascript-6

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