(495)240-8280ПН-СБ с 12:00 до 20:00
We speak English

Урок 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;

Теперь смотрится немного лучше.

Как всегда, спасибо вам за уделенное время, за ваши комментарии и вопросы. Надеюсь, этот курс обучения был вам полезен.