小编Lem*_*bon的帖子

具有高多边形网格的 OpenGL 3D 光线拾取

如何使用包含高多边形网格的模型在 3d 场景中实现 3d 光线拾取?

迭代所有三角形以执行三角形线相交测试需要太多时间。我知道存在八叉树等方法,应该可以将它们用于场景中的模型,但我不知道我应该如何在网格级别使用这些概念。但是,如果您在网格级别使用八叉树,那么应该如何解决超出八叉树体积边界的多边形问题?

对于实时 OpenGl 应用程序的高多边形模型的 3d 射线交叉,您有什么建议吗?

opengl 3d ray-picking

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

如何将"std :: vector <std :: string>"转换为"const char*array"?

有一个函数需要一个const char*数组,基本上是一个单词列表.因为这个单词列表可以改变,所以我不能在程序启动时声明和初始化这个数组.现在,我有一个字符串向量,我需要将其转换为const char*数组.如何才能做到这一点?谢谢!

例:

std::vector<std::string> list;
list.push_back("word1");
list.push_back("word2"); // and so on...

const char* wordList[] = ???
Run Code Online (Sandbox Code Playgroud)

c++ arrays string char

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

C++ 中的“删除”实际上做了什么?

我不确定这个命令delete在 C++ 中到底做什么?据我所知,为了释放内存delete,我必须在我之前用 实例化的对象上使用new,例如:

Obj* object = new Obj();
delete object;
Run Code Online (Sandbox Code Playgroud)

delete实际上是否从我的对象中删除了数据,它是否以任何方式改变了对象和对象本身内部的数据,或者它只是调用相应的析构函数?如果析构函数为空,则使用会对delete对象产生任何后果吗?这个问题的原因如下:

如果我只是以这种方式删除对象,指针就会无效,并且我的程序会崩溃。因此,我认为我应该使用删除命令调用析构函数,并在析构函数内部采取进一步的步骤来实际进行清理,并确保引用该对象的其他对象知道该指针确实无效。

c++

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

在全局范围内声明动态大小的数组

我不经常使用C,所以遇到了一个可能简单的问题。我有几个函数,需要访问一个全局数组变量g。但是,此变量的实际大小必须在init()-function中定义。大小取决于其他内容,因此g必须以动态大小声明。我阅读了malloc和其他功能,但不确定如何正确使用它们。

例:

double g[dynamic]; // size is not known yet
int n;

void init()
{
   // calculate "n" for array size
   n = ...
   // declare and initialze g with a size "n"
}

void dostuff()
{
   for (int i = 0; i < n; i++)
      work(g[i]);
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

c size malloc dynamic

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

检查一次

在MATLAB函数中,使用以下代码:

function stuff()

  if a == 2

    do1();

  else

    do2();

  end
end
Run Code Online (Sandbox Code Playgroud)

这段代码放在一个模拟循环中,每秒被调用1000次或更多。该if语句来唯一的事情确实在函数的第一个电话,之后,要么do1do2使用,变量a不会发生任何变化。

如何通过此if语句防止浪费处理时间?基本上,我该如何告诉Matlab,不要再检查if语句,而只调用在第一次调用中被选中的那个函数stuff

matlab if-statement

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

标签 统计

c++ ×2

3d ×1

arrays ×1

c ×1

char ×1

dynamic ×1

if-statement ×1

malloc ×1

matlab ×1

opengl ×1

ray-picking ×1

size ×1

string ×1