我要做一个生成维语图章的功能(文字要环绕)
维语的特点是有的字非常宽(也是有几个字根拼再一起的),所以环绕的时候就要把一个字弄弯
这时我就想到,把字的每个字符取出来计算单独计算位置,让他有扇面的效果
可是不行,因为维语的一个字符对应的字模,和这个字符在一个字里对应得字模是不同的,简单地说就是不能拆开处理,而且大家可以看看人民币上的维语,每个字都是一串一串连在一起的
大家看看有没有什么办法呢??

解决方案 »

  1.   

    你可以参照一下OPENGL写字的方法
    用GDI模拟一下
    全TM是图片
    都是画上去的
    用一下双缓存就OK了
      

  2.   

    opengl没用过
    现学恐怕来不及,找了大堆例子没有适合我的
    郁闷!
      

  3.   

    主要是用GID怎么能把字题给弄个弯出来呢?
      

  4.   

    CFont font;
    VERIFY(font.CreateFont(
    12,                        // nHeight
    0,                         // nWidth
    0,                         // nEscapement
    0,                         // nOrientation
    FW_NORMAL,                 // nWeight
    FALSE,                     // bItalic
    FALSE,                     // bUnderline
    0,                         // cStrikeOut
    DEFAULT_CHARSET,              // nCharSet
    OUT_DEFAULT_PRECIS,        // nOutPrecision
    CLIP_DEFAULT_PRECIS,       // nClipPrecision
    DEFAULT_QUALITY,           // nQuality
    DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
    "Webdings"));                 // lpszFacename

    // Do something with the font just created...
    CClientDC dc(this);  
    CFont* def_font = dc.SelectObject(&font);

    //dc.GetGlyphOutline() dc.SelectObject(def_font);
    GetGlyphOutline()可以得到一个字符的轮廓,你把这个轮廓保存成一个路径,然后再对这个路径进行几何变换,然后再把这个路径填充即可
      

  5.   

    no no
    使用GB18030编码给你个网站:
    http://www.uighurlinux.org/ 维文编码标准化信息通过维文可以看出GB18030可以处理中国的少数民族字符了
      

  6.   

    GB18030标准是中国政府于2000年3月颁布的最新中文汉字编码标准。共收汉字27000余字,还包含蒙文、藏文、维文、彝文四种民族文。北大方正参与制定此国家标准,并提供符合国家标准的四种民族文TrueType字库和相应点阵字库。
      

  7.   

    GetGlyphOutline()得到的轮廓就是一个顺序连接的点的集合组成的封闭环,因为你要做出弯的文字,所以你可以把这些点进行变换,比如说一个文字在圆心上方,文字上的一个点到圆心的y方向的距离为a,x方向的距离为b,跟圆心的夹角为alf,你就可以把这个点调整到离圆心的距离为a,点到圆心正上方所在圆弧上的点的圆弧的长度是b的那个点上,这样就完成了几何变换。你根据所有几何变换后的点组成一个path,(CDC::BeginPath和CDC::EndPath之间MoveTo LineTo)然后再CDC::FillPath把该路径填充,就形成了一个弯曲的文字,基本就是这样,具体可能有不对的地方你再仔细考虑一下
      

  8.   

    我想知道的是
    维语的单个可分割的字块有多少
    他是类似汉语还是英语
    如果是类似英语
    用静态的应该会简单一些
    为每一个字符准备N种[不要太多]角度的图形
    将这些所有的图形全都放在一张大图片中
    到时候根据角度和编码
    进行BitBlt就可以了如果数量超出范围的话那好像也只能用 薄荷 的路径法了
      

  9.   

    既不类似英语也不类似汉语
    英语没个字母形态都是一定的,维语字符显示的样子跟上下文有关
    跟汉语也不一样,汉语可以用settextextern 设置字间距,维语如果一设置,字形就分开了,这个在书写中是不允许的,也就是错误了
    所以