15 电子产品量产工具项目里面文字系统模块一个显示区域左上角坐标推导的过程,ptFontBitMap->tRegion.iLeftUpY = ptFontBitMap->iCurOriginY*2 - slot->bitmap_top;

attachments-2021-08-sTUwoqyW6107a94dbea6d.png在这个推导过程中,originY坐标在笛卡尔坐标系和LCD坐标系中各用了一次,但是却没有使用var.yres-originY进行转换,不太理解这个推导过程。一般左上角的Y坐标不是用var.yres-bitmap_top来表示的吗?

请先 登录 后评论

2 个回答

百问网_赵老师
擅长:嵌入式开发

韦老师在程序中用了一个结构体来封装这些坐标,方便后面的调用和其扩展性,程序在这里一样的目的变化了一下思考方法而已。

请先 登录 后评论
web

bitmap_top 是使用相同的变量,但是其在 lcd、 笛卡尔坐标系中相对于 OriginY 显示的位置不同。freetype中获取的字体位图用的是笛卡尔坐标,故 bitmap_top 位于 OringinY 的上方,但是相同的值在 lcd 坐标中却位于 OriginY 的下方。而文字的绘制需要左上角点坐标作为绘制的起始点,如果不进行变换结果就是字体显示时会出现字体向下偏移一个 2*delt 的偏移量,这与预想的字体显示位置不符。

注:文字绘制在 lcd 设备上进行,故需要使用 lcd 坐标。

请先 登录 后评论
  • 2 关注
  • 1 收藏,693 浏览
  • ephemeral 提出于 2021-08-02 16:13

相似问题