AILabel修改源码添加旋转功能 和修改源码后,同步到仓库,可以方便组员维护的方法

目录

AILabel修改源码添加旋转功能

2.修改源码后,同步到仓库,可以方便组员维护的方法


AILabel修改源码添加旋转功能

在项目中使用AILabel完成图片添加标签功能,需要给绘画的标签添加旋转功能, 

由于AILabel没有旋转功能,我就修改了源码添加了一个旋转功能。

使用也很方便,在shape添加一个rotation属性就可以达到旋转功能。

有兴趣的朋友可以看看

 附上源码:

{
      key: "drawRect",
      value: function drawRect(ctx, shape, style, option) {
        var _ref2 = option || {},
          format = _ref2.format;

        var stroke = isBoolean_1(style.stroke) ? style.stroke : true;
        var fill = isBoolean_1(style.fill) ? style.fill : false;
        var formatShape = isFunction_1(format) ? format(shape) : shape;
        var startX = formatShape.x,
          startY = formatShape.y,
          width = formatShape.width,
          height = formatShape.height;
        var endX = startX + width;
        var endY = startY + height; // 矩形点.
        // console.log(shape)
        // var rotation = formatShape.rotation || 0;
        var rotation = shape.rotation || 0;
        // console.log(rotation)
        // console.log(formatShape.rotation)
        // console.log(formatShape)
        var rotatePoint = function (point, center, angle) {
          let cx = center.x, cy = center.y;
          let px = point.x - cx, py = point.y - cy;
          let cos_a = Math.cos(angle / 180 * Math.PI), sin_a = Math.sin(-angle / 180 * Math.PI);
          let dx = cos_a * px + sin_a * py + cx, dy = -sin_a * px + cos_a * py + cy;
          return { x: dx, y: dy }
        }
        let center = { x: startX + width / 2, y: startY + height / 2 };

        var rectPoints = [
          rotatePoint({ x: startX, y: startY }, center, rotation),
          rotatePoint({ x: endX, y: startY }, center, rotation),
          rotatePoint({ x: endX, y: endY }, center, rotation),
          rotatePoint({ x: startX, y: endY }, center, rotation)
        ];
        Graphic.drawPolygon(ctx, rectPoints, style, {
          fill: fill,
          stroke: stroke
        });
      }

2.修改源码后,同步到仓库,可以方便组员维护的方法

可以使用 patch-package

​
1. 安装 
npm i patch-package


2. 修改 node_modules
修改完后输入命令

npx patch-package 修改的包名


如改动了 node_modules/element-ui则输入

npx patch-package node_modules/element-ui

随后就会在项目的根目录下出现 patches 这个目录,里面会出现修改包的补丁文件(需要将该目录及文件一同上传到代码仓库)

3. postinstall hook 自动执行patch-package
在 package.json 的 script 中添加指令

"postinstall": "patch-package"

该命令的作用当更新项目的依赖的时候,会自动在依赖安装完后执行 patch-pacakge 命令

随后会找到patches目录下的补丁文件,将对应的node_moduels更改,这样就可以做到组内同步修改的代码

​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值