使用
<canvas canvas-id="disId" class="canvas" v-show="tabIndex === 0"/>
import { CanvasYinzhang } from './components/Certificate/util.js'
CanvasYinzhang('disId', 'xxxx股份有限公司');
封装方法
export function create5star (cxt, sx, sy, radius, color, rotato) {
cxt.save();
cxt.setFillStyle(color);
cxt.translate(100, 100);
cxt.beginPath();
var dig = Math.PI / 5 * 4;
for (var i = 0; i < 5; i++) {
var x = Math.sin(i * dig);
var y = Math.cos(i * dig);
cxt.lineTo(x * radius, y * radius);
}
cxt.closePath();
cxt.stroke();
cxt.fill();
cxt.restore();
}
export function CanvasYinzhang(canvasId, companyName){
var context = uni.createCanvasContext(canvasId);
var text = "";
context.setLineCap('round');
context.setLineJoin('round');
context.setStrokeStyle("#ff0000");
context.setLineWidth(3);
context.moveTo(190, 100);
context.arc(100, 100, 90, 0, Math.PI * 2);
context.stroke();
create5star(context, 100, 100, 25, "#f00", 0);
context.setFontSize('19');
context.setTextBaseline('middle');
context.setTextAlign('center');
context.setLineWidth(2);
context.setFillStyle('#f00');
context.translate(100,100);
var count = companyName.length;
var angle = 4 * Math.PI / (3 * (count - 1));
var chars = companyName.split("");
var c;
for (var i = 0; i < count; i++) {
c = chars[i];
if (i == 0) {
context.rotate(5 * Math.PI / 6);
} else{
context.rotate(angle);
}
context.save();
context.translate(70, 0);
context.rotate(Math.PI / 2)
context.setFillStyle("#ff0000");
context.fillText(c, 0, 0);
context.restore();
}
setTimeout(() => {
context.draw();
}, 200);
}