Просмотр новых публикаций

Последние сообщения с форума

Джокер2 - Безумие на двоих (2024)
kishnin81, Кинообзор онлайн
0 Ответов
kishnin81
Дэдпул и Росомаха (2024)
kishnin81, Кинообзор онлайн
0 Ответов
kishnin81
Бесплатные VPS/VPDS
kishnin81, Прочие статьи
7 Ответов
safonovs3f
Как узнать имя пользователя на удаленном компьютере
kishnin81, Прочие статьи
1 Ответов
safonovs3f
ВТБ халявные акции за обучение
kishnin81, Прочие статьи
3 Ответов
safonovs3f

Внимание! Если Вы видите рекламму на нашем ресурсе, установите для вашего браузера расширение Adblock Plus | AdBlocker Ultimate | Блокировщик рекламы |

L системы | Гайд | Python



Сегодня я расскажу о такой штуке как L-системы и покажу на примере python.

Коротко о L-системе:
L-система строится с помощью набора символов, используемых для создания строк и правил для подстановки вместо каждого символа определённой строки.

Введём несколько понятий:
  • Аксиома - начальная строка, из которой будет строиться с помощью правил конечная строка.
  • Правила - способы замены символа строки на определенную строку.
  • Переменные - Символы к которым будут применяться правила.
  • Константы - Символы для которым не будут применяться правила.
Алгоритм построения:
  1. Для каждого символа аксиомы применяем правила n кол-во раз.
  2. Для каждого символа полученной строки применяем определённое действие.
Попробуем теперь на python:

Треугольник Серпинского:
 
from turtle import *


tracer(5)
axiom = "F-G-G"
axmTemp = ""
itr = 5
dist = 20
angle = 120

penup()
goto(-600, -300)
pendown()


rules = {"F": "F-G+F+G-F",
 "G": "GG"}

for _ in range(itr):
 for sym in axiom:
 if sym in rules:
 axmTemp += rules[sym]
 else:
 axmTemp += sym
 axiom = axmTemp
 axmTemp = ""

for sym in axiom:
 if sym == "F":
 forward(dist)
 elif sym == "G":
 forward(dist) 
 elif sym == "+":
 right(angle)
 elif sym == "-":
 left(angle)
 
Чтобы изменять скорость, отрисовки надо менять параметр tracer(). Для мгновенной отрисовки tracer(0).

forward(dist) - пройти вперёд на расстояние dist
left(angle), right(angle) - повернуться на угол angle влево или вправо.

+, - константы
F, G - переменные

itr - кол-во итераций (сколько раз применим правила к строке).

Чтобы строить другие системы нужно найти их правила, аксиомы, и т.д.
Их можно найти в разных местах, к примеру здесь:
https://ru.wikipedia.org/wiki/L-система

Надеюсь вам понравилось. 



Информация:
Посетители, находящиеся в группе Гости, не могут скачивать файлы с данного сайта.

Пароль к архивам: ComInet



12.03.2021 11:31 丨 Загрузок: 0 Просмотров: 235 Комментарий: (0)


Автор материала
...
Логин на сайте: ...
Группа: ...
Статус: ...

Категория

Поделись с друзьями


Комментариев: 0
avatar