Пример #1
0
 public static Kąty DenormalizujKąty(Kąty a)
 {
     // Rzutowanie z przedziału  0.1 .. 0.9
     // na przedział             0   .. 180
     a.Alfa = (a.Alfa - 0.1) / WspółczynnikSkalowaniaKąta;
     a.Beta = (a.Beta - 0.1) / WspółczynnikSkalowaniaKąta;
     return(a);
 }
Пример #2
0
 public static Kąty NormalizujKąty(Kąty a)
 {
     // Rzutowanie z przedziału  0   .. 180
     // na przedział             0.1 .. 0.9
     a.Alfa = a.Alfa * WspółczynnikSkalowaniaKąta + 0.1;
     a.Beta = a.Beta * WspółczynnikSkalowaniaKąta + 0.1;
     return(a);
 }
Пример #3
0
        public PrzykładUczący()
        {
            Kąty = new Kąty(Globals.Random.NextDouble() * 180, Globals.Random.NextDouble() * 180);
            RękaRobota ręka = RękaRobota.ZamieńKątyNaRękęRobota(Kąty);

            Punkt = ręka.Dłoń;
            Punkt = NormalizujPunkt(Punkt);
            Kąty  = NormalizujKąty(Kąty);
        }
Пример #4
0
        public static RękaRobota ZamieńKątyNaRękęRobota(Kąty kąty)
        {
            RękaRobota arm = new RękaRobota();

            kąty.Alfa  = kąty.Alfa * Math.PI / 180;
            kąty.Beta  = kąty.Beta * Math.PI / 180;
            kąty.Alfa -= Math.PI / 2;
            kąty.Beta  = kąty.Alfa + kąty.Beta - Math.PI;

            arm.Łokieć = new Point((int)Math.Round(Bark.X + Math.Cos(kąty.Alfa) * Globals.DługośćRamienia), (int)Math.Round(Bark.Y + Math.Sin(kąty.Alfa) * Globals.DługośćRamienia));
            arm.Dłoń   = new Point((int)Math.Round(arm.Łokieć.X + Math.Cos(kąty.Beta) * Globals.DługośćRamienia), (int)Math.Round(arm.Łokieć.Y + Math.Sin(kąty.Beta) * Globals.DługośćRamienia));

            return(arm);
        }
Пример #5
0
        internal RękaRobota DajOdpowiedź(Point p)
        {
            var znormalizowany = PrzykładUczący.NormalizujPunkt(p);
            //Debug.WriteLine("punkt na wejściu: {0}, {1}", p.X, p.Y);
            int Ostatnia = Warstwy.Count - 1;

            double[] x = new double[] { znormalizowany.X, znormalizowany.Y, 1 };
            PrzebiegajWprzód(x);

            Kąty kąty = new Kąty(Warstwy[Ostatnia][0].Wyjście, Warstwy[Ostatnia][1].Wyjście);

            Debug.WriteLine("wynik: {0}, {1}", kąty.Alfa.ToString(), kąty.Beta.ToString());
            var zdenormalizowane = PrzykładUczący.DenormalizujKąty(kąty);

            //Debug.WriteLine("wynik: {0}, {1}", kąty.Alfa.ToString(), kąty.Beta.ToString());
            return(RękaRobota.ZamieńKątyNaRękęRobota(zdenormalizowane));
        }