⇤ ← Версия 1 от 2018-11-27 08:25:28
2276
Комментарий:
|
4080
|
Удаления помечены так. | Добавления помечены так. |
Строка 4: | Строка 4: |
== Про графики == Базовая статья: FrBrGeorge/PythonScaleAndRotate |
|
Строка 8: | Строка 9: |
* Ограничения по началу и концу * Количество точек в графике? ⇒ отрезки * ⇒ ломаная |
* Ограничения по началу и концу (не бесконечный, а от A до B) * Количество точек в графике? Бесконечно много! * ⇒ отрезки, а не непрерывная кривая * ⇒ ломаная (N точек, N-1 отрезок) |
Строка 12: | Строка 14: |
* Масштаб по X и Y | * Повторение: циклический конструктор списка: {{{ [ выражение for имя in последователоьность ] или [ выражение for имя, имя in последователоьность_пар] и т. п. Например, [i*2+1 for i in range(6)] }}} * Подготовим черепашье поле {{{#!pycon >>> from math import * >>> from turtle import * >>> reset() }}} * Точки — это пары координат (x, y) * График — это последовательность таких пар, например {{{#!pycon >>> graph = [(-200, -119), (-160, -100), (-120, -57), (-80, 0), (-40, 57), (0, 100), (40, 119), (80, 109), (120, 71), (160, 16), (200, -42)] >>> def drawgraph(gr): penup() # Сначала перейдём на начало графика for x,y in gr: goto(x,y) pendown() >>> drawgraph(graph) }}} * Попробуем нарисовать график синуса: {{{#!pycon >>> reset() >>> graph = [(i,sin(i)) for i in range(-100,100)] >>> drawgraph(graph) }}} Фигня какая-то: волняшки слишком частые, но слишком невысокие * Масштаб по X и Y: {{{#!pycon >>> reset() >>> graph = [(i,sin(i/20)*60) for i in range(-100,100)] >>> drawgraph(graph) }}} Но это уже непонятно чего график. В каких границах? '''TODO''' Попробуем разобраться |
Построение графика функции
Разбор Д/З
Про графики
Базовая статья: FrBrGeorge/PythonScaleAndRotate
- Что такое график?
- Отображение точек x:f(x)
- ⇒ f(x) должно ∃
Ограничения по началу и концу (не бесконечный, а от A до
- Количество точек в графике? Бесконечно много!
- ⇒ отрезки, а не непрерывная кривая
- ⇒ ломаная (N точек, N-1 отрезок)
- Черепашка и график синуса
- Повторение: циклический конструктор списка:
[ выражение for имя in последователоьность ] или [ выражение for имя, имя in последователоьность_пар] и т. п. Например, [i*2+1 for i in range(6)]
- Подготовим черепашье поле
>>> from math import * >>> from turtle import * >>> reset()
- Точки — это пары координат (x, y)
- График — это последовательность таких пар, например
>>> graph = [(-200, -119), (-160, -100), (-120, -57), (-80, 0), (-40, 57), (0, 100), (40, 119), (80, 109), (120, 71), (160, 16), (200, -42)] >>> def drawgraph(gr): penup() # Сначала перейдём на начало графика for x,y in gr: goto(x,y) pendown() >>> drawgraph(graph)
- Попробуем нарисовать график синуса:
>>> reset() >>> graph = [(i,sin(i)) for i in range(-100,100)] >>> drawgraph(graph)
- Фигня какая-то: волняшки слишком частые, но слишком невысокие
- Масштаб по X и Y:
>>> reset() >>> graph = [(i,sin(i/20)*60) for i in range(-100,100)] >>> drawgraph(graph)
- Но это уже непонятно чего график. В каких границах?
- Повторение: циклический конструктор списка:
TODO
Попробуем разобраться
- График как список координат
- Количество замеров
- В заборе 10 досок, значит, в нём 9 дыр!
- Функция масштабирования+переноса (да, это аффинные преобразования, только никому не говорите, а то испугаются)
- Координаты исходного графика vs координаты на экране
- Вычисление масштаба и смещения по X
- Вычисление масштаба и смещения по Y=f(X)
- Требуют нахождения max() и min()
Д/З
Внезапно — ничего из учебника, TODO про масштабирование и графики-ломаные — где?
- Про черепашку
TODO
- Ввести отрезок, количество точек и ширину экрана, вывести абсциссы точек на экране
Ввести отрезок, количество точек, а также строку — функцию от x (например, x*sin(x**2)), вывести координаты исходных точек графика
Ввести отрезок, количество точек, ширину и высоту экрана, а также строку — функцию от x (например, x*sin(x**2)), вывести координаты точек графика на экране
- Нарисовать всё это черепашкой
- Нарисовать оси координат
- Что делать, если оси координат лежат в стороне от графика, а рисовать их надо?