public void Demonstrate() { RectArea ra = new RectArea(12, 15); int v = ra; System.Console.WriteLine(v); }
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); }
//获取目标的所有顶点,得到触发范围 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()); }
public static void Main(string[] args) { RectArea rectarea = new RectArea(); rectarea.TakeCommands(); }
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)); }
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); }
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); } }