Ich möchte mit C# eine Parabel grafisch ausgeben. Dazu habe ich mal diesen Code bei mir ausgeführt: Graphics g = Graphics.FromHwnd( this.Handle); Point[] points = { new Point(0, 70), new Point(50, -70), new Point(100, 8), new Point(150, 8), new Point(209, -5) }; Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255)); g.DrawCurve(pen, points); Wie kann man eigentlich doe POINTS automatisch erweitern bzw. neue Punkte automatisch hinzufügen? In diesen Beispiel sind diese Fest vorhanden.
Graphics g = Graphics.FromHwnd( this.Handle); Point[] points = { new Point(0, 70), new Point(50, -70), new Point(100, 8), new Point(150, 8), new Point(209, -5) }; Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255)); g.DrawCurve(pen, points); Probiers mal mit: ArrayList Punkte = new ArrayList(); ... Punkte.Add(new Point(0, 70)); Punkte.Add(...) // Hier beliebig viele Punkte hinzufuegen, loeschen, kopieren, sortieren usw. .. Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255)); g.DrawCurve(pen, Punkte.ToArray(Point)) Siehe auch: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcollectionsarraylistclasstoarraytopic2.asp Wie immer ohne Gewaehr...
Ich habe mal in meinem Projekt diese Sache mal ausprobiert. Leider funktioniert da gar nix. Diesen AUsdruck "Punkte.ToArray(Point)" in DrawCurve nimmt der compiler nicht an. Ich stelle mir die ganze Sache so vor: Ich habe ein Array, indem die ganzen x,Y Koordinaten enthalten sind. Anschließend möchte ich dann mit dieser Anweisung "g.DrawCurve(pen, Punkte.ToArray(Point))" die Kurve grafisch ausgeben. Wie mkönnte man so was in C# realisieren?
>Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
g.DrawCurve(pen, Punkte.ToArray(Point))
-> Punkte.ToArray(Point) ???? warum
point ist doch schon ein array.
dann müsste das doch so gehen:
g.DrawCurve(pen, point);
Sebastian
Er will das ganze "dynamisch" machen, also Punkte hinzufuegen koennen. Deshalb die ArrayList, und eine ArrayList ist eben kein Array, kann aber ein solches liefern. Wenn das DrawCurve(...) mit Arrays funktioniert, sollte es doch auch mit ArrayList.ToArray(...) funktionieren. Ob man da jetzt ein Type Objekt erstellen muss oder nicht, das sollte der Fragesteller doch schon selber herausfinden koennen, oder? Man koennte es sogar mit der MSDN probieren, wo das ganze sehr wahrscheinlich stehen wird. Die prinzipielle Funktionsweise ist aber (hoffentlich) ersichtlich. Einfach anstelle des Arrays eine ArrayList verwenden und diese dann bei Bedarf umwandeln. PS: Wenn du den ganzen Thread gelesen haettest, waere dir vielleicht aufgefallen dass deine Loesung schon im Anfangspost steht ;) PPS: Aussagen wie "Diesen AUsdruck "Punkte.ToArray(Point)" in DrawCurve nimmt der compiler nicht an." veranlassen mich dazu den ganzen Thread einfach zu ignorieren, es sei denn der Compiler meldet wirklich "Ich nehme diesen Ausdruck nicht an". PPPS: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemobjectmemberstopic.asp Das sollte jetzt aber wirklich reichen ;)
Hallo, der Thread ist zwar schon ewig her aber der Vollständigkeit halber ist die korrekte Umwandlung: g.DrawCurve(pen, (Point[])Punkte.ToArray(typeof(Point));
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.