对数学这一部分,我越来越喜欢关于flash 和数学的结合。高中的数学,大学的数学都很想很想接触,但是由于高等数学并没学得很好,所以这部分的知识缺少了。今天无意之中,看到球体的参数的方程的时候,让我 兴趣大增了。仔细观看那个参数方程,越发觉他的魅力。
球面的公式:x*x+y*y+z*z=a*a;
他的参数方程式:
(网上转载过来的图)
接下来就需要知道a ,θ, φ 各自的含义,a代表了球体的半径,,参数φ就是地球上的纬度,θ就是经度。这一部知识可以参考
http://baike.baidu.com/view/324915.htm
他的范围就是以下:
0≤θ≤2π,0≤φ≤π
他的范围 一个介于360度,一个最大值是介于180度。从这里我们可以借助两个循环来创造下面的程序。
接下来的程序 采用flash cs4来支持我们这次的程序:我们先创建一个小球的元件,这个小球的元件用于分布其位置 名称为Ball ,他仅仅是一个元件。
按公式来进行对小球分布,要区别于数学里面y 和z 和flash 坐标系当中的y 和z ,这是因为需要flash 是2d屏幕 空间的坐标不一样。这样模拟出来的球比较偏向数学形状,当然按数学原来公式设定也可以 模拟出来角度就不一样,可以尝试一下。
主要是采用二维循环来创建,横坐标和纵坐标这样扫描的方式来创造,对于圆柱体也一样适用的。
转换一下角度同样效果不一样。这些可以尝试一下。上半球面。
下半球面。
总的代码:
小结:
对于flash 能够创建如此的程序 我也感觉到惊讶,结合数学一些理论当中,展示出来的形状也呈现出一种美态。大家可以尝试一下,对球体的一些理论依旧可以深入下去。你会发现不仅仅球体,对于你学过的知识也能够发挥出一个不错的效果。
不过,不得不提到一点,内存的使用上,付出代价。所以这一部分也需要考虑当中去。如果有好的建议和意见可以留下你的宝贵的意见。