Line2D
Наследует: Node2D < CanvasItem < Node < Object
Двумерная полилиния, которую при желании можно текстурировать.
Описание
Этот узел рисует 2D-полилинию, т. е. фигуру, состоящую из нескольких точек, соединенных сегментами. Line2D не является математической полилинией, т. е. сегменты не бесконечно тонкие. Он предназначен для рендеринга и может быть окрашен и опционально текстурирован.
Предупреждение: Некоторые конфигурации может быть невозможно нарисовать красиво, например, очень острые углы. В таких ситуациях узел использует резервную логику рисования, чтобы выглядеть прилично.
Примечание: Line2D рисуется с использованием 2D-сетки.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Методы
void |
|
void |
|
get_point_count() const |
|
get_point_position(index: int) const |
|
void |
remove_point(index: int) |
void |
set_point_position(index: int, position: Vector2) |
Перечисления
enum LineJointMode: 🔗
LineJointMode LINE_JOINT_SHARP = 0
Делает сочленения полилинии заостренными, соединяя стороны двух сегментов, удлиняя их до пересечения. Если вращение сочленения слишком велико (на основе sharp_limit), сочленение возвращается к LINE_JOINT_BEVEL, чтобы предотвратить слишком длинные скосы.
LineJointMode LINE_JOINT_BEVEL = 1
Делает стыки полилинии скошенными/скошенными, соединяя стороны двух сегментов простой линией.
LineJointMode LINE_JOINT_ROUND = 2
Делает стыки полилинии скругленными, соединяя стороны двух сегментов дугой. Детализация этой дуги зависит от round_precision.
enum LineCapMode: 🔗
LineCapMode LINE_CAP_NONE = 0
Не рисует линию.
LineCapMode LINE_CAP_BOX = 1
Рисует окончание линии в виде прямоугольника, слегка расширяя первый/последний сегмент.
LineCapMode LINE_CAP_ROUND = 2
Рисует окончание линии в виде полукруга, прикрепленного к первому/последнему сегменту.
enum LineTextureMode: 🔗
LineTextureMode LINE_TEXTURE_NONE = 0
Берет левые пиксели текстуры и визуализирует их по всей полилинии.
LineTextureMode LINE_TEXTURE_TILE = 1
Размещает текстуру на полилинии. CanvasItem.texture_repeat узла Line2D должен быть CanvasItem.TEXTURE_REPEAT_ENABLED или CanvasItem.TEXTURE_REPEAT_MIRROR для правильной работы.
LineTextureMode LINE_TEXTURE_STRETCH = 2
Растягивает текстуру по полилинии. CanvasItem.texture_repeat узла Line2D должен быть CanvasItem.TEXTURE_REPEAT_DISABLED для достижения наилучших результатов.
Описания свойств
Если true, граница полилинии будет сглажена.
Примечание: Line2D не ускоряется пакетированием при сглаживании.
LineCapMode begin_cap_mode = 0 🔗
void set_begin_cap_mode(value: LineCapMode)
LineCapMode get_begin_cap_mode()
Стиль начала полилинии, если closed равен false.
Если true и полилиния имеет более 2 точек, последняя точка и первая будут соединены сегментом.
Примечание: Форма замыкающего сегмента не гарантируется бесшовной, если указан width_curve.
Примечание: Стык между замыкающим сегментом и первым сегментом рисуется первым, и он выбирает gradient и width_curve в начале. Это деталь реализации, которая может измениться в будущей версии.
Color default_color = Color(1, 1, 1, 1) 🔗
Цвет полилинии. Не будет использоваться, если задан градиент.
LineCapMode end_cap_mode = 0 🔗
void set_end_cap_mode(value: LineCapMode)
LineCapMode get_end_cap_mode()
Стиль окончания полилинии, если closed равен false.
Градиент рисуется по всей линии от начала до конца. default_color не будет использоваться, если это свойство установлено.
LineJointMode joint_mode = 0 🔗
void set_joint_mode(value: LineJointMode)
LineJointMode get_joint_mode()
Стиль соединений между сегментами полилинии.
PackedVector2Array points = PackedVector2Array() 🔗
void set_points(value: PackedVector2Array)
PackedVector2Array get_points()
Точки полилинии, интерпретированные в локальных 2D-координатах. Сегменты рисуются между соседними точками в этом массиве.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.
Гладкость, используемая для закругленных соединений и крышек. Более высокие значения приводят к более гладким углам, но более требовательны к визуализации и обновлению.
Определяет предел скоса полилинии. Обычно, когда joint_mode установлен на LINE_JOINT_SHARP, острые углы возвращаются к использованию логики соединений LINE_JOINT_BEVEL для предотвращения слишком длинных скосов. Более высокие значения этого свойства означают, что возврат к скошенному соединению произойдет при более острых углах.
Текстура, используемая для полилинии. Использует texture_mode для стиля рисования.
LineTextureMode texture_mode = 0 🔗
void set_texture_mode(value: LineTextureMode)
LineTextureMode get_texture_mode()
Стиль для визуализации texture полилинии.
Ширина полилинии.
Кривая ширины полилинии. Ширина полилинии по ее длине будет эквивалентна значению кривой ширины по ее домену. Кривая ширины должна быть единицей Curve.
Описания метода
void add_point(position: Vector2, index: int = -1) 🔗
Добавляет точку с указанным position относительно собственного положения полилинии. Если index не указан, новая точка будет добавлена в конец массива точек.
Если указан index, новая точка вставляется перед существующей точкой, идентифицированной индексом index. Индексы точек после новой точки увеличиваются на 1. Предоставленный index не должен превышать количество существующих точек в полилинии. См. get_point_count().
void clear_points() 🔗
Удаляет все точки из полилинии, делая ее пустой.
Возвращает количество точек в полилинии.
Vector2 get_point_position(index: int) const 🔗
Возвращает положение точки с индексом index.
void remove_point(index: int) 🔗
Удаляет точку с индексом index из полилинии.
void set_point_position(index: int, position: Vector2) 🔗
Заменяет позицию точки с указанным index на предоставленную position.