1.4.1小节获取到了描述几何模型的几个关键矩阵,其中,gd称为几何描述矩阵,ns称为名称空间矩阵,sf则描述创建几何模型的几何区域之间的集合关系。下面分别进行描述。
1.几何描述矩阵gd
几何描述矩阵gd用于描述使用pdetool画出的CSG模型。矩阵中的每一列对应于CSG模型中的一个区域对象。共支持4种区域对象。对象类型在第一行中指定。
对于圆形区域,矩阵第1行包含1,第2行和第3行分别为x,y坐标,第4行为圆的半径。
对于多边形区域,第1行包含2,第2行为多边形边的线段条数n。下面的n行为边的起点的x坐标。再接下来的n行为边的起点的y坐标。
对于矩形区域,第1行包含3,其他各行的格式与多边形区域的相同。
对于椭圆形区域,第1行包含4,第2行和第3行分别为椭圆中心的x,y坐标,第4行和第5行分别为椭圆的半轴a,b。第6行包含旋转角度。
将描述不同区域对象的列数据放在一起组合成几何描述矩阵时,要求各列数据具有相同的长度,长度不够的用0补齐。如1.4.1小节中gd矩阵所示。
2.名称空间矩阵ns
名称空间矩阵ns将几何描述矩阵gd的列和矩阵sf中的变量名联系起来。ns中的每一列包含一系列字符,每一个字符列指定gd中对应几何区域对象的名称。这样,可以在集合公式sf中通过区域对象的名称指定gd中的对应对象。
注意,名称空间矩阵ns中各列的数字表示的是对应区域对象名称的ASCII码值。比如1.4.1小节中使用了名称"R1"和"E1"表示矩形区域和椭圆形区域,它们的名称空间矩阵ns为:
ns =
82 69
49 49
其中,矩阵第1列的82是字符R的ASCII码值,49是字符1的ASCII码值。同样,矩阵第2列的69是字符E的ASCII码值。
3. sf矩阵
sf矩阵包含一个用名称空间矩阵ns中列数据的集合表示的集合公式。运算符号"+", ""和"-"分别对应于集合运算中的并、交和差。其中"+"和""的运算优先级相同,"-"的运算优先级则更高。可以用小括号控制运算符号的运算优先级。
所以1.4.1小节中,sf矩阵中的公式"R1-E1"表示矩形区域R1和椭圆区域E1进行求差运算,从矩形区域R1中挖去椭圆形区域E1位置和大小的孔洞。