public fPoint(fPoint a) { this.x = a.x; this.y = a.y; this.fixate = a.fixate; this.index = a.index; }
public int getDistance(fPoint a) { int fX = Math.Abs((this.x - a.x)); int fY = Math.Abs((this.y - a.y)); return((int)Math.Sqrt((fX * fX) + (fY * fY))); }
public fPoint MEDIAN(fPoint a, fPoint b) { int fX = (a.x + b.x) / 2; int fY = (a.y + b.y) / 2; return(new fPoint(fX, fY, false)); }
public void Closest() { int minGlobalDistance = 1000000; for (int j = 0; j < field.Count; j++) { if (field[j].fixate == false) { fPoint minPoint = new fPoint(10000, 10000, false); int minDistance = 1000000; for (int i = 0; i < field.Count; i++) { if (field[j].getDistance(field[i]) < field[j].getDistance(minPoint) && field[j].getDistance(field[i]) > 0 && field[j].getDistance(minPoint) > 0 && field[i].fixate == false) { minPoint = new fPoint(field[i]); minDistance = field[j].getDistance(field[i]); } } if (minGlobalDistance > minDistance) { minGlobalDistance = minDistance; ClosestPair[0] = field[j]; ClosestPair[1] = minPoint; } } } }
public void AddMedian() { int index = ClosestPair[0].drawingIndex; fPoint median = MEDIAN(ClosestPair[0], ClosestPair[1]); median.drawingIndex = index; ADD(median); }
private void MouseDownEvent(object sender, MouseEventArgs e) { GlobalDrawingIndex = 0; if (hasDrawn == false) { drawing = true; x = e.X; y = e.Y; fPoint nov = new fPoint(x, y, true); //Fixate first point ! nov.drawingIndex = GlobalDrawingIndex; GlobalDrawingIndex++; points.ADD(nov); nov.output(); } }
public int findPoint(List <fPoint> points) { int minIndex = 0; fPoint minPoint = new fPoint(10000, 10000, false); for (int i = 0; i < points.Count; i++) { if (this.a.getDistance(points[i]) < this.a.getDistance(minPoint) && a.getDistance(points[i]) > 0 && a.getDistance(minPoint) > 0) { minPoint = new fPoint(points[i]); minIndex = i; } } this.b = new fPoint(minPoint); return(minIndex); }
private void MouseMoveEvent(object sender, MouseEventArgs e) { if (hasDrawn == false) { if (drawing && x != -1 && y != -1) { g.DrawLine(pen, new Point(x, y), e.Location); x = e.X; y = e.Y; coorX.Text = x.ToString(); coorY.Text = y.ToString(); fPoint nov = new fPoint(x, y, false); //Do not fixate points inbetween nov.drawingIndex = GlobalDrawingIndex; GlobalDrawingIndex++; points.ADD(nov); } } }
private void MouseUpEvent(object sender, MouseEventArgs e) { if (guessing == true) { lbNetwork.Text = "GUESSING..."; } fPoint nov = new fPoint(x, y, true); // Fixate last point ! nov.drawingIndex = GlobalDrawingIndex; GlobalDrawingIndex++; points.ADD(nov); nov.output(); hasDrawn = true; drawing = false; x = -1; y = -1; int N = Int32.Parse(vektBox.Text); int N2 = N / 2; if (points.COUNT() < N || points.COUNT() == N) { Console.WriteLine("There is not enough points, number of points = " + points.COUNT() + ", given N = " + N); CLEAR(); } else { Console.WriteLine("Number of points = " + points.COUNT() + ", given N = " + N); if (N % 2 != 0) // if N is not even, make it even, by adding 1 to it { N++; } if (training == true) { N = Int32.Parse(vektBox.Text); int symbol = Int32.Parse(symBox.Text); VECTORIZE(N2); train.makeExample(vectors, symbol); CLEAR(); } if (guessing == true) { string guess = "..."; train.GuessingMode(); N = train.N; int symbol = Int32.Parse(symBox.Text); VECTORIZE(N2); train.makeGuessingExample(vectors, symbol); List <double> inputVals = new List <double>(), targetVals = new List <double>(), resultVals = new List <double>(); train.getTopology(); if (train.getNextInputs(inputVals) != train.topology[0]) { Console.WriteLine("TOPOLOGY IS NOT EQUAL !!!!"); } else { myNet.feedFoward(inputVals); myNet.getResults(resultVals); Console.WriteLine("Pass: "******"Inputs: ", inputVals); showValues("Outputs: ", resultVals); Console.WriteLine(); } Console.WriteLine("Done !"); guess = getGuess(resultVals); lbNetwork.Text = "MY GUESS IS: " + guess; train.GuessingModeOff(); } } }
public Vector(fPoint a) { this.a = new fPoint(a); }
public Vector(fPoint a, fPoint b) { this.a = new fPoint(a); this.b = new fPoint(b); }
public void ADD(fPoint point) { field.Add(point); }