网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
10月25日漏签0天
vtk吧 关注:1,236贴子:10,464
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 59回复贴,共2页
  • ,跳到 页  
<<返回vtk吧
>0< 加载中...

vtk显示中文方法

  • 只看楼主
  • 收藏

  • 回复
  • 贴吧用户_00aARXK🐾
  • 一年级
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
vtk的字体显示使用的是ftgl库,ftgl是支持任何字体的,那么为什么vtk中显示不出中文呢?原因是vtk内部自定了几种字体,只允许你选择~~~ 在网上看过一些解决方法,貌似非常繁琐,笔者找到了一种方法,虽然不是优秀,但总的来说改动比较小,工作量也相应减小~~ 具体方法有时间慢慢添上:)

大家别扔鸡蛋,时间宝贵,先写这么多


  • 222.240.180.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
waiting for you


2025-10-25 01:45:37
广告
不感兴趣
开通SVIP免广告
  • 贴吧用户_00aARXK🐾
  • 一年级
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
使用vtkTextActor->SetInput方法可以实现渲染窗口的文字输出,不幸的是vtk只支持英文的输出,中文就

会变成乱码,为什么?首先要清楚vtk的字体渲染实现过程,好在vtk是开源的。(在这里先不管其他原因的

鄙视中科院的MITK一下,先不管其代码怎么来的、写的如何,但就其单位性质来讲,拿着纳税人的钱就应该

有点奉献精神吧,世界领先也就罢了,听说bug一大堆,国家的科研经费都让你们这群XX给败货了,不说了

,说多了伤心)回到正题,vtk是开源的,有不清楚vtk来历的我可以再写开一个帖子来介绍,这里不错过多

介绍。写测试代码进行跟踪吧

测试代码如下:

 vtkTextActor* pTextActor = vtkTextActor::New();
 pTextActor->SetDisplayPosition(150, 100);

 std::string tstrText = __("好主意网站 - http://www.gdidea.com.cn");

 pTextActor->SetInput(strText.data());

 vtkRenderer* pRender = vtkRenderer::New();
 pRender->AddActor2D(pTextActor);

 vtkRenderWindow* pWindow = vtkRenderWindow::New();
 pWindow->AddRenderer(pRender);

 pWindow->SetSize(400, 300);
 pWindow->Render();

跟踪pWindow->Render()的代码,你会发现,如果是win32平台的操作系统,字体的渲染会通过一个名为

vtkOpenGLFreeTypeTextMapper类中的RenderOverlay函数来执行的,通过对这个函数的跟踪发现,这段语句:
 
 vtkFreeTypeUtilities::Entry *entry = 
 vtkFreeTypeUtilities::GetInstance()->GetFont(tprop, tprop_color);

也许是产生乱码的线索,其中的tprop即是vtkTextProperty类型的指针,这段代码即为获取渲染的字体指针,那么vtk是如何进行字体设置呢?

继续跟踪...

(有时间继续)
 
 
 
 
本文地址: http://www.gdidea.com.cn/html/20071/77.htm 复制 
版权声明:本文为zx_sanjin原创发表,本网站《服务条款》享有相关权利。


  • 221.7.40.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如果用TCL的话,本身就支持中文


  • 118.112.110.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
221.7.40.* 4楼
如果用TCL的话,本身就支持中文的
↑本身支持和显示出来是两码事吧 :)


  • 98.240.229.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
知道美国在VTK,ITK上投入了多少钱吗???中国对科研软件的开发投入又有多少??mitk开发是没有多少资金投入的,而且主要是以研究生为主开发,VTK和ITK现在是由kitware公司维护的,论投入产出比还不见怎样呢,支持国产!


  • ywwilpig
  • 一年级
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你用过mitk?


  • rabbitbride
  • 初三年级
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
中文的显示方法网友已经解决了,并且给出了几个类,下面借花献佛:
http://pan.baidu.com/share/link?shareid=10260&uk=4144455223


2025-10-25 01:39:37
广告
不感兴趣
开通SVIP免广告
  • rabbitbride
  • 初三年级
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

@xumg2007


  • xumg2007
  • 三年级
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

@rabbitbride 编译的时候提示这个错误,我之前尝试不改变 VTK 的 Lib 库接口,直接把这三个类当作一般的类来使用,也提示这样的错误


  • xumg2007
  • 三年级
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

@rabbitbride 还有这个,提示“\VTK 5.10.0\VTK\Rendering\vtkFreeTypeUtilitiesUnicode.cpp(93) : error C2653: “FTLibraryCleanup” : 不是类或命名空间名称”


  • rabbitbride
  • 初三年级
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
@xumg2007
先将类似这句的:singleLineTextB->GetTextProperty()->ShallowCopy(singleLineTextProp); 都改成singleLineTextB->SetTextProperty(singleLineTextProp);//winston
然后,类似这句的都注释掉://static_cast<vtkTextPropertyUnicode*>(singleLineTextB->GetTextProperty())//->SetFontFileName("C:\\Windows\\Fonts\\DFPShaoNvW5-GB.ttf");
最后,在前面自己写个 singleLineTextProp->SetFontFileName("C:\\Windows\\Fonts\\DFPShaoNvW5-GB.ttf");//winston
这个方法是针对你那个error的。试试?


  • rabbitbride
  • 初三年级
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
应该会有更好的中文显示方法,抽时间研究下~~,
我觉得显得VTK包或许会直接支持Unicode中文?
@xumg2007 有了好方法记得贴出来分享下,呵呵


  • xumg2007
  • 三年级
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

@rabbitbride 这样改的?


2025-10-25 01:33:37
广告
不感兴趣
开通SVIP免广告
  • 阴天盖顶
  • 托儿所
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
图片来自: 阴天盖顶的百度相册
@rabbitbride 大神啊,我这边郁闷了一天了,调整了很多地方,一开始直接内存报错,后来总算是能运行了,但是是这东西。。。字符集已经是使用 Unicode 字符集了


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 59回复贴,共2页
  • ,跳到 页  
<<返回vtk吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示