'''
Python 3. Алгебра 9 класс. Базовый курс.
509_1-Algebra.-9kl.-Uchebnik_Makarychev-Yu.N-Mindyuk-N.G.-i-dr._2014-271s.pdf
Использование программы позволяет
рассмотреть больше вариантов при изложении
материала и подготовить разные задания для проверки
усвоения при контроле.
Решение системы уравнений: k1_1*x**2 +
k1_2*x + k1_3
и x**2 + y**2 = k2_1 (стр.109,рис.65).
Разрешение экрана 1024*768
Санкт-Петербург, Лицей №554, май 2020
'''
# a9b-s109-r065-22.py
# Вызов стандартных модулей и модуля L554
from L554 import *
import turtle as t
import turtle
from turtle import *
from math import *
t.hideturtle()
t1=Turtle()
t1.hideturtle()
t5=Turtle()
t5.hideturtle()
t6=Turtle()
t6.hideturtle()
t7=Turtle()
t7.hideturtle()
global x, y,mset,k1_1,k1_2,k1_3,k2_1
x=t1.xcor()
y=t1.ycor()
mset =50 # Сколько точек на 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')
'''
Параметры оператора линии:
m_line(mset,t5,x1,y1,x2,y2,5,'green')
mset,t5, - оставляем как есть (для
параболы t6 для окружности t7).
Далее по порядку: координаты начала и
конца линии "х1","у1", "х2","у2"
( все размеры в координатах сетки экрана -
т.е. идентично клеткам тетради).
толщина линии в пикселях(не
масштабируется), цвет.
Параметры оператора точки.
m_pset(mset,t6,xc,yc,5,'blue')
mset,t6, - оставляем как есть (для
параболы t6 для окружности t7).
Далее координаты точки, диаметр (5
пикселей) и цвет.
Построение окружностей и линий функций
производим точками.
'''
#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
# Подпрограмма отрисовки параболы
def plot_p():
print('PLOT_P')
t5.clear()
x5_1=-7
k1_1 = float(e_k1_1.get())
k1_2 = float(e_k1_2.get())
k1_3 = float(e_k1_3.get())
k2_1 = float(e_k2_1.get())
y5_1= k1_1 * x5_1 + k1_2
x5_2= 7
y5_2= k1_1 * x5_2 + k1_2
scale_k1_1.set(k1_1) # сдвигаем
ползунок по значению из окна
scale_k1_2.set(k1_2) # сдвигаем
ползунок по значению из окна
scale_k1_3.set(k1_3) # сдвигаем
ползунок по значению из окна
scale_k2_1.set(k2_1) # сдвигаем
ползунок по значению из окна
draw_p(k1_1,k1_2,k1_3) # При нажатии
кнопки
#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
# Подпрограмма отрисовки окружности
def plot_c():
#global x, y,mset,k1_1,k1_2,k1_3
print('PLOT_С')
t5.clear()
x5_1=-7
k1_1 = float(e_k1_1.get())
k1_2 = float(e_k1_2.get())
k1_3 = float(e_k1_3.get())
k2_1 = float(e_k2_1.get())
y5_1= k1_1 * x5_1 + k1_2
x5_2= 7
y5_2= k1_1 * x5_2 + k1_2
scale_k1_1.set(k1_1) # сдвигаем
ползунок по значению из окна
scale_k1_2.set(k1_2) # сдвигаем
ползунок по значению из окна
scale_k1_3.set(k1_3) # сдвигаем
ползунок по значению из окна
scale_k2_1.set(k2_1) # сдвигаем
ползунок по значению из окна
draw_c(k2_1) # Рисуем окружность после
изменения параметров
def plot_scale(ev=None):
t5.clear()
x5_1=-7
k1_1 = float(scale_k1_1.get())
k1_2 = float(scale_k1_2.get()) # значения ползунков
k1_3 = float(scale_k1_3.get()) # значения ползунков
k2_1 = float(scale_k2_1.get())
y5_1= k1_1 * x5_1 + k1_2
x5_2= 7
y5_2= k1_1 * x5_2 + k1_2
# рисуем линию
#m_line(mset,t5,x5_1,y5_1,x5_2,y5_2,5,'green')
# Наклонная линия
e_k1_1.delete(0, END) # очищаем окно к1_1
e_k1_1.insert(0, str(k1_1)) # вставляем
в окно значение ползунка
e_k1_2.delete(0, END) # очищаем окно к1_2
e_k1_2.insert(0, str(k1_2)) # вставляем
в окно значение ползунка
e_k1_3.delete(0, END) # очищаем окно к1_3
e_k1_3.insert(0, str(k1_3)) # вставляем
в окно значение ползунка
e_k2_1.delete(0, END) # очищаем окно к1_1
e_k2_1.insert(0, str(k2_1)) # вставляем
в окно значение ползунка
#------------------------------------------------------------------------
# вертикальная шкала k1_1
scale_k1_1 = Scale(from_=8,
to=-8,orient=VERTICAL,relief=GROOVE,
label="a",troughcolor='green',background='yellow',
resolution=0.01,fg="black",activebackground='red',
length=100,command= plot_scale)
scale_k1_1.set(-1.0)# начальное значение
#fg="black" - цвет цифр шкалы
#activebackground='green' - цвет ползунка
при перемещении или под курсором
scale_k1_1.place(x=10,y=60)
#-------------------------------------------------------------------------
# вертикальная шкала k1_2
scale_k1_2 = Scale(from_=10,
to=-10,orient=VERTICAL,relief=GROOVE,
label="b",troughcolor='green',background='yellow',
resolution=0.01,fg="black",activebackground='red',
length=100,command= plot_scale)
scale_k1_2.set(2.0)# начальное значение
scale_k1_2.place(x=10,y=200)
#-------------------------------------------------------------------------
# вертикальная шкала k1_3
scale_k1_3 = Scale(from_=10, to=-10,orient=VERTICAL,relief=GROOVE,
label="c",troughcolor='green',background='yellow',
resolution=0.01,fg="black",activebackground='red',
length=100,command= plot_scale)
scale_k1_3.set(5.0)# начальное значение
scale_k1_3.place(x=10,y=350)
#------------------------------------------------------------------------
# вертикальная шкала k2_1
scale_k2_1 = Scale(from_=50,
to=0.1,orient=VERTICAL,relief=GROOVE,
label="1",troughcolor='green',background='yellow',
resolution=0.01,fg="black",activebackground='red',
length=100,command= plot_scale)
scale_k2_1.set(25.0)# начальное значение
scale_k2_1.place(x=915,y=60)
#wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
# Метка y =
m_yr = Label(text=" y = ",
bg="yellow", fg="black",font='Helvetica 12 bold')
m_yr.place(x=10,y=630)
# Метка 1 k1_1
label_k1_1 = Label(text=' a',
font='Helvetica 12 bold')
label_k1_1.place(x=45,y=605)
# Окно ввода коэффициента
k1_1
e_k1_1 = Entry( width=6,background =
'#ffeeff',font='Helvetica 12 bold')
# 1 символ = 10 пикселей
e_k1_1.delete(0, END)
e_k1_1.insert(0, "-1.0")
e_k1_1.place(x=45,y=630)
k1_1 = float(e_k1_1.get())
print('k1_1= ',k1_1)
# Метка *x**2 +
m_xp = Label(text="*x**2 + ",
bg="yellow", fg="black",font='Helvetica 13 bold')
m_xp.place(x=105,y=628)
# Метка 2 k1_2
label_k1_2 = Label(text=' b',font='Helvetica 12 bold')
label_k1_2.place(x=170,y=605)
# Окно ввода коэффициента
k_1_2
e_k1_2 = Entry( width=6,background =
'#ffeeff',font='Helvetica 12 bold') #
e_k1_2.delete(0, END)
e_k1_2.insert(0, "2.0")
e_k1_2.place(x=170,y=630)
k1_2 = float(e_k1_2.get())
print('k1_2= ',k1_2)
# Метка *x +
m_xp = Label(text="*x + ",
bg="yellow", fg="black",font='Helvetica 13 bold')
m_xp.place(x=230,y=628)
# Метка 3 k1_3
label_k1_3 = Label(text=' c',font='Helvetica 12 bold')
label_k1_3.place(x=272,y=605)
# Окно ввода коэффициента
k_1_3
e_k1_3 = Entry( width=6,background =
'#ffeeff',font='Helvetica 12 bold') #
e_k1_3.delete(0, END)
e_k1_3.insert(0, "5.0")
e_k1_3.place(x=272,y=630)
k1_3 = float(e_k1_3.get())
print('k1_3= ',k1_3)
# Метка x**2 + y**2 =
m_xp = Label(text="x**2 + y**2 = ",
bg="yellow", fg="black",font='Helvetica 13 bold')
m_xp.place(x=810,y=628)
# Окно ввода коэффициента
k2_1
e_k2_1 = Entry( width=6,background =
'#ffff00',font='Helvetica 12 bold')
e_k2_1.delete(0, END)
e_k2_1.insert(0, "25.0")
e_k2_1.place(x=930,y=630)
k2_1 = float(e_k2_1.get())
print('k2_1= ',k2_1)
def draw_p(k1_1,k1_2,k1_3):
# Рисуем параболу ППППППППППППППППППППППППППППППППППППППППППППППППППППП
print ('Парабола')
t7.clear()
for xp in range(-1000,1000):
xp=xp/100+0.01
yp=k1_1 * xp**2 + k1_2*xp + k1_3
m_pset(mset,t7,xp,yp,5,'red') # Строим точками.
# Кнопка PLOT_P
but_plot=Button(text=' PLOT_P ',bg='green', command=
plot_p)
but_plot.place(x=10,y=660,width=320)
def draw_c(k2_1):
# Рисуем окружность
0000000000000000000000000000000000000000000000
r = sqrt(k2_1)
print (' r = ',r)
t6.clear()
for fi in range(0,361):
fi=fi*pi/180
xc=r*cos(fi)
yc=r*sin(fi)
m_pset(mset,t6,xc,yc,5,'blue') # Строим точками.
# Кнопка PLOT_C
but_plot=Button(text=' PLOT_С
',bg='green', command= plot_c)
but_plot.place(x=680,y=670,width=320)
draw_p(k1_1,k1_2,k1_3) # Рисуем параболу
при старте.
draw_c(k2_1) # Рисуем окружность при
старте.
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
mainloop()
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.