From d458f918ed4f856069f7606d61f9c64291fe5b35 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Thu, 20 Nov 2025 23:10:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(text):=20=E5=AE=9E=E7=8E=B0=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E5=9E=82=E7=9B=B4=E5=B1=85=E4=B8=AD=E5=AF=B9=E9=BD=90?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改TextElement类中的Y坐标计算逻辑 - 新增总文本高度计算和垂直偏移量 - 调整起始Y坐标以支持垂直居中对齐 - 保持原有逐行绘制逻辑不变 --- .../com/ycwl/basic/puzzle/element/impl/TextElement.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ycwl/basic/puzzle/element/impl/TextElement.java b/src/main/java/com/ycwl/basic/puzzle/element/impl/TextElement.java index 4a5522ee..7dcf7795 100644 --- a/src/main/java/com/ycwl/basic/puzzle/element/impl/TextElement.java +++ b/src/main/java/com/ycwl/basic/puzzle/element/impl/TextElement.java @@ -141,8 +141,12 @@ public class TextElement extends BaseElement { ? textConfig.getTextAlign().toUpperCase() : "LEFT"; - // 起始Y坐标 - int y = position.getY() + fm.getAscent(); + // 计算总文本高度并实现垂直居中 + int totalTextHeight = lineHeight * actualLines; + int verticalOffset = (position.getHeight() - totalTextHeight) / 2; + + // 起始Y坐标(垂直居中) + int y = position.getY() + verticalOffset + fm.getAscent(); // 逐行绘制 for (int i = 0; i < actualLines; i++) {