From 074706a72cfcf0659e56455b7089dd45e42bb56c Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Wed, 1 Jul 2026 09:42:31 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=BC=BA=E5=8C=96=E5=85=BC=E5=AE=B9):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96Pattern=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ofdgo_renderer.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ofdgo_renderer.go b/ofdgo_renderer.go index 932eecc..5918e60 100644 --- a/ofdgo_renderer.go +++ b/ofdgo_renderer.go @@ -657,7 +657,7 @@ func (r *Renderer) renderPath(ctx *canvas.Context, obj PathObject, pageH float64 fp.Close() fp = fp.And(clipPath) } - r.renderPattern(ctx, fillPattern, fillPatternColor, pageH, fp, ctm) + r.renderPattern(ctx, fillPattern, fillPatternColor, pageH, fp, ctm, bx, by) } else if shouldFill && fillPaint != nil { ctx.SetFill(fillPaint) ctx.SetStrokeColor(canvas.Transparent) @@ -706,8 +706,8 @@ func (r *Renderer) renderPath(ctx *canvas.Context, obj PathObject, pageH float64 } // renderPattern 渲染图案填充 -// 入参: ctx 画布上下文, pattern 图案对象, defaultColor 默认颜色, pageH 页面高度, clip 填充区域, parentCTM 父级CTM -func (r *Renderer) renderPattern(ctx *canvas.Context, pattern *Pattern, defaultColor color.Color, pageH float64, clip *canvas.Path, parentCTM Matrix) { +// 入参: ctx 画布上下文, pattern 图案对象, defaultColor 默认颜色, pageH 页面高度, clip 填充区域, parentCTM 父级CTM, bx 边界X坐标, by 边界Y坐标 +func (r *Renderer) renderPattern(ctx *canvas.Context, pattern *Pattern, defaultColor color.Color, pageH float64, clip *canvas.Path, parentCTM Matrix, bx, by float64) { if pattern == nil || clip == nil || len(pattern.CellContent.Objects) == 0 { return } @@ -721,7 +721,7 @@ func (r *Renderer) renderPattern(ctx *canvas.Context, pattern *Pattern, defaultC if xStep <= 0 || yStep <= 0 { return } - patternCTM := parentCTM.Multiply(NewMatrix(pattern.CTM)) + patternCTM := TranslationMatrix(bx, by).Multiply(parentCTM).Multiply(NewMatrix(pattern.CTM)) invCTM, ok := patternCTM.Invert() if !ok { return