[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

CLGO3D解释器发布

本帖最后由 happy886rr 于 2017-6-6 08:37 编辑

CLGO3D 绘图脚本语言,是CLGO平面绘图语言的3D版,目前处在测试阶段。将GDI+绘图库更换为OPENGL库,因此实现了三维线段绘制。
下载外链图,存为a.zip,解压即是(含全部源码)。


CLGO3D 1.0版
_____________________________________________________________________________
CLGO3D 绘图脚本语言,是CLGO平面绘图语言的3D版,目前是测试阶段。
_____________________________________________________________________________

W、A、S 键分别控制x、y、z轴视角。对.CL3后缀的文件直接拖拽到CLGO3D上运行。

_全局变量:
  1. -----------------------------------------------------------------------------
  2. 关键词(不区分大小写)        中文释义                    用法说明
  3. -----------------------------------------------------------------------------
  4. :PENX                       横坐标
  5. :PENY                       纵坐标
  6. :PENZ                       竖坐标
  7. :PENY                       纵坐标
  8. :PENW                       笔宽                        取值0-255
  9. :PENC                       笔色                        取值0-15
  10. :PENB                       笔背景色                    取值0-15
  11. :PENS                       笔光滑度                    取值0-6
  12. :PENA                       笔透明度                    取值0-255
  13. :HEADING                    笔头角度                    取值0-360
  14. :PEN0 - :PEN9               用户变量                    供用户使用的全局变量
复制代码
代码太长(1911行)不再贴出。后续版本会继续改进语法,以便封装更多的GL函数进入脚本,从而实现复杂的三维绘图。
补充:从测试效果看OPENGL性能还是有瓶颈,后续版本可能换用DX绘图。
1

评分人数

回复 2# 老刘1号
彩色球
  1. TO MORNING_GLORY :R :H
  2. FOR ::A -:R :R
  3. IF ::A%10=0
  4. MAKE :PENC=RAND(15)+1 :PENZ=::A
  5. MAKE :H=SQRT(:R^2-::A^2)
  6. REPEAT 36
  7. PU
  8. FD :H
  9. PD
  10. FD 10
  11. BK :H+10
  12. RT 10
  13. ]
  14. ]
  15. ]
  16. TO MAIN
  17. MAKE :PENW=6
  18. MORNING_GLORY 300 0
  19. WAIT
复制代码

TOP

回复 6# ivor
感谢支持

TOP

回复 8# 523066680
一般的图还行,只是我在测试用opengl画分形时,递归量太大,直接卡住。

TOP

回复 10# 523066680
我发现opengl就是为脚本而生的,glbegin 画点东西,glend结束。然后继续这样画,所以就很容易封装为脚本,从而脱离C语言。

TOP

回复 13# 523066680
好资料,我没显卡,用的是cpu核显测试的,所以感觉太卡了。

TOP

本帖最后由 happy886rr 于 2017-6-8 23:45 编辑

回复 17# 3518228042

你画个图出来,我看看是啥样。
莫非是要这种效果?

(本图仅为外链)

TOP

回复 19# 3518228042
哦,你可以直接用photoshop做啊,那个做的颜色比较准。

TOP

本帖最后由 happy886rr 于 2017-6-16 22:50 编辑

回复 21# bailong360
用着很多github的开源工具, 写的东西不开源,不像github的风格。
capix最后的汇编可以整合为一个
  1. double callAPI(void *hProc, int *arr, int len, int callMODE, BOOL retMODE)
  2. {
  3. int    retINT;
  4. double retLLF;
  5. __asm
  6. {
  7. mov ebx, dword ptr [arr]  ;//把arr指向的地址(参数列表的尾地址)放入ebx
  8. mov ecx, dword ptr [len]  ;//把len的值放入ecx,作为循环控制变量
  9. dec ecx                   ;//递减ecx
  10. LOOP1:
  11. mov eax, dword ptr [ebx]  ;//倒序把数组arr(ebx指向的内容)的内容加载到eax
  12. sub ebx, 4                ;//把ebx的内容递减4(ebx指向的前移一位)
  13. push eax                  ;//把eax压栈
  14. dec ecx                   ;//递减ecx
  15. jns LOOP1           ;//如果ecx不为负值,则跳转到LOOP1:
  16. call dword ptr [hProc]    ;//调用API
  17. fstp retLLF;
  18. mov retINT, eax           ;//返回值存入result
  19. mov ebx, dword ptr [len]  ;//把len的值放入ebx
  20. SHL ebx, 2                ;//左移两位,这是可变参数的大小
  21. cmp callMODE, 0
  22. je  LOOP2
  23. add esp, ebx
  24. LOOP2:
  25. xor eax, eax              ;//清空eax
  26. }
  27. return (retMODE)?retINT:retLLF;
  28. }
复制代码
2

评分人数

TOP

本帖最后由 happy886rr 于 2017-6-17 11:46 编辑

回复 24# bailong360
我的速度并不快。因为写完要进行黑白盒测试,还要修bug,精简代码逻辑,优化速度,完善注释,写使用说明。规范化的开发流程使得你: 不可能像其他开发者那样轻松。
对不同语言的win系统,做TCHAR兼容,对不同编译器、乃至不同操作系统做编译器兼容。对用户的各类错误输入,程序的错误运行都要做错误反馈输出。

最终呈现在用户面前的应该是极佳的、高质量的第三方应用。呈现在读者面前的应该是规范的、思维严密、逻辑清晰的代码。
3

评分人数

TOP

返回列表