SHOW:
|
|
- or go back to the newest paste.
| 1 | using UnityEngine; | |
| 2 | using System.Collections; | |
| 3 | ||
| 4 | public class Graph : MonoBehaviour {
| |
| 5 | ||
| 6 | Vector3 zero = new Vector3(0, 0, 0); | |
| 7 | Vector3 zero2 = new Vector3(0, 0, 0); | |
| 8 | //Line 1 | |
| 9 | string slp; | |
| 10 | - | string ynt; |
| 10 | + | string ynt; |
| 11 | //Line 2 | |
| 12 | - | string slp2; |
| 12 | + | string slp2; |
| 13 | - | string ynt2; |
| 13 | + | string ynt2; |
| 14 | ||
| 15 | string currentMenu = "GUI"; | |
| 16 | - | string currentMenu = "GUI"; |
| 16 | + | public GameObject line1; |
| 17 | - | public GameObject line1; |
| 17 | + | public GameObject line2; |
| 18 | - | public GameObject line2; |
| 18 | + | |
| 19 | void Start() {
| |
| 20 | - | void Start() {
|
| 20 | + | slp = ""; |
| 21 | - | slp = ""; |
| 21 | + | ynt = ""; |
| 22 | - | ynt = ""; |
| 22 | + | slp2 = ""; |
| 23 | ynt2 = ""; | |
| 24 | - | slp2 = ""; |
| 24 | + | } |
| 25 | - | ynt2 = ""; |
| 25 | + | |
| 26 | void OnGUI() {
| |
| 27 | if(currentMenu == "GUI") | |
| 28 | - | void OnGUI() {
|
| 28 | + | GraphUI(); |
| 29 | - | if(currentMenu == "GUI") |
| 29 | + | |
| 30 | - | GraphUI(); |
| 30 | + | |
| 31 | void GraphUI() {
| |
| 32 | ||
| 33 | - | void GraphUI() {
|
| 33 | + | GUI.Box(new Rect(0, 0, 300, Screen.height), "Graphing Calculator"); |
| 34 | //Line 1 | |
| 35 | - | GUI.Box(new Rect(0, 0, 300, Screen.height), "Graphing Calculator"); |
| 35 | + | GUI.Label(new Rect(10, 30, 100, 20), "Y-Intercept 1"); |
| 36 | - | //Line 1 |
| 36 | + | ynt = GUI.TextField(new Rect(10, 50, 280, 60), ynt); |
| 37 | - | GUI.Label(new Rect(10, 30, 100, 20), "Y-Intercept 1"); |
| 37 | + | GUI.Label(new Rect(10, 120, 100, 20), "Slope 1"); |
| 38 | - | ynt = GUI.TextField(new Rect(10, 50, 280, 60), ynt); |
| 38 | + | slp = GUI.TextField(new Rect(10, 140, 280, 60), slp); |
| 39 | - | GUI.Label(new Rect(10, 120, 100, 20), "Slope 1"); |
| 39 | + | |
| 40 | - | slp = GUI.TextField(new Rect(10, 140, 280, 60), slp); |
| 40 | + | |
| 41 | - | //Line 2 |
| 41 | + | GUI.Label(new Rect(10, 240, 100, 20), "Y-Intercept 2"); |
| 42 | ynt2 = GUI.TextField(new Rect(10, 260, 280, 60), ynt2); | |
| 43 | - | GUI.Label(new Rect(10, 240, 100, 20), "Y-Intercept 2"); |
| 43 | + | GUI.Label(new Rect(10, 330, 100, 20), "Slope 2"); |
| 44 | - | ynt2 = GUI.TextField(new Rect(10, 260, 280, 60), ynt2); |
| 44 | + | slp2 = GUI.TextField(new Rect(10, 350, 280, 60), slp2); |
| 45 | - | GUI.Label(new Rect(10, 330, 100, 20), "Slope 2"); |
| 45 | + | |
| 46 | - | slp2 = GUI.TextField(new Rect(10, 350, 280, 60), slp2); |
| 46 | + | if(GUI.Button(new Rect(10, 420, 280, 60), "Calculate and Graph")) {
|
| 47 | if((slp != null && slp != "") && (ynt != null && ynt != "")) {
| |
| 48 | - | if(GUI.Button(new Rect(10, 420, 280, 60), "Calculate and Graph")) {
|
| 48 | + | Calculate(slp, ynt, slp2, ynt2); |
| 49 | - | if((slp != null && slp != "") && (ynt != null && ynt != "")) {
|
| 49 | + | } else {
|
| 50 | - | Calculate(slp, ynt, slp2, ynt2); |
| 50 | + | Debug.LogWarning("Parameters Not Complete");
|
| 51 | - | } else {
|
| 51 | + | } |
| 52 | - | Debug.LogWarning("Parameters Not Complete");
|
| 52 | + | |
| 53 | - | } |
| 53 | + | |
| 54 | - | } |
| 54 | + | if(GUI.Button(new Rect(10, Screen.height - 70, 280, 60), "Reset Graph")) {
|
| 55 | slp = ""; | |
| 56 | - | if(GUI.Button(new Rect(10, Screen.height - 70, 280, 60), "Reset Graph")) {
|
| 56 | + | ynt = ""; |
| 57 | - | slp = ""; |
| 57 | + | slp2 = ""; |
| 58 | - | ynt = ""; |
| 58 | + | ynt2 = ""; |
| 59 | - | slp2 = ""; |
| 59 | + | |
| 60 | - | ynt2 = ""; |
| 60 | + | GameObject[] points = GameObject.FindGameObjectsWithTag("GraphPoint");
|
| 61 | foreach (GameObject target in points) {
| |
| 62 | - | GameObject[] points = GameObject.FindGameObjectsWithTag("GraphPoint");
|
| 62 | + | GameObject.Destroy(target); |
| 63 | - | foreach (GameObject target in points) {
|
| 63 | + | } |
| 64 | - | GameObject.Destroy(target); |
| 64 | + | |
| 65 | - | } |
| 65 | + | } |
| 66 | - | } |
| 66 | + | |
| 67 | //Line 1 | |
| 68 | void Calculate(string sl, string yt, string sl2, string yt2) {
| |
| 69 | int nextNumber = 1; | |
| 70 | - | void Calculate(string sl, string yt, string sl2, string yt2) {
|
| 70 | + | StartCoroutine(Calculate2(sl2, yt2)); |
| 71 | - | int nextNumber = 1; |
| 71 | + | float slope = float.Parse(sl); |
| 72 | - | StartCoroutine(Calculate2(sl2, yt2)); |
| 72 | + | float yint = float.Parse(yt); |
| 73 | - | float slope = float.Parse(sl); |
| 73 | + | float y = yint; |
| 74 | - | float yint = float.Parse(yt); |
| 74 | + | float x = slope; |
| 75 | - | float y = yint; |
| 75 | + | zero.y = y; |
| 76 | - | float x = slope; |
| 76 | + | zero.x = 0; |
| 77 | - | zero.y = y; |
| 77 | + | |
| 78 | - | zero.x = 0; |
| 78 | + | |
| 79 | Object redPoint = Instantiate(line1, zero, Quaternion.identity); | |
| 80 | redPoint.name = "Red" + nextNumber; | |
| 81 | nextNumber++; | |
| 82 | zero.y = zero.y + slope; | |
| 83 | zero.x = zero.x += 1; | |
| 84 | } | |
| 85 | ||
| 86 | zero.y = 0; | |
| 87 | zero.x = 0; | |
| 88 | nextNumber = 1; | |
| 89 | //CalculateAngle(GameObject.Find("Red1"), GameObject.Find("Red2"));
| |
| 90 | CalculateAngle(GameObject.Find("Red1"), GameObject.Find("Red2"));
| |
| 91 | } | |
| 92 | ||
| 93 | //Line 2 | |
| 94 | IEnumerator Calculate2(string sl, string yt) {
| |
| 95 | yield return new WaitForSeconds(0.0f); | |
| 96 | - | IEnumerator Calculate2(string sl, string yt) {
|
| 96 | + | int nextNumber = 1; |
| 97 | - | yield return new WaitForSeconds(0.0f); |
| 97 | + | float slope = float.Parse(sl); |
| 98 | - | int nextNumber = 1; |
| 98 | + | float yint = float.Parse(yt); |
| 99 | - | float slope = float.Parse(sl); |
| 99 | + | float y = yint; |
| 100 | - | float yint = float.Parse(yt); |
| 100 | + | float x = slope; |
| 101 | - | float y = yint; |
| 101 | + | zero2.y = y; |
| 102 | - | float x = slope; |
| 102 | + | zero2.x = 0; |
| 103 | - | zero2.y = y; |
| 103 | + | |
| 104 | - | zero2.x = 0; |
| 104 | + | |
| 105 | Object yellowPoint = Instantiate(line2, zero2, Quaternion.identity); | |
| 106 | yellowPoint.name = "Yellow" + nextNumber; | |
| 107 | nextNumber++; | |
| 108 | zero2.y = zero2.y + slope; | |
| 109 | zero2.x = zero2.x += 1; | |
| 110 | } | |
| 111 | zero2.y = 0; | |
| 112 | zero2.x = 0; | |
| 113 | nextNumber = 1; | |
| 114 | } | |
| 115 | ||
| 116 | void CalculateAngle(GameObject x, GameObject y) {
| |
| 117 | float xDis = y.transform.position.x - x.transform.position.x; | |
| 118 | - | void CalculateAngle(GameObject x, GameObject y) {
|
| 118 | + | float yDis = y.transform.position.y - x.transform.position.y; |
| 119 | - | float xDis = y.transform.position.x - x.transform.position.x; |
| 119 | + | |
| 120 | - | float yDis = y.transform.position.y - x.transform.position.y; |
| 120 | + | Debug.Log(xDis + " : " + yDis); |
| 121 | } | |
| 122 | - | Debug.Log(xDis + " : " + yDis); |
| 122 | + |