Line2D

Hereda: Node2D < CanvasItem < Node < Object

Una polilínea 2D que se puede texturizar opcionalmente.

Descripción

Este nodo dibuja una polilínea 2D, es decir, una forma que consta de varios puntos conectados por segmentos. Line2D no es una polilínea matemática, es decir, los segmentos no son infinitamente delgados. Está destinado a la renderización y puede colorearse y texturizarse opcionalmente.

Advertencia: Ciertas configuraciones pueden ser imposibles de dibujar bien, como ángulos muy agudos. En estas situaciones, el nodo utiliza una lógica de dibujo alternativa para que se vea decente.

Nota: Line2D se dibuja usando una malla 2D.

Tutoriales

Propiedades

bool

antialiased

false

LineCapMode

begin_cap_mode

0

bool

closed

false

Color

default_color

Color(1, 1, 1, 1)

LineCapMode

end_cap_mode

0

Gradient

gradient

LineJointMode

joint_mode

0

PackedVector2Array

points

PackedVector2Array()

int

round_precision

8

float

sharp_limit

2.0

Texture2D

texture

LineTextureMode

texture_mode

0

float

width

10.0

Curve

width_curve

Métodos

void

add_point(position: Vector2, index: int = -1)

void

clear_points()

int

get_point_count() const

Vector2

get_point_position(index: int) const

void

remove_point(index: int)

void

set_point_position(index: int, position: Vector2)


Enumeraciones

enum LineJointMode: 🔗

LineJointMode LINE_JOINT_SHARP = 0

Hace que las uniones de la polilínea sean puntiagudas, conectando los lados de los dos segmentos extendiéndolos hasta que se intersecten. Si la rotación de una unión es demasiado grande (basada en sharp_limit), la unión recurre a LINE_JOINT_BEVEL para evitar ingletes muy largos.

LineJointMode LINE_JOINT_BEVEL = 1

Makes the polyline's joints bevelled/chamfered, connecting the sides of the two segments with a simple line.

LineJointMode LINE_JOINT_ROUND = 2

Hace que las uniones de la polilínea sean redondeadas, conectando los lados de los dos segmentos con un arco. El detalle de este arco depende de round_precision.


enum LineCapMode: 🔗

LineCapMode LINE_CAP_NONE = 0

No dibuja un remate de línea.

LineCapMode LINE_CAP_BOX = 1

Dibuja el remate de línea como una caja, extendiendo ligeramente el primer/último segmento.

LineCapMode LINE_CAP_ROUND = 2

Dibuja el extremo de la línea como un semicírculo adjunto al primer/último segmento.


enum LineTextureMode: 🔗

LineTextureMode LINE_TEXTURE_NONE = 0

Toma los píxeles de la izquierda de la textura y los renderiza sobre toda la polilínea.

LineTextureMode LINE_TEXTURE_TILE = 1

Coloca la textura en mosaico sobre la polilínea. CanvasItem.texture_repeat del nodo Line2D debe ser CanvasItem.TEXTURE_REPEAT_ENABLED o CanvasItem.TEXTURE_REPEAT_MIRROR para que funcione correctamente.

LineTextureMode LINE_TEXTURE_STRETCH = 2

Estira la textura a través de la polilínea. CanvasItem.texture_repeat del nodo Line2D debe ser CanvasItem.TEXTURE_REPEAT_DISABLED para obtener los mejores resultados.


Descripciones de Propiedades

bool antialiased = false 🔗

  • void set_antialiased(value: bool)

  • bool get_antialiased()

Si es true, el borde de la polilínea tendrá antialiasing.

Nota: Line2D no se acelera mediante el procesamiento por lotes cuando se le aplica antialiasing.


LineCapMode begin_cap_mode = 0 🔗

El estilo del principio de la polilínea, si closed es false.


bool closed = false 🔗

  • void set_closed(value: bool)

  • bool is_closed()

Si es true, y la polilínea tiene más de 2 puntos, el último punto y el primero se conectarán mediante un segmento.

Nota: No se garantiza que la forma del segmento de cierre sea perfecta si se proporciona una width_curve.

Nota: La unión entre el segmento de cierre y el primer segmento se dibuja primero y muestrea el gradient y la width_curve al principio. Este es un detalle de implementación que podría cambiar en una versión futura.


Color default_color = Color(1, 1, 1, 1) 🔗

  • void set_default_color(value: Color)

  • Color get_default_color()

El color de la polilínea. No se utilizará si se establece un gradiente.


LineCapMode end_cap_mode = 0 🔗

El estilo del final de la polilínea, si closed es false.


Gradient gradient 🔗

El gradiente se dibuja a través de toda la línea de principio a fin. El default_color no se utilizará si se establece esta propiedad.


LineJointMode joint_mode = 0 🔗

El estilo de las conexiones entre los segmentos de la polilínea.


PackedVector2Array points = PackedVector2Array() 🔗

Los puntos de la polilínea, interpretados en coordenadas 2D locales. Los segmentos se dibujan entre los puntos adyacentes de esta matriz.

Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.


int round_precision = 8 🔗

  • void set_round_precision(value: int)

  • int get_round_precision()

La suavidad utilizada para las uniones y remates redondeados. Los valores más altos dan como resultado esquinas más suaves, pero son más exigentes de renderizar y actualizar.


float sharp_limit = 2.0 🔗

  • void set_sharp_limit(value: float)

  • float get_sharp_limit()

Determina el límite de inglete de la polilínea. Normalmente, cuando joint_mode se establece en LINE_JOINT_SHARP, los ángulos agudos recurren a la lógica de las uniones LINE_JOINT_BEVEL para evitar ingletes muy largos. Los valores más altos de esta propiedad significan que el retorno a una unión biselada ocurrirá en ángulos más agudos.


Texture2D texture 🔗

La textura utilizada para la polilínea. Utiliza texture_mode para el estilo de dibujo.


LineTextureMode texture_mode = 0 🔗

El estilo para renderizar la texture de la polilínea.


float width = 10.0 🔗

El ancho de la polilínea.


Curve width_curve 🔗

La curva de anchura de la polilínea. La anchura de la polilínea a lo largo de su longitud será equivalente al valor de la curva de anchura sobre su dominio. La curva de anchura debe ser una Curve unitaria.


Descripciones de Métodos

void add_point(position: Vector2, index: int = -1) 🔗

Añade un punto con la position especificada en relación con la propia posición de la polilínea. Si no se proporciona ningún index, el nuevo punto se añadirá al final de la matriz de puntos.

Si se proporciona index, el nuevo punto se inserta antes del punto existente identificado por el índice index. Los índices de los puntos después del nuevo punto se incrementan en 1. El index proporcionado no debe exceder el número de puntos existentes en la polilínea. Véase get_point_count().


void clear_points() 🔗

Elimina todos los puntos de la polilínea, dejándola vacía.


int get_point_count() const 🔗

Devuelve el número de puntos en la polilínea.


Vector2 get_point_position(index: int) const 🔗

Devuelve la posición del punto en el índice index.


void remove_point(index: int) 🔗

Elimina el punto en el índice index de la polilínea.


void set_point_position(index: int, position: Vector2) 🔗

Sobrescribe la posición del punto en el index dado con la position proporcionada.