小编Mik*_*ley的帖子

如何有效地绘制数千个顶点?

我目前正在编写一个交互式模拟器,它显示了粒子系统的演变.我正在使用Visual Studio在Windows 7 32位上进行开发.

目前,我有一个功能来绘制屏幕上的所有粒子,如下所示:

void Simulator::draw()
{
    glColor4f(255, 255, 255, 0);
    glBegin();
    for (size_t i = 0; i < numParticles; i++)
        glVertex3dv(p[i].pos);
    glEnd();       
}
Run Code Online (Sandbox Code Playgroud)

这非常有效并且全部用于测试,但它的速度非常慢.如果我在屏幕上有200个粒子,没有做任何其他计算(只是重复调用draw()),我得到大约60 fps.但是,如果我使用1000个粒子,它的运行速度只有15 - 20 fps左右.

我的问题是:我怎样才能更快地绘制粒子?我的模拟以相当不错的速度运行,并且在某个点上它实际上被图画阻止(!).

c++ opengl 3d performance

4
推荐指数
1
解决办法
1048
查看次数

优化Mathematica中的内循环计算

我目前正在Mathematica中进行一些与量子力学相关的计算.随着我们从1D变为2D点阵模型,问题规模变得越来越成问题

目前,我们的总结看起来像这样:

corr[r1_, r2_, i_, j_] = Sum[Cos[f[x1, x2] Angle[i] r1 + f[y1, y2] Angle[j] r2], {x1, HL}, {x2, HL}, {y1, HL + 1, 2 HL}, {y2, HL + 1, 2 HL}];
Run Code Online (Sandbox Code Playgroud)

F[.,.]是预先计算的相关函数的查找函数,并且Angle [.]也是预先计算的.

完全没有办法以任何方式进一步简化这一点.我们已经通过将复指数(具有零虚部)转换为上面的余弦表达式来进行简单优化.

最大的问题是那些HL是基于尺寸大小的:对于沿轴的线性尺寸L,HL对应于L ^ d(这里d = 2).所以我们的计算实际上是O(n ^ 8),而忽略了i,j的和.

对于L = 8,这通常不是太糟糕,如果不是因为我们对r1的125个值进行迭代,而对r2的125进行迭代以创建125×125的图像.

我的问题是:如何在Mathematica中最有效地计算出来?我会用另一种语言来做这件事,但是如果我在像C++这样的东西中尝试它会有一些问题会使它变得那么慢.

额外信息:这是ND-ND(数字密度)相关计算.所有x和y都指的是离散2D网格上的discete点.这里唯一不分散的东西是我们的r.

math optimization physics wolfram-mathematica

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

Mathematica中的复共轭转置

Mathematica中是否存在复共轭转置的现有函数?matlab中的等价物是撇号算子(').

wolfram-mathematica linear-algebra

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

函数指针,函数对象和lambda函数有什么区别?

我知道每个都可以传递给另一个函数.在我看来,所有这些都像是微妙差异的替代品.

  1. 函数指针:指向函数的指针

  2. function object:重载了()运算符的类的实例; 能够充当一种功能;

  3. lambda函数:一个匿名函数(在C++ 11中新引入),可以在现场定义,并且仅在语句的生命周期中存在

由于微妙之处,我想知道在给定场景中哪三种选择中哪一种最合适.所以,那里的专家,请一些亮点(根据一些选择标准?),以便我可以在不同的场景中决定和使用它们.

c++ c++11

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

对包含其中仅3个元素的100个元素的整数数组进行排序

假设我有一个包含100个数字的数组.数组中唯一不同的值是1,2和3.这些值在整个数组中随机排序.例如,可以将数组填充为:

int values[100];

for (int i = 0; i < 100; i++)
    values[i] = 1 + rand() % 3;
Run Code Online (Sandbox Code Playgroud)

我怎样才能有效地对这样的数组进行排序?

c++ sorting algorithm

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

Java中的语法排序

以下两种语法顺序在Java中有效.为什么两者都允许并且是否有首选语法顺序?

  private final static String consultantType = "consultantType";
  private static final String consultantId = "consultantId";
Run Code Online (Sandbox Code Playgroud)

java syntax

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

如何在离子列表中显示两个右对齐的图标?

我正在尝试列出可以单击的两个按钮图标列表.我尝试过这样的事情,但图标重叠:

<ion-list>
    <ion-item ng-repeat="item in items" class="item-button-right">
        {{ item.Info }}
        &nbsp;

        <button class="button button-positive" ng-click="Accept(item)">
            <i class="icon ion-checkmark"></i>
        </button>
        <button class="button button-assertive" ng-click="Reject(item)">
            <i class="icon ion-close"></i>
        </button>
    </ion-item>
</ion-list>
Run Code Online (Sandbox Code Playgroud)

我想要获得的理想行为是在左侧显示一些小信息,并在右侧显示两个选项.

我在这里有一个简单的自包含正确示例:http://codepen.io/anon/pen/vzLob

javascript css angularjs ionic-framework

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

C# 中的简单 3D 图形

我目前正在开发一个需要进行一些可视化的应用程序,我将要做的最复杂的事情是显示点状对象。

对我的目的而言,除此之外的任何事情都是完全矫枉过正的,因为除了绘制点状物体之外,我不会做任何事情。

话虽如此,满足我的需求的最简单的解决方案是什么?

c# 3d

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

C++按值返回

从下面的代码我期望CA类可以调用以下代码

  1. 构造函数创建函数返回的临时对象 foo
  2. 复制构造函数以创建要传递给amain中变量的变量
  3. 另一个复制构造函数,它将a根据函数返回的值创建变量.

为什么不是这样?我的结果就是

A
Run Code Online (Sandbox Code Playgroud)

虽然我在期待

ABB
Run Code Online (Sandbox Code Playgroud)

所以只调用构造函数.编译器是在幕后优化还是我错过了一些C++概念?

class CA{
public:
   CA(){ std::cout << "A"; }
   CA( const CA& ){ std::cout << "B"; }
   CA& operator=(const CA& ){ std::cout << "C";return *this; }
};

CA foo(){
      return CA();
}

int main(){
 CA a = foo();    
}
Run Code Online (Sandbox Code Playgroud)

c++ function copy-constructor

2
推荐指数
1
解决办法
115
查看次数

实体框架包含无法编译

我通过DbContext生成器生成了我的实体,并将其添加到使用我的实体上下文模型的API控制器中.以下方法无法编译:

public IEnumerable<casino> Getcasinos()
    {
        var casinos = db.casinos.Include(c => c.city).Include(c => c.state);
        return casinos.AsEnumerable();
    }
Run Code Online (Sandbox Code Playgroud)

编译器说:

Cannot Convert Lambda Expression to Type 'String' Because It Is Not A Delegate Type
Run Code Online (Sandbox Code Playgroud)

有什么想法为什么这么说?我System.Linq导入了名称空间.

entity-framework asp.net-web-api

2
推荐指数
1
解决办法
856
查看次数