Traducción no oficial al español rioplatense, generada con IA (Claude Sonnet 5.5) bajo la dirección y revisión de Jassiel Ovando. No es una publicación de Typst GmbH ni cuenta con su aval; ante cualquier duda, prevalece la documentación oficial en inglés. ¿Un error de traducción o una sugerencia? Reportalo. Tipografía: Reforma, de PampaType.

curveElemento
Signo de pregunta
Desde: 0.13.0Ir al código fuente

Una curva formada por movimientos, líneas y segmentos de Bézier.

En todo momento hay una pluma o cursor conceptual.

A los fines del diseño, el cuadro delimitador de la curva es un rectángulo ajustado que contiene todos los segmentos, así como el punto (0pt, 0pt).

Las posiciones se pueden especificar de forma absoluta (es decir, relativas a (0pt, 0pt)) o relativas a la posición actual de la pluma/cursor, es decir, la posición donde terminó el segmento anterior.

Los puntos de control de las curvas de Bézier se pueden omitir pasando none o reflejarse automáticamente del segmento anterior pasando auto.

Ejemplo

#curve( fill: blue.lighten(80%), stroke: blue, curve.move((0pt, 50pt)), curve.line((100pt, 50pt)), curve.cubic(none, (90pt, 0pt), (50pt, 0pt)), curve.close(), )

Parámetros

fill
none o color o gradient o tiling
Configurable con set
Signo de pregunta
Por defecto: none

Cómo rellenar la curva.

Al establecer un relleno, el trazo por defecto desaparece. Para crear una curva con relleno y trazo, tenés que configurar ambos.

fill-rule
str
Configurable con set
Signo de pregunta
Por defecto: "non-zero"

La regla de dibujo que se usa para rellenar la curva.

ExpandirVer ejemplo
// We use `.with` to get a new // function that has the common // arguments pre-applied. #let star = curve.with( fill: red, curve.move((25pt, 0pt)), curve.line((10pt, 50pt)), curve.line((50pt, 20pt)), curve.line((0pt, 20pt)), curve.line((40pt, 50pt)), curve.close(), ) #star(fill-rule: "non-zero") #star(fill-rule: "even-odd")
VarianteDetalles
"non-zero"Especifica que el “interior” se calcula con una suma distinta de cero de cruces de bordes con signo.
"even-odd"Especifica que el “interior” se calcula con una cantidad impar de cruces de bordes.

stroke
none o auto o length o color o gradient o stroke o tiling o dictionary
Configurable con set
Signo de pregunta
Por defecto: auto

Cómo trazar la curva.

Se puede establecer en none para desactivar el trazo o en auto para un trazo negro de 1pt si y solo si no se da un relleno.

ExpandirVer ejemplo
#let down = curve.line((40pt, 40pt), relative: true) #let up = curve.line((40pt, -40pt), relative: true) #curve( stroke: 4pt + gradient.linear(red, blue), down, up, down, up, down, )

components
content
ObligatorioPosicional
Signo de pregunta
Variádico
Signo de pregunta

Los componentes de la curva, en forma de movimientos, segmentos de línea y de Bézier, y cierres.

Funciones
Signo de pregunta

moveElemento
Signo de pregunta
Desde: 0.13.0Ir al código fuente

Inicia un componente de curva nuevo.

Si no se pasa ningún elemento curve.move, la curva empezará en (0pt, 0pt).

ExpandirVer ejemplo
#curve( fill: blue.lighten(80%), fill-rule: "even-odd", stroke: blue, curve.line((50pt, 0pt)), curve.line((50pt, 50pt)), curve.line((0pt, 50pt)), curve.close(), curve.move((10pt, 10pt)), curve.line((40pt, 10pt)), curve.line((40pt, 40pt)), curve.line((10pt, 40pt)), curve.close(), )
curve.move() → content

start
array
ObligatorioPosicional
Signo de pregunta

El punto de inicio del componente nuevo.

relative
bool
Configurable con set
Signo de pregunta
Por defecto: false

Si las coordenadas son relativas al punto anterior.

lineElemento
Signo de pregunta
Desde: 0.13.0Ir al código fuente

Agrega una línea recta desde el punto actual hasta el siguiente.

ExpandirVer ejemplo
#curve( stroke: blue, curve.line((50pt, 0pt)), curve.line((50pt, 50pt)), curve.line((100pt, 50pt)), curve.line((100pt, 0pt)), curve.line((150pt, 0pt)), )
curve.line() → content

end
array
ObligatorioPosicional
Signo de pregunta

El punto en el que debe terminar la línea.

relative
bool
Configurable con set
Signo de pregunta
Por defecto: false

Si las coordenadas son relativas al punto anterior.

ExpandirVer ejemplo
#curve( stroke: blue, curve.line((50pt, 0pt), relative: true), curve.line((0pt, 50pt), relative: true), curve.line((50pt, 0pt), relative: true), curve.line((0pt, -50pt), relative: true), curve.line((50pt, 0pt), relative: true), )

quadElemento
Signo de pregunta
Desde: 0.13.0Ir al código fuente

Agrega un segmento de curva de Bézier cuadrática desde el último punto hasta end, usando control como punto de control.

ExpandirVer ejemplo
// Function to illustrate where the control point is. #let mark((x, y)) = place( dx: x - 1pt, dy: y - 1pt, circle(fill: aqua, radius: 2pt), ) #mark((20pt, 20pt)) #curve( stroke: blue, curve.move((0pt, 100pt)), curve.quad((20pt, 20pt), (100pt, 0pt)), )

control
none o auto o array
ObligatorioPosicional
Signo de pregunta

El punto de control de la curva de Bézier cuadrática.

ExpandirVer ejemplo
#curve( stroke: 2pt, curve.quad((20pt, 40pt), (40pt, 40pt), relative: true), curve.quad(auto, (40pt, -40pt), relative: true), )

end
array
ObligatorioPosicional
Signo de pregunta

El punto en el que debe terminar el segmento.

relative
bool
Configurable con set
Signo de pregunta
Por defecto: false

Si las coordenadas control y end son relativas al punto anterior.

cubicElemento
Signo de pregunta
Desde: 0.13.0Ir al código fuente

Agrega un segmento de curva de Bézier cúbica desde el último punto hasta end, usando control-start y control-end como puntos de control.

ExpandirVer ejemplo
// Function to illustrate where the control points are. #let handle(start, end) = place( line(stroke: red, start: start, end: end) ) #handle((0pt, 80pt), (10pt, 20pt)) #handle((90pt, 60pt), (100pt, 0pt)) #curve( stroke: blue, curve.move((0pt, 80pt)), curve.cubic((10pt, 20pt), (90pt, 60pt), (100pt, 0pt)), )

control-start
none o auto o array
ObligatorioPosicional
Signo de pregunta

El punto de control que sale del inicio del segmento de curva.

ExpandirVer ejemplo
#curve( stroke: blue, curve.move((0pt, 50pt)), // - No start control point // - End control point at `(20pt, 0pt)` // - End point at `(50pt, 0pt)` curve.cubic(none, (20pt, 0pt), (50pt, 0pt)), // - No start control point // - No end control point // - End point at `(50pt, 0pt)` curve.cubic(none, none, (100pt, 50pt)), ) #curve( stroke: blue, curve.move((0pt, 50pt)), curve.cubic(none, (20pt, 0pt), (50pt, 0pt)), // Passing `auto` instead of `none` means the start control point // mirrors the end control point of the previous curve. Mirror of // `(20pt, 0pt)` w.r.t `(50pt, 0pt)` is `(80pt, 0pt)`. curve.cubic(auto, none, (100pt, 50pt)), ) #curve( stroke: blue, curve.move((0pt, 50pt)), curve.cubic(none, (20pt, 0pt), (50pt, 0pt)), // `(80pt, 0pt)` is the same as `auto` in this case. curve.cubic((80pt, 0pt), none, (100pt, 50pt)), )

control-end
none o array
ObligatorioPosicional
Signo de pregunta

El punto de control que llega al punto final del segmento de curva.

Si se establece en none, la curva no tiene punto de control final o, de manera equivalente, el punto de control por defecto es el punto final de la curva.

end
array
ObligatorioPosicional
Signo de pregunta

El punto en el que debe terminar el segmento de curva.

relative
bool
Configurable con set
Signo de pregunta
Por defecto: false

Si las coordenadas control-start, control-end y end son relativas al punto anterior.

closeElemento
Signo de pregunta
Desde: 0.13.0Ir al código fuente

Cierra la curva agregando un segmento desde el último punto hasta el inicio de la curva (o hasta el último punto curve.move anterior).

ExpandirVer ejemplo
// We define a function to show the same shape with // both closing modes. #let shape(mode: "smooth") = curve( fill: blue.lighten(80%), stroke: blue, curve.move((0pt, 50pt)), curve.line((100pt, 50pt)), curve.cubic(auto, (90pt, 0pt), (50pt, 0pt)), curve.close(mode: mode), ) #shape(mode: "smooth") #shape(mode: "straight")
curve.close(mode: str) → content

mode
str
Configurable con set
Signo de pregunta
Por defecto: "smooth"

Cómo cerrar la curva.

VarianteDetalles
"smooth"Cierra la curva con un segmento suave que tiene en cuenta el punto de control opuesto al punto de inicio.
"straight"Cierra la curva con una línea recta.