1.1.21 • Published 1 year ago

@grombolar/polygon.js v1.1.21

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 year ago

CANVAS 绘制多边形

使用方法

NPM 引入

npm install --save @grombolar/polygon.js

import polygon from '@grombolar/polygon.js';

HTML 引入

<script src="polygon.js"></script>
<canvas id="canvas" width="800" height="800"></canvas>
<script>
  const pCanvas = polygon.createCanvas("canvas");
  // 监听点的变化
  pCanvas.on(pCanvas.POLYGON_CHANGE,(data)=>{
    console.log(data);
  })
  // 全屏框选
  const fullscreen = () => pCanvas.fullscreen();
  // 清空全部图形
  const clearAll = () => pCanvas.clearAll();
  // 删除选中图形
  const deletePolygon = () => pCanvas.deletePolygon();
  // 选中多边形
  const deletePolygon = () => pCanvas.selectPolygon();
</script>

Config 参数与说明

FieldTypeDefaultDescription
lineWidthnumber1多边形边宽度
lineColorstring'rgb(0,255,255)'多边形边颜色
fillColorstring'rgba(0,255,255,0.6)'多边形填充颜色
pointRadiunumber4多边形顶点半径
pointBorderColorstring'rgb(0,255,255)'多边形顶点边框颜色
pointFillColorstring'rgb(0,255,255)'多边形顶点颜色
activeLineWidthnumber2选中的多边形边框宽度
activeLineColorstring'rgb(21,132,218)'选中的多边形边框颜色
activeFillColorstring'rgba(21,132,218,.5)'选中的多边形填充颜色
activePolygonPointRadiusnumber6选中多边形顶点的半径
activePointRadiunumber8选中的点半径
activePointBorderColorstring'rgb(0,0,0)'选中的点半径边框颜色
activePointFillColorstring'rgb(21,132,218)'选中多边形顶点颜色
fillPathbooleantrue是否填充多边形
customizeMenubooleanfalse是否有自定义菜单
superposablebooleantrue多边形是否可以重叠(碰撞检测)
percentumbooleanfalse坐标是否是百分比
maxNumbernumber-1绘制多边形数量上限
maxPointnumber-1每个多边形点上限
useCanDrawbooleanfalse是否启用开始绘制按钮
autoClosebooleantrue是否自动闭合当前正在绘制的多边形
selfIntersectbooleantrue多边形是否可以自相交

方法

全屏框选

function fullScreen():void;

清空全部图形

function clearAll():void;

删除选中图形

function deletePolygon():void;

结束当前绘制

function endDraw():void;

注入多边形

function pushPolygon(polygons:{x:number,y:number}[][]):void;

选中多边形

function selectPolygon(index:number):void;

监听事件

监听多边形点的变化

POLYGON_CHANGE

pCanvas.on(polygon.Events.POLYGON_CHANGE,(data)=>{
  console.log(data);
})

监听选中的多边形变化 ACTIVE_POLYGON

pCanvas.on(polygon.Events.ACTIVE_POLYGON,(data)=>{
  console.log(data);
})

正在绘制的多边形变化 CURRENT_POINTS

pCanvas.on(polygon.Events.CURRENT_POINTS,(data)=>{
  console.log(data);
})

多边形是否发生了重叠 POLYGON_OVERLAP

pCanvas.on(polygon.Events.POLYGON_OVERLAP,(data)=>{
  console.log(data);
})

绘制多边形超出设置的上限 POLYGON_OVERRUN

pCanvas.on(polygon.Events.POLYGON_OVERRUN,(data:{code:1||2,message:string})=>{
  if(data.code == 1){
    console.log(`绘制的多边形个数超出上限`,data.message)
  }else if(data.code == 2){
    console.log(`绘制的多边形点数超出上限`,data.message)
  }
})

当前正在绘制的图形出现自相交 POLYGON_SELF_INTERSECTION

pCanvas.on(polygon.Events.POLYGON_SELF_INTERSECTION,(data)=>{
  console.log(data);
})
1.1.1

1 year ago

1.1.0

1 year ago

1.1.2

1 year ago

1.1.21

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago