in einer Linienliste aus Punkten jede 2te linie umdrehen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

Guten Tag

mal wieder eine verzwickte sache
3000punkte werden eingelesen XYZ koordinaten

Code: Alles auswählen

roh=[]
in_file = open("temp.nc","r")
for line in in_file:
    defitet = line.split()
    roh.append(defitet)
#roh = in_file.read()
in_file.close()
print roh[0]
print len(roh)
DARAUs
mach ich dann linien in Yrichtung

Code: Alles auswählen

linearray=[]
y_akt=roh[0][1]
line=[]
for point in roh:
    if point[1] == y_akt:
        line.append(point)
    else:
        linearray.append(line)
        line = []
        line.append(point)
        y_akt = point[1]
print len(linearray)
nun soll aus dem linienarray jede 2te linie gedreht werden!

wie mach ich das am schlauesten ?

es soll ein zigzag aus punkten entstehen und dann natürlich punkte zu linien zusammenfassen die in einer ebene sind!

DANKE
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

ich hab es jetzt manuell gedreht

Code: Alles auswählen

zigzag=[]
temp=0
for linie in linearray:
    if temp == 0:
        zigzag.append(linie)
        temp=1
    if temp == 1:
        tmplist=[]
        x=len(linie)-1
        for a in xrange(x,0,-1):
            tmplist.append(linie[a])
        zigzag.append(tmplist)
        temp = 0
        
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ich habe folgends (ungetestet) aus der wirren Beschreibung und dem Code geschlossen:

Code: Alles auswählen

zizzag = [linie[slice(None) if index%2 else slice(-1, 0, -1)]
          for (index, linie) in enumerate(linien)]
Das Leben ist wie ein Tennisball.
Antworten