Moderators Kercyn Δημοσ. 17 Ιανουαρίου 2014 Moderators Δημοσ. 17 Ιανουαρίου 2014 Ναι, ήταν η 1η ιδέα, μετά θα υλοποιήσω αυτό που είπε το παιδί. Όχι ρε συ, δεν είπα αυτό. Αυτό που είπα να ελέγχεις πριν βάλεις κάποιο σημείο μήπως υπάρχει κάποιο άλλο κοντά του και όχι να σβήνεις εκ των υστέρων. Δηλαδή, αν έχεις μια περιοχή 50x50x50, τότε πριν βάλεις κάποιο σημείο να ελέγχεις ότι δεν υπάρχει άλλο σημείο σε απόσταση 4x4x4. Έτσι, θεωρητικά, αν βάλεις 10 σημεία θα είναι κατανεμημένα ομοιόμορφα.
παπι Δημοσ. 18 Ιανουαρίου 2014 Δημοσ. 18 Ιανουαρίου 2014 Και το ονομαζω.... το μεθυσμενο Point. http://jsfiddle.net/GLpq2/
sonyxp Δημοσ. 18 Ιανουαρίου 2014 Μέλος Δημοσ. 18 Ιανουαρίου 2014 Images Στην 2η εικόνα έβαλα να εκτυπώνει την απόσταση μεταξύ σημείων, φυσικά που να χωρέσει όλο αυτό στην οθόνη... μπορώ να πω ότι είναι ομοιόμορφα κατανεμημένα. Αγνοήστε το 0. using UnityEngine; using System.Collections.Generic; using System.Collections; public class CTest: MonoBehaviour { List<Vector3> points = new List<Vector3>(); // 5x5 Grid -> Total 25 Points const int MAX_POINTS = 5; // Print Points and theyr Distance; bool printPoints = false; void Start() { // Dhmiourgei points se mia perioxi 700mx700m (m?) points = GenerateRandomPoints(0, 700); } /// <summary> /// Build a list with random points /// </summary> /// <param name="min">Start Point on 3D World</param> /// <param name="max">End Point on 3D World</param> /// <returns>List with random-builded points</returns> public List<Vector3> GenerateRandomPoints(float min, float max) { List<Vector3> list = new List<Vector3>(); int x, z; int width = (int)Mathf.Abs(max - min) / MAX_POINTS; for (int i = 0; i < MAX_POINTS; i++) { for (int j = 0; j < MAX_POINTS; j++) { x = Random.Range(j * width, (j + 1) * width); z = Random.Range(i * width, (i + 1) * width); list.Add(new Vector3(x, 500, z)); } } return list; } void OnGUI() { for (int i = 0; i < points.Count; i++) { GUI.Label(new Rect(points[i].x, points[i].z, 50, 50), "*"); } if (GUI.Button(new Rect(Screen.width - 200, 50, 150, 40), "Print Points")) { printPoints = !printPoints; } List<string> strPoints = new List<string>(); if (printPoints) { for (int i = 0; i < points.Count - 1; i++) { for (int j = 1; j < points.Count; j++) { strPoints.Add(points[i].ToString() + " -> " + points[j].ToString() + "\t -> " + Vector3.Distance(points[i], points[j])); } }//for for (int i = 0; i < strPoints.Count; i++) { GUI.Label(new Rect(50, i * 20, 500, 50), strPoints[i]); } }//if-printPoints } }
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα