C++ Builder XE2 在3D场景中加载2D控件
2011-09-28 16:48
288 查看
C++ Builder XE2 [/b]在[/b]3D[/b]场景中加载[/b]2D[/b]控件[/b]
[/b][/b][/b][/b]
warensoft 中科院计算所培训中心
(原创文章,请勿转载!)
[/b][/b]
C++ Builder XE2已经发布很长时间了,令笔者兴奋的有两点,第一是IDE的智能感知速度大大提升,二是在XE2中集成了FireMonkey3D组件,这是目前可以见到的,除了WPF以外,另一个款直接集成在IDE中的3D引擎,对比WPF,FireMonkey编译完的可执行程序是原生的本地程序,不用像WPF一样要安装庞大的运行时。另外,FireMonkey还提供了编译成Win32或者是IOS原生程序的选择功能(太牛了)。
FireMonkey中不但提供了常见3D技术中的功能支持(如:ViewPort,Camera等),还提供了一个大多3D引擎不太好实现的功能,即:可以直接将2D控件加载到3D空间中,方法如下所示:
第一步:建立一个FireMonkey的应用程序,如下图所示:
![if>
第二步:在窗口中添加一个ViewPort3D,以便展示3D效果,如下图所示:
![if>
调整ViewPort3D的大小,使其充满整个窗口,如下图所示:
![if>
第三步:在Viewport3D中添加一个TLayer3D组件,如下图所示:
![if>
![if>
调整其Rotation和Scale值,结果如下图所示:
![if>
第四步:在TLayer3D中添加一个Button控件和一个Edit控件,如下图所示:
![if>
其层次结构如下图所示:
![if>
第五步:编写Button的Click事件,代码如下所示:
void __fastcall TForm12::Button1Click(TObject *Sender)
{
//设置文本框的文字Hello World
this->Edit1->Text="Hello World";
//同时让Layer3D绕Y轴转动100度
this->Layer3D1->RotationAngle->Y+=100;
}
最后,运行程序,点击按钮之前的效果如下图所示:
![if>
点击之后的效果如下图所示:
![if>
[/b][/b][/b][/b]
warensoft 中科院计算所培训中心
(原创文章,请勿转载!)
[/b][/b]
C++ Builder XE2已经发布很长时间了,令笔者兴奋的有两点,第一是IDE的智能感知速度大大提升,二是在XE2中集成了FireMonkey3D组件,这是目前可以见到的,除了WPF以外,另一个款直接集成在IDE中的3D引擎,对比WPF,FireMonkey编译完的可执行程序是原生的本地程序,不用像WPF一样要安装庞大的运行时。另外,FireMonkey还提供了编译成Win32或者是IOS原生程序的选择功能(太牛了)。
FireMonkey中不但提供了常见3D技术中的功能支持(如:ViewPort,Camera等),还提供了一个大多3D引擎不太好实现的功能,即:可以直接将2D控件加载到3D空间中,方法如下所示:
第一步:建立一个FireMonkey的应用程序,如下图所示:
![if>
第二步:在窗口中添加一个ViewPort3D,以便展示3D效果,如下图所示:
![if>
调整ViewPort3D的大小,使其充满整个窗口,如下图所示:
![if>
第三步:在Viewport3D中添加一个TLayer3D组件,如下图所示:
![if>
![if>
调整其Rotation和Scale值,结果如下图所示:
![if>
第四步:在TLayer3D中添加一个Button控件和一个Edit控件,如下图所示:
![if>
其层次结构如下图所示:
![if>
第五步:编写Button的Click事件,代码如下所示:
void __fastcall TForm12::Button1Click(TObject *Sender)
{
//设置文本框的文字Hello World
this->Edit1->Text="Hello World";
//同时让Layer3D绕Y轴转动100度
this->Layer3D1->RotationAngle->Y+=100;
}
最后,运行程序,点击按钮之前的效果如下图所示:
![if>
点击之后的效果如下图所示:
![if>
相关文章推荐
- DirectX 11---从空间变换来看3D场景如何转化到2D屏幕
- 用3D技术实现2D场景
- Unity3D NGUI制作的Button放到场景中,按钮从2D变到3D
- Unity3D中2DUI跟随场景中3D物体
- Libgdx New 3D API 教程之 -- 加载3D场景的背后-第二部分
- Libgdx New 3D API 教程之 -- 加载3D场景的背后-第一部分
- Unity-屏幕适配UGUI与3D/2D场景
- 通过读取Z Buffer深度值将屏幕2D坐标转化为场景3D坐标(含程序和源码)
- 发布 Victor 串口 VCL 控件 1.5.0.1,支持 C++ Builder XE2
- xna 4.0 在3D 场景中用spritebatch 写2D文字3D显示不正常的问题
- UGUI 将2DUI和场景中的3d物体关联,跟随物体移动
- 用单张2D图像重构3D场景
- Libgdx New 3D API 教程之 -- 加载3D场景的背后-第二部分
- C++ builder系列之------suipack控件加载
- C++ Builder XE2随意学习 (10) > AlphaControls控件使用初探
- 读取Z Buffer深度值将屏幕2D坐标转化为场景3D坐标源码
- 图表控件TeeChart干货分享(绘制2D、3D实时曲线---VC++示例源代码--网络首发)
- unity3d 3d场景中人物的2d头像/血条位置计算
- 用单张2D图像重构3D场景