主要内容

在命令行中创建二维几何

几何三要素

要通过构造实体几何(CSG)建模来描述您的几何,请使用三个数据结构。

  1. 列描述基本形状的矩阵。当您从PDE Modeler应用程序导出几何图形时,这个矩阵具有默认名称gd(几何描述)。

  2. 一种矩阵,其列包含基本形状的名称。用0或32填充列(空白),这样每一列都有相同的长度。

  3. 一组字符,描述构成几何图形的基本形状的并、交和集合差异。

基本形状

若要在命令行中创建基本形状,请创建一个矩阵,其中每个列描述一个基本形状。如果有必要,可以在某些列上添加额外的0,以使所有列的长度相同。使用以下编码编写每一列。

价值
1 1(表示圆)
2 x-圆心坐标
3. y-圆心坐标
4 半径(严格为正)

多边形

价值
1 2(表示多边形)
2 线段数n
3.通过3 + n - 1 x边起始点的-坐标
3 + n通过2 * n + 2 y边起始点的-坐标

请注意

你的多边形不能包含任何自交点。

矩形

价值
1 3.(表示矩形)
2 4(线段数)
3.通过6 x边起始点的-坐标
7通过10 y边起始点的-坐标

矩形的编码与多边形的编码相同,只是第一行是3.而不是2

椭圆

价值
1 4(表示椭圆)
2 x-椭圆中心坐标
3. y-椭圆中心坐标
4 第一个半轴长度(严格为正)
5 第二半轴长度(严格为正)
6 以弧度为单位的角度x轴到第一半轴

矩形与圆形端盖和另一个圆形切除

指定一个矩阵,该矩阵具有一个矩形,具有一个圆形端盖和另一个圆形切除。

创建基本形状

首先,创建一个矩形和两个相邻的圆。

Rect1 = [3 4 -1 1 1 -1 0 0 -0.5 -0.5];C1 = [1 1 -0.25 0.25];C2 = [1 -1 -0.25 0.25];

在圆上附加额外的零,使它们的行数与矩形相同。

C1 = [C1;zero (length(rect1) - length(C1),1)];C2 = [C2; 0 (length(rect1) - length(C2),1)];

将这些形状组合成一个矩阵。

gd = [rect1,C1,C2];

为基本形状创建名称

为了创建描述基本形状的并和交的公式,您需要为每个基本形状命名。以矩阵的形式给出名称,其列包含基本形状矩阵中相应列的名称。如有必要,用0或32填充列,使每列具有相同的长度。

创建名称的一种简单方法是指定一个包含名称的字符数组,然后取转置。使用字符函数创建数组。这个函数根据需要填充行,使所有行都具有相同的长度。继续这个例子,为这三个形状命名。

Ns = char(“通过rect1”“C1”C2的);Ns = Ns ';

设置公式

通过编写一组描述基本图形的并和交的字符来获得最终的几何图形。使用+联盟,十字路口,-表示集合差异,括号表示分组。+而且具有相同的分组优先级。-分组优先级较高。

继续示例,指定矩形和的并集C1,然后相减C2

科幻小说=(通过rect1 + C1) c2的

创建几何图形,消除面部边界

在创建了基本形状、给它们命名并指定了一组公式之后,使用decsg.通常,还会删除部分或全部生成的面边界。完成示例后,使用设置的公式组合基本形状。

[dl,bt] = decsg(gd,sf,ns);

查看有或没有边界移除的几何图形。

pdegplot (dl,“EdgeLabels”“上”“FaceLabels”“上”) xlim([-1.5,1.5]平等的

图中包含一个轴对象。axis对象包含13个类型为line, text的对象。

消除面部界限。

[dl2,bt2] = csgdel(dl,bt);图pdegplot (dl2,“EdgeLabels”“上”“FaceLabels”“上”) xlim([-1.5,1.5]平等的

图中包含一个轴对象。axis对象包含8个类型为line, text的对象。

分解几何数据结构

分解的几何矩阵具有以下编码。矩阵的每一列对应一个边界段。任何0项都表示这一行不需要编码。例如,如果矩阵中只有线段,那么矩阵有7行。但如果还有一个圆段,那么矩阵就有10行。多出来的三行列用0填充。

椭圆
1 1 2 4
2 开始x协调 开始x协调 开始x协调
3. 结束x协调 结束x协调 结束x协调
4 开始y协调 开始y协调 开始y协调
5 结束y协调 结束y协调 结束y协调
6 段左侧的区域标签,由起点和终点诱导方向(0是外部标签) 段左侧的区域标签,由起点和终点诱导方向(0是外部标签) 段左侧的区域标签,由起点和终点诱导方向(0是外部标签)
7 段右侧的区域标签,由起点和终点诱导方向(0是外部标签) 段右侧的区域标签,由起点和终点诱导方向(0是外部标签) 段右侧的区域标签,由起点和终点诱导方向(0是外部标签)
8 x圆心坐标 0 x椭圆中心坐标
9 y圆心坐标 0 y椭圆中心坐标
10 半径 0 第一半轴的长度
11 0 0 第二半轴长度
12 0 0 以弧度为单位的角度x轴和第一半轴