Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/picalines/vectorlangdiagram
Простой кастомный язык программирования для отрисовки векторных диаграмм
https://github.com/picalines/vectorlangdiagram
blazor-application custom-language university-project
Last synced: 1 day ago
JSON representation
Простой кастомный язык программирования для отрисовки векторных диаграмм
- Host: GitHub
- URL: https://github.com/picalines/vectorlangdiagram
- Owner: Picalines
- Created: 2022-03-01T20:19:45.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T21:44:39.000Z (almost 2 years ago)
- Last Synced: 2024-04-29T01:08:17.772Z (7 months ago)
- Topics: blazor-application, custom-language, university-project
- Language: C#
- Homepage:
- Size: 10.6 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# VectorLangDiagram
Это была курсовая работа. Основная суть:
* В одном C# проекте написан *очень простенький* компилятор собственного языка программирования, который предназначен для отрисовки векторных диаграмм.
* В другом проекте небольшое приложение на Blazor (запуск через electron), в котором можно редактировать и запускать (т.е. просматривать построенные диаграммы) программы на языке из первого проекта.Для Blazor приложения есть небольшая часть на TypeScript для подключения пары библиотек.
В папке [ExamplePrograms](ExamplePrograms) лежат примеры программ на языке *VectorLang*.
Такая программка нарисует рекурсивное бинарное дерево:
```
external branchLengthMult = 0.84;
external minBranchLength = 0.2;
external branchAngle = 30;def branch(number length) -> void = if (length >= minBranchLength) [
val v := {0, length};
plot(v);
translate(v);length := length * branchLengthMult;
val angleRad := branchAngle.degToRad();
push();
rotate(angleRad);
branch(length);
pop();push();
rotate(-angleRad);
branch(length);
pop();
];def main() -> void = [
branch(1);
];
```![image](https://user-images.githubusercontent.com/42614422/177333214-20991a47-d45f-42f0-9d3f-026c056b7ca1.png)