图形标签 - Shape

阅读时间约 7 分钟

F2 底层使用了 G 绘图引擎。本篇列出了常见的图形标签

如何使用

详见:图形使用

图形标签

图形属性

Props

属性名类型描述
classNameString对象标记,由用户指定
visibleBoolean显示还是隐藏。
zIndexNumberz-index 值,用于调整绘制顺序。
attrsAttrs图形样式

Attrs 绘图属性

更多详情可见:绘图属性

属性名类型描述
fillString填充色、渐变纹理,默认值为空。
fillOpacityNumber用于设置图形填充颜色的透明度,默认值是 1。
strokeString描边色、渐变纹理,默认值为空;
strokeOpacityNumber用于设置边颜色的透明度,默认值是 1。
lineWidthpx描边的大小
shadowColorString描述阴影颜色的属性,参见 MDN
shadowBlurNumber描述模糊效果程度的属性; 它既不对应像素值也不受当前转换矩阵的影响。 默认值是 0,参见 MDN
shadowOffsetXNumber描述阴影水平偏移距离的属性,参见 MDN
shadowOffsetYNumber描述阴影垂直偏移距离的属性,参见 MDN
opacityNumber设置图形和图片透明度的属性,默认值是 1。 数值的范围从 0.0 (完全透明)到 1.0 (完全不透明)。

演示

group

包含一组图形

示例

<group className="group">
  <rect ... />
  <rect ... />
</group>

rect

矩形

Attrs

属性名类型描述
xNumber左上角 x 坐标
yNumber左上角 y 坐标
widthNumber宽度
heightNumber高度
radiusNumber | Number[]圆角

示例

<rect
  attrs={{ x: 100, y: 100, width: 50, height: 50, lineWidth: '2px', stroke: '#000', fill: 'red' }}
/>

circle

圆形

Attrs

属性名类型描述
xNumber圆心 x 坐标
yNumber圆心 y 坐标
rNumber圆的半径

示例

<circle attrs={{ x: 100, y: 100, r: 50, lineWidth: '2px', stroke: '#000', fill: 'red' }} />

sector

扇形

Attrs

属性名类型描述
xNumber圆心 x 坐标
yNumber圆心 y 坐标
rNumber外半径
r0Number内半径, 默认为 0
startAngleNumber其实弧度, 默认 0
endAngleNumber结束弧度,默认 Math.PI * 2
anticlockwiseBoolean逆时针方向,默认 false

示例

<sector attrs={{ x: 100, y: 100, r: 50, lineWidth: '2px', stroke: '#000', fill: 'red' }} />

polygon

多边形

Attrs

属性名类型描述
pointsPoint[]多边形的点

示例

<polygon
  attrs={{
    points: [
      { x: 10, y: 10 },
      { x: 50, y: 50 },
      { x: 30, y: 70 },
    ],
    lineWidth: '2px',
    stroke: '#000',
    fill: 'red',
  }}
/>

line

绘制直线

Attrs

属性名类型描述
x1Number起始点 x 坐标
y1Number起始点 y 坐标
x2Number结束点 x 坐标
y2Number结束点 y 坐标

示例

<line attrs={{ x1: 10, y1: 10, x2: 100, y2: 100, lineWidth: '2px', stroke: '#000' }} />

arc

绘制圆弧

Attrs

属性名类型描述
xNumber圆心 x 坐标
yNumber圆心 y 坐标
rNumber半径
startAngleNumber其实弧度, 默认 0
endAngleNumber结束弧度,默认 Math.PI * 2
anticlockwiseBoolean逆时针方向,默认 false

示例

<arc attrs={{ x: 100, y: 100, r: 50, lineWidth: '2px', stroke: '#000' }} />

polyline

多点线段

Attrs

属性名类型描述
PointsPoints[]线段的点
smoothBoolean是否需要平滑,默认 false

示例

<polyline
  attrs={{
    points: [
      { x: 10, y: 10 },
      { x: 50, y: 50 },
      { x: 80, y: 70 },
    ],
    lineWidth: '2px',
    stroke: '#000',
    smooth: true,
  }}
/>

text

文本

Attrs

属性名类型描述
xNumber文本位置
yNumber文本位置
textString文本内容
textAlignString设置文本内容的当前对齐方式, 支持的属性:'start', 'center', 'end', 'left', 'right'
textBaselineString设置在绘制文本时使用的当前文本基线, 支持的属性:'top', 'hanging', 'middle', 'alphabetic', 'ideographic', 'bottom'
fontStyleString规定字体样式。可能的值:'normal', 'italic', 'oblique'
fontSizeNumber规定字号,以像素计
fontFamilyString规定字体系列
fontWeightString规定字体的粗细。可能的值:'normal', 'bold', 'bolder', 'lighter', '100', '200, '300', '400','500', '600', '700', '800', '900'
fontVariantString规定字体变体。可能的值:'normal', 'small-caps'
lineHeightNumber规定行高,以像素计

示例

<text
  attrs={{
    text: '文本',
    fontSize: 20,
    fill: '#000',
  }}
/>

image

图片

Attrs

属性名类型描述
xNumber左上角 x 坐标
yNumber左上角 y 坐标
widthNumber宽度
heightNumber高度
srcstring图片url
cacheImageboolean是否需要缓存(如果图片有闪动,可以添加缓存)

示例

<image
  attrs={{
    src: 'https://f2.antv.vision/favicon-32x32.png?v=9772447a8d07a8fe19894b5176c6cb0d',
    x: 10,
    y: 10,
    width: 32,
    height: 32,
  }}
/>