Esempio n. 1
0
    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"));
    }
Esempio n. 2
0
    // 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);
 }
Esempio n. 5
0
    // 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);
 }
Esempio n. 7
0
 public EsferaDibujable(Particula p,float[] col)
     : base(p,col)
 {
 }
Esempio n. 8
0
 public EsferaDibujable(Particula p)
     : base(p)
 {
 }