【发布时间】:2019-01-14 11:50:30
【问题描述】:
我试图理解来自paper concerning fluid simulations for games 的一段代码。我正在研究解决边界条件的方式。由于我不了解 C++,因此我遇到了额外的困难。
据我了解:
IX(i, j)表示在 x 方向位于i,在 y 方向位于j的二维网格单元u[IX(i, j)]是 (i,j) 单元格中的速度
以下宏用于IX(i, j):
#define IX(i, j) ((i) + (N + 2) * (j))
【问题讨论】:
-
并非没有任何上下文。
x是什么类型?ix是什么类型?ix[1,i]和ix(1,i)有什么区别? -
@klutt 不,它没有,如果有
ix(0, 1)和ix不是宏。 -
看起来 OP 的意思是
x[IX(0,i)] = b==1 ? -x[IX(1,i)] : x[IX(1,i)];但他们切换了一些符号并以废话告终。 -
它与 Python 中的
x[IX(0 ,i)] = -x[IX(1,i)] if b == 1 else x[IX(1,i)]含义相同(使用合适的IX函数)。重要性在论文周围的文字中进行了解释。