如何在E3上调用图龙图形库进行图形生成模块开发

分享E3参数化建模新手集合

练习01 随机彩色圆柱

总体生成思路

程序从 “E3 图龙 003” 模块开始,通过双重循环(For Loop)控制生成圆柱体的数量和布局。在循环内部,利用多个Random模块生成随机数,来确定圆柱体在平面上的位置(X、Y 坐标)、高度(Z 坐标)、半径以及颜色。接着,依据这些随机参数,通过Point3模块创建三维点,结合GET Vector3.ZAxis获取的 Z 轴向量,利用Plane模块创建平面,再使用CreatePolygon模块在平面上创建多边形(近似圆形底面),随后通过CreateExtrude模块将多边形拉伸成圆柱体。最后,利用RGBColor模块生成随机颜色,由Display模块将所有生成的圆柱体进行可视化展示。

模块用途

模块名称 用途
E3 图龙 003 作为程序的起始模块,用于触发整个流程或者提供初始的全局参数等,是整个程序运行的起点。
For Loop(第一个) 设置外层循环,起始值为 0,步长为 2,循环到 30 结束。用于控制生成圆柱体在 x 维度上的布局数量和迭代次数。
For Loop(第二个) 设置内层循环,起始值为 0,步长为 2,循环到 30 结束。与第一个For Loop配合,在内层进一步细化布局,控制生成圆柱体在 y 维度上的数量和迭代情况。
Random(X、Y 坐标相关) 生成范围在 -1 到 1 的随机数,用于确定圆柱体在平面上 X、Y 方向的随机位置。
Random(Z 坐标相关) 生成范围在 0.2 到 0.8 的随机数,用来确定圆柱体的随机高度。
Random(半径相关) 生成范围在 0.5 到 0.8 的随机数,用于设定圆柱体底面半径大小。
Random(颜色相关) 生成范围在 50 到 255 的随机数,用于确定圆柱体颜色的分量。
Point3 根据传入的 X、Y、Z 坐标值创建三维空间中的点,为后续创建平面和几何体提供位置信息。
GET Vector3.ZAxis 获取三维空间中 Z 轴的方向向量,用于确定平面的法向量方向等与方向相关的操作。
Plane 根据传入的原点坐标(origin)和法向量(normal,此处使用GET Vector3.ZAxis获取的 Z 轴向量 )创建一个平面,作为后续创建多边形的基础平面。
CreatePolygon 在指定平面(plane)上,按照给定的半径(radius)和分段数(segments,这里为 48 )创建一个多边形,近似于圆形,作为圆柱体的底面。
CreateExtrude CreatePolygon创建的多边形(边界boundary ),沿着指定方向(direction,此处用 Z 轴方向 )拉伸,生成三维的圆柱体。
RGBColor 根据传入的红(r)、绿(g)、蓝(b)分量值创建颜色对象,这里绿色和蓝色分量固定为 0,红色分量由随机数确定,用于设置圆柱体的颜色。
Display 将生成的所有圆柱体对象(objects)进行可视化展示,可设置是否清除之前内容(clear )以及显示颜色(color )等属性。

/
/
/

练习02 动态螺旋点阵

002

总体生成思路

程序从“图龙新手练习”模块触发起始信号,通过“For 循环”模块设定从0到100、步长为1的循环迭代过程。在每次循环中,利用“MathHelper求正弦值”和“MathHelper求余弦值”模块对循环计数等数值进行数学运算,再结合乘法模块进一步处理数值。通过这些运算结果,使用“Point3”模块创建三维点坐标,进而确定“Circle”模块所定义圆的中心点位置及相关参数。循环过程中,通过“暂停执行”模块控制每轮迭代的时间间隔为100毫秒,最后利用“Display”模块将创建的圆等对象进行可视化展示。

运算模块及解释说明

模块名称 用途 参数说明
图龙新手练习 作为程序的起始模块,触发整个流程
For 循环 设置循环,控制迭代次数。起始值为0,停止值为100,步长为1 start:循环起始值,取值0;stop:循环停止值,取值100;step:循环步长,取值1
Sleep 暂停执行 暂停程序执行,控制执行节奏,暂停时间为100毫秒 ms:暂停时间,取值100
Display 可视化展示对象,可设置是否清除之前对象及显示颜色 objects:要展示的对象;clear:是否清除之前对象,默认false;color:显示颜色,可设置
Circle 根据中心点和半径创建圆 center:圆的中心点(三维点);radius:圆的半径
Point3 根据x、y、z坐标值创建三维空间中的点 x:x坐标值;y:y坐标值;z:z坐标值
乘法模块(多个) 对输入数值进行乘法运算,用于数据处理 输入数值1、输入数值2等,具体根据连接的输入数据而定
MathHelper求正弦值 对输入值求正弦值,用于数学计算 val:输入数值
MathHelper求余弦值 对输入值求余弦值,用于数学计算 val:输入数值
> input(数值比较模块) 将输入值与5进行比较,输出布尔值结果 input:输入数值,本程序中取值5

002-2.gif

升级版 总体生成思路

main2 模块启动流程,核心靠双重循环驱动动态动画:外层 For 循环作为 “帧控制器”,每轮迭代对应动画一 “帧”,迭代时先通过 “清空列表” 模块删掉上一帧数据,保证画面不叠加;内层 For 循环在每帧内运行,利用数学运算、点创建等模块生成该帧所需图形元素(如点、圆 )。

每帧元素生成后,“暂停执行” 模块控制帧间间隔(类似 sleep 定速),接着 Display 模块渲染当前帧画面。如此循环,外层循环逐帧切换、内层循环填充单帧内容、清空旧帧 + 暂停控速 + 实时渲染,让图像实现 “一帧一更新” 的动态变化效果,替代上一版元素叠加模式,达成画面动态更替。

相关项目文件:
图龙新手练习.zip (28.3 KB)