您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity入门 >
    抛物线的画法
    时间:2015-03-03 09:57 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印



    抛物线公式y=a*x*x+b*x+c;a>0,开口向上;

    a<0,开口向下。b=0,抛物线对称轴为y轴。c=0,抛物线经过原点。

    获取一些抛物线上的点,然后相邻的两点和原点画三角面,这样可以用三角面拼成了“抛物面”了,

    而且还可以通过修改a的值来改变小山峰的陡峭程度。


    下面来看看代码吧!


    新建一个空的GameObject,然后绑定 Parabola.js 脚本就ok了


    直接晒代码 Parabola.js : 


        private var a:int;//a>0,开口向上;a<0,开口向下。  
     
        private var b:int;//b=0,抛物线对称轴为y轴  
     
        private var c:int;//c=0,抛物线经过原点  
     
        private var size:int;  
     
        function Start () {  
     
            a=-1;  
     
            b=0;  
     
            c=0;  
     
            size=22;  
     
            gameObject.AddComponent("MeshFilter");  
     
            gameObject.AddComponent("MeshRenderer");  
     
            var mesh : Mesh = GetComponent(MeshFilter).mesh;  
     
            mesh.Clear();  
     
            var v:Vector3[]=new Vector3[size];  
     
            var v2:Vector2[]=new Vector2[size];  
     
            var index:int []=new int[(size-2)*3];  
     
            for(var i:int=0;i<size;i++){  
     
               if(i==0)  
               {  
                   v[i]=Vector3(0,-1,0);  
     
               }   
               else  
               {        
                   var x:float=(i-size/2)*0.1;  
     
                   v[i].x=x;  
     
                   v[i].y=a*x*x+b*x+c;  
     
                   v[i].z=0;  
               }  
     
               if(i>1){  
     
                   index[3*i-6]=0;  
     
                   index[3*i-5]=i-1;  
     
                   index[3*i-4]=i;  
                   //Unity3D教程手册:www.unitymanual.com  
               }  
     
               print("v["+i+"]="+v[i]);  
            }  
     
            mesh.vertices = v;  
     
            mesh.uv = v2;  
     
            mesh.triangles = index;  
     
            for(var j:int=0;j<index.Length;j++){  
     
                print(j+"=="+index[j]);  
            }  
     
        }


    OK。赶快测试下吧。。。


    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
    标签:Unity之家