给出平面直角坐标系中的一点,并顺序给出n个向量,求该点根据给定的n个向量位移后的位置。 设计点类Point,内含: (1)整型属性x和y,表示点的横坐标和纵坐标; (2)带参构造方法,便于使用初始值构造该类对象; (3)点移动的方法move(x1,y1),其 中x1和y1表示移动的向量,该方法返回移动后的新的点对象; (4)展示点对象的字符串方法toString(),以“(横坐标,纵坐标)”的形式。用pytho
时间: 2024-01-21 22:19:06 浏览: 141
n个向量的位移可以看作是将该点沿着这n个向量分别移动得到的新点的向量相加。因此,可以先定义一个向量类Vector,计算出每个向量对应的新点,再将它们相加得到最终的新点。
代码如下:
```python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def move(self, x1, y1):
return Point(self.x + x1, self.y + y1)
def __str__(self):
return "({}, {})".format(self.x, self.y)
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def move_point(self, point):
return point.move(self.x, self.y)
# 测试代码
p = Point(1, 2)
vectors = [Vector(2, 3), Vector(-1, 4), Vector(0, 1)]
new_point = p
for v in vectors:
new_point = v.move_point(new_point)
print(new_point) # 输出 (2, 12)
```
在测试代码中,我们创建了一个初始点p(1, 2),以及三个向量(2, 3),(-1, 4),(0, 1),依次将它们应用到点p上,得到最终的新点(2, 12)。
阅读全文