![](/img/trans.png)
[英]How to convert a numpy array [(x1,y1),(x2,y2),(x3,y3),…(xn,yn)] to [(x1,y1,x1^2,y1^2),(x2,y2,x2^2,y2^2),…(xn,yn,xn^2,yn^2)]
[英]How to express x1, y1, x2, y2 from a list
我有一个问题,我需要找到四边形的周长,只知道点的坐标。 当我输入时,我有"# LB3: 5 # RB5: 5 # LT1: 1 # RT2: 6"
。 我使用正则表达式并删除数字。
要计算四边形的周长,首先我需要找到dist
。 从列表a
,我表示x1, y1, x2, y2
dist = sqrt ((x2 - x1) ** 2 + (y2 - y1) ** 2)
我的代码:
def perimetr(data):
a = []
result = re.findall(r'\d',data)
for i in result:
a.append(i)
#dist = sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
return a
你只需要提取真实数据,那些没有粘在单词上的数据,我建议使用单词边界\\b
,所以正则表达式\\b\\d+\\b
re.findall
已经返回一个列表
你有一个str
列表,你需要整数: map(int, re.findall(r'\\b\\d+\\b', data))
列表索引
dist = sqrt((a[2] - a[0]) ** 2 + (a[3] - a[1]) ** 2)
开箱
x1, y1, x2, y2 = a
周长是边长,公式是这样的
2 * (x2 - x1) + 2 * (y2 - y1)
你的公式sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
大约是勾股线和斜线长度,所以在你的情况下是对角线长度
def perimetr(data):
x1, y1, x2, y2 = map(int, re.findall(r'\b\d+\b', data))
return sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.