public virtual ParticulaDibujable[] GeneraDibujables(Particula[] particula,float[] color,bool aleat) { ArrayList result=new ArrayList(); for (int i = 0; i < particula.Length; i++) { if(particula[i]==null)return (ParticulaDibujable[])result.ToArray(Type.GetType("ParticulaDibujable")); try { if(tempInfo==null || tempInfo.Nombre!=particula[i].GetType().Name) { tempInfo=pinfo.GetInfoParticulas(particula[i].GetType().Name); } } catch (Exception ex) { throw new Exception("Error al Generar Particulas Dibujables"); } assem=GestorEnsamblados.GetAssemblyByName(tempInfo.EnsambladoDibujable,tempInfo.PathDibujable); if(aleat) { result.Add((ParticulaDibujable)assem.CreateInstance(tempInfo.NombreDibujable, true, BindingFlags.CreateInstance, null, new object[] {particula[i]}, null, null)); } else { result.Add((ParticulaDibujable)assem.CreateInstance(tempInfo.NombreDibujable, true, BindingFlags.CreateInstance, null, new object[] {particula[i], color}, null, null)); } } return (ParticulaDibujable[])result.ToArray(Type.GetType("ParticulaDibujable")); }
// Use this for initialization void Start() { generacionActual = new List <Particula> (); System.Random r = new System.Random(); float posCuboInicialz = (float)((r.Next(-9, 9)) + r.NextDouble()); float posCuboInicialx = (float)((r.Next(-9, 9)) + r.NextDouble()); float rotCuboInicialy = (float)((r.Next(360)) + r.NextDouble()); cubo.transform.position = new Vector3(posCuboInicialx, 0.0f, posCuboInicialz); cubo.transform.Rotate(0, rotCuboInicialy, 0); Particula p = new Particula(); p.cubo = cubo; generacionActual.Add(p); for (int i = 1; i < 1000; i++) { generacionActual.Add(new Particula()); GameObject duplicado = (GameObject)Instantiate(cubo); generacionActual[i].cubo = duplicado; float posInicialz = (float)((r.Next(-9, 9)) + r.NextDouble()); float posInicialx = (float)((r.Next(-9, 9)) + r.NextDouble()); float rotInicialy = (float)((r.Next(360)) + r.NextDouble()); generacionActual[i].cubo.transform.position = new Vector3(posInicialx, 0.0f, posInicialz); generacionActual[i].cubo.transform.Rotate(0, rotInicialy, 0); //generacionActual[i].cubo.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f); } }
public NumerosDibujables(Particula container,int number,double[] col) { owner=container; color=col; numero=number; inicio=new Point3d(0,0,0); //this.Recompile(); }
public ParticulaDibujable(Particula p) { this.particula=p; start=new Point3d(0,0,0); color=new float[4]; GeneradorAleatorioUniforme gau=new GeneradorAleatorioUniforme(); color[0]=(float)gau.Genera(0.1,1); color[1]=(float)gau.Genera(0.1,1); color[2]=(float)gau.Genera(0.1,1); color[3]=(float)gau.Genera(0.5,1); }
// Update is called once per frame void Update() { bool sensing = (Input.GetKeyDown("space")); if (!sensing) { return; } calDistanciaReal(); for (int i = 0; i < this.generacionActual.Count; i++) { Particula p = this.generacionActual[i]; float prob = 1.0f; for (int j = 0; j < 4; j++) { float dist = calcularDistancia(postes[j].transform.position.x, postes[j].transform.position.z, p.cubo.transform.position.x, p.cubo.transform.position.z); prob *= formulaGauss(dist, 0.1f, distanciasReales[j]); } p.peso = prob; } normalizar(); ruleta(); }
public ParticulaDibujable(Particula p,float[] col) { this.particula=p; color=col; start=new Point3d(0,0,0); }
public EsferaDibujable(Particula p,float[] col) : base(p,col) { }
public EsferaDibujable(Particula p) : base(p) { }