WHY数学图形可视化工具(开源)
WHY数学图形可视化工具
软件下载地址:http://files.cnblogs.com/WhyEngine/WhyMathGraph.zip
源码下载地址: http://pan.baidu.com/s/1jG9QKq6
软件的开发语言是C++,开发环境是VS2008,渲染使用的是D3D9
QQ交流群: 367752815
该软件是之前发布的WHY数学表达式的3D可视化最新版本
该软件用于将数学表达式以图形的形式显示出来.软件中定义一套简单易学的脚本语言,用于描述数学表达式.使用时需要先要将数学表达式写成该脚本的形式,解析脚本代码以生成相应的图形.能够生成曲线图形和曲面图形. 目前只能处理显示表达式.
(1)主界面
在文件夹” MathScript”中,提供了500个以上已经写好的数学表达式脚本文件.将数学脚本文件拖入到主界面中,即显示其图形.亦可以通过菜单项打开脚本文件.
如果图形是一个3D图形,那么软件会自动为你切换到3D显示模式.使用鼠标右键拖动,以旋转视角.键盘上的WSAD,QERF,上下左右也对视角进行控制.这个不细讲了,用户自己去体验吧.如果图形是一个2D图形,打开时为二维显示模式,用户可以按下键盘上的’O’键,在3D,2D间进行切换.鼠标滚轮可以对视口进行缩放.
下图为一个二维的视图:
(2)UI界面
按下键盘上的’U’键,会在左边显示一套UI控件:
用于对一些显示属性的操作.可惜我的引擎目前不支持中文字体,所以先将就着用吧.
(3)纹理设置
按下键盘上的’0’键,会在右边显示一个纹理选择控件,用于设置数学曲面的纹理:
UI面板上的也可以控制纹理选择控件.
纹理文件存放在” Texture”文件夹下,用户可以将自己喜欢的图像文件放入其中.软件会自动为你加载.用户亦可以直接将图像文件拖入到主界面中.对图像格式的支持包括: dds,bmp,jpg,png,gif,tga.
(4)显示控制
当打开一个数学图形后,按下键盘上的’7’键,会显示一个滑动条控件,用于控制所显示的图形范围. 控件也可以.滑动条上有两个滑块,分别表示其显示范围的最小与最大,如下图:黄线处为显的区域,绿线处为未显示的区域.
最小滑块与最大滑块可以错开:
下图为对曲面图形的操作
下图为对曲线图形的操作:
当打开一个数学曲面图形后, 按下键盘上的’P’键或点下会在右下角显示两个对曲面上曲线进行操作的控件.
如下图所展示:
图中绿色曲线为第一维度的曲线,红色曲线为第二维度的曲线.
(5)数学脚本面板
软件工具栏上的按钮用于打开脚本编辑面板.
用于打开脚本文件,编辑脚本,保存文件,解析脚本,输出编译信息.
如果在这里编辑脚本,请记住按CTRL+回车才能实现换行.这个脚本编辑的控件不太好用,我自己写脚本通常是用TXT文本.
如果没有图形显示,请看下编译信息输出.通常会为你提供一些出错信息.
(6)快捷方式
F5: 数学脚本编辑界面
F6: 可视化属性面板
F7: 包围盒面板
F9: 系统配置面板
F11: 全屏切换
ESC: 退出全屏
‘X’: 恢复为默认视角
‘Z’: 将图形放置到视口中心
'O': 视图切换
'U': 开关UI界面
'L': 开关灯光
'B': 包围盒的可见属性切换
'G': 地平面网格的可见属性切换
'M': 坐标系轴的可见属性切换
'N': 地面的可见属性切换
'P': MESH图形中,显示选择线
'1': MESH图形中,面片可见,线框不可见
'2': MESH图形中,面片不可见,线框可见
'3': MESH图形中,面片可见,线框可见
'4': MESH图形中,使用纹理色
'5': MESH图形中,使用顶点色
'6': MESH图形中,使用默认色
'7' :使用滑动条
'8' 显示数据信息
'9': 显示纹理设置控件
'0': 重新编译脚本(如果脚本中使用了随机数函数,则重新编译后,生成的图形会不一样)
WHY数学图形可视化工具(开源)的更多相关文章
- Why数学图像生成工具
该软件能够以给定的数学公式及算法生成各种绚烂的数学图像.软件中有两种生成图像的方法: (1)通过一种我自定义的脚本语言生成: 软件中定义一套简单易学的脚本语言,用于描述数学表达式.使用时需要先要将数学 ...
- 数学图形(1.49)Nephroid曲线
昨天IPhone6在国内发售了,我就顺手发布个关于肾的图形.Nephroid中文意思是肾形的.但是这种曲线它看上去却不像个肾,当你看到它时,你觉得它像什么就是什么吧. The name nephroi ...
- 数学图形(1.48)Cranioid curve头颅线
这是一种形似乎头颅的曲线.这种曲线让我想起读研的时候,搞的医学图像三维可视化.那时的原始数据为脑部CT图像.而三维重建中有一种方式是面绘制,是将每一幅CT的颅骨轮廓提取出来,然后一层层地罗列在一起,生 ...
- 数学图形之贝塞尔(Bézier)曲面
前面章节中讲了贝塞尔(Bézier)曲线,而贝塞尔曲面是对其多一个维度的扩展.其公式依然是曲线的公式: . 而之所以由曲线变成曲面,是将顶点横向连了再纵向连. 很多计算机图形学的教程都会有贝塞尔曲面的 ...
- 数学图形(1.47)贝塞尔(Bézier)曲线
贝塞尔曲线又称贝兹曲线或贝济埃曲线,是由法国数学家Pierre Bézier所发现,由此为计算机矢量图形学奠定了基础.它的主要意义在于无论是直线或曲线都能在数学上予以描述. 上一节讲的是高次方程曲线, ...
- 数学图形之Breather surface
这是一种挺漂亮的曲面图形,可惜没有找到太多的相关解释. In differential equations, a breather surface is a mathematical surface ...
- 数学图形之Kuen Surface
Kuen Surface应该又是一个以数学家名字命名的曲面.本文将展示几种Kuen Surface的生成算法和切图,其中有的是标准的,有的只是相似.使用自己定义语法的脚本代码生成数学图形.相关软件参见 ...
- 数学图形之Boy surface
这是一个姓Boy的人发现的,所以取名为Boy surface.该图形与罗马图形有点相似,都是三分的图形.它甚至可以说是由罗马曲面变化而成的. 本文将展示几种Boy曲面的生成算法和切图,使用自己定义语法 ...
- 数学图形之SineSurface与粽子曲面
SineSurface直译为正弦曲面.这有可能和你想象的正弦曲线不一样.如果把正弦曲线绕Y轴旋转,得到的该是正弦波曲面.这个曲面与上一节中的罗马曲面有些相似,那个是被捏过的正四面体,这个则是个被捏过正 ...
随机推荐
- where子句的使用
关系运算符: = > < <= >= != <> 略. 有一个<=> 有啥用? 其实也是判断等于. 不比较NULL值,效果就和= 一样,比较NULL值, ...
- 让HTML5语义化标签兼容IE浏览器
解决方案:IE9以下旧版本浏览器不支持新的语义化标签.其中一种解决方案就是用js将HTML5增加的标签创建出来,就像下面这样.(放在header部位) <script> var html5 ...
- C++字符串常量
C++字符串常量 当一个字符串常量出现于表达式中时,它的值是个指针常量.编译器把这个指定字符的一份copy存储在内存的某个位置(全局区),并存储一个指向第一个字符的指针. #include <i ...
- delphi 处理图片(剪切,压缩)
剪切bmp:效果为指定的rect大小,若图片比rect小,则会放大. 都要uses Vcl.Imaging.jpeg; 需要注意的是FMX里也需要jpeg的支持,虽然没引用编译器不会报错,但用到jpg ...
- 【概念笔记】JAVA基础 - part1
IT`huhui前言录 这是自己对JAVA基础的一个小总结,会不断完善.因为时间仓促的原因. 每学习一段时间,停下来,静心总结一下,甚好.停停走,走走停,一往无前,不摔倒. 一些链接里面是我看到一些人 ...
- CentOS下 pycharm开发环境搭建之无穷无尽的问题
在上一篇的环境搭建中,表面上以为已经升级好python,安装好pycharm,并且可以用上了django框架,谁知道,谁知道,又是一断被虐的经历,我都要快恼羞成怒了. 在些记录一下我的经历. 1.首先 ...
- log-malloc2 0.2.4 发布
log-malloc2 0.2.4 发布了,该版本修复了日志格式输出的 bug. og-malloc2 是一个 malloc 日志预加载库,用于检测内存泄漏问题.
- C#手动做一个负载均衡服务器
思路 负载均衡服务器最出名的当数 Nginx了.Nginx服务器通过异步的方式把连接转发给内网和N个服务器,用来分解单台应用服务器的压力,了解了原理及场景后,用C#来实现一个.思路如下: 1. 使用一 ...
- Jpeg2000 简介
http://www.baike.com/wiki/Jpeg2000 总结Jpeg2000的六个方面: ⑴ JPEG2000可以方便地实现渐进式传输,这是JPEG2000的重要特征之一.看到这种 ...
- Python的with语句
写过多线程程序的人肯定对各种锁很熟悉,尤其是下面这种代码 def lock_usage: lock.Lock() if(...) : lock.Unlock() return lock.Unlock( ...