sz624723

用程序画出一些函数图形,这是一件赏心悦目的事情。

玫瑰函数就是一件完美的艺术模型,简单漂亮,当然还有其他比如:馄饨图案、分形图等等。

今天就介绍玫瑰函数,其他的以后再介绍,先看看玫瑰函数的公式:

x=(a+b)cosθ-acos[(a+b)θ/b];   
y=(a+b)sinθ-asin[(a+b)θ/b];

一个高中生就能看得懂的函数公式,极其简单,X、Y的坐标由3个值来决定,θ在0-360度或者0-720度的之间范围取值,而a,b在一定的区间范围内取值,就可以做出各种各样的图案。

UNITY3D具体的代码是:

for (var i=0; i

 

上面这段代码就实现了玫图案函数的表达式。

然后通过设置函数物体或者摄像机物体的旋转来获得物体的运动。

var rotateSpeed = 10.0;

function Update () {
	transform.Rotate(Vector3.up * Time.deltaTime * rotateSpeed);
}

a、b的值可以用slider等UI控件来解决。

    btn=gameObject.Find("Canvas/Panel/Button").GetComponent(UI.Button);
    btn.onClick.AddListener(onClick);
    
    sca=gameObject.Find("Canvas/Panel/Slidera").GetComponent(UI.Slider);
    sca.onValueChanged.AddListener(SliderA);
    
    scb=gameObject.Find("Canvas/Panel/Sliderb").GetComponent(UI.Slider);
    scb.onValueChanged.AddListener(SliderB);
    
    scc=gameObject.Find("Canvas/Panel/Sliderc").GetComponent(UI.Slider);
    scc.onValueChanged.AddListener(SliderC);

相应的回调函数是:

	function Slidera (temp:float)
	{
	 a=  temp/100;
     LineSetup (true);
	}
	function Sliderb (temp:float)
	{
		b= temp/1000;
        LineSetup (true);
	}

下面有用到C的值,这是因为为了更好显示在摄像机中,因为函数画出来的图像可能有大有小,需要通过一个C值来来调节,C值=摄像机到函数的距离,这样就可以调节C值把函数图案完美的显示在手机屏幕中央了,这样就大功告成了。

	function Sliderc (temp:float)
	{
    var gb= GameObject.Find("Main Camera");
    gb.transform.position=new Vector3( gb.transform.position.x, gb.transform.position.y, temp);
	}

进而使得程序大体完成。

其实还可以加上粒子系统、背景图案、颜色、坐标系统等等来控制获得更好的效果。

毕竟是很短的时间内做出来的,以前这个程序写过,但是代码丢了,于是今晚再次完成下。

以下是效果图:

sz624723_第1张图片

sz624723_第2张图片

http://www.lnluqu.cn/
http://www.025invest.cn/
http://www.wx-detian.cn/
http://www.xintravel.cn/
http://www.fenghuicaifu.cn/
http://www.chinaytbzw.cn/
http://www.sydire.cn/
http://www.jnymkj.cn/
http://www.metrel-china.cn/
http://www.hongheqiche.cn/
http://www.zazhiku.cn/
http://www.yz-hysl.cn/
http://www.gutiangelun.cn/
http://www.lnjjpm.cn/
http://www.touraround.cn/
http://www.sunmoon88.com.cn/
http://www.13142js.cn/
http://www.caixiantang.com.cn/
http://www.poponet.cn/
http://www.zglogistics.cn/
http://www.zgxwzk.cn/
http://www.bjltsc.cn/
http://www.shshunfeng.cn/
http://www.hzwssy.com.cn/
http://www.daoyitang.cn/
http://www.rossicount.cn/
http://www.bjchange.cn/
http://www.item.rossicount.cn/
http://www.item.bjchange.cn/
http://www.news.rossicount.cn/
http://www.news.bjchange.cn/

你可能感兴趣的:(sz624723)