feat:2.4.4数一数比大小

This commit is contained in:
R524809
2025-12-05 16:06:40 +08:00
parent 0fcebb90cc
commit fedbe3d193
9 changed files with 590 additions and 4 deletions
@@ -0,0 +1,65 @@
import { BaseMathDrawService } from './baseMathDraw';
import { drawCompareContent } from './compareContentDraw';
/**
* 数一数比大小绘制服务
* 组合使用基础绘制服务和内容区域绘制服务
*/
class CompareDraw extends BaseMathDrawService {
compareData: {
problems: Array<{
leftCount: number;
rightCount: number;
leftImageIndex: number;
rightImageIndex: number;
imageType: 'fruits' | 'twelve-animals';
}>;
} | null;
constructor(
canvas: Canvas,
ctx: RenderingContext,
options?: Record<string, any>,
) {
super(canvas, ctx, options);
this.compareData = null;
}
async draw(compareData: {
problems: Array<{
leftCount: number;
rightCount: number;
leftImageIndex: number;
rightImageIndex: number;
imageType: 'fruits' | 'twelve-animals';
}>;
}) {
if (!compareData || !compareData.problems) {
return;
}
this.setPrintConfig();
this.compareData = compareData;
this.clear();
this.setPaper();
// 绘制Header
if (this.headerType !== 'minimal') {
await this.drawHeader();
} else {
this.drawMiniHeader();
}
// 绘制内容区域(数一数比大小)
this.drawDivider();
await drawCompareContent({
canvas: this.canvas,
ctx: this.ctx,
compareData: this.compareData,
canvasWidth: this.canvasWidth,
startY: this.currentY,
});
}
}
export default CompareDraw;