Options
All
  • Public
  • Public/Protected
  • All
Menu

Geometry类

层次结构

  • Geometry

Geometry类用于定义Shape 的"形状" Geometry 可以是简单的直线,矩形或者椭圆形。 Geometry 也可以是任意复杂的路径,由 PathFigure 列表组成。

Shape 使用过Geometry后,不得对其进行修改。 但是, 一个Geometry可以被多个Shape共享。

使用几何路径字符串语法创建Geometry是很平常的:Geometry Path Strings 但是以编程方式创建几何图形的效率要高得多。 评估JavaScript的几个示例说明了一种实现方法,例如:

new go.Geometry()
    .add(new go.PathFigure(p.x, p.y)
         .add(new go.PathSegment(go.PathSegment.Arc, -sweep/2, sweep, 0, 0, radius+layerThickness, radius+layerThickness))
         .add(new go.PathSegment(go.PathSegment.Line, q.x, q.y))
         .add(new go.PathSegment(go.PathSegment.Arc, sweep/2, -sweep, 0, 0, radius, radius).close()));

请参阅示例索引中使用 Geometries 的示例

Index

Constructors

constructor

  • new Geometry(type?: EnumValue): Geometry

Properties

Read-only bounds : Rect

  • 此只读属性返回一个矩形,其中包含Geometry中的所有点。结果将始终包含原点(0, 0)

defaultStretch : EnumValue

endX : number

endY : number

figures : List<PathFigure>

spot1 : Spot

spot2 : Spot

startX : number

startY : number

type : EnumValue

Methods

add

computeBoundsWithoutOrigin

  • computeBoundsWithoutOrigin(): Rect
  • 在不添加原点的情况下计算几何的边界,并将这些边界作为rect返回。此方法不会修改几何图或其边界

    since

    1.1

    Returns Rect

Virtual copy

  • 使用相同的值和figures创建此Geometry副本

    Returns Geometry

Static fillPath

  • fillPath(str: string): string
  • 给定SVG或GoJS路径字符串,则返回一个完整的路径字符串,并填充每个路径图。例如 "M0 0 L22 22 L33 0" 将变成 "F M0 0 L22 22 L33 0".

    since

    1.1

    Parameters

    • str: string

    Returns string

getAngleAlongPath

  • getAngleAlongPath(fraction: number): number
  • 以局部坐标返回沿此几何路径的分数距离(0-1)的角度表示的斜率

    Parameters

    • fraction: number

      介于0到1之间,包含0和1的分数

    Returns number

getFractionForPoint

  • getFractionForPoint(pt: Point): number
  • 返回沿着此几何图形的路径的近距离的分数距离(0-1)

    Parameters

    • pt: Point

      在此几何图形附近的局部坐标点

    Returns number

    介于0到1之间,包含0和1的分数

getPointAlongPath

  • getPointAlongPath(fraction: number, result?: Point): Point
  • 返回沿此几何路径的分数距离(0-1)处的点./p>

    Parameters

    • fraction: number

      介于0到1之间,包含0和1的分数

    • Optional result: Point

      一个可选的Point,它被修改并返回;否则,它将分配并返回一个新的Point

    Returns Point

    以局部坐标表示的Point,沿路径的距离

normalize

  • 通过确保几何线的左上边界与(0,0)一致来规范化几何点,返回 Point (x, y) 的移动量。 调用此方法后,几何的边界将没有负的X和Y值,并且几何的左上角也没有空白

    since

    1.1

    Returns Point

offset

  • offset(x: number, y: number): Geometry
  • 按给定的(x,y)偏移Geometry

    since

    1.1

    Parameters

    • x: number

      X轴偏移条件

    • y: number

      Y轴偏移条件

    Returns Geometry

    this

Static parse

  • parse(str: string, filled?: boolean): Geometry
  • 使用类似于SVG的路径几何语法的字符串生成 Geometry。 该语法接受所有SVG路径语法 (SVG路径语法(w3.org)), 以及三个特定与GOJS的令牌。具体来说,允许以下令牌:

    • M (x,y)+ - 移动命令
    • L (x,y)+, H (x)+, V (y)+ 线命令,包括水平和垂直线
    • C (x1 y1 x2 y2 x y)+, S (x2 y2 x y)+ 三次贝塞尔曲线
    • Q (x1 y1 x y)+, T (x y)+ 二次贝塞尔曲线
    • A (rx ry x-axis-rotation large-arc-flag clockwise-flag x y)+ 圆弧 (遵循SVG圆弧约定)
    • Z 表示前一个子路径已经关闭

    此外,还有一些特定于GOJS的令牌:

    • B (startAngle, sweepAngle, centerX, centerY, radius)+ 遵循GOJS canvas弧约定的弧
    • X 在M命令之前用于表示单独的PathFigures而不是子路径
    • F 表示当前PathFigur是否已填充 (如果存在F则为true)
    • U 表示PathFigure没有阴影

    有关更多详细信息,请参见简介中的 几何解析 页面

    Parameters

    • str: string
    • Optional filled: boolean

      是否应填充,如果为true,则无论是否存在"F"命令,都将填充字符串中的所有PathFigures。 如果为false,则所有PathFigures都将通过是否存在"F"命令来确定其自身的填充状态。默认为false

    Returns Geometry

rotate

  • rotate(angle: number, x?: number, y?: number): Geometry
  • 将几何图形旋转到指定角度,并带有可选的X和Y值来旋转几何图形。如果未给定X和Y值,则将(0,0)用作旋转点

    since

    1.1

    Parameters

    • angle: number

      旋转角度

    • Optional x: number

      旋转几何的可选X点,如果没有给定点,则该值为0

    • Optional y: number

      旋转几何的可选Y点,如果没有给定点,则该值为0

    Returns Geometry

    this

scale

  • 按照给定的(x,y)比例条件缩放几何

    如果要水平翻转几何, 请调用 geo.scale(-1, 1)。 如果要垂直翻转几何,请调用 geo.scale(1, -1)

    since

    1.1

    Parameters

    • x: number

      X轴比例条件

    • y: number

      Y轴比例条件

    Returns Geometry

    this

Static stringify

  • 此静态函数可用于写出 Geometry 作为可以被 Geometry.parse 读取的字符串。

    此方法产生的字符串是SVG路径字符串规则的超集,其中包含一些其他特定GOJS的令牌。 有关更多详细信息,请参见简介中的 几何解析 页面

    since

    1.1

    Parameters

    Returns string

Constants

Static Ellipse : EnumValue

用于在矩形内绘制椭圆拟合;Geometry.type 的值。 椭圆适合从点 (startX, startY) 到点 (endX, endY) 的矩形内

Static Line : EnumValue

用于绘制一条简单的直线;Geometry.type 的值。 该线从点 (startX, startY) 到点 (endX, endY)

Static Path : EnumValue

用于绘制由 PathFigure 列表组成的复杂路径; Geometry.type 的值

Static Rectangle : EnumValue

用于绘制矩形;Geometry.type 的值 矩形从点 (startX, startY) 到点 (endX, endY)