2016-08-02 33 views
2

Ich denke, es ist eine einfache Frage, aber ich kann es nicht herausfinden.C# - Konvertieren PointF zu Punkt

//verifica qual o ponto mais proximo do centroide_circulo 
PointF ponto_mais_proximo = pontos_medios.OrderBy(x => Math.Pow(x.X - centroide_circulo.X, 2) + Math.Pow(x.Y - centroide_circulo.Y, 2)).FirstOrDefault(); 

LineSegment2D linha_circulo_vertice = new LineSegment2D(centroide_circulo, ponto_mais_proximo); 

kann nicht konvertieren von 'System.Drawing.PointF' auf 'System.Drawing.Point'

Meine Frage ist, wie kann ich es konvertieren? ponto_mais_proximo in der ersten Codezeile muss PointF sein.

+1

welcher Typ ist 'pontos_medios'? Jede Änderung, die Sie Ihre Kommentare in Englisch übersetzen könnten, macht es ein bisschen leichter, potenzielle Kommentare zu lesen, die einen Vorteil für die vorliegende Frage haben könnten. – Icepickle

+6

Verwenden Sie Point.Round (PointF): https://msdn.microsoft.com/en- us/library/system.drawing.point.round (v = vs.110) .aspx –

Antwort

6

Der einfachste Weg, dies zu tun ist Point.Round() zu verwenden:

LineSegment2D linha_circulo_vertice = 
    new LineSegment2D(centroide_circulo, Point.Round(ponto_mais_proximo)); 

Konvertiert den angegebenen PointF zu einem Point-Objekt, indem Sie die Punktwerte auf die nächste ganze Zahl gerundet wird.

+0

Nun, Sie lernen etwas Neues jeden Tag, tolle Methode – TheLethalCoder