GLS-地平仪ADI制作

简介: 文章目录制作ADI目的设置工作环境GL仪表单元开发创建遮光板Texture Chooser的省略号按钮Texture Chooser对话框纹理的贴图效果创建ADI Ball创造一个光源创建水平bar编译并运行代码开发添加测试属性添加属性来处理Pitch/Roll计算包含glsutil.h的效用函数编译+运行+测试包含glsutil.h的效用函数编译+运行+测试

制作ADI


地平仪(ADI, Attitude Direction Indicator)用于让飞行器驾驶员知道飞行器的俯仰角和翻滚角。

目的

image.png

GL仪表单元开发

step 1: 打开上述”_adi.gls”文件,后清空GL的Geometry窗口的所有Object。


step 2: 打开Application窗口,命名window title为adi,并设置窗口的初始大小为512 X 512。


step 3:点击工具栏中工具上的箭头,在打开窗口中按下述图中红框圈中的内容进行设置。

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

添加属性来处理Pitch/Roll

“Pitch”属性来处理object关于x轴的旋转,”Roll”属性来处理关于z轴的。


step 1: 创建一个名为”Pitch”的float型属性,并拥有为0.0f的初始值。


step 2: 将下属代码添加到属性的设置函数内(即void Pitch( const float& value )):


\1. //Clamp the incoming values to a range between -90.0f and 90.0f


\2. _pitch = CLAMP_VALUE(value, -90.0f, 90.0f);


\3. adi_ball->DynamicRotate(_pitch, X_AXIS);


该段代码将可以实现”adi_ball”以x轴为中心在(-90.0f, 90.0f)的范围内动态旋转的功能。


step 3: 创建一个名为”Roll”的float型属性,并拥有为0.0f的初始值。


step 4: 同样将下属代码添加到属性的设置函数内:


\1. // Clamp the incoming values to a range between -180.0f and 180.0f


\2. _roll = CLAMP_VALUE(value, -180.0f, 180.0f);


\3. adi_ball->DynamicRotate(_roll, Z_AXIS);


计算

函数Calculate()用于周期性地驱动仪表,且在每帧渲染前被调用。若函数体过大,就会对程序的实时性造成了一定的影响。


step 1: 展开”Class Method”后选中Calculate()函数,在代码输入框中追加下属代码:


\1. if (Testing())


\2. {

\3. // Exercise the Pitch and Roll properties with


\4. // input values generated from RampFloat.


\5. Pitch( RampFloat(time / 2, -25, 40) );


\6. Roll( RampFloat(time / 3, -30, 30) );


\7. }


包含glsutil.h的效用函数

因为Calculate()函数中用到了ramping函数,而这些函数包含在头文件”glsutil.h”内,故该头文件需要被添加到我们的类中。


step 1: 在”Code”选项卡中选中”file _adiApp.h”选项,在代码输入框内输入如下内容:


\1. #include


编译+运行+测试

mpFloat(time / 3, -30, 30) );


\7. }


包含glsutil.h的效用函数

因为Calculate()函数中用到了ramping函数,而这些函数包含在头文件”glsutil.h”内,故该头文件需要被添加到我们的类中。


step 1: 在”Code”选项卡中选中”file _adiApp.h”选项,在代码输入框内输入如下内容:


\1. #include


编译+运行+测试

ADI动画般的动起来,就是通过效用函数RampFloat()传递到Pitch和Roll的值。



image.png

目录
相关文章
|
1月前
|
小程序 搜索推荐
怎么制作小程序
本文详细介绍了无需编写代码即可制作企业小程序的方法,适用于多种场景如商品销售、企业展示和服务预约等。只需四个步骤:注册小程序平台账号、选择模板、设计页面及绑定账号,最低每年349元即可拥有专属小程序。文章通过图文说明了每一步的具体操作流程,使读者能够轻松上手。
60 0
怎么制作小程序
|
30天前
|
XML 前端开发 JavaScript
如何制作一个自己的网站?
在今天的互联网时代,网站展示已经是一个很基础的营销工具。不管是企业、还是个人,如何制作一个自己的网站?本文将会提供一个全面的基础制作网页教程,教你如何从零开始制作网页。
|
4月前
|
资源调度 JavaScript 前端开发
使用WbbGPU制作爱心
7月更文挑战第9天
30 0
|
6月前
|
安全 Android开发 数据安全/隐私保护
制作系统签名
五月打卡
56 0
|
前端开发 JavaScript 编译器
聊聊制作网站那些事!
聊聊制作网站那些事!
79 0
|
11月前
水晶头制作
水晶头制作。
164 44
|
iOS开发
如何制作游戏微端
如何制作游戏微端
116 0
|
容器
如何在微信小游戏制作工具中快速的制作一个血条?
如图,添加了两个血条的图片,一个当作背景,一个当作前景,并且把这两个图片放到了一个“血条1”容器中,另外增加了一个“打你丫的”按钮,用来模拟攻击,点击“打你丫的”按钮,血条就会掉血。
179 0
|
数据可视化 开发工具 Android开发
个人尝试制作游戏最好的选择是什么?
有不少人都想尝试着做游戏,不论是尝试着实现自己曾经的游戏梦想也好,还是试着把做游戏当做一个副业也好,对于所有的想要或者正在做游戏的个人来讲,从微信小游戏开始都是一个最好的选择。 我自己现在正在做微信小游戏,而且也在教很多的学员做微信小游戏。你可能会觉得我这样说是有一定的动机的,但其实不然,如果我自己不相信这个平台的话,那其实我是没有必要自己做的,只需要忽悠让别人相信就可以了。但是现在我自己也正在致力于做这件事,这也证明了我对它的认可。不是有这么一句话吗?不要轻易相信一个人说了什么,而要看他做了什么。
146 0