リサージュ図形

曲線・曲面の微分幾何 (共立講座 数学探検 8)
 リサジュー図形作ってみた。



スライダーを動かすとパラメータが変わって図形が変化する。


・スライダーの使い方がぼやっとわかった
 ヒエラルキー→Create→UI→Slider。
Canvasとスライダー、EventSystemが作られる。
値を取得する例:
スライダーを作る、Main CameraにCamera.csを付ける。
Camera.csの中にpublic void hoge(float value)を作る。
スライダーのインスペクタの下、On Value Changed(Single)の+をクリック。
Main Cameraを設定、関数はCameraの中のhogeを選択。
後はスライダーの値が変わればhogeが呼ばれる。


Main.cs

using UnityEngine;
using System.Collections;

public class Main : MonoBehaviour {
    public GameObject go;

    int sizePosition = 3601;
    GameObject li;
    float dpi;
    float dpih;
    LineRenderer lr;

    //スライダー関係
    float v1 = 1;
    float v2 = 1;
    float v3 = 1;
    float v4 = 0.5f;

	// Use this for initialization
	void Start () {
        li = Instantiate(go);
        lr = li.GetComponent<LineRenderer>();

        lr.enabled = true;
        lr.SetVertexCount(sizePosition);

        dpi = Mathf.PI / 180.0f;
        
        poss();
	}
	
	// Update is called once per frame
	void Update () {

        poss();
	}

    void poss()
    {
        for (int i = 0; i < sizePosition; i++)
        {
            float px = 50*v3 * Mathf.Sin(i * v1 * dpi);// *Mathf.Cos(i * v1 * dpi);
            float pz = 50*v3 * Mathf.Cos(i*v2 * dpi);// *Mathf.Sin(i * v2 * dpi);
            float py = 100*v4;// 0.01f * i;
            lr.SetPosition(i, new Vector3(px, py, pz));
        }
    }

    public void getSlider1Value(float v)
    {
        v1 = v;
    }

    public void getSlider2Value(float v)
    {
        v2 = v;
    }

    public void getSlider3Value(float v)
    {
        v3 = v;
    }

    public void getSlider4Value(float v)
    {
        v4 = v;
    }
}


CameraMove.cs

using UnityEngine;
using System.Collections;

public class CameraMove : MonoBehaviour {

    float moveValue = 0.1f;
	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
        this.transform.Rotate(0, moveValue, 0);
	}
}