我对在文本文件中找到最大的x或y值有疑问。这是多边形中的点算法所必需的。
多边形与点一起输入文本文件,即输入或输出多边形以及多边形的行数。在
例如:
5.0 4.0 6 1.0 1.0 4.0 0.0 6.0 3.0 7.0 6.0 3.0 7.0 0.0 4.0 1.0 1.0
点是[5.0 4.0]
,多边形有6
条线,接下来是多边形的书写点:
第一个是x坐标,第二个是y坐标。在
我有测试两条线位置的程序。现在我要把这个过程和这个算法结合起来。在
我所拥有的是:打开txt读取一行txt,然后将其拆分并将值保存到变量中
pointinp = open ("pointinp.txt", "r")
for line in pointinp.readlines():
riadok = line.split()
j=3
for i in range (0,riadok[2]):
x1=float(riadok[0])
y1=float(riadok[1])
k1=float(riadok[i+j])
l1=float(riadok[i+(j+1)])
k2=float(riadok[i+(j+2)])
l2=float(riadok[i+(j+3)])
j=j+1
点坐标为x1和y1,其他点坐标为k1、l1、k2、l2。现在我要从文本文件中找到最大的x和y坐标,把它保存到x2,y2。 所以我将有两条线[x1,y1][x2,y2]和[k1,l1][k2,l2],然后我将测试这些线的位置,这是多边形中的点算法所必需的,在这里将计算交点(创建的包含点的直线与多边形的每条直线之间的交点)
在行中找到最大的x和y就足够简单了,您只需要能够将它们分开并对它们应用max()函数。幸运的是,python列表索引支持步长,因此可以轻松地提取其他值:
在文件中查找最大值有点困难:对于每一行,您可以将您的本地最大值与目前找到的最大值进行比较,如果最大值更大,则将后者替换为前者:
^{pr2}$但你会发现这些数字随着你进一步浏览你的文件而慢慢增长。如果您想从第一行获得真正的最大值x和y,那么您必须分两次处理文件,一次是找到最大的x和y,一次是应用算法。在
如果你喜欢powerfull代码,你会喜欢这个:) 如果你只有整数,你可以用int代替float
文件.txt1 2 3 900000.029384 10000 6 8 900000.029383
相关问题 更多 >
编程相关推荐