Компьютерная графика

Материал из PTHSWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Начало — классы Point, Vector (16 сентября 2020 г.))
 
(не показана 1 промежуточная версия 1 участника)
Строка 10: Строка 10:
 
== Материалы некоторых занятий ==
 
== Материалы некоторых занятий ==
  
{|
+
== Начало — классы Point, Vector (16 сентября 2020 г.) ==
|-
+
 
|[16 сентября 2020 г. ]
+
<source lang="python">
|}
+
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))

Текущая версия на 22:01, 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))
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты