Компьютерная графика
Материал из PTHSWiki
(Различия между версиями)
Gusarev (обсуждение | вклад) |
Gusarev (обсуждение | вклад) (→Начало — классы Point, Vector (16 сентября 2020 г.)) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 10: | Строка 10: | ||
== Материалы некоторых занятий == | == Материалы некоторых занятий == | ||
− | + | == Начало — классы Point, Vector (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))