Урок 8.2. Команды LINE и LINE_P
Эта команда рисует сегмент линии от (x1, y1) до (x2, y2). Цвет можно выбрать.
Синтаксис:
Декартова система координат:
LINE(x1, y1, x2, y2, color*)
Пиксельная система координат:
LINE_P(x1, y1, x2, y2, color*)
Следующие две программы CIRCLE1 и CIRCLE2 выполняют те же самые действия: рисуют окружность, указывают подписи к квадрантам и углам.
Я рассказываю об этих двух командах потому, что при программировании графических объектов нужно быть предельно внимательными.
Могут потребоваться некоторые настройки касательно того, где должны располагаться изображаемые объекты, и я надеюсь, что команды CIRCLE1 и CIRCLE2 это четко иллюстрируют.
Используется средний размер шрифта (устанавливается в Домашних настройках).
Символ угла (°) можно ввести с помощью + , и выбрав знак ° из таблицы.
CIRCLE1 (так сказать, "черновик" этой программы):
EXPORT CIRCLE1()
BEGIN
RECT();
TEXTOUT_P("Circle", 0, 0);
TEXTOUT_P("II", 109, 59);
TEXTOUT_P("90°", 159, 59);
TEXTOUT_P("I", 209, 59);
TEXTOUT_P("180°", 109, 109);
TEXTOUT_P("0°", 209, 109);
TEXTOUT_P("III", 109, 159);
TEXTOUT_P("270°", 159, 159);
TEXTOUT_P("IV", 209, 159);
LINE_P(0, 109, 318, 109, RGB(16, 16, 16));
LINE_P(159, 0, 159, 239, RGB(16, 16, 16));
ARC_P(159, 109, 30);
FREEZE;
END;
Результат:
Хорошая работа, но можно сделать лучше. Сначала я перемещу подписи II, 180° и III на 10 пикселей левее, главным образом для того, чтобы подпись 180° не заходила на окружность.
Во-вторых, я сдвину III, 270° и IV на 10 пикселей выше, чтобы нижние надписи смотрелись не так "оторвано" от окружности.
Также я хочу сделать подписи к размерам углов синим цветом, хотя это не обязательно. И мне нужно будет установить код размера шрифта на 0.
И, наконец, мне кажется, что линии осей слишком черные. Поэтому я сделаю их серыми.
Ниже я покажу вторую версию программы. И в рамках этого урока я назову программу CIRCLE2.
EXPORT CIRCLE2()
BEGIN
RECT();
TEXTOUT_P("Circle", 0, 0);
TEXTOUT_P("II", 99, 59);
TEXTOUT_P("90°", 159, 59, 0, RGB(0, 0, 255));
TEXTOUT_P("I", 209, 59);
TEXTOUT_P("180°", 99, 109, 0, RGB(0, 0, 255));
TEXTOUT_P("0°", 209, 109, 0, RGB(0, 0, 255));
TEXTOUT_P("III", 99, 149);
TEXTOUT_P("270°", 159, 149, 0, RGB(0, 0, 255));
TEXTOUT_P("IV", 209, 149);
LINE_P(0, 109, 318, 109, RGB(128, 128, 128));
LINE_P(159, 0, 159, 239, RGB(128, 128, 128));
ARC_P(159, 109, 30);
FREEZE;
END;
Теперь смотрится немного лучше.
Как всегда, спасибо вам за уделенное время, за ваши комментарии и вопросы. Надеюсь, этот курс обучения был вам полезен.