summaryrefslogtreecommitdiffhomepage
path: root/Assets/Scripts/Graph.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Graph.cs')
-rw-r--r--Assets/Scripts/Graph.cs91
1 files changed, 55 insertions, 36 deletions
diff --git a/Assets/Scripts/Graph.cs b/Assets/Scripts/Graph.cs
index 1486990..760d4c8 100644
--- a/Assets/Scripts/Graph.cs
+++ b/Assets/Scripts/Graph.cs
@@ -2,44 +2,63 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
+
public class Graph : MonoBehaviour
{
- [SerializeField]
- Transform pointPrefab;
-
- [SerializeField, Range(10, 100)]
- int resolution = 10;
-
- Transform[] points;
-
- void Awake() {
- points = new Transform[resolution];
- float step = 8f / points.Length;
- for(int i = 0; i < points.Length; i++) {
- Transform point = Instantiate(pointPrefab);
- points[i] = point;
- Vector3 position = pointPrefab.localPosition;
- point.SetParent(transform, false);
- position.x = (i + 0.5f) * step - 4f;
+ [SerializeField]
+ Transform pointPrefab;
+
+ [SerializeField, Range(10, 200)]
+ int resolution = 100;
+
+ [SerializeField, Range(0.1f, 2f)]
+ float size = 0.3f;
+
+ [SerializeField, Range(0, 2)]
+ int function = 1;
+
+ Transform[] points;
+
+ void Awake() {
+ points = new Transform[resolution];
+ float step = 8f / points.Length;
+ for(int i = 0; i < points.Length; i++) {
+ Transform point = Instantiate(pointPrefab);
+ points[i] = point;
+ Vector3 position = pointPrefab.localPosition;
+ point.SetParent(transform, false);
+ position.x = (i + 0.5f) * step - 4f;
point.localPosition = position;
- }
- }
-
- // Start is called before the first frame update
- void Start()
- {
-
- }
-
- // Update is called once per frame
- void Update()
- {
+ point.localScale *= size;
+ }
+ }
+
+ // Start is called before the first frame update
+ void Start()
+ {
+
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
float time = Time.time;
- for(int i = 0; i < points.Length; i++) {
- Transform point = points[i];
- Vector3 position = point.localPosition;
- position.y = Mathf.Sin(Mathf.PI * (position.x + time));// * position.x * position.x;
- point.localPosition = position;
- }
- }
+ for(int i = 0; i < points.Length; i++) {
+ Transform point = points[i];
+ Vector3 position = point.localPosition;
+ if(function == 0)
+ {
+ position.y = MathFunctionLibrary.Wave(position.x, time);
+ }
+ else if(function == 1)
+ {
+ position.y = MathFunctionLibrary.MultiWave(position.x, time);
+ }
+ else if(function == 2)
+ {
+ position.y = MathFunctionLibrary.Ripple(position.x, time);
+ }
+ point.localPosition = position;
+ }
+ }
}