如何将轮廓解包相关数组转换为指定range对象?
实现数组到指定range对象的转换方法
输入数据
Istag:[[67, 68], [227, 228]](曲线段拆分标记)spl:[151, 302](曲线段终点索引)wspl:[26, 52](直线段长度)
转换逻辑拆解
先提取输入中的关键参数,再根据每个range的生成规则计算:
- S1:从
Istag[0][0]倒序到0 →range(67, 0, -1) - S2:从
Istag[0][1]正序到spl[0]→range(68, 151, 1) - S3:从
spl[0]正序延伸wspl[0]长度 →range(151, 151+26, 1)即range(151,177,1) - S4:从
Istag[1][0] + wspl[0]倒序到S3终点+1→range(227+26, 177+1, -1)即range(253,178,-1) - S5:从
Istag[1][1] + wspl[0]正序到spl[1] + wspl[0]→range(228+26, 302+26,1)即range(254,328,1) - S6:从
S5终点正序延伸wspl[1]长度 →range(328, 328+52,1)即range(328,380,1)
Python实现代码
# 输入数据 Istag = [[67, 68], [227, 228]] spl = [151, 302] wspl = [26, 52] # 提取核心参数 tag1_start, tag1_end = Istag[0] tag2_start, tag2_end = Istag[1] curve1_end, curve2_end = spl line1_len, line2_len = wspl # 生成目标range对象 S1 = range(tag1_start, 0, -1) S2 = range(tag1_end, curve1_end, 1) S3 = range(curve1_end, curve1_end + line1_len, 1) S4 = range(tag2_start + line1_len, curve1_end + line1_len + 1, -1) S5 = range(tag2_end + line1_len, curve2_end + line1_len, 1) S6 = range(curve2_end + line1_len, curve2_end + line1_len + line2_len, 1) # 输出验证 print("S1:", S1) print("S2:", S2) print("S3:", S3) print("S4:", S4) print("S5:", S5) print("S6:", S6)
运行后会生成你需要的6个range对象,完全匹配指定格式。
内容的提问来源于stack exchange,提问作者XYZ
相关产品推荐
相关产品推荐

