Elementary computational geometry

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «== Почитать == {| |- | [http://wiki.school.ioffe.ru/images/a/a5/Geometry_1.pdf Материалы по вычислительной геометрии Л...»)
 
Строка 10: Строка 10:
 
== Материалы некоторых занятий ==
 
== Материалы некоторых занятий ==
  
== Начало — классы Point, Vector (16 сентября 2020 г.) ==
+
=== Начало — классы Point, Vector (16 сентября 2020 г.) ===
  
 
<source lang="python">
 
<source lang="python">

Версия 22:14, 17 сентября 2020

Почитать

Материалы по вычислительной геометрии ЛКШ, 2010 г., параллель B'
Подробные лекции по вычислительной геометрии на плосоксти, Е.В. Андреева, Ю.Е. Егоров

Материалы некоторых занятий

Начало — классы Point, Vector (16 сентября 2020 г.)

class Point:

    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __str__(self):
        return "({0}, {1})".format(self.x, self.y)


class Vector:

    # конструктор
    def __init__(self, a, b):
        if type(a) == Point and type(b) == Point:
            self.x = b.x - a.x
            self.y = b.y - a.y
        elif type(a) == int and type(b) == int:
            self.x = a
            self.y = b
        else:
            raise Exception("Неверно указан тип параметра при создании вектора!")

    def __str__(self):
        return "({0}, {1})".format(self.x, self.y)

    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)

    def scalar(self, other):
        return self.x * other.x + self.y * other.y


P = Vector(3, 4)
Q = Vector(1, 2)
print(P, Q, P + Q)
A = Point(3, 4)
B = Point(1, 2)
v = Vector(1, 3)
u = Vector(-1273548172564, 1)
print(v.scalar(u))
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты