Exemplo n.º 1
0
        public override bool dragging(PointF p)
        {
            double len = getLength(prevPoint, p);

            int n = (int)(len / PonyThickness);

            if (n > 0)
            {
                double arc = getArc(prevPoint, p);

                PointF lastPoint = prevPoint;
                Bitmap bitmap    = getBitmap();

                for (int i = 1; i <= n; ++i)
                {
                    PointF pt = new PointF(prevPoint.X + (float)Math.Cos(arc) * (PonyThickness * i + random.Next(-8, 8)),
                                           prevPoint.Y + (float)Math.Sin(arc) * (PonyThickness * i + random.Next(-8, 8)));
                    RectangleF rect = new RectangleF(pt, RandomSize);
                    Element    e    = new Element(rect, PonyVilleView.generateElementBitmap(this, rect.Size, editor.CurrentViewParameters));
                    elements.Add(e);
                    PonyVilleView.drawElement(editor.CanvasGraphics, e, editor.CurrentViewParameters);
                    lastPoint = pt;
                }
                bitmap.Dispose();

                prevPoint = lastPoint;
            }

            return(true);
        }
Exemplo n.º 2
0
 private void regenerateBitmaps()
 {
     foreach (Element e in elements)
     {
         RectangleF r = e.r;
         r.Width  = e.r.Width * Thickness / prevThickness;
         r.Height = e.r.Height * Thickness / prevThickness;
         e.r      = r;
         e.b      = PonyVilleView.generateElementBitmap(this, r.Size, editor.CurrentViewParameters);
     }
 }
Exemplo n.º 3
0
        public PonyVille(ScreenshotEditor editor, Color color, int thickness, PointF p, ShapeSettingsPanel panel)
            : base(editor, color, thickness, panel)
        {
            psp = (PonySettingsPanel)panel;
            psp.SettingsChanged += settingsChanged;

            RectangleF rect = new RectangleF(p, RandomSize);

            prevPoint = p;

            prevThickness = thickness;

            Element e = new Element(rect, PonyVilleView.generateElementBitmap(this, rect.Size, editor.CurrentViewParameters));

            elements.Add(e);
            PonyVilleView.drawElement(editor.CanvasGraphics, e, editor.CurrentViewParameters);
        }
Exemplo n.º 4
0
        public PonyVille(ScreenshotEditor editor, XPathNavigator element) : base(editor, element, createSettingsPanel())
        {
            psp = (PonySettingsPanel)settingsPanel;
            psp.SettingsChanged += settingsChanged;
            bool heart = element.GetAttribute("ponytype", "").Equals("heart");

            psp.radioHeart.Checked = heart;
            psp.radioStar.Checked  = !heart;

            prevThickness = Thickness;

            XPathNodeIterator it = element.Clone().Select("ponies/pony");

            while (it.MoveNext())
            {
                float      x    = float.Parse(it.Current.GetAttribute("x", ""));
                float      y    = float.Parse(it.Current.GetAttribute("y", ""));
                int        w    = int.Parse(it.Current.GetAttribute("w", ""));
                int        h    = int.Parse(it.Current.GetAttribute("h", ""));
                RectangleF rect = new RectangleF(x, y, w, h);
                elements.Add(new Element(rect, PonyVilleView.generateElementBitmap(this, rect.Size, editor.CurrentViewParameters)));
            }
        }