Гибкая настройка 2D-модели
Last updated
Last updated
Помимо создания виртуального мира роботов в TRIK Studio, можно делать более гибкую настройку при помощи редактирования XML-файла: указывать точнее расположения объектов, цвет, ширину и другие параметры.
Для начала необходимо создать XML-файл виртуальной модели.
В отладке 2D-модели оси расположены следующим образом:
Внимание! Одна клетка имеет размеры 17,5×17,5 сантиметров или 50×50 пикселей.
Для создания пустого XML-файла используйте стандартные средства вашей операционной системы.
Для сохранения нарисованной в TRIK Studio модели мира:
Перейдите в режим 2D.
Перейдите в «Режим отладки».
Укажите место сохранения и имя файла.
Откройте сохраненный XML-файл в любом текстовом редакторе. Например, Notepad++.
XML-файл состоит из тегов и атрибутов.
Тег — это элемент языка разметки. Существует начальный (открывающий) и конечный (закрывающий) тег. Текст, содержащийся между начальным и конечным тегом, отображается и размещается в соответствии со свойствами, указанными в начальном теге.
Например:
Атрибуты — это свойства тега, дающие дополнительные возможности форматирования текста. Они записываются в виде сочетания «имя атрибута — значение». Текстовые значения заключаются в кавычки.
В вышеуказанном примере атрибутами являются:
begin="200:-200"
id="{a3ede76b-1d7e-4c72-9ed4-08d8ea9af4bf}"
end="200:150"
Самая простая виртуальная модель мира без объектов в формате .xml
выглядит следующим образом:
Для описания роботов имеются следующие теги:
Тег | Описание |
Определяет робота на сцене. Используется как контейнер и должен содержать элемент robot. | |
Добавляет робота на сцену. Может использоваться как контейнер. | |
Определяет датчики на роботе. Используется как контейнер. | |
Конфигурация портов датчиков. | |
Определяет стартовое положение робота. | |
Конфигурация портов моторов. |
Определяет робота на сцене. Используется как контейнер, атрибутов не имеет.
Добавляет робота на сцену. Может использоваться как контейнер.
Внимание! В TRIK Studio нельзя добавить несколько роботов на сцену.
Атрибут | Описание |
direction="0″ | Направление робота, которое можно регулировать, нажав на робота и потянув за стрелку. |
position="x:y" | Положение робота, где x, y — положение левой верхней точки квадрата робота в системе координат. |
id="trikKitRobot" | Уникальный идентификатор. |
Определяет датчики на роботе. Используется как контейнер, атрибутов не имеет.
Конфигурация портов датчиков.
Атрибут | Описание |
position="x:y" | Положение датчика, где x, y — положение центральной точки квадрата датчика в системе координат. |
direction="0″ | Направление датчика, которое можно регулировать, нажав на датчик и потянув за стрелку. |
port="A1###input######sensorA1" | Порт, к которому подключен датчик. |
type="trik::robotModel::parts::TrikInfraredSensor" | Тип подключенного сенсора. |
Существует 5 видов датчиков для TRIK и 9 видов датчиков для EV3:
Датчик | Описание |
TrikSonarSensor | Ультразвуковой датчик расстояния. |
TrikLineSensor | Датчик линии. |
TrikLightSensor | Датчик освещённости. |
TrikTouchSensor | Датчик касания. |
TrikInfraredSensor | Инфракрасный датчик расстояния. |
Определяет стартовое положение робота.
Атрибут | Описание |
id="{name}" | Уникальный идентификатор. |
direction="0″ | Направление робота, если нажать на кнопку «вернуть». Чтобы отрегулировать, нажмите на крестик и потяните за стрелку. |
x="25″ | Положение по оси x в системе координат. |
y="25″ | Положение по оси y в системе координат. |
Конфигурация портов моторов.
Атрибут | Описание |
left="M4###output###М4###" | Порт, к которому подключен левый двигатель. |
right="M3###output###М3###" | Порт, к которому подключен правый двигатель. |
Для описания объектов имеются следующие теги:
Тег | Описание |
walls | Определяет стены. Используется как контейнер, атрибутов не имеет. |
skittles | Определяет банки. Используется как контейнер, атрибутов не имеет. |
balls | Определяет мячи. Используется как контейнер, атрибутов не имеет. |
colorFields | Определяет элементы, которые вы можете нарисовать (линию, кривую Безье, прямоугольник, эллипс, элементы, нарисованные с помощью стилуса). Используется как контейнер, атрибутов не имеет. |
images | Определяет вставленную картинку. Используется как контейнер, атрибутов не имеет. |
regions | Определяет регионы. Используется как контейнер, атрибутов не имеет. |
Добавляет стену. | |
Добавляет банку. | |
Добавляет мяч. | |
Добавляет линию. | |
Добавляет кривую Безье. | |
Добавляет прямоугольник. | |
Добавляет эллипс. | |
Определяет стилус на сцене. Используется как контейнер. | |
Позволяет рисовать произвольные фигуры с помощью стилуса. | |
Позволяет добавлять регионы в на сцене. |
Добавляет на сцену стену.
Атрибут | Описание |
id="{name}" | Уникальный идентификатор. |
begin="x:y" | Начало стены, где x, y — положение начальной точки в системе координат. |
end="x:y" | Конец стены, где x, y — положение конечной точки в системе координат. |
Добавляет банку на сцену.
Атрибут | Описание |
markerY="44″ | Позиция, на которую встанет банка по оси Y, если нажать на кнопку «вернуть». |
markerX="220″ | Позиция, на которую встанет банка по оси X, если нажать на кнопку «вернуть». |
id="{name}" | Уникальный идентификатор. |
y="44″ | Положение по оси Y. |
x="220″ | Положение по оси X. |
Добавляет мяч на сцену.
Атрибут | Описание |
markerY="169″ | Позиция, на которую встанет мяч по оси Y, если нажать на кнопку «вернуть». |
markerX="-18″ | Позиция, на которую встанет мяч по оси X, если нажать на кнопку «вернуть». |
id="{name}" | Уникальный идентификатор. |
y="169″ | Положение по оси Y. |
x="-18″ | Положение по оси X. |
Добавляет линию на сцену.
Атрибут | Описание |
begin="x:y" | Начало линии, где x, y — положение начальной точки в системе координат. |
end="x:y" | Конец линии, где x, y — положение конечной точки в системе координат. |
id="{name}" | Уникальный идентификатор. |
stroke-width="6″ | Ширина линии. |
fill="#ff000000″ | Цвет заливки линии. |
fill-style="none" | Заливка. В данном случае этот атрибут не имеет смысла, т.к. линия всегда однородная. |
stroke-style="solid" | Вид линии. Существует 5 видов линии:
|
stroke="#ff000000″ | Цвет линии. |
Добавляет кривую Безье.
Атрибут | Описание |
cp1="x:y" | Маркер, задающий изгиб кривой. |
cp2="x:y" | Маркер, задающий изгиб кривой. |
stroke-style="solid" | Вид кривой Безье. Виды кривой Безье аналогичны видам линии. |
begin="x:y" | Начало кривой Безье, где x, y — положение начальной точки в системе координат. |
end="x:y" | Конец кривой Безье, где x, y — положение конечной точки в системе координат. |
id="{name}" | Уникальный идентификатор. |
fill-style="none" | Заливка. В данном случае этот атрибут не имеет смысла, т.к. кривая Безье всегда однородная. |
stroke-width="6″ | Ширина кривой Безье. |
stroke="#ff000000″ | Цвет заливки кривой Безье. |
fill="#ff000000″ | Цвет кривой Безье. |
Добавляет прямоугольник.
Атрибут | Описание |
stroke-style="solid" | Вид границ прямоугольника. Виды прямоугольника аналогичны видам линии. |
begin="x:y" | Начало прямоугольника, где x, y — положение начальной точки в системе координат. |
end="x:y" | Конец прямоугольника, где x, y — положение конечной точки в системе координат. |
id="{name}" | Уникальный идентификатор. |
fill-style="none" | Заливка. По умолчанию стоит «none». Заполненный прямоугольник будет со значением «solid». |
fill="#ff000000″ | Цвет границ прямоугольника. |
stroke-width="6" | Ширина границ прямоугольника. |
stroke="#ff000000″ | Цвет заливки прямоугольника. |
Добавляет эллипс.
Атрибут | Описание |
stroke-style="solid" | Вид границ эллипса. Виды эллипса аналогичны видам линии. |
begin="x:y" | Начало эллипса, где x, y — положение начальной точки в системе координат. |
end="x:y" | Конец эллипса, где x, y — положение конечной точки в системе координат. |
id="{name}" | Уникальный идентификатор. |
fill-style="none" | Заливка. По умолчанию стоит «none». Заполненный эллипс — будет со значением «solid». |
stroke-width="6″ | Ширина границ эллипса. |
fill="#ff000000″ | Цвет границ эллипса. |
stroke="#ff000000″ | цвет заливки эллипса |
Определяет стилус для рисования.
Атрибут | Описание |
stroke-style="solid" | Вид фигуры. Виды фигур, нарисованных с помощью стилуса, аналогичны видам линии. |
id="{name}" | Уникальный идентификатор. |
fill-style="none" | Заливка. В данном случае этот атрибут не имеет смысла, т.к. нарисованные фигуры с помощью стилуса всегда однородные. |
stroke-width="6″ | Толщина стилуса. |
fill="#ff000000″ | Цвет стилуса. |
stroke="#ff000000″ | Цвет заливки стилуса. |
Позволяет рисовать произвольные фигуры с помощью стилуса. Этот блок кода состоит из множества отрезков.
Атрибут | Описание |
stroke-style="solid" | вид фигуры. Виды фигур, нарисованных с помощью стилуса, аналогичны видам линии |
id="{name}" | уникальный идентификатор |
fill-style="none" | заливка. В данном случае этот атрибут не имеет смысла, т.к. нарисованные фигуры с помощью стилуса всегда однородные |
stroke-width="6″ | толщина стилуса |
fill="#ff000000″ | цвет стилуса |
stroke="#ff000000″ | цвет заливки эллипса стилуса |
Позволяет добавлять регионы на сцене. Существует 2 вида региональных ограничений:
rectangle — прямоугольник
ellipse — эллипс
Атрибут | Описание |
filled="true" | Заполненность. Значение по умолчанию — true. |
type="rectangle" | Геометрический вид региона. |
height="300″ | Высота региона (в случае с эллипсом это высота прямоугольника, описывающего эллипс). |
width="300″ | Ширина региона (в случае с эллипсом это длина прямоугольника, описывающего эллипс). |
text="Finish" | Название, которое будет выводиться в TRIK Studio. |
textX="0″ | Положение названия региона относительно левого нижнего угла по оси X. |
textY="0″ | Положение названия региона относительно левого нижнего угла по оси Y. |
x="1300″ | Положение начала региона (левого верхнего угла) по оси X (в случае с эллипсом это координата по оси X левого верхнего угла прямоугольника, описывающего эллипс). |
y="-200″ | Положение начала региона (левого верхнего угла) по оси Y (в случае с эллипсом это координата по оси Y левого верхнего угла прямоугольника, описывающего эллипс). |
visible="false" | Видимость в TRIK Studio. |
id="finish" | Уникальный идентификатор региона. |
color="#ff0000″ | Цвет границ и заполнения. |
Необходимо нарисовать штрихкод. Штрихкод состоит из белых и черных линий одинаковой толщины. Черная линия задает 1 в двоичном числе, а белая 0. Первая черная линия на пути робота — это старший бит числа.
Порядок линий в штрихкоде: 1001011011
.
В данной задаче линии должны быть одинаковой толщины и длины. От руки с помощью инструмента «Линия» или «Стилус» нарисовать линии очень сложно, поэтому отредактируйте линии вручную:
1. Нарисуйте на сцене 10 линий.
2. Сохраните модель мира.
3. Откройте получившийся XML-файл в любом удобном редакторе. Обратите внимание на блок кода с тегом <line...>
.
4. Для удобства назовите каждую линию black1
-black5
и white1
-white5
. Сделать это можно в атрибуте id
. Называйте линии в порядке, указанном выше.
5. Укажите толщину линий «50» в атрибуте stroke-width
.
6. Присвойте цвет каждой линии: #ff000000
— черный, #ffffffff
— белый. Сделать это можно в атрибуте fill
. Присваивайте цвета таким образом, чтобы получился штрихкод.
7. Выставьте положение каждой линии в атрибутах begin
и end
без зазоров, чтобы получился ровный штрихкод.
Нажмите правой кнопкой мыши на сцену и в появившемся контекстном меню выберите «Сохранить модель мира…».