EV3. Рисуем на экране.

Brick Screen1Экран EV3 имеет разрешений 128 на 176 точек. А это больше, чем у моего телефона.  И на нём можно рисовать. С BricxCC рисовать на экране — одно удовольствие. Но для этого нужно знать разные команды. Вот что мне удалось выудить из файлов, содержащихся в папке API и содержащих в имени lcd.

Во первых — точка отсчёта (0,0) находится в левом нижнем углу.

Рисуем линии.

LineOut(x1,y1,x2,y2);

Соединяем точки с указанными координатами.

LineOutEx(x1,y1,x2,y2,параметр); 

так же линия, но расширенная, с параметром, назначение которого пока не установил. Его возможные значения DRAW_OPT_NORMAL или DRAW_OPT_FILL_SHAPE. Других вариантов пока не нашел.

DisplayLineX(x1,x2,top,PixelMode);

Рисует горизонтальную линию от точки x1  до x2 в top пикселях от верхней части экрана. Работает только если до этого уже был вывод на экран.

DisplayLineY(left,y1,y2,PixelMode);

Аналогичен предыдущему оператору. Линия идёт в left точках от левого края сверху вниз. Т.е. начало отсчета — верхний край экрана. Странно.
Оператор DRAW_PIXELS_SET не обязателен. Если его значение равно 1, то линия рисуется цветом экрана, стирая то, что было нарисовано ранее.

CmdDrawLine(x1, y1, x2, y2, PixelMode);

Опять же соединяем точки с указанными координатами. Но можем и стереть то, что на пути линии. Нужно по эксперементировать — уж больно большая процедура в ev3_lcd.c

Ну и в качестве переменки (для меня) небольшая программа, рисующая паутинки как на картинке сверху.

 #include <stdio.h>
 #include <unistd.h>
 #include "C:\BricxCC\API\ev3_lcd.h"
 #include "C:\BricxCC\API\ev3_command.h"
 int main()
 {
   int i;
   LcdInit();
   for (i=0; i<=12; i++) {
      LineOut(0,i*10,100-i*10,0);
      LineOut(177-i*10,128,177,i*10);
      CircleOut(89,62,i*5);
   }
   LcdText(1, 0, 40, "parshev.wordpress.com");
   Wait(SEC_1);
   LcdExit();
}

Продолжение следует: окружности, прямоугольники, текст и другие интересные вещи.

2 комментария (+add yours?)

  1. Артем
    Дек 20, 2013 @ 22:22:46

    Думаю, вы понимаете, что абсолютные пути в include’ах не есть хорошо.

    Ответить

    • Александр А. Паршев
      Дек 26, 2013 @ 10:52:16

      Думаю, что понимаю. Как сделать лучше: *.h переместить в папку программы, прописать пути в системе или что-то еще?

      Ответить

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: