再问一下,关于矢量字体的的相对坐标在不同分辨率的表示方式(100)

  • 主题发起人 主题发起人 ljy851011
  • 开始时间 开始时间
L

ljy851011

Unregistered / Unconfirmed
GUEST, unregistred user!
首先谢谢stlont对我的指引,让我找到了方向。*47600,86,桂7,142,5,2,8,(25,63),1,8,(-19,-4),2,8,(12,28),1,8,(0,-86),2,8,(0,57),1,8,(-13,-30),2,8,(13,30),1,8,(6,-13),2,8,(6,16),1,8,(24,4),2,8,(-25,-21),1,8,(28,4),2,8,(-27,-25),1,8,(25,4),2,8,(-30,-22),1,8,(36,5),2,8,(-19,78),1,8,(0,-43),2,8,(0,-2),1,8,(0,-37),7,143,0这是我找到的一个矢量字体库里面的文件结构,后面都是相对坐标,我想问下显示方式是怎么样的在不同大小的屏幕上,比如在电脑屏幕上和手机触摸屏上,我现在的机器手臂就是要在触摸屏上写字,这里面的相对坐标应该都是以像素点为单位的吧,我觉得像素点的尺寸在手机上和电脑屏幕应该不一样的吧,如果按照这种写法的话,手机屏幕上和电脑屏幕上分别是什么效果,就是说要想看到我们普通的正常字体,还需要做什么工作呢,是不是要把显示屏的分辨率作为一个参数考虑,不怎么了解,请多多指教!
 
字体显示效果其实和什么设备无关,点的大小是硬件决定的,不用管他只要关心你要显示的点阵尺寸矢量格式中一个字的点坐标都是相对这个字的字型大小的,比如你这个字库如果是以每个字64*64的规模来存储,或是更精细的以256*256来存储,这些点都落在这个范围内,你需要在显示时做对应的比例缩放处理,例如一个64*64的字库,你要显示一个32*32的字,则把得到的点坐标都缩小一倍再画出来如果要画一个整屏幕的,可以放大10倍,画出个640*640的大字手机屏幕一般是320*200电脑1024*768为多,显示的字体正常是16*16就看的清楚矢量数据最终还是要以画点线化成像素显示的具体效果需要自己现场测试看了再调整
 
你好,我试着写了几个字,发现字都反过来了,在DELPHI里面坐标(0,0)是在左上角,我觉得如果在左下角就不会出现这种问题了,该怎么样转换这个坐标原点呢,下面是我的写的两个字一个是“丁”,一个是“大”,麻烦看下 //显示大字 Moveto(56,57); lineto(7,51); moveto(32,90); lineto(30,54); moveto(31,54); lineto(49,4); lineto(61,4); moveto(30,54); lineto(26,36); lineto(18,16); lineto(5,0); 显示“丁”字 Moveto(34,52); lineto(31,5); lineto(20,23); moveto(6,80); lineto(60,85); moveto(34,82); lineto(34,52);
 
我知道了,应该把原来的每个坐标的Y坐标减去RECT的HIGHT,应该没什么问题了
 
建议你找一些图形学的资料先看看,了解下坐标的平移,缩放,翻转等变换,花点时间看书,可以省更多时间,少走弯路其实只要有中学的平面几何知识就够了,平面直角坐标系的处理并不复杂,有些东西自己动手画画,看看,想想就明白了.实践出真知
 
恩,知道,谢谢
 
呵呵,谢谢您的指点,我自己画了个坐标图,就OK了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部