Python-геометрические примитивы для ГИС и создания многоугольника - PullRequest
0 голосов
/ 06 октября 2018
class Point:
   def __init__(self, xVal, yVal):
    self.xCoord = xVal
    self.yCoord = yVal
    def distanceTo(self, anotherPoint):
       a = self.xCoord - anotherPoint.xCoord
       b = self.yCoord - anotherPoint.yCoord
       return math.sqrt((a * a) + (b * b))

class Line:
   def __init__(self, verticesList = []):
       self.vertices = verticesList

Я разрабатываю фиктивную географическую информационную систему с нуля, используя приведенное ниже описание для моих векторных данных.Я чрезвычайно вне моей области знаний (отсюда и очень мало кода, который я смог написать для этого), и мне очень хотелось бы, как это сделать, используя всю предоставленную информацию.

Объекты типа point должны иметь следующие атрибуты и методы:

xCoord |Расположение точки на оси х.

yCoord |Расположение точки на оси Y.

distanceTo (anotherPoint) |Метод, принимающий другой точечный объект и возвращающий расстояние от этой точки до этой точки, используя теорему Пифагора.

init (xVal, yVal) |Инициализация ожидает два объекта с плавающей точкой и использует их для установки этой xCoord и этой yCoord.

У объектов типа line должны быть следующие атрибуты и методы:

vertices |Список, содержащий последовательность точечных объектов, определяющих вершины вдоль линии.

convertLength () |Метод, который возвращает длину этого линейного объекта путем вычисления суммы расстояний между последовательными вершинами в линии.

init (verticesList) |Инициализация ожидает список, который должен быть точечными объектами, и устанавливает этот атрибут вершин вместе с ним.

Объекты типа polygon должны иметь следующие атрибуты и методы:

кольцо |Линейный объект, определяющий периметр многоугольника.

getBoundingBox () |Метод, который возвращает 4-кортеж, представляющий ограничивающие координаты этого многоугольника, формата (minX, minY, maxX, maxY).

init (aLine) |Инициализация ожидает объект линии, устанавливая этот атрибут кольца с ним.

Позиции вершин: (0,0, 0,0) (1,0, 1,0) (3,0, 1,5) (3,9, 0,25) (2,0, -0,7) (0.0, 0.0)

Мне также было поручено создать линейный объект длиной 6 вершин и закрытый с использованием положений вершин, с получением многоугольника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...