在命令行中创建二维几何
几何三要素
要通过构造实体几何(CSG)建模来描述您的几何,请使用三个数据结构。
列描述基本形状的矩阵。当您从PDE Modeler应用程序导出几何图形时,这个矩阵具有默认名称
gd
(几何描述)。一种矩阵,其列包含基本形状的名称。用0或32填充列(空白),这样每一列都有相同的长度。
一组字符,描述构成几何图形的基本形状的并、交和集合差异。
基本形状
若要在命令行中创建基本形状,请创建一个矩阵,其中每个列描述一个基本形状。如果有必要,可以在某些列上添加额外的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]平等的
消除面部界限。
[dl2,bt2] = csgdel(dl,bt);图pdegplot (dl2,“EdgeLabels”,“上”,“FaceLabels”,“上”) xlim([-1.5,1.5]平等的
分解几何数据结构
分解的几何矩阵具有以下编码。矩阵的每一列对应一个边界段。任何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轴和第一半轴 |