Exemplo n.º 1
0
        public void MouseUpHandler(object sender, MouseEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Released)
            {
                if (rectW != 0 && rectH != 0 && currentPoint.X != 0 && currentPoint.Y != 0)
                {
                    if (rectW < 0)
                    {
                        currentPoint.X = currentPoint.X + rectW;
                        rectW          = -rectW;
                    }

                    if (rectH < 0)
                    {
                        currentPoint.Y = currentPoint.Y + rectH;
                        rectH          = -rectH;
                    }
                    RemoveTempMarker();
                    MainWindow mv = Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();
                    tmpRect = DrawCanvas.Rect(currentPoint.X, currentPoint.Y, (int)rectW, (int)rectH, Brushes.Red, mv.CanvasResult, 0.3);

                    currentPoint = default(Point);
                    rectW        = 0;
                    rectH        = 0;
                }
            }
        }
Exemplo n.º 2
0
        private void AddBranch(FractalLine parent, int Depth)
        {
            if (Depth > SplitDepth || Draw == false)
            {
                return;
            }

            double Angle1 = parent.m_Angle - AngleDelta;
            double Angle2 = parent.m_Angle + AngleDelta;

            FractalLine line  = new FractalLine(parent.m_End, (int)(parent.CalcLength() * ShrinkRate), Angle1, parent);
            FractalLine line2 = new FractalLine(parent.m_End, (int)(parent.CalcLength() * ShrinkRate), Angle2, parent);

            System.Threading.Thread.Sleep(Int32.Parse(txtAnimDelay.Text));

            //UI commands must be invoked on ui thread
            Action a = () => DrawCanvas.Refresh();

            InvokeUI(a);

            /*Take turns on which side goes first,
             * This prevents one side of the tree from completing first*/
            if (Depth % 2 == 0)
            {
                AddBranch(line, Depth + 1);
                AddBranch(line2, Depth + 1);
            }
            else
            {
                AddBranch(line2, Depth + 1);
                AddBranch(line, Depth + 1);
            }
        }
        public void drawScroller(DrawCanvas canvas, Rect drawRegion, Rect contentsSize)
        {
            this.drawRegion   = drawRegion;
            this.contentsSize = contentsSize;

            if (hideBars)
            {
                return;
            }

            if (yScrollEnabled())
            {
                ICanvasRectItem rectangle = new CanvasItemFactory().createCanvasRectItem();
                rectangle.setColor(new Layout.Color(scrollerBrightness, scrollerBrightness, scrollerBrightness));
                rectangle.setSize(scrollerWidth, scrollerHeight);
                canvas.drawToCanvas(rectangle, drawRegion.Right - scrollerWidth - scrollerPadding, drawRegion.Top + scrollerPadding + getYScrollerYPos());
            }

            if (drawRegion.Width < contentsSize.Width)
            {
                ICanvasRectItem rectangle = new CanvasItemFactory().createCanvasRectItem();
                rectangle.setColor(new Layout.Color(scrollerBrightness, scrollerBrightness, scrollerBrightness));
                rectangle.setSize(scrollerHeight, scrollerWidth);
                canvas.drawToCanvas(rectangle, drawRegion.Left + scrollerPadding + getXScrollerXPos(), drawRegion.Bottom - scrollerWidth - scrollerPadding);
            }
        }
Exemplo n.º 4
0
        public override void _Ready()
        {
            var canvas = new DrawCanvas((pen) =>
            {
                // Stop when theta > MaxTheta
                if (theta < MaxTheta)
                {
                    for (int i = 0; i < Iterations; ++i)
                    {
                        float x    = (Width + margin) * Mathf.Cos(theta);
                        float y    = (Width + margin) * Mathf.Sin(theta);
                        var target = new Vector2(x, y);
                        var size   = GetViewportRect().Size;

                        pen.DrawCircle((size / 2) + target, Width / 2, MathUtils.RandColor());

                        theta  += 0.016f;
                        margin += 0.016f * 3;
                    }
                }
            });

            canvas.QueueClearDrawing(Color.Color8(45, 45, 45));
            AddChild(canvas);
        }
Exemplo n.º 5
0
        public override void _Ready()
        {
            generator = new RandomNumberGenerator();
            generator.Randomize();

            var canvas = new DrawCanvas((pen) =>
            {
                var size = GetViewportRect().Size;

                // Follow mouse for fun
                var mousePosition = GetViewport().GetMousePosition();

                float xNum  = generator.Randfn(0, 1); // Gaussian distribution
                float yNum  = generator.Randfn(0, 1); // Gaussian distribution
                var colNumR = (byte)(generator.Randfn(0, 1) * 255);
                var colNumG = (byte)(generator.Randfn(0, 1) * 255);
                var colNumB = (byte)(generator.Randfn(0, 1) * 255);

                float x = (20 * xNum) + mousePosition.x;
                float y = (20 * yNum) + mousePosition.y;

                pen.DrawCircle(new Vector2(x, y), 8, Color.Color8(colNumR, colNumG, colNumB, 64));
            });

            canvas.QueueClearDrawing(Color.Color8(45, 45, 45));
            AddChild(canvas);
        }
Exemplo n.º 6
0
        private void OnSizeChanged(object sender, SizeChangedEventArgs e)
        {
            var width  = e.NewSize.Width;
            var height = e.NewSize.Height;

            _startPoint = new Vector2((float)width / 2f, (float)height / 2f);
            DrawCanvas.Invalidate();
        }
Exemplo n.º 7
0
        /// <summary>
        /// Activates the DrawCanvas event
        /// </summary>
        /// <param name="g">Graphics2D attached to the inactive buffer</param>
        public void OnDrawCanvas(Graphics g)
        {
            int   msec = Uwu.Core.Runtime.Milliseconds;
            float dt   = (msec - LastUpdateMsec) / 1000f;

            DrawCanvas?.Invoke(this, g, dt);
            LastUpdateMsec = msec;
        }
Exemplo n.º 8
0
        private void OnPointerPressed(object sender, PointerRoutedEventArgs e)
        {
            _isDragging = true;
            _startPoint = e.GetCurrentPoint(DrawCanvas).Position.ToVector2();
            _endPoint   = _startPoint;
            _colorIndex = (_colorIndex + 1) % _colors.Length;

            _splineColor = _colors[_colorIndex];
            DrawCanvas.Invalidate();
        }
Exemplo n.º 9
0
        private void OnPointerMoved(object sender, PointerRoutedEventArgs e)
        {
            if (!_isDragging)
            {
                return;
            }

            _drawSpline = true;
            _endPoint   = e.GetCurrentPoint(DrawCanvas).Position.ToVector2();
            DrawCanvas.Invalidate();
        }
Exemplo n.º 10
0
    public MainWindow() : base("Canvas Test")
    {
        canvas = new DrawCanvas();
        Add(canvas);

        /* Calls RedrawCanvas() every 15 ms */
        GLib.Timeout.Add(15, new GLib.TimeoutHandler(RedrawCanvas));

        /* Show all widgets (recursively) */
        ShowAll();
    }
Exemplo n.º 11
0
        private void drawTree(MeasuredLayout item, DrawCanvas canvas)
        {
            foreach (MeasuredLayout child in item.getCalculatedChildren())
            {
                DrawCanvas canvasClone = canvas.Clone();
                canvasClone.setTopLeft(item.getBounds().rect.Left, item.getBounds().rect.Top);

                child.drawable.draw(canvasClone, child.getBounds().rect);
                drawTree(child, canvasClone);
            }
        }
Exemplo n.º 12
0
 public void MouseMoveHandler(object sender, MouseEventArgs e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         System.Windows.Point pos = e.GetPosition((Canvas)sender);
         MainWindow           mv  = Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();
         Line line = DrawCanvas.NewLine(currentPoint.X, currentPoint.Y, pos.X, pos.Y, ForegroundLineMarker, mv.CanvasDraw);
         currentPoint = pos;
         LineMarkers.Add(line);
     }
 }
Exemplo n.º 13
0
            public DrawCanvas Clone()
            {
                DrawCanvas newCanvas = new DrawCanvas(canvas);

                newCanvas.startX          = startX;
                newCanvas.startY          = startY;
                newCanvas.clipingBounds   = clipingBounds;
                newCanvas.clippingEnbaled = clippingEnbaled;

                return(newCanvas);
            }
Exemplo n.º 14
0
        /// <summary>
        /// Save Artboard Tuple
        /// </summary>
        /// <param name="_canvas"></param>
        /// <param name="_fileName"></param>
        /// <returns></returns>
        public (string FileName, FileInfo FileInfo) SaveArtBoard(DrawCanvas _canvas, string _fileName)
        {
            //Create the FileInfo
            var info = new FileInfo(_fileName);

            //Save the InkStrokes
            SaveInkStrokes(_canvas, _fileName);


            return(_fileName, info);
        }
Exemplo n.º 15
0
        public override void _Ready()
        {
            walker = new Walker();
            walker.SetXY(GetViewportRect().Size / 2);
            AddChild(walker);

            var canvas = new DrawCanvas((pen) => pen.DrawRect(walker.GetStepRect(), Colors.LightCyan, true));

            canvas.QueueClearDrawing(Color.Color8(45, 45, 45));
            AddChild(canvas);
        }
Exemplo n.º 16
0
        /// <summary>
        /// Load ArtBoard Tuple
        /// </summary>
        /// <param name="_fileName"></param>
        /// <param name="_canvas"></param>
        /// <returns></returns>
        public (string FileName, FileInfo FileInfo) LoadArtBoard(string _fileName, DrawCanvas _canvas)
        {
            var info = new FileInfo(_fileName);

            _canvas.Strokes.Clear();

            LoadInkStrokes(_canvas, _fileName);

            _canvas.Select(_canvas.Strokes);

            return(_fileName, info);
        }
        public override void draw(DrawCanvas drawCanvas, Rect rect)
        {
            drawCanvas.enableClipping((int)rect.Left, (int)rect.Top, (int)rect.Width, (int)rect.Height);

            ICanvasTextItem textCanvasItem = new CanvasItemFactory().createCanvasTextItem();

            textCanvasItem.setText(text);
            textCanvasItem.setTextColor(textColor);
            textCanvasItem.setTextSize(textSize);
            drawCanvas.drawToCanvas(textCanvasItem, rect.Left, rect.Top);

            drawCanvas.disableClipping();
        }
Exemplo n.º 18
0
 private void Save_Click(object sender, RoutedEventArgs e)
 {
     using (var img = DrawCanvas.Crop())
     {
         if (img != null)
         {
             var p = AddSuffix(state.Filename, "_" + state.Counter);
             img.ImWrite(p);
             state.Counter += 1;
             DrawCanvas.Reset();
         }
     }
 }
Exemplo n.º 19
0
        private void BtnDraw_Click(object sender, EventArgs e)
        {
            Draw = true;
            UpdateParameters();
            //Run in new thread to keep UI responsive
            Task.Run(() =>
            {
                int MiddleCanvasX = DrawCanvas.Size.Width / 2;
                Trunk             = new FractalLine(new Point(MiddleCanvasX, DrawCanvas.Size.Height), StartHeight, 90, null);

                AddBranch(Trunk, 0);
                DrawCanvas.Invalidate();
            });
        }
Exemplo n.º 20
0
        private void drawCursor(DrawCanvas drawCanvas, Rect bounds, double charWidth, double charHeight)
        {
            Point cursorPos = getTextPosForIndex(getCursorIndex());

            cursorPos.X += bounds.Left;      // Add textBox offset
            cursorPos.Y += bounds.Top;
            cursorPos.X += scroller.scrollX; // Add textBox offset
            cursorPos.Y += scroller.scrollY;

            ICanvasRectItem cursorRect = new CanvasItemFactory().createCanvasRectItem();

            cursorRect.setColor(edgeColor);
            cursorRect.setSize(CURSOR_WIDTH, charHeight - 2);
            drawCanvas.drawToCanvas(cursorRect, cursorPos.X + 1, cursorPos.Y + 1);
        }
Exemplo n.º 21
0
        private void CaptureCanvasBtn_Clicked(object sender, RoutedEventArgs e)
        {
            var png = DrawCanvas.ToBitmap().ToPng();

            var saveFileDialog = new SaveFileDialog();

            saveFileDialog.FileName = DateTime.Now.ToString("yyyy_MM_dd_HHmmss");
            saveFileDialog.Filter   = "Png File (*.png) | *.png";
            if (saveFileDialog.ShowDialog() == true)
            {
                using (Stream fileStream = File.Create(saveFileDialog.FileName))
                {
                    png.Save(fileStream);
                }
            }
        }
    // Test for activing the continue Button and move to next scene

    public IEnumerator testClickButtonToNextScene()
    {
//		panel = GameObject.Find ("Panel");
//		buttonContinue = panel.transform.Find ("ButtonContinue").gameObject;
//		buttonContinue.SetActive (true);
//		buttonContinue.GetComponent<Button> ().onClick.Invoke();
        DrawCanvas drawCanvas = GameObject.Find("Cover").GetComponent <DrawCanvas> ();

        drawCanvas.Invoke("NextScene", 0);
        yield return(null);

        Scene currentScene = SceneManager.GetActiveScene();

        Assert.AreEqual("14-cutscene", currentScene.name);

        yield return(null);
    }
Exemplo n.º 23
0
        public override void _Ready()
        {
            generator = new RandomNumberGenerator();
            generator.Randomize();

            var canvas = new DrawCanvas((pen) =>
            {
                var size   = GetViewportRect().Size;
                float num  = generator.Randfn(0, 1); // Gaussian distribution
                float sd   = size.x / 8;
                float mean = size.x / 2;
                float x    = (sd * num) + mean;
                pen.DrawCircle(new Vector2(x, size.y / 2), 8, Colors.LightCyan.WithAlpha(10));
            });

            canvas.QueueClearDrawing(Color.Color8(45, 45, 45));
            AddChild(canvas);
        }
Exemplo n.º 24
0
        void AddMask()
        {
            if (tmpRect.ActualWidth != 0 && tmpRect.ActualHeight != 0)
            {
                RectMarkers.Add(tmpRect);

                MainWindow mv = Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();

                double x = Canvas.GetLeft(tmpRect);
                double y = Canvas.GetTop(tmpRect);
                tmpText = DrawCanvas.Text(x, y, (TextMarkers.Count + 1).ToString(), true, Brushes.Yellow, mv.CanvasResult, false);
                TextMarkers.Add(tmpText);

                tmpRect = new Rectangle();
                tmpText = new TextBlock();

                OnPropertyChanged("MaskCounts");
            }
        }
        private void drawCharecterHighlight(DrawCanvas canvas, char charecter, double x, double y, Color color)
        {
            if (color.a == 0)
            {
                return;
            }

            double selectionWidth = charecterDimensions.Width;

            if (charecter == '\t')
            {
                selectionWidth *= tabSpaces;
            }

            ICanvasRectItem selection = new CanvasItemFactory().createCanvasRectItem();

            selection.setColor(color);
            selection.setSize(selectionWidth, charecterDimensions.Height);
            canvas.drawToCanvas(selection, x, y);
        }
    // Test for drawing on the canvas and update percentage

    public IEnumerator testDrawOnTheCanvas()
    {
        DrawCanvas drawCanvas = GameObject.Find("Cover").GetComponent <DrawCanvas> ();

        Assert.AreNotEqual("Scan Complete!", drawCanvas.textPercent.text);

        for (float i = -2.3f; i < 1.4f; i += 0.4f)
        {
            for (float j = 1.6f; j > -2f; j -= 0.4f)
            {
                drawCanvas.BrushPlace(new Vector2(i, j));
                yield return(new WaitForSecondsRealtime(0.05f));

                drawCanvas.Invoke("UpdatePercent", 0);
            }
        }

        Assert.AreEqual("Scan Complete!", drawCanvas.textPercent.text);         // When game is completed, textPercentage shows "Scan Complete!"

        yield return(null);
    }
Exemplo n.º 27
0
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            Graphics gr = DrawCanvas.CreateGraphics();
            double   x, y, prevX = 0, prevY = 0;
            float    a = 13, b = 7;
            float    offsetX = DrawCanvas.Size.Width / 2;
            float    offsetY = DrawCanvas
                               float angleStep = 0.5f;

            for (float angle = 0; angle < 360; angle += angleStep)
            {
                x = (a + b) * Math.Cos(angle) - a * Math.Cos((a + b) * angle / a);
                y = (a + b) * Math.Sin(angle) - a * Math.Sin((a + b) * angle / a);
                if (angle > 0)
                {
                    gr.DrawLine(new Pen(Color.Black), (float)prevX, (float)prevY, (float)x, (float)y);
                }
                prevX = x;
                prevY = y;
            }
        }
Exemplo n.º 28
0
        public static void Test()
        {
            DrawCanvas canvas = new DrawCanvas();

            while (true)
            {
                canvas.Paint();

                Console.ReadKey();

                Random r = new Random();

                if (r.Next(10) >= 5)
                {
                    canvas.Undo();
                }
                else
                {
                    canvas.Draw(r.Next(10), r.Next(10));
                }
            }
        }
Exemplo n.º 29
0
        /// <summary>
        /// Constructor which sets Event Handlers and design elements
        /// </summary>
        public EditPage()
        {
            this.InitializeComponent();
            DrawCanvas.PointerEntered += (sender, e) =>
            {
                Window.Current.CoreWindow.PointerCursor =
                    new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Cross, 1);
            };
            DrawCanvas.PointerExited += (sender, e) =>
            {
                Window.Current.CoreWindow.PointerCursor =
                    new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Arrow, 1);
            };

            ClassCanvas.Fill = new SolidColorBrush(Colors.Wheat);
            DrawCanvas.Fill  = new SolidColorBrush(Colors.DarkGray);

            this.Loaded += (sender, e) => { ToolState = new CreateClassState(); };

            IsDrawingBoardOpen = true;
            DrawCanvas.AddDrawingBoard();
            _instance = this;
        }
        public override void draw(DrawCanvas drawCanvas, Rect rect)
        {
            ICanvasRectItem edge = new CanvasItemFactory().createCanvasRectItem();

            edge.setColor(edgeColor);
            edge.setSize(rect.Width, rect.Height);
            drawCanvas.drawToCanvas(edge, rect.Left, rect.Top);

            if (rect.Width - 2 * BORDER_SIZE < 0 || rect.Height - 2 * BORDER_SIZE < 0)
            {
                return;
            }

            Rect textRegion = new Rect(new Point(rect.Left + BORDER_SIZE, rect.Top + BORDER_SIZE), new Size(rect.Width - 2 * BORDER_SIZE, rect.Height - 2 * BORDER_SIZE));

            drawCanvas.enableClipping((int)textRegion.Left, (int)textRegion.Top, (int)textRegion.Width, (int)textRegion.Height);

            ICanvasRectItem background = new CanvasItemFactory().createCanvasRectItem();

            background.setColor(backgroundColor);
            background.setSize(textRegion.Width, textRegion.Height);
            drawCanvas.drawToCanvas(background, textRegion.X, textRegion.Y);

            calcualteAllTextPositions();

            previousBounds = new Rect(new Point(textRegion.X, textRegion.Y), new Size(textRegion.Width, textRegion.Height));

            int selectionStartIndex = Math.Min(selectionBeganIndex, cursorIndex);
            int selectionEndIndex   = Math.Max(selectionBeganIndex, cursorIndex);

            for (int i = 0; i < displayText.Length; i++)
            {
                if (displayText[i] == '\r' || displayText[i] == '\n')
                {
                    continue;
                }

                Point letterPos = getTextPosForIndex(i);
                letterPos.X += textRegion.Left;  // Add textBox offset
                letterPos.Y += textRegion.Top;
                letterPos.X += scroller.scrollX; // Add textBox offset
                letterPos.Y += scroller.scrollY;

                if (letterPos.X + charecterDimensions.Width < 0)
                {
                    continue;
                }
                if (letterPos.Y + charecterDimensions.Height < 0)
                {
                    continue;
                }
                if (letterPos.X > textRegion.Width)
                {
                    continue;
                }
                if (letterPos.Y > textRegion.Height + rect.Top)
                {
                    continue;
                }

                if ((i >= selectionStartIndex && i < selectionEndIndex)) // Draw cursor selection
                {
                    drawCharecterHighlight(drawCanvas, displayText[i], letterPos.X, letterPos.Y, edgeColor);
                }
                else
                {
                    drawCharecterHighlight(drawCanvas, displayText[i], letterPos.X, letterPos.Y, contents.getColorForCharAtIndex(i));
                }

                if (displayText[i] != '\t')
                {
                    ICanvasTextItem letterCanvasItem = new CanvasItemFactory().createCanvasTextItem();
                    letterCanvasItem.setText(displayText[i] + "");
                    drawCanvas.drawToCanvas(letterCanvasItem, letterPos.X, letterPos.Y);
                }
            }

            if (singleLine)
            {
                scroller.hideBars = true;
            }

            scroller.drawScroller(drawCanvas, textRegion, new Rect(new Size(maxXPos + charecterDimensions.Width, maxYPos + charecterDimensions.Height)));

            drawCanvas.disableClipping();
        }