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

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

← Все примеры

Спираль Архимеда

Построение спирали Архимеда -- параметрической кривой, у которой радиус растёт пропорционально углу поворота. Программа показывает, как рисовать плавные кривые с помощью множества коротких отрезков.

Разбор

Подготовка переменных

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

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

    n := 200
    a := 0.1  | коэффициент спирали

Переменная n задаёт количество точек (отрезков), из которых состоит кривая. Чем больше n, тем более гладкой выглядит спираль. Коэффициент a определяет, как быстро спираль раскручивается: при большем a витки располагаются дальше друг от друга.

Начало из центра

    angle := 0.0
    r := 0.0
    x := 0.0
    y := 0.0

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

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

Спираль начинается из центра координат $(0, 0)$. Перо поднимается для перемещения в начальную точку, затем опускается. Цвет линии -- синий.

Рисование спирали

    нц для i от 1 до n
        angle := i * 0.2
        r := a * angle

        x := r * cos(angle)
        y := r * sin(angle)

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

Спираль Архимеда задаётся в полярных координатах формулой:

$r = a \cdot \theta$

где $r$ -- расстояние от центра, $\theta$ -- угол в радианах, $a$ -- коэффициент спирали. На каждом шаге угол увеличивается на $0{,}2$ радиана, и радиус пропорционально растёт. Полярные координаты переводятся в декартовы:

$x = r \cdot \cos(\theta), \quad y = r \cdot \sin(\theta)$

За 200 шагов угол достигает $200 \times 0{,}2 = 40$ радиан, что составляет примерно $6{,}4$ полных оборота.

Надпись

    поднять перо
    выбрать чернила(0)  | черный
    сместиться в точку(-3.0, -4.0)
    написать(4.0, "Спираль Архимеда")
кон

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

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

| Рисование спирали Архимеда
использовать Чертежник

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

    n := 200
    a := 0.1  | коэффициент спирали

    | Начинаем из центра
    angle := 0.0
    r := 0.0
    x := 0.0
    y := 0.0

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

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

    | Рисуем спираль
    нц для i от 1 до n
        angle := i * 0.2
        r := a * angle

        x := r * cos(angle)
        y := r * sin(angle)

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

    | Надпись
    поднять перо
    выбрать чернила(0)  | черный
    сместиться в точку(-3.0, -4.0)
    написать(4.0, "Спираль Архимеда")
кон

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