public void Demonstrate()
            {
                RectArea ra = new RectArea(12, 15);
                int      v  = ra;

                System.Console.WriteLine(v);
            }
Пример #2
0
        public override void WriteToPdf(PdfDocument doc)
        {
            // to do

            RectArea rect = new RectArea(PosX, PosY, Width, Height, false);
            rect.SetFillColor(0, 0, 0, 0);
            rect.SetStrokeColor(0, 0, 0, 250);
            rect.Stroked = true;
            rect.AddToDocument(doc);
        }
Пример #3
0
    //获取目标的所有顶点,得到触发范围
    public RectArea GetTargetAnchorBorder(RectTransform target)
    {
        Vector2 leftbottom   = GetInScreenPostion(target, ECorner.LeftBottom);
        Vector2 lefttop      = GetInScreenPostion(target, ECorner.LeftTop);
        Vector2 leftmiddle   = GetInScreenPostion(target, ECorner.LeftMiddle);
        Vector2 rightbottom  = GetInScreenPostion(target, ECorner.RightBottom);
        Vector2 righttop     = GetInScreenPostion(target, ECorner.RightTop);
        Vector2 rightmiddle  = GetInScreenPostion(target, ECorner.RightMiddle);
        Vector2 topmiddle    = GetInScreenPostion(target, ECorner.TopMiddle);
        Vector2 bottommiddle = GetInScreenPostion(target, ECorner.BottomMiddle);
        Vector2 center       = GetInScreenPostion(target, ECorner.Center);

        RectArea theAnchorBorder = new RectArea();

        theAnchorBorder.BorderCornerList.Add(leftbottom);
        theAnchorBorder.BorderCornerList.Add(lefttop);
        theAnchorBorder.BorderCornerList.Add(righttop);
        theAnchorBorder.BorderCornerList.Add(rightbottom);
        theAnchorBorder.center = center;
        return(theAnchorBorder);
    }
            public static IForm <ViewFinderOrder> BuildForm()
            {
                OnCompletionAsyncDelegate <ViewFinderOrder> processOrder = async(context, state) =>
                {
                    RectArea         rect   = new RectArea();
                    string[]         layers = { };
                    IMessageActivity reply  = context.MakeMessage();
                    switch (state.Country)
                    {
                    case CountriesOptions.Ukraine: rect = new RectArea(18, 42, 53, 42); break;

                    case CountriesOptions.USA: rect = new RectArea(-146, 9, 50, -57); break;

                    case CountriesOptions.Germany: rect = new RectArea(1, 44, 55, 21); break;
                    }

                    switch (state.Category)
                    {
                    case CategoriesOptions.Atmosphere: layers = new string[] { "AMSR2_Wind_Speed_Day" }; break;

                    case CategoriesOptions.Cryosphere: layers = new string[] { "MODIS_Terra_Sea_Ice", "MODIS_Aqua_Sea_Ice", "MODIS_Terra_Snow_Cover", "MODIS_Aqua_Snow_Cover" }; break;

                    case CategoriesOptions.Ocean: layers = new string[] { "MODIS_Terra_Chlorophyll_A", "MODIS_Aqua_Chlorophyll_A" }; break;
                    }
                    WorldviewQueryMaker querymaker = new WorldviewQueryMaker(layers, new DateTime(2017, 04, 29), rect, projection_type.geographic);
                    reply.Text = string.Format(querymaker.Gen_Query_Link());
                    await context.PostAsync(reply);
                };

                return(new FormBuilder <ViewFinderOrder>()
                       .Message("Hello! I am ViewFinder, the WorldView Searching help bot!")
                       .AddRemainingFields()
                       .Confirm("Your choice: {Country}; {Category}?")
                       .Message("Thanks you for using ViewFinder")
                       .OnCompletion(processOrder)
                       .Build());
            }
Пример #5
0
    public static void Main(string[] args)
    {
        RectArea rectarea = new RectArea();

        rectarea.TakeCommands();
    }
Пример #6
0
        public static List <ZPoint> CalcZPoints(List <RectSegment> Segments, List <Point> Points)
        {
            List <ZPoint>        Result          = new List <ZPoint>();
            List <List <Point> > GroupedPoints   = new List <List <Point> >();
            List <Point>         ClusteredPoints = new List <Point>();
            RectArea             PointArea       = new RectArea();

            foreach (RectSegment rs in Segments)
            {
                Points.Add(rs.p1);
                Points.Add(rs.p2);
            }
            foreach (Point p in Points)
            {
                if (GroupedPoints.Count == 0)
                {
                    GroupedPoints.Add(new List <Point>());
                    GroupedPoints[0].Add(p);
                }
                else
                {
                    bool flag = false;
                    for (int i = 0; i < GroupedPoints.Count; i++)
                    {
                        if (GroupedPoints[i][0].DistanceTo(p) <= PointClusterThreshold)
                        {
                            GroupedPoints[i].Add(p);
                            flag = true;
                            break;
                        }
                    }
                    if (!flag)
                    {
                        GroupedPoints.Add(new List <Point>());
                        GroupedPoints[GroupedPoints.Count - 1].Add(p);
                    }
                }
            }
            foreach (List <Point> pl in GroupedPoints)
            {
                Point AddedPoints = new Point();
                foreach (Point p in pl)
                {
                    AddedPoints.X += p.X;
                    AddedPoints.Y += p.Y;
                }
                AddedPoints.X /= pl.Count;
                AddedPoints.Y /= pl.Count;
                ClusteredPoints.Add(AddedPoints);
                PointArea.AddComparison(AddedPoints);
            }
            // 여기에 Z축을 추가하는 소스를 만들어 넣으세요.
            // Points 안에 들어가있는 점들에 대해서 Z값을 추가하면 됨.
            // Result에 점을 추가하려면 Result.Add(new ZPoint(x,y,z)) 이렇게
            // List<RectSegment> Segments : 스트링아트를 구성하는 선분들의 리스트
            //   - RectSegment.p1, RectSegment.p2: 선분의 각 끝점 (Point)
            // List<Point> Points : 교점들의 리스트 (Point)

            //Find Intersections
            ModelHeight = ((PointArea.p2.X + PointArea.p2.Y - PointArea.p1.X - PointArea.p1.Y) / 2);
            List <RectLine> SegToLine = new List <RectLine>();

            foreach (RectSegment seg in Segments)
            {
                SegToLine.Add(seg.ToLine());
            }
            foreach (Point point in ClusteredPoints)
            {
                List <int> IncludedLines = new List <int>();
                int        Count = 0; double ZSum = 0;
                for (int i = 0; i < SegToLine.Count; i++)
                {
                    if (!Segments[i].ToArea().InArea(point, ClusterThreshold))
                    {
                        continue;
                    }
                    if (SegToLine[i].PointDistance(point.X, point.Y) <= ClusterThreshold)
                    {
                        Count++;
                        double val = CalcZ(Segments[i].p1, Segments[i].p2, point);
                        ZSum += val;
                        IncludedLines.Add(i);
                    }
                }
                Result.Add(new ZPoint(point.X, point.Y, ZSum / Count, Result.Count, IncludedLines));
            }
            return(Result);
        }
 private static Point GetImageLeftTop(RectArea rectArea)
 {
     return(new Point(((int)rectArea.wCx - (int)rectArea.wWidth / 2) / 10, ((int)rectArea.wCy - (int)rectArea.wHeight / 2) / 10));
 }
Пример #8
0
        public override void WriteToPdf(PdfDocument doc)
        {
            //  LABEL
            //  ---------------
            // | Hodnota(Text) |
            //  ---------------

            // biely stvorec obsahujuci hodnotu elementu  (ulozenu v Text)
            // sirka bieleho pola je priamoumerna dlzke textu ktory v nej bude vykresleny
            if (FieldWidth == -1)
                FieldWidth = 15 + (int)customfont.GetWidthPointKerned(Text, FieldFontSize);
            if (FieldHeight == -1)
                FieldHeight = FieldFontSize + 2;
            RectArea r = new RectArea(PosX + 1, PosY +2, FieldWidth+2, FieldHeight);
            r.SetFillColor(0, 0, 0, 0);
            r.AddToDocument(doc);

            if (Label.Text != "")
            {
                // vykreslenie labelu, ktory popisuje hodnoty nizsie
                Label.PosX = this.PosX + 3;
                Label.PosY = this.PosY + FieldHeight + 3;
                Label.WriteToPdf(doc);
            }

            // vpisanie hodnoty elementu do bieleho pola
            Label l = new Label();
            l.Width = FieldWidth-10;
            l.Height = FieldHeight;
            l.Text = this.Text;
            l.PosX = PosX ;
            l.PosY = PosY + 4;
            l.FontSize = FieldFontSize;
            if (FieldWidth > -1)
                l.Width = FieldWidth;
            if (FieldHeight >= -1)
                l.Height = FieldHeight;
            l.WriteToPdf(doc);
        }
Пример #9
0
        public void WriteToPdf(PdfDocument doc)
        {
            foreach (Element e in Elements)
                e.WriteToPdf(doc);

            if (doc.DEBUG)
            {
                RectArea r = new RectArea(PosX, PosY, Width, Height);
                r.Filled = false;
                r.Stroked = true;
                r.SetStrokeColor(0, 0, 0, 250);
                r.AddToDocument(doc);
            }
        }