[OSG]OSG中字体的排版

本文详细介绍了OSG(OpenSceneGraph)中进行文字排版的各种方法,包括位置设定、旋转操作、对齐方式、坐标轴对齐和文字布局等,以实例演示如何在3D场景中实现“Hello world”的排版效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、OSG中,关于文字排版的有如下几种:

1. 位置

2. 旋转

3. 对齐

4. 坐标轴对齐

5. 文字而局

二、详解各种属性,以输入"Hello world“为例。

1. 位置

顾名思义,指定文字串的起始点。

void setPosition(const osg::Vec3& pos);
2. 旋转

设置文字旋转的角度和中心轴。

void setRotation(const osg::Quat& quat);

旋转是绕字符自己的物体坐标旋转,而非是整个场景的坐标系。

3. 对齐

    enum AlignmentType
    {
        LEFT_TOP,
        LEFT_CENTER,
        LEFT_BOTTOM,


        CENTER_TOP,
        CENTER_CENTER,
        CENTER_BOTTOM,


        RIGHT_TOP,
        RIGHT_CENTER,
        RIGHT_BOTTOM,
        
        LEFT_BASE_LINE,
        CENTER_BASE_LINE,
        RIGHT_BASE_LINE,
    
        LEFT_BOTTOM_BASE_LINE,
        CENTER_BOTTOM_BASE_LINE,
        RIGHT_BOTTOM_BASE_LINE,
    
        BASE_LINE = LEFT_BASE_LINE /// default.
    
    };
上面是osg提供的对齐方式。

4. 坐标轴对齐

    enum AxisAlignment
    {
        XY_PLANE,
        REVERSED_XY_PLANE,
        XZ_PLANE,
        REVERSED_XZ_PLANE,
        YZ_PLANE,
        REVERSED_YZ_PLANE,
        SCREEN,
        USER_DEFINED_ROTATION
    };
坐标轴对齐是文字贴于哪个面

5. 文字布局

    enum Layout
    {
        LEFT_TO_RIGHT, /// default
        RIGHT_TO_LEFT,
        VERTICAL
    };
布局代表的是文字方向。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值