!!!###!!!title=Quadratic——VisActor/VGraph tutorial documents!!!###!!!!!!###!!!description=A Quadratic Bezier Curve (Quadratic) is a graphic object used to create a quadratic Bezier curve graphic instance, containing information such as the curve's control points and arrows, for the rendering engine to draw and interact with.!!!###!!!

Quadratic Bezier Curve (Quadratic)

A Quadratic Bezier Curve (Quadratic) is a graphic object used to create a quadratic Bezier curve graphic instance, containing information such as the curve's control points and arrows, for the rendering engine to draw and interact with.

Example

import { Quadratic } from '@visactor/vgraph';

const quadratic = new Quadratic({
    points: [[250, 60], [20, 110], [70, 250]],
    strokeStyle: '#545454',
    lineWidth: 1,
    startArrow: true,
    endArrow: {
      type: 'default-round',
    },
    hitWidth: 4,
});

Quadratic Configuration

FieldTypeDescription
pointsnumber[][]A 3x2 two-dimensional array, where each one-dimensional array represents a control point coordinate, for a total of three control points.
startArrowArrowTypeStart arrow configuration item.
endArrowArrowTypeEnd arrow configuration item.
hitWidthnumberThe sensitive width for event triggering.

Note: When startArrow or endArrow is specified as undefined, null, or false, no arrow will be drawn. When specified as true, the default triangular arrow will be drawn. The arrow configuration item ArrowType is defined as follows:

type ArrowType = boolean | {
  type?: 'default' | 'default-round',
  width?: number,
  height?: number,
};
FieldTypeDescription
typestringArrow type. default is the default triangular arrow, and default-round is a triangular arrow with rounded corners.
widthnumberThe wingspan width of the arrow.
heightnumberThe tangential height of the arrow at the endpoint.

Common Configurations

The following are common configurations for all graphic objects:

FieldTypeDescription
opacitynumberOpacity
fillStylestringFill color
strokeStylestringStroke color
lineWidthnumberStroke width
lineDashnumber | number[]Dash pattern, refer to CanvasRenderingContext2D.setLineDash()
lineDashOffsetnumber | number[]Dash line starting offset, refer to CanvasRenderingContext2D.lineDashOffset
shadowBlurnumberShadow blur amount, refer to CanvasRenderingContext2D.shadowBlur
shadowColorstringShadow color
shadowOffsetXnumberHorizontal shadow offset, refer to CanvasRenderingContext2D.shadowOffsetX
shadowOffsetYnumberVertical shadow offset, refer to CanvasRenderingContext2D.shadowOffsetY
clipShapeBaseClipping shape. Sets the specified shape as the clipping path. The part within the clipping shape's path will be retained, and the rest will be culled. Refer to CanvasRenderingContext2D.clip()
cursorstringThe type of cursor when this shape gains focus. For details, refer to CSS Cursor

Note: Color strings currently support the following formats:

TypeExampleDescription
rgbrgb(255, 255, 255)White represented in RGB mode
rgbargba(255, 255, 255, 1.0)White represented in RGBA mode
hslhsl(13, 100%, 10%)Color represented in HSL mode, equivalent to rgb(56, 12, 0)
hslahsla(13, 100%, 10%, 0.4)Color represented in HSL mode, equivalent to rgba(56, 12, 0, 0.4)
hex#fffPure color represented by a three-digit hexadecimal number, case-insensitive
hex#FF00FFPure color represented by a six-digit hexadecimal number, case-insensitive
hex#3037ffffColor with transparency represented by an eight-digit hexadecimal number, case-insensitive
namecyanColor represented by its name
linear gradientl(0) 0:#fff 0.5:#7ec2f3 1:#1890ffLinear gradient, the expression is l(deg) step1:color1 step2:color2 ..., which means a linear gradient with a linear tilt angle of deg, and the colors are interpolated at step1, step2... with color1, color2...
radial gradientr(0.5,0.5,0) 0:#fff 0.5:#7ec2f3 1:#1890ffRadial gradient, the expression is r(cx, cy, r0) r1:color1 r2:color2 ..., which means a radial gradient centered at the relative coordinate (cx, cy) within the bounding box, with a starting radius r0, and the colors are interpolated at radii r1, r2... with color1, color2...
picturep(a)./pattern.pngImage, the expression is p(repeat)url. When repeat is a, it means the background repeat mode is repeat; when it is x, it means repeat-x; when it is y, it means repeat-y; when it is n, it means no-repeat. The parameter url represents the image path. Refer to CSS background-repeat

Accessible Properties

PropertyTypeDescription
type'quadratic'Shape type
capturebooleanWhether it is captured by focus
animatingbooleanWhether it is an animation
destroyedbooleanWhether it has been destroyed
parentanyParent shape node

Instance Methods

Instance MethodReturn ValueDescription
getBBox()BBoxGets the bounding box position and size
translate(x: number, y: number)voidTranslates
scale(xRatio: number, yRatio?: number)voidScales
rotate(deg: number, radian: boolean)voidRotates around the center. radian is used to specify whether the parameter deg is in radians. If it is true, it is in radians; otherwise, it is in degrees. The default is false.
rawRotate(deg: number, radian: boolean)voidRotates based on the matrix origin, with the same definition as rotate
clone()IShapeGets a copy of a shape
show()voidShows the shape
hide()voidHides the shape
get(k: string)anyGets the property named k of this shape
set(k: string, v: any)IShapeSets the value of the property named k of this shape to v
set(data: Record<string, any>)IShapePasses an object to set properties in bulk
on(eventName: string, callback: () => void)voidSets a trigger for when an event occurs
off(eventName: string, callback: () => void)voidSets a trigger for when an event stops
emit(eventName: string, data: Record<string, any>)voidTriggers the specified event