之前关于太极编程语言的文章,介绍的都是TaiChi的数据类型这类的基本概念和知识。虽然说太极编程语言是一种图形编程语言,不过到现在我们都没有接触到关于太极编程怎么创建渲染图形的基本编程知识。而这正是这篇文章的学习的内容,更具体一点,机智客此时学习的一个基本的概念,也就是ti.GUI的知识。
虽然说,3D的图形、动画往往容易比2D的内容吸引人,不过太极编程语言的ti.GUI则是一个不折不扣的创建2D图形window的接口。所以我们可以用gui=ti.GUI("jizhike",res=(1024,768))这样的代码创建一个标题为jizhike分辨率为1024*768的画布窗口。如果我们手写了一些东西,就可以直接用gui.set_image()画到窗口上去。
另外,作为原生态的GUI,太极图形当然提供了一些创建基本的画图功能的函数。比如gui.circles(),gui.lines(),gui.rects()等。除此之外,还提供了一些方便交互的控件,比如gui.button(),gui.slider(),gui.text()等。这样就能灵活交互了。既然有交互,就免不了要有事件驱动和捕获鼠标键盘等事件,所以太极图形编程语言还有类似于gui.get_events(),gui.get_key_event(),gui.running这样的函数。
总之,这个gui=GUI()并不复杂,而且目前而言,这个本身也并不算强大。机智客看有介绍说,是考虑到可移植性做的一个选择。而如果我们想做3D图形,也不是不可能。毕竟,一个成熟完整的计算机图形库,怎能不支持3D?除了官方在做的GGUI外,这个功能实现还可以用到offline:ti.PLYWriter导出成其他软件能识别的通用3D数据格式,用其他软件来实现3D渲染。
换句话说,我们可以用做更多并行执行计算,而要渲染3D动画之类的可以在其他专业软件中完成。理解,毕竟太极图形是一个开源的计算机图形库,虽然它能模拟仿真建模,然而它毕竟不是完整的3D建模或渲染软件。如果我们要实现一些动画或模拟,需要借助一款专业的3D软件,机智客记得在网上就有Blender导入太极库的实现,具体没了解,需要的可以去看下官方进展。所以,taichi一个可视化的太极程序项目,往往是由引入模块、初始化和定义数据、调用kernel完成实现,然后才是可视化的GUI之类的功能。taichi https://taichi-lang.cn/
|