返回列表 回复 发帖
如果能录个教程的话。。。。哪就更完美了。。。。
现在没时间。我想有热心的网友会做的。
另外把图片点击,看大图就是教程。
[/url]
-----------------------------------
正12面体文件下载
正12面体数据来源http://baike.baidu.com/view/817571.htm
正20面体数据来源http://baike.baidu.com/view/812066.htm
所用数据请到百度百科查,或维基百科查找。
另可以参考11页的正多面体的上色和作图。
-----------------------------------------------
--

正20面体作图.gsp (146.78 KB)

计算所用数据可以在百度百科或维基百科查

正20面体:黄金矩形,数据来自于维基百科.gsp (198.57 KB)

正12面体作图.zip (15.41 KB)

正20面体的对偶是正12面体。

活动坐标系接长龙

42# myzam







必须在首页下载AC工具包(7B-COORD)
活动坐标系工具active coord 简称AC工具,共分三类。
1。不带参数,有一个转动轴和坐标轴是平行的。
2.带一个角参数。提供坐标面内的旋转。最后一个坐标轴和转动轴重合。
3.带两个角参数。提供坐标面内旋转,最后一个坐标轴和转动轴重合。
大多数情况是1,与2.
如正方体的展开图,用1就可以了。
而正四面体的展开图要用2.带一个参数才可以完成。
微分几何里有一类曲面叫:可展曲面,那里就是利用活动标架来完成的。 微分几何里面的活动标架是:
转动轴(切矢量)为一轴,主法矢量为一轴,付法矢量为一轴

关于多面体的展开:当建立好标架后,总是要用工具plot (xyz)或工具point xy-z在标架里面描点。
采用活动标架的思想,在平面上很容易按边展开多边形。其变换式与空间的写法一样,只需要依葫芦画瓢即可。

活动坐标系接长龙.gsp (108.68 KB)

avctive coord 工具实例说明.gsp (196.64 KB)

主要展示自转与公转

活动坐标系展开正方体.gsp (170.08 KB)

正三棱锥展开图.gsp (142.51 KB)

展开一面.gsp (122.55 KB)

这是为学习工具而做的。

随笔:
   刚开始创建3d-7b坐标系时,遇到的第一个问题是就是如何消隐对象。于是在网上看了看计算机图形学的文章,就选一一种比较容易实现的消隐算法:对象空间消隐算法,另一种消隐算法:图形空间消隐算法是一像素为采样点按深度来显示像素的属性,最初一直困惑深度的定义,所以没有采用后一种算法。现在想明白了图像空间消隐算法时,平台也基本建完。如果要加入图形空间消隐算法的话,又得从底层做起走,实在没这个必要。我想要说的就是本平台的消隐算法是对象空间消隐算法。不是以像素为采样点的图形空间消隐算法。
   其二,本平台的光照只含两类光:环境光和漫反射光。不含镜面反射光。基本够用了。光照跌代时要做一个小小的修正,前面的图片也有说明。
   其三,本平台的活动坐标系工具有两个,一个是转抽平行于空间坐标系的坐标轴的工具7b-coord ,还有一个是可以调节转轴的工具7b-coord 2.其实工具2可以代替1的,放上工具1主要是为了方便起见。
   其四,描点工具大致分两类,一类是用参数描点,一类是把点映射到空间。
   其五,函数工具很少,之所以少是因为可以由描点工具生成,或直接用自带的两个变换ctrl+1,ctrl+2完成。
   其六,平面生成工具,可以生成3,4,5,6点共面的平面。
   其7,本工具不具备透视变换的功能,这主要是中学数学课上把图像显示为透视图像有点不符合习惯,如果以后中学课本的图加入了透视图,那我就考虑在本平台加入透视变换。在说一遍,本平台的底层是两个基石:直角坐标系和变换。所以在本坐标系上添加透视变换不是不可以的事情。关于透视变换的出来在计算机图形学里有明确的说明。
  其八,请注意变换上追加迭代这一典型用法,这在做光照时是很管用的方法。。迭代上是不可以追加变换的!如果你要想迭代产生高光,有两个办法可以办到,1加入镜面反射光,2把背面的光强度设置为前面的光强的0.5,因为本平台的工具把前后面的光强度设置成了一个参数值,这开始是我的一个失误,后来发现把前后面的光强值设成不同与设成相同值的差别很小,如果不迭代你几乎就看不出差别,我看就没多上差别,如果真的差别大,那我早就修正了。
   总之,最关键的工具是光照工具,描点工具,活动坐标系工具。这是平台的骨干工具。
遗留问题:
球方面的问题,切线,切面,光照等,立体几何里平面相交时的消隐。圆锥到圆锥曲线。算一算要花不少时间才可以完成。慢慢的来吧。反正平台的基本骨干都其了,只差应用了。
用了一段时间的3d-7b坐标系后我发现其优点在于:当应用数学时,很贴近课本里面说的数学。基本是把课本的数学直接搬过来用。这比用几何法建立的3d平台要要优越。特别是平台的活动标架工具actvie coord1 ,2简直就是直白的把旋转变换搬来用,犹如傻瓜搬东西一样,直来直去的就得了一个重要工具。

  最后,我研究了paul kunkel的平台,发现我的平台与paul的平台不兼容,不兼容的原因是彼此的缩放比不同步。比如说,他在x轴上缩放0.8时,在3d-7b平台可能这时正好缩放了0.5.这就是不兼容的关键了。
话说工具plot (xyz),当初这个工具出来时,我发现要比paul平台中的类似工具多点击三次,多点击的三次为o',x,y,z点。最初也研究过希望不点这三点,但失败了。今天来看这多出的三点是非常好的优点,因为正是因为多出的这三点做到了选择识别坐标系的作用,正是因为多出的这三击,才可以自如的在活动坐标系里面描点,这三点起到了识别坐标系的作用。这三点充分的体现了辩证法是思想,凡事都有利弊。
plot(xyz)与point xy-z的区别:最终结果一样都是描点,前一个以数得形,第二个从形到形。
关于活动坐标系工具active coord(就叫AC工具)的构思:
1.active coord工具的构思:
    在xy平面旋转t角,变换式为:
   1cost-0sint,1sint+ocost,
    0cost-1sint,0sint+1cost.
使用时,若你要得到绕x轴的旋转标架,就按下面的顺序点击o',x.y,z.先点击转轴是关键。
若要得到绕z轴旋转的标架就这样点击:o',z,x,y。实际结果是:z轴是转轴,并从x轴转动到y,
这样标架是受控的,受控的标架你才可使用。但要注意AC2,AC3的点击规律与AC1不同!
2.rotate theta构思:
  把x轴旋转theta度。按o',x,y,z的次序点击。x到y,这是关键。这是用上面的工具打造的工具。
3.rotate theta-phi构思:
  把x轴旋转theta,实为旋转xy平面,再把yz平面绕新x轴转动phi度。
  点击顺序为:o',x,y,z
注意:不同的点击次序将得到不同的旋转。
4.active coord2构思:
  这个工具其实是rotate theta工具的变种,原来一样。或者说是利用工具point xy-z结合工具rotate theta而得到的一个工具。
5.active coord 3构思:
这是用工具point xy-z结合工具rotate theta-phi而得到的一个工具。
6.在工具包7b-coord中的几个向量夹角工具,是利用代数法打造的向量夹角工具,这几个工具是为了配合
得到工具active coord2,AC3而定制的工具。
   这组工具在使用时要注意点击o',x,y,z的顺序。
AC1是转轴先点,AC2,3点击次序和坐标系的实际旋转次序相同。总之AC1,与AC2,3的点击次序规律不同,如果乱点,你得到的坐标系将不受你的控制,没有规律可言!你只要按这里说的规律做一次就可以发现这个规律。时间很紧,就说个大概吧。
一句话:你在使用标架时,点击o‘,x,y,z注意要组成右手系就看可以了。===============================================
关于画板工具:
   画板工具这种方法在word中叫宏,在dos里面叫批处理,在vbs,vb里面叫子程序。这实际上是编程者在程序里面预设了一些参数,我们使用者是通过参数去启用程序设计者预设好的一系列子程序。
关于几何画板的使用:
    几何画板的每一种技法的产生都会联系到一个数学知识,或是计算机知识。所以学习几何画板的工具前首先要明白使用的数学原理。工具都是按数学原理打造的。离开数学原理单独的去追求技法,注定是失败的。如果你对比人的作品没看懂,其实是你不知道别人使用了那些数学原理。
    几何画板是充满魅力的软件,它给你一个平台,让你去想象。
    说真的,做3d有很多现成的软件可以完成,如inRm3D,快而方便。但是几何画板的魅力就是让你从低层一步一步的去完成3d,而且可以验证你的数学构思对不对,这是其它软件无法替代的地方。
    几何画板可以让你更加深刻的理解数学原理。

渐变线作图(工具shade line使用)



工具point shade(点的明暗工具)算法公布:
1.在直角坐标平面内描出2点a(a1,a2),h(*,y1)
2.点a和h确定了空间的一点b其空间坐标为(a1,a2,y1)(用工具point xy-z就可以把它描出来)
3.在3d-7b坐标系里面,点b在xy平面的投影就是点a,而点b的z坐标就是点h的纵坐标y1.
4.把点a在直角坐标平面内旋转45度:x1=a1*cos45度-a2*sin45度,y1=a1sin45度 +a2cos45度。
这时点a在3d-7b里的默认状态下像点是垂直于计算机屏幕的底部的。
5.把y1乘以滑竿参数depth,得一量y1*depth(用来控制b在xy平面内的投影点a的y坐标的范围)
6.利用工具point xy-z在3d-7b坐标系里把点b描出来
7.用参数y1*depth去控制点b的灰度
8.做成工具。明暗显然由depth和直角坐标系的单位点决定。
另line shade的做法要通过在线段上插值得一动点(插值方法:x(1-t)+yt,t介于0~1之间,就是定比分点。),最后通过构造轨迹来完成。
做动态展示时需要把投影点a相对于3d-7b坐标系让其y坐标冻结起来。这只要增加逆变换就可以了。这在3d-7b中,技术上不会有任何难度的。
重要概念深度depth的定义:是在3d-7b的xy平面内计算的。这相对于是我们生活所在的空间坐标系(观察坐标系)的z坐标。观察坐标系这方面的论述,请看首页的关于消隐的那段文章。
这里参照了计算机图形学里面的深度消隐算法的思想。主要参考了z-buffer算法的思想。当然无法硬搬,只能取其思路。

关于消隐的那些事,计算机图形学里提供了两类,一类是对象空间消隐算法,如我的dot-solid虚实线工具,还有一类就是图形空间消隐算法,如这里的shade line(明暗线工具)工具。这两类消隐算法有本质的差别。简单的说就是,对象空间消隐算法,是站在真实的三位空间看待遮挡的一种消隐算法,而图形空间消隐算法是以计算机屏幕为主体视角去消隐对象的一种方法。它们使用的坐标系不同,前一个是你生活的实实在在的空间里的三维坐标系,后一个是计算机屏幕里的那个虚拟的三维坐标系。还有就是前一个方法是以法向量为关键计算量,去屏蔽被遮挡的部分,它直接处理线面,后一方法是以深度为关键计算量去显示像素属性,它直接处理的是像素(可以理解为是点的最小单位),,从表现消隐的真实度来讲前一方法更加精确,后一方法是一种模糊的近似,从消耗内存的角度看在几何画板里图形空间消隐算法更耗内存。至少在我的这个单核电脑上是这样。所一我更喜欢前一种消隐方法。说句真话,要不是做这个平台计算机图形学的那些概念还真没办法理解如对象空间消隐算法,图形空间消隐算法,不通过动手做一遍这两个概念就只能是背下来,当然也就不可能形成真实的感受,成为自己的知识,充其量就是背得吧了,动手做,太重要了,通过做这个平台到让我无意中知道了有一门学科叫计算机图形学。

  几何画板中表现图形真实感的方法:1.对象空间消隐算法(法向量) 2.图形空间消隐算法(深度) 3.简单光照模型Phong(环境光加漫反射,法向量)

     玩3d,理论是第一位的,有了理论才有方向,我所使用的方法分别对应于计算机图形学的什么方法,
在这里我都作了明确的指出,这么做是方便网友按这里的思路去研究,去探索,以便创造出更多,更好的优秀算法,
这么做就是避免网友少走弯路,这么做就是为了避免网友一味的去模仿paul,从而扼杀了自身的创造力,
许多网友都被paul画的那个圈套住,很是可惜。

    paul有一个阴影滑竿,特想听听知道的说说它的工作原理。那位知道的望讲讲。或者发个用paul的阴影滑竿做的成品给我研究,
特别希望懂paul平台的网友,按照我这里提供的思路在paul平台里作一个阴影滑竿,我想看看实验的结果怎样。我虽不懂paul平台,
但我会看到paul里面有个工具point工具,用我这里提供的方法加上paul的point工具不知道能不能在paul的平台做出阴影滑竿,
我不懂paul平台,说错了别见笑。不过我真的好奇。

2011-9-10 下午16点15分  明暗工具包shade介绍  shade工具包测试完成。该工具包分为两组工具。一组是用来做静态展示的工具,为point shade,line shade,line shade'.这组工具不带角参数。另一组工具是point shade(t1,t3),line shade(t1,t3),line shade(t1,t3)'(带有撇号),这组工具带有角参数,是用于动态展示的。line shade,line shade'这两个工具不必区分它们,在使用时一个失效时用另一个即可。同样line shade(t1,t3),line shade(t1,t3)'也不用区分它们。
工具包中的工具copy parameter是用来复制系统参数t1,和t3的。这两个参数控制了坐标系的绕z轴旋转,和沿z轴的翻转。按下键盘的c就可以看到这两个系统参数了。
工具包中的深度滑块是一个普通的滑块。任意的一个滑块都可以作为深度滑块使用。
最后控制明暗的方法:一般调整深度滑块就够了。当然调整直角坐标系的单位点同样有效。由于这是通过构造轨迹产生的工具,请提前把系统的采样率设置为不超过100.系统默认值是500,按系统默认值运行就算是做一个六面体也会显得有点卡。
该工具包的用法在工具包或者在说明文档里有详细介绍,这里从约。工具包shade请在首页下载

测试方面:我对球,六面体,六棱锥,六棱柱进行了旋转动态测试都可以正常显示,并反复观看了paul的球,猜测paul的算法就是深度消隐算法,
如果是就证实了我的猜测是对的,关于这一点要懂的paul平台的才回答得了,我只是猜测。不管怎么样消隐计算机图像学给出的主要就是两种消隐方法,每一个人都可以按自己的习惯去打造自己的消隐工具,我自己都觉得可笑,一个paul平台的门外汉,居然去论述paul平台,是好笑,但是计算机图形学告诉我:万变不离其中,所以我才大胆的论述paul平台。我突发其想,中国友那么多计算机教师,他们为什么不玩几何画板,因为为他们觉得这是小儿科,想想计算机图像学,几何画板真的对他们来讲就是一个小儿科。本工具于在9月10号下午定稿。
以下作品都需要用的首页的工具包shade。

更新说明:
2011-9-22对深度算法做了更新,算法稍后公布。

渐变线作图.gsp (134.6 KB)

这是一个6面体,静态图

渐变六面体.gsp (130.17 KB)

带3个参数,为了动态展示

动态渐变棱柱.gsp (163.17 KB)

shade工具包应用

渐变三棱锥.gsp (78.1 KB)

shade工具包应用。这是新深度算法。

新shade工具包之z-buffer算法明暗球.gsp (62.85 KB)

球体:2011-9-22 更新了shade的深度算法

paul的球.gsp (84.16 KB)

paul的网格球,对比z-buffer算法作品,paul的滑竿是不是就是z-buffer算法?我认为是。

工具:球转盘bool dial的使用
1.把系统的采用率提前,一定要在作图前提前设置,设置为100,系统默认是500,否则系统跑不动
2.选中bool dial
3.在平面内点击得一转盘,并出现参数x,y,z
4.选中工具plot(x,y,z),并依次点击x,y,z三个参数
(不是3d-7b坐标系的单位点,是转盘参数)。
5,点击o',x,y,z得到一点
6.构造点theta‘和phi对这点的的轨迹
7.在构造点theta‘和phi’对第6步出现的轨迹的函数族(轨迹的轨迹)即可得一半径为r的球。
系统采用率解决卡的问题。小问题犯大错误。

3d-7b shade工具包之shade point(t1,t3)应用

--------明暗网格球制作教程(更正:图片中应为shade point(t1,t3)点的明暗工具)
明暗工具包也更新过。明暗点工具的使用和这里一样。这是老的明暗工具包做的。














成品就是上楼的z-buffer算法作品。
由于3d-7b坐标系是用代数法建立的坐标系统,所以在打造工具时常常要点选数值参数,所以网友要打造自己的工具时请注意这点。这是有别于几何法建立的坐标系统的。
工具bool phong介绍
本工具是在球体上实现phong模型(在计算机的发展历史上,第一个简单光照模型就叫phong)。
用法很简单。
1.提前把系统的点采样率设置为100
2.选中工具在平面上点击得到4个滑竿
3.再依次点击3d-7b系统的o',x,y,z即可得一phong模型球体。
工具位于3d-7b tool中,原名叫bool-tool。现改名为bool phong(球封工具)。

寻常数列被巧用


阅读柳烟发表的关于陈创义的迭代http://www.inrm3d.cn/viewthread. ... page%3D1&page=4,发现了陈创义很巧妙的运用了一个很平常的周期数列。寻常数列被妙用。一个我们老师很熟悉的概念周期数列被我们忽视了。
在此感谢柳烟老师的奉献。
请继续看下楼
返回列表