public static Func <System.Drawing.PointF, double> FnInContour(VectorOfPoint contour) { var incontour = new Func <System.Drawing.PointF, double>((pt) => { float ceilX = (float)Math.Ceiling((double)pt.X); float ceilY = (float)Math.Ceiling((double)pt.Y); float trunX = (float)Math.Truncate((double)pt.X); float trunY = (float)Math.Truncate((double)pt.Y); List <double> outlist = new List <double>(); System.Drawing.PointF[] ptArr = new System.Drawing.PointF[4]; ptArr[0] = new System.Drawing.PointF(ceilX, ceilY); ptArr[1] = new System.Drawing.PointF(trunX, ceilY); ptArr[2] = new System.Drawing.PointF(ceilX, trunY); ptArr[3] = new System.Drawing.PointF(trunX, trunY); for (int i = 0; i < ptArr.GetLength(0); i++) { outlist.Add(CvInvoke.PointPolygonTest(contour, ptArr[i], false)); } return(outlist.Max()); }); return(incontour); }
internal void savePtfArray(PointF[] pts) { if (pts == null) { writer.Write((int)0); return; } writer.Write((int)1); writer.Write(pts.GetLength(0)); for (int i = 0; i < pts.GetLength(0); ++i) { writer.Write((double)pts[i].X); writer.Write((double)pts[i].Y); } }
public PointF[] GetStartingPoints(PointF[] shots) { PointF[] output = new PointF[shots.GetLength(0)]; for (int i = 0; i < shots.GetLength(0); i++) { output[i] = new PointF(shots[i].X - (N / 2), shots[i].Y - (N / 2)); } return output; }