123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- using PaintDotNet.Annotation.Enum;
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace PaintDotNet.Annotation.PhysicalPhaseAction
- {
- /// <summary>
- /// 物相提取->定义物体->轮廓->椭圆
- /// </summary>
- public class DrawPPhaseOval : DrawObject
- {
- private Pen pen = new Pen(Color.Blue, 2);
- public DrawPPhaseOval(ISurfaceBox surfaceBox, int x, int y, int width, int height) : base()
- {
- this.objectType = DrawClass.PhaseExtraction;
- this.drawToolType = DrawToolType.PPhaseOval;
- this.rectangle.X = x;
- this.rectangle.Y = y;
- this.rectangle.Width = width;
- this.rectangle.Height = height;
- }
- public override void Draw(Graphics g)
- {
- g.DrawEllipse(pen, GetNormalizedRectangle(Rectangle));
- }
- /// <summary>
- /// Move handle to new pointscroll (resizing)
- /// </summary>
- /// <param name="pointscroll"></param>
- /// <param name="handleNumber"></param>
- public override void MoveHandleTo(Point point, int handleNumber)
- {
- float left = Rectangle.Left;
- float top = Rectangle.Top;
- float right = Rectangle.Right;
- float bottom = Rectangle.Bottom;
- switch (handleNumber)
- {
- case 1:
- left = point.X;
- top = point.Y;
- break;
- case 2:
- top = point.Y;
- break;
- case 3:
- right = point.X;
- top = point.Y;
- break;
- case 4:
- right = point.X;
- break;
- case 5:
- right = point.X;
- bottom = point.Y;
- break;
- case 6:
- bottom = point.Y;
- break;
- case 7:
- left = point.X;
- bottom = point.Y;
- break;
- case 8:
- left = point.X;
- break;
- }
- SetRectangle(left, top, right - left, bottom - top);
- }
- protected void SetRectangle(float x, float y, float width, float height)
- {
- this.rectangle.X = x;
- this.rectangle.Y = y;
- this.rectangle.Width = width;
- this.rectangle.Height = height;
- }
- public override DrawObject Clone()
- {
- return null;
- }
- public override RectangleF GetBoundingBox()
- {
- return rectangle;
- }
- }
- }
|