📖 Документация Qumir

← Вернуться в Playground

← Все примеры

График функции $y = \sin(x)$

Построение графика синуса с осями координат и подписью. Программа показывает, как визуализировать математическую функцию, аппроксимируя кривую множеством коротких отрезков.

Разбор

Настройка параметров

использовать Чертежник

алг
нач
    цел i
    вещ x, y, prevX, prevY
    вещ scale
    цел n

    scale := 2.0
    n := 100

Параметр scale задаёт масштаб по вертикали. Без масштабирования синус колеблется от $-1$ до $1$, что может быть слишком мелко. При scale = 2.0 амплитуда увеличивается вдвое: от $-2$ до $2$. Параметр n -- количество точек графика.

Оси координат

    выбрать чернила(8)  | серый
    опустить перо

    | Ось X
    поднять перо
    сместиться в точку(-5.0, 0.0)
    опустить перо
    сместиться в точку(5.0, 0.0)

    | Ось Y
    поднять перо
    сместиться в точку(0.0, -3.0)
    опустить перо
    сместиться в точку(0.0, 3.0)

Оси рисуются серым цветом (чернила $8$). Каждая ось -- это отрезок. Между осями перо поднимается, чтобы не оставлять соединительной линии. Ось $X$ проходит от $(-5, 0)$ до $(5, 0)$, ось $Y$ -- от $(0, -3)$ до $(0, 3)$.

Построение графика

    выбрать чернила(1)  | синий

    x := -5.0
    y := sin(x) * scale

    поднять перо
    сместиться в точку(x, y)
    опустить перо

    prevX := x
    prevY := y

    нц для i от 1 до n
        x := -5.0 + 10.0 * i / n
        y := sin(x) * scale

        сместиться в точку(x, y)

        prevX := x
        prevY := y
    кц

График строится как последовательность из $100$ коротких отрезков. Значение $x$ равномерно распределяется от $-5$ до $5$:

$x_i = -5 + \frac{10 \cdot i}{n}$

Для каждого $x_i$ вычисляется:

$y_i = \sin(x_i) \cdot \text{scale}$

Перо перемещается в первую точку без рисования, затем опускается и последовательно проходит через все точки, создавая плавную кривую.

Подпись

    поднять перо
    выбрать чернила(0)  | черный
    сместиться в точку(-4.5, 2.5)
    написать(2.0, "y=sin(x)")
кон

После построения графика перо поднимается и перемещается в точку $(-4{,}5,; 2{,}5)$, где командой написать выводится подпись с размером шрифта $2{,}0$.

Полная программа

| График функции y = sin(x)
использовать Чертежник

алг
нач
    цел i
    вещ x, y, prevX, prevY
    вещ scale
    цел n

    scale := 2.0
    n := 100

    | Оси координат
    выбрать чернила(8)  | серый
    опустить перо

    | Ось X
    поднять перо
    сместиться в точку(-5.0, 0.0)
    опустить перо
    сместиться в точку(5.0, 0.0)

    | Ось Y
    поднять перо
    сместиться в точку(0.0, -3.0)
    опустить перо
    сместиться в точку(0.0, 3.0)

    | График функции
    выбрать чернила(1)  | синий

    | Вычисляем первую точку
    x := -5.0
    y := sin(x) * scale

    поднять перо
    сместиться в точку(x, y)
    опустить перо

    prevX := x
    prevY := y

    | Рисуем график
    нц для i от 1 до n
        x := -5.0 + 10.0 * i / n
        y := sin(x) * scale

        сместиться в точку(x, y)

        prevX := x
        prevY := y
    кц

    | Надпись
    поднять перо
    выбрать чернила(0)  | черный
    сместиться в точку(-4.5, 2.5)
    написать(2.0, "y=sin(x)")
кон

▶ Запустить пример