欢迎光临 MathCai
我们一直在努力

3d坐标系2011-7b (8月20号:增加了多面体皮肤工具,并给出了使用说明)

http://www.inrm3d.cn/viewthread.php?tid=2946&extra=&highlight=&page=1

[attach]13467[/attach]2011-7a只有2个转动方向,经对7a版本改进,到7b版本已经可以有3个转动方向了。可以说坐标系已经完美了。可以肯定的说是最好的坐标系之一了。
为了见证修改的历程,在这里我把老版本2011-7a一块发布在里。

在改进老版本2011-7a的过程中遇到的最大问题是压缩比的调整上,在这方面我花费了大量的时间,经反复验证最后在设置成功。在设置压缩比上我一直沿用了一个思路,当z轴压缩比的绝对值变小时,x,y轴的压缩比的绝对值要变大,思路有了,就是实验,反复实验,最后终于完成。整个的思路就是变换,因为我坚信读大学时学几何获得的观点—-几何的本质就是变换群!所以我一直坚信我的方向性的是最正确的方向。结果也证明了我是对的。
3d坐标系-2011-7b版本,一定会流传下去,因为它真的是一个完美的版本。随着时间的推移,我想会见到7b的各种变种版本,我相信7b版本的思想一定会流传下去。7b版本的思想会在网络中永生!
下一步,将是提共7b版本的一些基本使用方法。坐标系的改进已经到头了。以欢迎有兴趣的网友和我一起提供7b版本的一些基本使用方法 。zhengmh 网友给我提供的建议,对我很有帮助,在此谢谢。
zhengmh 网友曾发给我一个3轴转的的正六棱柱,现在在这个坐标里可以轻松完成;在此把hengmh 网友发的正n棱柱一块发上。
注: ——–版本历程:最早的版本是2轴旋转,吧台为圆盘。然后到了7a版本吧台改为了滑块。还是是2轴转动。所以这些版本都可以在本论坛找到。后来 zhengmh网友告诉我,我的还一个转动方向。与是就有了现在的7b版本,三轴转动,并且把吧台改成了最初的圆盘。如果你不喜欢圆盘,喜欢滑块,就比照 7a版本改一改就可以了。总值7a版本到7b版本,只是修改了小小的2个压缩比,7a版本里面有3个压缩比K1(控制x轴方向的压缩),K2(控制y轴方 向的压缩),K3(控制z轴方向的压缩)。在反复运行7a版本时,改变k3的值,将形成上下翻转。到了7a版本这一步是傻瓜都知道,要通过改变k3,来形 成上下翻转。于是研究了k3的增减性,与翻转的对应情况,并记录了k1,k2的变化状况,并列了表,最初选用的关系式为1-(k1+k2)=k3.但效果 不好。然后实验了k1=k2,k3=1-k1,发现还是有些问题。接着实验了k3=根号(1-k1的平方),但是这种翻转出现了不不连续性,即跳跃,到这 这里我已经知道里成功不远了。出里跳跃的方法我有有,符号函数就可以解决。但是我建系的方法是变换,变换里面用到了正弦,余弦,于是取了 k1=sint3,K3=COST3,事实上取k1=k2=cost3,k3=sint3,也没问题,甚至是其他的函数,关键是要能刻画出,k3变大 时,k1,k2要变小这种规律,满足这种要求的函数太多了。分析大小变化和翻转的对应关系,理论上没问题了。于是实验,结果和理论吻合。就这样成功了。

发现这个秘密现在看来显得很简单,但是在探索这个秘密的时候真的好费力,好累人。不过也乐在其中。7a到7b就是一层纸的关系。
更新说明:2011-7-18晚,增加了描点工具,可以描绘空间点,坐标平面内的点,轴上的点。如果 结合自定义变换使用,其功能是非常强大的。本模板只自带了两个定义坐标系用的变换,一个是把xy平面内的点变换到o’xy平面(快捷键为ctrl+1)、 第二个是把y轴上的点变换到o’z轴(快捷键为ctrl+2),其实利用这两个变换加上平移,就足够作出函数曲面的图像了。在几何画板中做动态几何的时候 请尽量避免使用活动文本,因为太占内存,切记!!!
更新2:增加了把点映射到o’-xy平面,映射到o’-x轴工具,增加了映射点到空间的工具,用来绘制函数曲线这里用到的7a变换法(我给这个方法取的名)为本人花费大量时间的原创(这个世界上不会有第二人是这么做的。因为是原创!),如引用请注明出处。另望网友指教,以便改正
更新3:增加了画函数曲线和曲面的工具。增加了图多面体的制作虚实线的工具。
感悟:几何画板的历史(官网原话)来自于官方原文,翻译有不尽人意的地方请谅解。

The Sketchpad Story
画板故事
The origins of The Geometer’s Sketchpad date back to the 1980s
几何画板的最初起源可以追溯到1980年代
and to the Visual Geometry Project,
对于可视化几何项目,
a research project at Swarthmore College under the direction of Drs. Eugene Klotz and Doris Schattschneider.
一个研究项目在swarthmore学院(斯沃斯莫尔学院 )在Eugene Klotz和Doris Schattschneider的指导下。
This project, funded by the National Science Foundation,
这个项目,得到了自然科技基金会资助
aimed to develop new technology-based materials for use in the teaching of geometry.
目标是发展为我们教授几何提供基于新技术资源的支持。
Under its umbrella,
在其麾下
Nicholas Jackiw pioneered the development of the first version of The Geometer’s Sketchpad.
Nicholas Jackiw(几何画板中经常看到这个人的名字)先行发展了几何画板的第一个版本。
The program’s name honors Ivan Sutherland’s 1963 SKETCHPAD program,
这个程序的命名是为了给予1963年的sketchpad程序的尊敬,(注:sketchpad翻译过来就是几何画板)
a groundbreaking early work in interactive computer graphics (Sutherland, 1963).
一个早期的关于计算机交互作图的开创性工作。
后记:看来外国人对科技工作者是很尊敬的。
独领风骚30年
几何画板从发布第一个版本(1980年)起,传递到中国,在使用的技法上尺规作图占据了统治地位,
可以说尺规作图独领风骚30年。它代表了一个时代。然现代研究几何的方法早就进入了以变换为工具研究几何的时代,所以,可以预测在几何画板中使用变换为主 要研究方法也将开启一个新的时代,既然尺规作图在几何画板使用领域中能独领风骚30年,7b版本体现的变换法思想没有理由不可以在几何画板中也独领风骚 30年?!!!

补充:分别绕三轴旋转的坐标系(这也算是变换法思路的一个应用):http://www.inrm3d.cn/viewthread.php?tid=2950&extra=page%3D1

2011-7-23 更新:把创建坐标系的方法打造成了工具3d-7b工具。打造为工具虽然看起来简洁,但是中间的变换式就在也看不到了。从工具创建坐标系的过程可以明显的感 受到和以往的工具创建坐下系的风格明显的不同。用惯了老方法创建坐标系的网友,不方也感受一下用变换创建坐标系的感觉。不一样的风格,不一样的感受。
另软件的更新将同步的写入说明文档,工具的说明请参考说明文档
网站:http://user11.jabry.com/geopad

光照表现:http://www.inrm3d.cn/viewthread. … page%3D1&page=4

3d坐标系2011-7a.gsp(16.93 KB)2轴旋转版本
正n棱柱.gsp(85.06 KB)zhengmh 发的
3d坐标系2011-7.gsp(38.47 KB)为了见证历程,特贴出这个初始版本,2轴旋转
3d坐标系-2011-7b(中文按钮).gsp(22.68 KB)应网友的要求改为中文按钮
3d坐标系-2011-7b 说明文档 27号发.zip(24.76 KB)31号发,增加了虚实线制作工具
3d坐标系-2011-7b.gsp(38.66 KB)含源代码文件
对象消隐算法实现虚线和实线的转换2.gsp(100.25 KB) 
3d-7b tool.gsp(89.65 KB)8月8好,更新了平面光强度计算工具
7b-light tool.gsp(193.94 KB)皮肤工具包:光强度计算工具,3,4,5,6边形可以直接做光照消隐
7b-line tool.gsp(96.19 KB)线面工具包:线面消隐工具
3d-7b光照工具使用说明.gsp(137.83 KB)通过实例详细的说明了光照工具的操作过程。
光照工具迭代注意事项.gsp(192.91 KB)说明光照工具在迭代时要做的一个修正。
光照工具包7b-light tool例子.gsp(117.11 KB)效果图看上面的动画图片,********************************************************************************************** 1# myzam 3d坐标系-2011-7b软件示范。特别适合于高中立体几何课使用的几何画板3d坐标系。
我吹没吹牛,你看了就知道!了解消隐算法,首先要学习一定计算机图形学。下面是两篇大学计算机专业教材。
文章:计算机图形学之消隐算法讲解
http://wenku.baidu.com/view/5ba7a5d9ad51f01dc281f1c7.html
华中科技大学:计算机图形学教程
http://cs.hust.edu.cn/webroot/co … ai.php?bookpage=1_a
网络教教—-消隐算法(地质大学计算机学院)
[url]http://course.cug.edu.cn/cugThird/CGOL_NET/CLASS/course/8-a.htm

常见的观察坐标系为屏幕为xy平面,其实在几何画板里就可以取成几何画板的固有坐标系,z轴垂直于屏幕,指向你的眼睛。观察坐标系和物体存在的空间坐标系 是不同的坐标系。或者可以这样理解,我们在电脑前手举一个正方体,我们人所在的这个坐标系就是观察坐标系,而正方体所在的坐标系就是空间坐标系,然后,我 们设想把手中的正方体沿观察坐标系的-z轴方向投影到电脑屏幕,我们所要做的就是处理电脑上的这个投影,想办法让这个投影具有3维立体感,就这样就获得了 3维图形。
========================================================

3d坐标系-2011-7b 软件示范.gsp(19.12 KB) 
正n棱柱.gsp(85.06 KB)对比作品,但我的坐标系,可以更简单的完成,实现了通用化,大众化。
3d坐标系-2011-7b应用之描点画长方体.gsp(62.79 KB)2011-7-19 14:00发
dial工具实例.gsp(83.16 KB) 
软件示范.gsp(107.94 KB) 
黑灰色显示动态线段.gsp(127.37 KB)工具black-grey的使用*******************************************************************************************一个课题:想用几何画板表达光照。思路是有的,利用参数控制色彩就可以办到。想把光照问题打造为通法。只是没时间。算了还是把为问题提出来,留给有时间的网友去完成。如果有人完成这个课题,请告诉我,我会为你鼓掌的。
第二个课题:如何快速的在3d坐标系2011-7b中描点。
这里有2个思路,变换法,我喜欢用这个方法,还有就是打造一个描点工具。时间问题,还是留个网友吧。
后记:描点工具于2011-7-18晚上打造完成,已包含在上面发布的“3d坐标系2011-7b”版本中
============================================================
1.坐标系的构思:
我的构思是把xy坐标系映射到x‘y’坐标系,然后再次把xy坐标映射到x’z‘坐标系,xy坐标系的这两个像我让他们的x’轴重合,这样就形成了空间坐标系o’-x’y’z’。我不知道别人的构思是怎么想的,希望能有网友介绍一下其它人的构思。
我采用了变换法,我认为优点是便于寻找新旧坐标系间的关系。便于用公式去刻画新旧关系。比如说旧坐标系里的三角形面积是3,映射到了新坐标系的三角形面 积是多少,可以用公式算,又如在旧坐标系里两线段的夹角是30度,映射到新的坐标系里夹角是多少也可以用公式算出来。反之亦然。而这些计算公式又可以最终 整理为工具。但我上课是永远用不上这些东西的。我用到的最多就是一个旋转。
2.使用教程:
下一步再写。
————————————————————————-
几何画板中消隐算法的建立:对凸多面体才成立—原创算法
参考计算机图形学中的消隐算法之对象空间消隐算法,发现这种算法在几何画板中可以实现。对象空间消隐算法就是人在一个观察坐标系里去观察对象,
挡住的不显。设多面体的表面的外法矢n,观察矢量为v,这个矢量通常取成观察坐标系的z轴的正方向,人的观察视线是-v方向。
这样n与v的夹角是锐角时,面可以看到,否则不可见。这有只要就是内积n.v就可以了。由于观察矢量取成了观察坐标的z轴正方向,所以n.v的符号,
完全被n的第三分量决定。那么在几何画板中如何实现对象空间消隐算法呢:
可以实现,我们去观察坐标系的z轴垂直于电脑显示器平面,这样物体平面的法向量的第三分量nz可以按如下方法求出:假设该平面的三点为A,B,C
我们度量出这三点的坐标,这三个度量的坐标就是在观察坐标系了看物体的坐标,即观察则看物体的坐标,当然我们不需要知道他们的z坐标是多少,
这是因为利用叉积算ABC平面的法向量的第三分量nz并不需要A,B,C的z坐标,只要求出了nz就知道这个面是该显示还不该显示。如果
nz>=0,则显示这个面,否则不显示。记t=sgn(nz)。这样就可以实现面消隐。
如何消隐线:
我们假定线是两个面a,b的交线如果a,b的外法矢量(用右手螺旋判断)分别是n1,n2.此时计算出sgn(n1z),sgn(n2z)。
这条交线要不可见的充要条件是:面a,面b都不可见。等价于(sgn(n1z)+sgn(n2z))/2=-1.
利用这个条件就可以实现线的消隐。
总之利用度量菜单度量点的直角坐标就可以实现线面的消隐。确定了可以执行的算法后,只需打造成工具就可以了。以前我是一眼睛目测观察去找这个sgn值,现在可以直接计算出这个sgn值。算是一个进步。
深度算法在几何画板中如何实现,还没想清楚。难度在深度的定义上,怎样在几何画板中定义深度值。只要定义出深度值就可以实现第二类消隐算法:图形空间消隐算法。
上面的算法对凸多面体成立,对凹多面体需要计算相邻两面的法向量的内积的符合,这同样可以通过外法矢量完成。
下面的例子就是按上面的算法实现的:
也许你会奇怪,怎么可以用电脑屏幕的二维直角坐标去算空间的平面的法向量的坐标呢?这不是逻辑矛盾吗?这不是牵强附会吗?我说不是,请仔细看上楼最后一段,那一段描述了3维是怎么出现的。

实现对象消隐算法的例子.gsp(65.58 KB)对象消隐算方法实现黑白转换
对象消隐算法实现虚线和实线的转换.gsp(82.55 KB)工具dot-solid应用************************************************************************赵老师,我粗略的看了一下,感觉您的平台和刘杳平台思想上很相似,不知感觉对否。
刘杳平台.rar(18.82 KB)您只要看他的那个矩阵变换即可,你们的思想是一样的:三维旋转变换。*************************************************************************

1.我看了,他和我一样是仿射变换。他的矩阵是Matrix3*3矩阵,我是2*2矩阵,他是把变换乘好在一次成型的,我是分步完成的,他那么做的好处是简洁,我这么做的优点是便于修改,这是我和他的差别,他把制作过程打造成工具了。所以看不到计算表达式了。
我与他的共性是都强调变换的重要性。如果单独对软件进行比拼,我的框架不比他的差,可以和他的框架拉平。但是他的工具比我这个多。这是差别。
2.他利用了paul的透视工具,paul看来是很有名气,从没看过他的作品,找时间找来看看,学习学习。如果有的话 麻烦你发个给我学习一下。谢谢

3.他制作的工具更丰富,如线性规划的图
4.最基本的功能是一样的:就是要在平面上表现空间问题。
5,他的工具可以进行计算,我的这个坐标系也办的到。因为仿射变换和直角坐标系直角本来就有现成的计算公式,但作为高中教师,那种费力的工程意义不大,当然如有兴趣玩另当别论。
6.他的制作立方体的工具很容易办到,难的是那个透视*sundial工具。
7.所有的工具中最重要的是从平面打空间这一步。至于工具网友喜欢可以自己做。

建立坐标系还可以用欧拉角。

**************************************************************************

赵老师,Paul作品网上有,您可以搜索一下。对于画板的3D研究原来的quisir论坛已研究的相当深入了,代表人物国外paul,大陆 zxna,infinte,dxdy,刘杳,霍焰,榕坚,台湾陈创仪,宫长寿等等,不知您是否知道。消隐算法是一个瓶颈。另您的分别绕轴独立旋转平台很有 新意。

**************************************************************************

那些大师的作品我真没看过,几何画板我从4.07版开始玩的,一直都没好好的玩过一起喜欢玩dos,在后来玩vbs,flash,这个假期没事就弄这个 玩,相当与别人在打麻将。我想弄这个平台主要是上立体几何课真的需要。因为平时做课件太费事了,弄过平台直接拉上了用就行了。说句老实话,其实上立体几何 课,那用的了这么复杂的平台,上几何课只要有绕z轴旋转就足够了。而绕z轴旋转最简单的做法就是写一个变换。思路清晰,还不用那些乱七八糟的中间点。打造 这种复杂的平台上课是是多余的,只会把学生的研究搞花。认识你我很高兴,可以告诉我你的贵姓吗?
那个分别绕轴旋转平台离完成还差的远,研究那个压缩比要花不少时间,我也不知道能否完成。主要是时间关系。

***************************************************************************

用色彩表现面。工具:3-gon color,4-gon color。。。的应用。

面的表现.gsp(162.43 KB)单色面
面的显示.gsp(163.19 KB)一面两色(双色面)
彩色球工具bool-tool.gsp(148.26 KB) 
迭代画球.gsp(140.15 KB)*****************************************************************

表现光照

正12面体.gsp (139.1 KB) 光强度计算工具
一点感受,玩几何画板,不能不多少看点计算机图形学的理论。
几何画板能不能表现复杂的光照效果?
回答是可以的。高光,距离对光的影响,透明效果,材质都可以表现。其思路在计算机图形学里有明确的说明,可以看首页我给的网此。
光的变化表现可以表现得类似于图形软件的效果。
但是色彩的表现上要差的多。几何画板表现灰度更强劲。表现彩色其实是在灰度上蒙了一层彩色的面。
几何画板不是专业的图形软件,所以从运算量的角度考虑,我们去表现环境光合漫反射就够用了。但并不是说不可以表现其它的光照效应。
另外上述作品所用的工具在首页的3d-7b tool里面的。工具的重点是光强度计算,而光强度的计算是由法向量给出的,而法向量又是有空间坐标给出的了。追踪到底就是空间坐标的定义的关键。
表现光照时,要用到下面的工具:
dial,shade light,point xy-z(位于工具包light中)
表现光照.gsp(162.66 KB)灰度表现
表现彩色光照.gsp(171.33 KB)单一彩色明暗变化
迭代光照圆锥.gsp(92.41 KB) 
光照圆锥2.gsp(137.12 KB) 
红色光照圆锥.gsp(144.63 KB) 
测试.gsp(163.54 KB)测试插值的代价,值不值得付出插值的代价。
圆筒.gsp(118.6 KB) 
色彩圆筒.gsp(123.21 KB) 
圆柱.gsp(111.53 KB)*********************************************************关于光照是拿了本计算机图形学的书照着做的。如果要做动态的光照,我丢掉了镜面反射光,主要是迭代后计算机跑不动,如果做静态的,可以加入镜面反射,这样 更真实,其次,两个面的交汇处即棱所在的位置未进行插值,这主要是考虑了计算量的问题。如果对相邻的两个面的光强度插值,则面与面的过度就要柔和的多。但 是运算量上去后迭代跑的慢。几何画板不是专业的作图软件,我们重在能够实现就可以了。
其实要做光照,关键是要知道3点的空间坐标,但是在平面上的所谓的空间坐标系里,点的坐标是具有歧义性的,所以你只能预先定义点的空间坐标,而不能先画了点,在这求这个点的坐标,这是因为点在空间坐标系里的位置解读有歧义。(这是平面表现空间问题不可回避的)。
定义了点的空间坐标后,就可以计算平面的法向量了。从而可以进一步算出平面的光照强度。
知道了这一点每个人都可以打造自己的光强度工具。
关键就是一点:点的空间坐标要在xy平面预先定义!我是在xy平面内把一个点分成两个要素来定义的,
要素1:定义空间点的xy坐标
要素2:定义空间点的z坐标。
由于3d-7b坐标系的底层就是直角坐标系0-xy,要做到这一点实在是太容易了。***************************************************************************模仿flash文字遮罩动画。或者说它根本就的地道的遮罩动画。发现几何画板可以做文字遮罩,完全是无意中发现的。

文字动画.gsp(121.36 KB)***********************************************************

我崇拜大师,但我不迷信大师

我看了paul的作品,虽然没有细则的研究paul的作品,但是直观的感觉到,paul的光照是直接现成三点上上色,然后利用参数去控制色彩。所以paul的色彩显得有点轻飘飘的感觉。估计paul的着色最多达到2层。如有错望有研究的朋友告诉我一下。我只是直观的感觉。
我是先利用缩放比1,在同一个位置缩放点,然后把一个面做成几层,分层上色,最后用光强度去控制色彩,所以我的色彩要比paul 的色彩厚重。
paul的其它几个着色作品,都很成功,但是这两个不敢赞同,可以说是2个失败的作品。
paul的圆锥.gsp(111.57 KB)色彩有点轻飘飘的
paul的球.gsp(51.59 KB)如果不告诉你这是球,你不会知道这就是个球 
未经允许不得转载:MathCai » 3d坐标系2011-7b (8月20号:增加了多面体皮肤工具,并给出了使用说明)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址