import turtle
fb = ("Arial", 24, "normal") # чтобы писать БОЛЬШИМИ буквами
DY = -40 # расстояние по Y между отрезками
class Segment:
def __init__(self, x0, x1):
self.start = x0
self.finish = x1
def __str__(self):
return '{} {}'.format(self.start, self.finish)
def length(self):
return self.finish - self.start
def move0(self):
w = self.length()
self.start = 0
self.finish = w
def enlarge(self, a): # a - Segment a.start a.finish
if a.finish > self.finish:
self.finish = a.finish
if a.start < self.start
self.start = a.start
def show(self, col="blue"):
t.color(col)
x0 = t.xcor()
y0 = t.ycor()
t.pu()
t.setx(self.start)
t.pd()
t.write(self.start, font=fb)
t.setx(self.finish)
t.write(self.finish, font=fb)
t.pu()
t.setx(x0)
t.sety(y0 + DY)
t = turtle.Turtle()
t.shape("turtle")
t.width(5)
s = Segment(100, 200)
print(s) # 100 200
s.show()
s.move0()
s.show("red")
s1 = Segment(-50, 30)
print(s1) # -50 30
s1.show()
s1.move0()
s1.show("red")
t.ht()
turtle.done()
Задачи
Отобразить отрезок относительно точки 0
В класс Segment дописать метод
mirror0(self), который отображает отрезок относительно точки x=0.
Проверить, что метод работает правильно (прочитать координаты отрезка, нарисовать его синим, отобразить отрезок и нарисовать отображенный отрезок красным).
Отобразить отрезок относительно точки x0
В класс Segment дописать метод
mirrorP(self, x0), который отображает отрезок относительно точки x0.
Проверить, что метод работает правильно (прочитать точку и координаты отрезка, нарисовать точку зеленым, а отрезок синим, отобразить отрезок и нарисовать отображенный отрезок красным).
Подумайте, можно ли написать метод mirror0, используя новый метод mirrorP?
Отобразить отрезок относительно другого отрезка
В класс Segment дописать метод
mirrorSeg(self, seg0), который отображает отрезок относительно отрезка seg0.
Проверить, что метод работает правильно (прочитать отрезок seg0 и нарисовать его зеленым; прочитать отрезок и нарисовать его синим синим, отобразить отрезок и нарисовать отображенный отрезок красным).
Подумайте, как написать новый метод mirrorSeg, используя уже написанный метод mirrorP.
--
TatyanaDerbysheva - 10 Oct 2018