# start_nakl_pl.py # Вызов стандартных модулей и модуля L554 from L554 import * import turtle as t import turtle from turtle import * from math import * t.hideturtle() t1=Turtle() t1.hideturtle() global x, y,mset x=t1.xcor() y=t1.ycor() mset =100 # Сколько точек на 1 деление сетки координат setka(mset) # Построение сетки в заданном масштабе msetout(mset) t.onscreenclick(coor) # Вычисление координат # Выводит в форму значения координат щелчка мыши # Выводит в shell значения угла в градусах и значения sin и cos # Эти операторы строят немасштабируемые объекты line(t1,-ws/2+10,hs/2-30,-ws/2+50,hs/2-30,50,'yellow') line(t1,-ws/2+10,hs/2-20,-ws/2+50,hs/2-20,10,'white') line(t1,-ws/2+10,hs/2-30,-ws/2+50,hs/2-30,10,'blue') line(t1,-ws/2+10,hs/2-40,-ws/2+50,hs/2-40,10,'red') # Вот отсюда начинаем редактировать, дополнять и тд. # Вместо "Наша школа" пишем свои реквизиты wt.title ('Наша школа и СПБ Лицей 554') # Линии - синтаксис команд вызова в координатах сетки # mset,t1, - оставляем как есть. Далее по порядку "х1","у1", # "х2","у2", толщина линии в пикселях(не масштабируется), цвет m_line(mset,t1,-2,-2,4,-2,25,'green') # Основание наклонной плоскости m_line(mset,t1,4,1,4,-2,25,'yellow' ) # Вертикальная линия m_line(mset,t1,4,1,-2,-2,25,'brown') # Наклонная линия m_pset(mset,t1,4,1,10,'black') # Ось шкива m_pset(mset,t1,4,-2,10,'brown') # Гвоздик m_pset(mset,t1,-2,-2,10,'black') # Гвоздик m_pset(mset,t1,-1,-1.17,35,'green') # Колесо m_pset(mset,t1,-1,-1.17,5,'black') # Ось колеса m_pset(mset,t1,0,-0.67,35,'green') # Колесо m_pset(mset,t1,0,-0.67,5,'black') # Ось колеса m_line(mset,t1,-1.25,-0.84,-0.15,-0.3,50,'purple') # Корпус тележки # Стрелка вектора скорости m_line(mset,t1,0.07,-0.19,1.96,0.7,5,'blue') # m_line(mset,t1,1.69,0.68,1.96,0.7,5,'blue') # m_line(mset,t1,1.78,0.52,1.96,0.7,5,'blue') # # Все координаты просматриваются по щелчку в нужной точке # Линии будем строить точками в цикле по формуле у=кх+b # Первая линия - к обозначим как l1k1 и тд l1k1= 1.3 # Вторая линия l2k1= -1 # третья линия l3k1= 0.093 # Построение линий производим точками. # Интервал изменения "х" (от и до) и шаг (приращение по х) меняем постепенно # Сначала интервал по всей оси х - и большой шаг (-8 до 8 при d=0.1) # Затем уменьшаем интервал и шаг до следующих значений: d=0.03 x= -1.5 # Начальная точка интервала построения while x < 0.5: # Конечная точка интервала изменения "х" x=x+d # Увеличиваем значение "х" на шаг "d" y1= l1k1*x + 2.4 # Уравнение первой линии m_pset(mset,t1,x,y1,5,'green') # Строим зелеными точками. y2= l2k1*x +1.3 # Уравнение второй линии m_pset(mset,t1,x,y2,5,'blue') # Строим синими точками. y3= l3k1*x +1.12 # Уравнение третьей линии m_pset(mset,t1,x,y3,5,'red') # Строим красными точками. dr= abs(y2-y1) # Вычисляем модуль разности ординат линий 1 и 2 if dr<=d: # Печатаем если достигнута заданная точность print(' При x= %5.2f' % x) print(' y1= %5.2f' % y1) print(' y2= %5.2f' % y2) print(' abs(y2-y1)= %7.5f' % dr) print('==================') # Зеленую точку и круги строим для демонстрации удобства # использования координат получаемых по щелчку лкм m_pset(mset,t1,-0.45,1.36,35,'green') # Зеленая точка # Круги - синтаксис команд вызова в координатах сетки m_krug(mset,t1,6, 3,0.2,'blue') # mset,t1, - оставляем как есть m_krug(mset,t1,6.5, 3,0.2,'black') # Далее по порядку "х","у", цвет m_krug(mset,t1,6.25, 2.8,0.2,'yellow') mainloop()