Advertisement
Guest User

Untitled

a guest
Dec 10th, 2017
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.30 KB | None | 0 0
  1.  
  2. // Use this for initialization
  3. void Start () {
  4. int i_max = 128;
  5. int x_min = -128;
  6. int x_max = 128;
  7. int y_min = 0;
  8. int y_max = 128;
  9. int set_size = 12;
  10.  
  11. CreateTheEnd(i_max, x_min, y_min, x_max, y_max);
  12. Output(i_max, x_min, y_min, x_max, y_max, set_size);
  13. }
  14.  
  15. // Update is called once per frame
  16. void Update () {
  17.  
  18. }
  19.  
  20. void CreateTheEnd(int i_max = 64, int x_min = -64, int y_min = 0, int x_max = 64, int y_max = 64)
  21. {
  22. theend.Clear();
  23.  
  24. for (int i = 0; i < i_max; i++)
  25. {
  26. for (int j = 0; j < i; j++)
  27. {
  28. int a = i - j;
  29. int b = i + j;
  30. int c = a * b;
  31. // bool odd = c % 2 == 1;
  32. int d = (int)Math.Sqrt(c);
  33. int e = c - (d * d);
  34. int f = e - ((2 * d) + 1);
  35. int n = i - d;
  36. int x = d - a;
  37.  
  38. if (!theend.ContainsKey(e)) theend[e] = new Dictionary<int, List<string>>();
  39.  
  40. if (!theend[e].ContainsKey(n))
  41. {
  42. theend[e][n] = new List<string>();
  43. }
  44.  
  45. if (!theend.ContainsKey(f)) theend[f] = new Dictionary<int, List<string>>();
  46.  
  47. if (!theend[f].ContainsKey(n - 1)) theend[f][n - 1] = new List<string>();
  48.  
  49. string text = "{" + string.Format("{0}:{1}:{2}:{3}:{4}:{5}", e, n, d, x, a, b) + "}";
  50.  
  51. theend[e][n].Add(text);
  52.  
  53. text = "{" + string.Format("{0}:{1}:{2}:{3}:{4}:{5}", f, n - 1, d + 1, x + 1, a, b) + "}";
  54.  
  55. theend[f][n - 1].Add(text);
  56. }
  57. }
  58. }
  59.  
  60. void Output(int i_max = 64, int x_min = -64, int y_min = 0, int x_max = 64, int y_max = 64, int set_size = 12)
  61. {
  62. Vector3 last_position = new Vector3 (0.0f, 0.0f, 0.0f);
  63. for (int y = 0; y < y_max; y++)
  64. {
  65. for (int z = 0; z < set_size; z++)
  66. {
  67. for (int x = x_min; x < x_max; x++)
  68. {
  69. if (theend.ContainsKey(x) && theend[x].ContainsKey(y) && theend[x][y].Count > z)
  70. {
  71. String[] values = theend[x][y][z].Split(':');
  72.  
  73. int e = Int32.Parse(values[0].Split('{')[1]);
  74. int n = Int32.Parse(values[1]);
  75. // int d = Int32.Parse(values[2]);
  76. // int xx = Int32.Parse(values[3]);
  77. int a = Int32.Parse(values[4]);
  78. int b = Int32.Parse(values[5].Split('}')[0]);
  79. // int c = a * b;
  80.  
  81. Vector3 position = new Vector3 (e, n, e * n);
  82. GameObject sphere = GameObject.CreatePrimitive (PrimitiveType.Sphere);
  83.  
  84. if (e % 2 == 0) {
  85. last_position = position;
  86. sphere.transform.position = position;
  87. sphere.GetComponent<Renderer> ().material.color = new Color (1.0f, 1.0f, 1.0f);
  88. sphere.GetComponent<MeshRenderer> ().receiveShadows = false;
  89. sphere.GetComponent<MeshRenderer> ().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
  90. } else {
  91. sphere.transform.position = position;
  92. sphere.GetComponent<Renderer> ().material.color = new Color (0.0f, 0.0f, 0.0f);
  93. sphere.GetComponent<MeshRenderer> ().receiveShadows = false;
  94. sphere.GetComponent<MeshRenderer> ().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
  95. }
  96. if (e % (a + b) / 2 == x)
  97. {
  98. sphere.transform.position = position;
  99. sphere.GetComponent<Renderer> ().material.color = new Color(1.0f, 0.0f, 0.0f);
  100. sphere.GetComponent<MeshRenderer> ().receiveShadows = false;
  101. sphere.GetComponent<MeshRenderer> ().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
  102. }
  103. }
  104. }
  105. }
  106. }
  107. }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement