Array aus Points grafisch darstellen

der_Brain

Grünschnabel
so ich hab es nun endlich allein geschafft die punkte in meiner log-Datei:

LOG_BEGIN: 19.04.2004, 19:58:16

MOUSE;19:58:16.614;{X=570,Y=587};MOUSEMOVE
MOUSE;19:58:16.714;{X=570,Y=587};MOUSEMOVE
MOUSE;19:58:16.714;{X=585,Y=588};MOUSEMOVE
MOUSE;19:58:16.814;{X=570,Y=587};MOUSEMOVE
...
MOUSE;19:58:17.415;{X=696,Y=526};MOUSEMOVE
MOUSE;19:58:17.415;{X=696,Y=526};MOUSEMOVE

LOG_END: 19.04.2004, 19:58:17

LOG_TIMESPAN: 00:00:00.9613824

auszulesen und wieder in ein Point zu konvertieren.
und zwar hab ich einfach die zeilen zerschnitten bis ich die zahlen hatte und dann konvertiert:

Code:
// auslesen der CursorPositions
if (line.EndsWith("MOUSEMOVE"))
{
// zerschneiden des Terms in der Mitte der CursorPositionangabe
// ({...,...})
string[] strLine= line.ToString().Split (new Char[] {','});
			
// alles was bis zu dem Komma steht soll am { zerschnitten werden
// daraus ergibt sich "X=..."
string[] strX= strLine[0].ToString().Split (new Char[] {'{'});
			
// alles was hinter dem Komma steht soll am } zerschnitten werden
// daraus ergibt sich "Y=..."
string[] strY= strLine[1].ToString().Split (new Char[] {'}'});
			
// nun noch an dem Gleichheitszeichen zerschneiden, um an den Wert
// für X zu kommen
string[] strNumber= strX[1].ToString().Split (new Char[] {'='});
			
// nun noch an dem Gleichheitszeichen zerschneiden, um an den Wert
// für Y zu kommen
string[] strNumber1= strY[0].ToString().Split (new Char[] {'='});
			
// X und Y zu Integer-Werten konvertieren
int x= (int)Double.Parse(strNumber[1]);
int y= (int)Double.Parse(strNumber1[1]);
			
// die x,y- Werte in einen Point konvertieren und in einer
// ArrayList speichern
lstPts = new ArrayList();
lstPts.Add(new Point(x, y));

Point[] apt= (Point[]) lstPts.ToArray(typeof(Point));
lstApts.Add(apt);
}        
	
Graphics grafik= CreateGraphics();
for (int i= 0; i< arrlstPts.Count; i++)
{
	grafik.DrawLine(new Pen(ForeColor),
	(Point) lstPts[arrlstPts.Count - (2* i)],
	(Point) arrlstPts[arrlstPts.Count - (i)]);
	grafik.DrawLines(new Pen(ForeColor), (Point[]) lstPts[i]);
	grafik.Dispose();
}
}

das geht bestimmt auch alles einfacher mit dem auslesen, aber so klappt es und es ist durch meine idee entstanden

so nun zu meinem prob:
und zwar will ich dann die points in eine array speichern und dann diese points in einer grafik sichtbar machen
diesen codeteil hab ich aus einem buch, weiß aber nich warum der hier nich so

also kann mir jemand sagen wie ich die punkte zu einer linie verbinde
und in einer grafik darstelle

mfg
der_Brain
 
Hallo.

Wenn du alle Punkte in einem Array hast, kannst du diese all mit Hilfe der DrawPolygon Methode Zeichnen, allerdings wir dabei der Start und Endpunkt auch miteinander verbunden soweit ich weiss.

Eine andere Art wie du dies machen könntest wäre wohl die verwendung des GraphicPaths. Dieser befindet sich im Namespace System.Drawing.Drawing2D, und mit ihm lassen sich einige Sachen mehr machen, als mit den Mitteln in System.Drawing.

GraphicsPath

Mfg,
Alex
 

Neue Beiträge

Zurück