改回以左下角为基准计算坐标,还是不能解决右对齐问题

master
liaoxianglian 8 months ago
parent a925e454f0
commit de94f68265

@ -155,17 +155,13 @@ impl From<&DynamicText> for XMLElement {
// 计算基础位置(不考虑旋转) // 计算基础位置(不考虑旋转)
// txt.x和txt.y现在是对齐点坐标需要根据对齐方式计算出左上角位置 // txt.x和txt.y现在是对齐点坐标需要根据对齐方式计算出左上角位置
// 首先根据水平对齐方式计算左边界的x坐标 // 首先根据水平对齐方式计算左边界的x坐标
let left_x = match txt.h_alignment { let left_x = txt.x;
HAlignment::Left => txt.align_x,
HAlignment::Center => txt.align_x - txt_width / 2.0,
HAlignment::Right => txt.align_x - txt_width,
};
// 根据垂直对齐方式计算顶部的y坐标 // 根据垂直对齐方式计算顶部的y坐标
let top_y = match txt.v_alignment { let top_y = match txt.v_alignment {
VAlignment::Top => txt.align_y+pt_size * 1.5, VAlignment::Top => txt.align_y + pt_size / 2.0,
VAlignment::Center => txt.align_y+pt_size, VAlignment::Center => txt.align_y - pt_size / 2.0,
VAlignment::Bottom => txt.align_y+pt_size / 2.0, VAlignment::Bottom => txt.align_y - pt_size + pt_size / 2.0,
}; };
println!("左上角位置: x={}, y={}", left_x, top_y); println!("左上角位置: x={}, y={}", left_x, top_y);

Loading…
Cancel
Save