首页/文章/ 详情

线段的基本操作---绝对坐标和相对坐标(line | linerelative)

1年前浏览553

1 引言

线段(line)是构成数值模拟最基本的要素【Plaxis使用Spyder替换默认编辑器SciTE的方法】,例如模型的几何形状、线性载荷、结构元等,因此灵活掌握线段的操作对于数值模拟具有重要意义。这个笔记讨论了使用绝对坐标和相对坐标生成线的操作原理,其目的是在不同软件之间进行数据交换【使用Python自动化Plaxis的命令流】。

line: 生成一条线(Creates a line)

linerelative: 使用相对坐标生成线(Creates lines using relative coordinates)

线段生成的高级用lineangles不在本文的讨论之内。

g_i.line绝对坐标

当使用g_i.line命令产生出一条线段时,这个线段对象line_g是一个list,可以用type()函数和len()函数检查,共储存了3个对象,前两个是点(Point)的坐标, 最后一个是由两点组成的线(Line)。


line_g = g_i.line((2, 3), (4, 5))

由于Line对象本身也是一个list,因此需要使用loop取出两个点的坐标,代码如下所示:






line_g = g_i.line((2, 3), (4, 5))[-1]for point in line_g:    x_c = point[0]    y_c = point[1]        print(x_c, y_c)


g_i.linerelative相对坐标

使用相对坐标生成线段的方法与使用绝对坐标g_i.line的生成方法一样,只不过使用的是g_i.linerelative函数。







point_g = g_i.point(2, 4)line_g = g_i.linerelative(point_g, (6, 8))[-1]for point in line_g:     x_c = point[0]     y_c = point[1]         print(x_c, y_c)


4 多义线的产生

当赋值多个坐标点时,line和linerelative可生成顺序连接的线段,类似于多义线(Polyline)。在这种情况下,产生的list首先存储各个点的坐标,然后存储各条线段,例如


line_g = g_i.line((2, 3), (4, 5), (6,7))

有5个对象,前3个是坐标点,后两个是线段,以此类推,如果有n的点,那么list的长度是2n-1。不过,linerelative产生的list与绝对坐标存储的对象不一样,它只存储新产生的坐标点,而不包含初始的坐标点,不太清楚它是故意这样做的,还是设计的缺陷遗漏了第一个点,个人觉得后者的可能性较大,我们将在后续的版本中检查这个特性。









point_g = g_i.point(2, 3)res = g_i.linerelative(point_g, (6, 4), (1, 3))lines_g = [item for item in res if item._plx_type == 'Line']for line in lines_g:    for point in line:           x_c = point[0]        y_c = point[1]            print(x_c, y_c)


来源:计算岩土力学
科普通用
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-12-03
最近编辑:1年前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 144粉丝 1047文章 1776课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈