Вверх ↑
Этот топик читают: Гость
Ответов: 5446
Рейтинг: 323
#1: 2008-07-17 01:01:47 ЛС | профиль | цитата
Дело было вечером, делать было нечего... Решил я старую идею реализовать, а именно - некий "язык" для рисования картинок и интерпретатор к нему. А так как акромя Hiasm-а под рукой ничего толкового не было, решил это сделать на HiAsm-е. Поэтому - встречайте первую версию!

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

Список поддерживаемых комманд:

CLS - Очистка экрана
MVUP - Переместиться вверх на один шаг *)
MVDN - Переместиться вниз на один шаг
MVLT - Переместиться влево на один шаг
MVRT - Переместиться вправо на один шаг
PNUP - "Поднять перо" (рисование ВЫКЛЮЧЕНО)
PNDN - "Опустить перо" (рисование ВКЛЮЧЕНО)
COLR - Установить цвет для рисования. **)
MVXY - Переместиться в точку (X, Y) ***)
MVRL - Сместиться на X пикселей по горизонтали и Y пикселей - по вертикали ***)

Примечания:
*) Шаг - верхнее число в стеке в момент исполения комманды
**) Цвет задаётся тремя числами от 0 до 255, взятыми из стека. Сверху стека лежит красная компонента, далее - зелёная, третей - синяя. Таким образом, класть числа в стек нужно в обраном порядке. Т.е., для получения красного цвета (255, 0, 0) используется следующий код: "0 0 255 COLR"
***) Координаты задаются в обратном порядке: сначала Y, потом X. Т.е., аналогом комманды "10 MVRT" будет "0 10 MVRL"
карма: 1

0
файлы: 1mydraw.zip [6.3KB] [402]
Ответов: 3655
Рейтинг: 69
#2: 2008-07-17 01:14:44 ЛС | профиль | цитата
Неочень понятно её назначение.
карма: 0

0
Ответов: 5446
Рейтинг: 323
#3: 2008-07-17 01:16:14 ЛС | профиль | цитата
Ну... Это proof-of-concept. Я просто хотел убедиться, что такое можно сделать на hiasm без применения IC.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2008-07-17 11:19:48 ЛС | профиль | цитата
для работы с массивами и матрицами такой бы подход нашел примение...
карма: 27
0
Ответов: 9906
Рейтинг: 351
#5: 2008-07-17 13:38:46 ЛС | профиль | цитата
Первый, насколько я помню, шаг в сторону векторной графике на HiAsm
Хилый шажок, конечно, но это, все-таки - ШАГ
карма: 9

0
Ответов: 5446
Рейтинг: 323
#6: 2008-07-17 19:48:10 ЛС | профиль | цитата
Сегодня продолжу работу. Видимо, переделаю обработку команд с >1 аргументом (COLR, MVXY, MVRL) - пусть будет человеческий порядок аргументов. Собственно, вопрос: насколько предложенная форма записи программы удобна? Не будет ли удобнее сделать постфиксную запись (сначала команда, потом - аргументы)? Правда, парсер для такой записи будет сложнее сделать...
------------ Дoбавленo:

P.S. Galkov, ага, совсем этот термин забыл. Вертелось только слово PostScript...
карма: 1

0
Ответов: 9906
Рейтинг: 351
#7: 2008-07-17 20:09:21 ЛС | профиль | цитата
iarspider, я тебе один умный вещь скажу....

Есть такой схемотехнический прием, который я называю "вертикальное программирование"
Вот перевел стек на эту технику, почувствуй разницу: code_9495.txt
карма: 9

0
файлы: 1code_9495.txt [18.2KB] [436]
Ответов: 5446
Рейтинг: 323
#8: 2008-07-18 01:44:03 ЛС | профиль | цитата
Galkov, за умный вещь спасибо!
------------ Дoбавленo:

Там ещё одно упрощение можно было сделать - в блоке вычисления второй пары координат для MVxx... Но это так, к слову

Объявляется опрос - что сделать дальше и в каком порядке. Варианты:

  • Расширить список комманд (Box, Ellipse, ...)
  • Добавить возможность производить мат. операции над верхним элементом хранилица чисел
  • Добавить переменные
  • Добавить возможность поворота/сдвига системы координат
Завтра примерно в это же время подведу итог и начну доработку в соответствии с пожеланиями трудящихся.
карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#9: 2008-07-18 10:42:41 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2021-05-21 12:56:47
карма: 0

0
Ответов: 2058
Рейтинг: 28
#10: 2008-07-18 14:46:59 ЛС | профиль | цитата
iarspider, может, лучше, прикрутишь возможность отображать 3DS модели в HiAsm?
карма: 1

0
Ответов: 5227
Рейтинг: 587
#11: 2008-07-18 17:31:19 ЛС | профиль | цитата
Эдик, есть ощющение для 3DS без InlineCode это будет гемОр
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 5446
Рейтинг: 323
#12: 2008-07-18 19:24:21 ЛС | профиль | цитата
Кхем... Вы издеваетесь или как? Ну ладно бы сказали "А фигли выдумывать свой язык, возьми и сделай интерпретатор PostScript-а", а вам сразу 3D подавай...
карма: 1

0
Ответов: 964
Рейтинг: 12
#13: 2008-07-18 19:54:57 ЛС | профиль | цитата
3DМакс вроде может экспортировать модели в DFX

Кстати я думаю сделать в нечто вроде простого редактора "проволочных" 3д моделей.
(Просто как часть иструметария )

Инфу о софтовом редаринге можно взять на пример тут
http://www.delphigfx.narod.ru/
http://www.delphigfx.narod.ru/3d.htm
карма: 0

0
Ответов: 5227
Рейтинг: 587
#14: 2008-07-18 20:22:32 ЛС | профиль | цитата
iarspider, да не надо не Кому подавать, достаточно намекнуть и предложить и сообща что нибудь родить этакое хотя неисключён выкидышь . Есть ещё вариант,
собрать БОЛЬШОЕ сообщество, организовать фонд помощи (тобишь скинуться) для NESCO чтобы он мог у себя пару недель на родине оторваться на всю катушку с девчёнками и всеми прочими удовольствиями, дать ещё неделю две что бы в себя пришёл, и ОН наверно чёрта лысого залепит , хотя помниться он как то говорил что не любит работать с графикой. но как попёрло как попёрло, nesco молоток одним словом . Что касается меня то я готов поучаствовать в векторной графике, давайте определятся с форматом (чтобы дёшего и сердито) Господа неровнодушные, подключайтесь!
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 964
Рейтинг: 12
#15: 2008-07-18 20:40:41 ЛС | профиль | цитата
В пинципе могу и я "навять" раньше но умея тут есть еще несколько проктов ...
Зы
Вообще готовлю несколько глобальных предложений по развитию ХайАсма
но на этот раз постараюсь не быть голословным.
( Возможно я программирую не оптимально но как рабочие доказательство возможности
воплощения моих идей мой код годится ...)
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)