# Построение графиков степенной функции
программа a7u-s253-r063.
'''
Python 3. Алгебра 7 класс. Макарычев Ю.Н. и
др.
Программа a7u-s253-r063 строит графики
сначала в масштабе 500
пикселей на одну клетку. Печатая в окне
ввода 250 и 50 получаем
графики в соответствующем масштабе.
Использование программы делает более
наглядным процесс изложения темы.
В отличие аналогичных программ на языке
pascalABC.NET в программах на
языке python 3 проще реализовать
интерактивность.
При работе в папке с программой должен
находиться файл L554.py.
L554.py - это внешняя подпрограмма, которая
берет на себя рутинную работу
(построение координатной сетки, пересчет
масштабов и т.п.).
В большинстве случаев этот модуль помогает
сократить основную программу.
Модуль L554.py можно получить на сайте
turtk.viptop.ru или на сайте
infourok в работе "Использование языка
программирования python 3
и модуля L554 на уроках дополнительного
образования (или в базовом
курсе) школьной информатики в условиях
реализации ФГОС".
Санкт-Петербург, Лицей №554, август 2020
'''
from L554 import *
import turtle as t
import turtle
from turtle import *
import math
from math import *
t.hideturtle()
t1=Turtle()
t1.hideturtle()
t2=Turtle()
t2.hideturtle()
t3=Turtle()
t3.hideturtle()
t4=Turtle()
t4.hideturtle()
t5=Turtle()
t5.hideturtle()
global x, y,mset,k1,k2,k3,k4,k5
x=t1.xcor()
y=t1.ycor()
#mset =300 # Сколько точек на 1 деление
сетки координат
#setka(mset) # Построение сетки в заданном
масштабе
#msetout(mset)
t.onscreenclick(coor) # Вычисление
координат
# Выводит в форму значения координат щелчка
мыши
# Выводит в shell значения угла в градусах
и значения sin и cos
# Эти операторы строят немасштабируемые
объекты
line(t,-ws/2+10,hs/2-30,-ws/2+50,hs/2-30,50,'yellow')
line(t,-ws/2+10,hs/2-20,-ws/2+50,hs/2-20,10,'white')
line(t,-ws/2+10,hs/2-30,-ws/2+50,hs/2-30,10,'blue')
line(t,-ws/2+10,hs/2-40,-ws/2+50,hs/2-40,10,'red')
# Вот отсюда начинаем редактировать,
дополнять и тд.
# Вместо "Наша школа" пишем свои
реквизиты
wt.title ('Наша школа и СПБ Лицей 554')
# Линии
#- синтаксис команд вызова в координатах
сетки
# mset,t1, - оставляем как есть. Далее по
порядку ("х1","у1",
# "х2","у2"-координаты
начала и конца линии),
#(толщина линии в пикселях, обычно задаем
равной 3-5
# так удобнее для картинки диапроектора),
цвет (задается стандартно).
# Построение сложных линий производим
точками.
# Окно ввода значения масштаба
e_mset = Entry( width=6,background =
'#ffeeff',font='Helvetica 12 bold')
# 1 символ = 10 пикселей
e_mset.delete(0, END)
e_mset.insert(0, "500") # при
старте
e_mset.place(x=70,y=630)
mset = float(e_mset.get())
print('mset= ',mset)
setka(mset) # Построение сетки в заданном
масштабе
msetout(mset)
#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
# Подпрограмма отрисовки линий в новом
масштабе
def plot_p():
clear()
t.clear()
t1.clear()
t2.clear()
t3.clear()
t4.clear()
t5.clear()
print('PLOT_P')
# Окно ввода значения масштаба
#e_mset = Entry( width=6,background =
'#ffeeff',font='Helvetica 12 bold')
# 1 символ = 10 пикселей
#e_mset.delete(0, END)
#e_mset.insert(0, "300")
#e_mset.place(x=70,y=630)
mset = float(e_mset.get())
print('mset= ',mset)
setka(mset) # Построение сетки в
заданном масштабе
msetout(mset)
'''
# чтение нового масштаба
mset = float(e_mset.get())
'''
sel_1()
sel_2()
sel_3()
sel_4()
sel_5()
#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
def sel_5():
k5 = 5
t5.clear()
for xp in range(-310,310):
xp=xp/100 + 0.1
xp1=xp - 0.01
xp2=xp + 0.01
if xp1<0:
xp1=abs(xp1)
yp1=-((xp1)**(k5))
xp1=-xp1
if xp1>=0:
yp1=((xp1)**(k5))
if xp2<0:
xp2=abs(xp2)
yp2=-((xp2)**(k5))
xp2=-xp2
if xp2>=0:
yp2=((xp2)**(k5))
yp=((xp)**(5))
mset = float(e_mset.get())
#setka(mset) # Построение сетки в
заданном масштабе
#msetout(mset)
m_line(mset,t1,xp1,yp1,xp2,yp2,3,'black') # строим линиями
#yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
def sel_4():
k4 = 4
print('k4 = ',k4)
t4.clear()
for xp in range(-310,310):
xp=xp/100 + 0.1
xp1=xp - 0.01
xp2=xp + 0.01
yp1=((xp1)**(k4))
yp2=((xp2)**(k4))
yp=((xp)**(4))
mset = float(e_mset.get())
m_line(mset,t4,xp1,yp1,xp2,yp2,3,'blue') # строим линиями
def sel_3():
k3 = 3
t3.clear()
for xp in range(-310,310):
xp=xp/100 + 0.1
xp1=xp - 0.01
xp2=xp + 0.01
if xp1<0:
xp1=abs(xp1)
yp1=-((xp1)**(k3))
xp1=-xp1
if xp1>=0:
yp1=((xp1)**(k3))
if xp2<0:
xp2=abs(xp2)
yp2=-((xp2)**(k3))
xp2=-xp2
if xp2>=0:
yp2=((xp2)**(k3))
yp=((xp)**(3))
mset = float(e_mset.get())
m_line(mset,t3,xp1,yp1,xp2,yp2,3,'green') # строим линиями
#yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
def sel_2():
k2 = 2
print('k2 = ',k2)
t2.clear()
for xp in range(-310,310):
xp=xp/100 + 0.1
xp1=xp - 0.01
xp2=xp + 0.01
yp1=((xp1)**(k2))
yp2=((xp2)**(k2))
yp=((xp)**(2))
#m_pset(mset,t7,xp,yp,5,'red') # Строим точками.
mset = float(e_mset.get())
m_line(mset,t2,xp1,yp1,xp2,yp2,3,'red') # строим линиями
#yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
def sel_1():
k1 = 1
print('k1 = ',k1)
t1.clear()
mset = float(e_mset.get())
setka(mset) # Построение сетки в
заданном масштабе
msetout(mset)
m_line(mset,t1,-9.1,-9.1,9.1,9.1,3,'black') # строим линиями
# Метка mset =
m_mset = Label(text=" mset = ",
bg="#dddddd", fg="black",font='Helvetica 12 bold')
m_mset.place(x=5,y=630)
# Кнопка PLOT
but_plot=Button(text=' PLOT ',bg='green', command=
plot_p)
but_plot.place(x=10,y=660,width=320)
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sel_1()
sel_2()
sel_3()
sel_4()
sel_5()
mainloop()
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.