4080
Комментарий:
|
5591
|
Удаления помечены так. | Добавления помечены так. |
Строка 23: | Строка 23: |
{{{#!pycon | {{{#!python |
Строка 30: | Строка 30: |
{{{#!pycon | {{{#!python |
Строка 41: | Строка 41: |
{{{#!pycon | {{{#!python |
Строка 48: | Строка 48: |
{{{#!pycon | {{{#!python |
Строка 55: | Строка 55: |
=== Попробуем разобраться === * График как список координат * В заборе 10 досок, значит, в нём 9 щелей! * Количество замеров: график функции `f(x)` на интервале `[a,b]` * — это ломаная, которая начинается в точке `(a,f(a))`, а заканчивается в точке `(b, f(b))`. * Если в ней `N` вершин, то отрезков в ней `N-1`. * Абсциссы вершин находятся на равном расстоянии друг от друга, т. е. на расстоянии `(b-a)/(N-1)` * Допустим, вершин у нас `10`, значит, отрезков `9`; допусти также, что `a=-6`, `b=3` * Расстояние между абсциссами `(3-(-6))/9 == 1` * абсцисса 0-й вершины — начало интервала, `a`, т. е. `-6` * абсцисса 1-й вершины — начало отрезка + первый отрезок, т. е `a+(b-a)/(N-1)`, т. е. `-6+1*1 == -5` * абсцисса 2-й вершины — начало отрезка + первых два отрезка, т. е `a+2*(b-a)/(N-1)`, т. е. `-6+2*1 == -4` * … * абсцисса 8-й (№ N-2) вершины — `a+(N-2)*(b-a)/(N-1)`, т. е. `-6+8*1 == 2` * абсцисса 9-й (№ N-1) вершины — `a+(N-1)*(b-a)/(N-1)`, т. е. `-6+9*1 == 2` (т. е. `b`) {{{#!highlight pycon >>> a, b = -6, 3 >>> N=10 >>> X = [a+i*(b-a)/(N-1) for i in range(N)] >>> X [-6.0, -5.0, -4.0, -3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0] }}} |
|
Строка 56: | Строка 79: |
Попробуем разобраться * График как список координат * Количество замеров * В заборе 10 досок, значит, в нём 9 дыр! |
Построение графика функции
Разбор Д/З
Про графики
Базовая статья: FrBrGeorge/PythonScaleAndRotate
- Что такое график?
- Отображение точек x:f(x)
- ⇒ f(x) должно ∃
Ограничения по началу и концу (не бесконечный, а от A до
- Количество точек в графике? Бесконечно много!
- ⇒ отрезки, а не непрерывная кривая
- ⇒ ломаная (N точек, N-1 отрезок)
- Черепашка и график синуса
- Повторение: циклический конструктор списка:
[ выражение for имя in последователоьность ] или [ выражение for имя, имя in последователоьность_пар] и т. п. Например, [i*2+1 for i in range(6)]
- Подготовим черепашье поле
- Точки — это пары координат (x, y)
- График — это последовательность таких пар, например
- Попробуем нарисовать график синуса:
- Фигня какая-то: волняшки слишком частые, но слишком невысокие
- Масштаб по X и Y:
- Но это уже непонятно чего график. В каких границах?
- Повторение: циклический конструктор списка:
Попробуем разобраться
- График как список координат
- В заборе 10 досок, значит, в нём 9 щелей!
Количество замеров: график функции f(x) на интервале [a,b]
— это ломаная, которая начинается в точке (a,f(a)), а заканчивается в точке (b, f(b)).
Если в ней N вершин, то отрезков в ней N-1.
Абсциссы вершин находятся на равном расстоянии друг от друга, т. е. на расстоянии (b-a)/(N-1)
Допустим, вершин у нас 10, значит, отрезков 9; допусти также, что a=-6, b=3
Расстояние между абсциссами (3-(-6))/9 == 1
абсцисса 0-й вершины — начало интервала, a, т. е. -6
абсцисса 1-й вершины — начало отрезка + первый отрезок, т. е a+(b-a)/(N-1), т. е. -6+1*1 == -5
абсцисса 2-й вершины — начало отрезка + первых два отрезка, т. е a+2*(b-a)/(N-1), т. е. -6+2*1 == -4
- …
абсцисса 8-й (№ N-2) вершины — a+(N-2)*(b-a)/(N-1), т. е. -6+8*1 == 2
абсцисса 9-й (№ N-1) вершины — a+(N-1)*(b-a)/(N-1), т. е. -6+9*1 == 2 (т. е. b)
TODO
- Функция масштабирования+переноса (да, это аффинные преобразования, только никому не говорите, а то испугаются)
- Координаты исходного графика vs координаты на экране
- Вычисление масштаба и смещения по X
- Вычисление масштаба и смещения по Y=f(X)
- Требуют нахождения max() и min()
Д/З
Внезапно — ничего из учебника, TODO про масштабирование и графики-ломаные — где?
- Про черепашку
TODO
- Ввести отрезок, количество точек и ширину экрана, вывести абсциссы точек на экране
Ввести отрезок, количество точек, а также строку — функцию от x (например, x*sin(x**2)), вывести координаты исходных точек графика
Ввести отрезок, количество точек, ширину и высоту экрана, а также строку — функцию от x (например, x*sin(x**2)), вывести координаты точек графика на экране
- Нарисовать всё это черепашкой
- Нарисовать оси координат
- Что делать, если оси координат лежат в стороне от графика, а рисовать их надо?