Раздел «Язык Си».PythonClassSegmentX:
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