Esempio n. 1
0
    def compress_lines(self, Curve):
        """
        compress_lines()
        """
        joint = []
        NewCurve = []
        Pts = []
        for geo in Curve:
            NewCurve.append(geo)
            anz = len(NewCurve)
            if anz >= 2:
                #Wenn Geo eine Linie ist anh�ngen und �berpr�fen
                if (NewCurve[-2].type == "LineGeo") and (NewCurve[-1].type
                                                         == "LineGeo"):
                    Pts.append(geo.Pe)
                    JointLine = LineGeo(NewCurve[-2].Ps, NewCurve[-1].Pe)

                    #�berpr�fung der Abweichung
                    res = []
                    for Point in Pts:
                        res.append(JointLine.distance2point(Point))
                    #print res

                    #Wenn die Abweichung OK ist Vorheriges anh�ngen
                    if (max(res) < self.epsilon):
                        anz = len(NewCurve)
                        del NewCurve[anz - 2:anz]
                        NewCurve.append(JointLine)
                        points = [geo.Pe]
                    #Wenn nicht nicht anh�ngen und Pts zur�cksetzen
                    else:
                        Pts = [geo.Pe]

                #Wenn es eines eine andere Geometrie als eine Linie ist
                else:
                    Pts = []

        return NewCurve
Esempio n. 2
0
    def compress_lines(self, Curve):
        """
        compress_lines()
        """
        joint = []
        NewCurve = []
        Pts = []
        for geo in Curve:
            NewCurve.append(geo)
            anz = len(NewCurve)
            if anz >= 2:
                #Wenn Geo eine Linie ist anh�ngen und �berpr�fen
                if (NewCurve[-2].type == "LineGeo") and (NewCurve[-1].type == "LineGeo"):
                    Pts.append(geo.Pe)
                    JointLine = LineGeo(NewCurve[-2].Ps, NewCurve[-1].Pe)

                    #�berpr�fung der Abweichung
                    res = []
                    for Point in Pts:
                        res.append(JointLine.distance2point(Point))
                    #print res

                    #Wenn die Abweichung OK ist Vorheriges anh�ngen
                    if (max(res) < self.epsilon):
                        anz = len(NewCurve)
                        del NewCurve[anz - 2:anz]
                        NewCurve.append(JointLine)
                        points = [geo.Pe]
                    #Wenn nicht nicht anh�ngen und Pts zur�cksetzen
                    else:
                        Pts = [geo.Pe]

                #Wenn es eines eine andere Geometrie als eine Linie ist
                else:
                    Pts = []

        return NewCurve