Ejemplo n.º 1
0
        protected override void OnDraw(Canvas canvas)
        {
            base.OnDraw(canvas);
            //eerst schoonmaken eerdere acties
            SchoonCanvas cc = new SchoonCanvas(canvas);

            cc.doClear();

            _knopen = new PointF[knopen.Length];
            //hevel gegenereerde coordinaten over naar grafische punten
            for (int i = 0; i <= knopen.Length - 1; i++)
            {
                _knopen[i] = (new PointF(knopen[i].getX(), knopen[i].getY()));
            }


            //bepaal kleur en dikte
            Paint mPaint = new Paint();

            mPaint.Color = Color.Red;
            mPaint.SetStyle(Paint.Style.Stroke);
            mPaint.StrokeWidth = 30;

            //eerste punt, rood
            canvas.DrawPoint(_knopen[0].X, _knopen[0].Y, mPaint);

            //teken overige punten
            mPaint.Color = Color.Yellow;
            mPaint.SetStyle(Paint.Style.Stroke);
            mPaint.StrokeWidth = 20;
            for (var i = 1; i < _knopen.Length; i++)
            {
                canvas.DrawPoint(_knopen[i].X, _knopen[i].Y, mPaint);
            }
        }
        protected override void OnDraw(Canvas canvas)
        {
            base.OnDraw(canvas);

            //eerst schoonmaken eerdere acties
            SchoonCanvas sc = new SchoonCanvas(canvas);

            sc.doClear();

            //als eerste tekenen van de gegenereerde knopen
            _knopen = new PointF[knopen.Length];
            //hevel gegenereeerde coordinaten over naar grafische punten
            for (int i = 0; i <= knopen.Length - 1; i++)
            {
                _knopen[i] = (new PointF(knopen[i].getX(), knopen[i].getY()));
            }

            Paint knoopPaint = new Paint();

            knoopPaint.Color = Color.Red;
            knoopPaint.SetStyle(Paint.Style.Stroke);
            knoopPaint.StrokeWidth = 40;

            //teken eerste punt, rood
            canvas.DrawPoint(_knopen[0].X, _knopen[0].Y, knoopPaint);

            //teken overige punten
            knoopPaint.Color = Color.Yellow;
            knoopPaint.SetStyle(Paint.Style.Stroke);
            knoopPaint.StrokeWidth = 30;
            for (var i = 1; i < _knopen.Length; i++)
            {
                canvas.DrawPoint(_knopen[i].X, _knopen[i].Y, knoopPaint);
            }
            //einde tekenen gegenereerde knopen

            //tekenen berekende route
            //overhevelen coordinaten berekende knopen naar grafische knopen
            _routeknopen = new PointF[routeknopen.Length];
            for (int i = 0; i <= routeknopen.Length - 1; i++)
            {
                _routeknopen[i] = (new PointF(routeknopen[i].getX(), routeknopen[i].getY()));
            }

            //teken route, van startknoop tot tweede knoop, in rood
            var pathEerste = new Path();

            pathEerste.MoveTo(_routeknopen[0].X, _routeknopen[0].Y);
            pathEerste.LineTo(_routeknopen[1].X, _routeknopen[1].Y);

            var lijnPaint = new Paint
            {
                Color = Color.Red
            };

            lijnPaint.SetStyle(Paint.Style.Stroke);
            lijnPaint.StrokeWidth = 5;
            canvas.DrawPath(pathEerste, lijnPaint);

            //teken route, de rest vanaf tweede knoop
            var pathOverig = new Path();

            pathOverig.MoveTo(_routeknopen[1].X, _routeknopen[1].Y);
            for (var i = 2; i < _routeknopen.Length; i++)
            {
                pathOverig.LineTo(_routeknopen[i].X, _routeknopen[i].Y);
            }

            lijnPaint.Color = Color.White;
            lijnPaint.SetStyle(Paint.Style.Stroke);
            canvas.DrawPath(pathOverig, lijnPaint);

            //teken route, van laatste tot start knoop
            var pathLaatste = new Path();

            pathLaatste.MoveTo(_routeknopen[_routeknopen.Length - 1].X, _routeknopen[_routeknopen.Length - 1].Y);
            pathLaatste.LineTo(_routeknopen[0].X, _routeknopen[0].Y);
            canvas.DrawPath(pathLaatste, lijnPaint);
        }