我想實現一個表示線串的類。我有一個名爲「Point」的類, 表示一個帶有2個座標的點,我想用它來存儲線串的內部頂點 。 我想出了這段代碼:如何使用點類表示線串
class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
class LineString(Point):
def __init__(self, point):
self.point = point
,但我不知道如何在線串 顯示多個點,以支持像一個線串:
lin = LineString((1, 1), (0, 2), (3,6))
我不知道線串中可能出現的點數。 新代碼:
class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
class LineString(Point):
def __init(self, *points):
#~ self.points=points
self.points = []
for point in points:
if not isinstance(point, Point):
point = Point(*point)
self.points.append(point)
def length(self):
L = len(self.points)
return L
if __name__ == '__main__':
# Tests for LineString
# ===================================
lin1 = LineString((1, 1), (0, 2))
assert len(lin1.points) == sqrt(2.0)
謝謝,但我怎樣才能提取線串的長度,例如? –
@ f.ashouri:'len(self.points)';它只是一個列表對象。 –
對我來說,它會拋出一個錯誤:LineString的對象沒有任何屬性'points' –