Вверх ↑
Ответов: 5446
Рейтинг: 323
#1: 2008-07-29 04:36:47 ЛС | профиль | цитата
Эх... Придётся-таки доделать SimpleDRAW... Заодно подумаю над блоками управления...
------------ Дoбавленo:

В 5-й версии обнаружен баг: не была подключена связь в блоках "Box processor" и "Ellipse processor", из-за чего координаты не считывались из стека. В 6-й версии поправлю.
------------ Дoбавленo:

Версия 6я (очередная).

Исправлено: некорректная работа блоков рисования прямоугольника и эллипас.

Добавлены команды:

Серия команд для рисованя дуг и секторов. 
Все команды этой серии используют 4 пары координат.

/ARC - рисует дугу
/ARCF - рисует сектор.
/ARCR - рисует дугу. Вторая пара координат указывается относительно первой.
/ARFR - рисует сектор. Вторая пара координат указывается относительно первой.
/ARCQ - рисует дугу. Четвёртая пара координат указывается относительно третьей.
/ARFQ - рисует сектор. Четвёртая пара координат указывается относительно третьей.
/ARQR - рисует дугу. Вторая пара координат указывается относительно первой. Четвёртая пара координат указывается относительно третьей.
/AFQR - рисует сектор. Вторая пара координат указывается относительно первой. Четвёртая пара координат указывается относительно третьей.

/ARCC - отрисовка дуги будет происходить против часовой стрелки.
/ARCW - отрисовка дуги будет происходить по часовой стрелке.
------------ Дoбавленo:

Анонс: скоро выложу версию с экспериментальной поддержкой управлением выполнением программы. Пока что сделаю только IF.
Ожидаются следующие команды:

Условный оператор IFxx..FI. Напоминаю: элементы берутся из стека в обратном порядке: сначала второй, затем - первый!

/IFEQ - сравнивает два верхних элемента стека, выполняет условный блок в случае равенства
/IFNE - сравнивает два верхних элемента стека, выполняет условный блок в случае неравенства
/IFGE - сравнивает два верхних элемента стека, выполняет условный блок если первый элемент больше или равен второму
/IFGT - сравнивает два верхних элемента стека, выполняет условный блок если первый элемент строго больше второго
/IFLE - сравнивает два верхних элемента стека, выполняет условный блок если первый элемент меньше или равен второму
/IFLT - сравнивает два верхних элемента стека, выполняет условный блок если первый элемент строго меньше второго
/ELSE - альтернативная ветка условного блока
/FI - конец условного блока
карма: 1

0
файлы: 1mydraw_v6.sha [97KB] [376]