Пример #1
0
        private void MoveArms(Point p)
        {
            RękaRobota ręka = alg.DajOdpowiedź(p);

            //Debug.WriteLine("ręka: {0}, {1}, {2}, {3}", ręka.Łokieć.X, ręka.Łokieć.Y, ręka.Dłoń.X, ręka.Dłoń.Y);
            vm.Łokieć = ręka.Łokieć;
            vm.Dłoń   = ręka.Dłoń;
        }
Пример #2
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);
        }
Пример #3
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);
        }
Пример #4
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));
        }