为了理解marching cube算法,我遵循了以下页面:
http://paulbourke.net/geometry/polygonise/
我有几个问题:
按位和是什么意思?,以及如何使用edge table来找到正确的tringles?
如果(网格值[0]if(边缘表[cubeindex]&1)
垂直列表[0]=
顶点中心点(isolevel,grid.p[0],grid.p[1],grid.val[0],grid.val[1]);

最佳答案

不会读那篇太长的课文。但在这里您可以找到位运算符如何工作https://en.wikipedia.org/wiki/Bitwise_operations_in_C。`

cubeindex |= 1 --> cubeindex = cubeindex | 1.

例如cubeindex=26(binary 11010)和1(binary 00001
11010  | 00001 = 11011

给你一张26->27的广告。
对于以下edgeTable[cubeindex] & 1
例如cubeindex=17(binary 10001)\
10001 &  00001  = 00001

这变成1。在if语句中使用,它只检查数字edgeTable[cubeindex]是否包含位00001,并相应地返回true或false。
希望这有帮助:)
干杯

10-06 05:19