Autor Beitrag
ascimo
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 16.07.10 02:05 
Hallo,
ich habe vor eine cnc Simulation zu programmieren.

Mein hauptsächliches Problem liegt bei der Grafik, da ich in diesem Bereich noch keine Erfahrung gesammelt habe.
Die Simulation soll ähnlich wie das Programm „ PalTurn+“ sein.

Wie kann ich die Grafik realisieren?
Ich habe mir gedacht, ein PictureBox auf dem die Objekte in .jpg vorliegen.
Siehe dazu meinem Screenshot unten.
Wenn Ihr einen besseren Vorschlag habt, wäre es noch besser.

Das Werkzeug soll aus den Informationen die geliefert werden, bewegt werden.
Den kann ich z.Z. manuell bewegen.(das ist aber erst mal nebensächlich)

Dann habe ich mir gedacht, wenn das Werkzeug an dem Werkstück entlang bewegt wird, der ein .jpg ist,
sollen an den Stellen an dem das Werkzeug mit der Spitze dran war, die Pixelfarbe geändert werden,
das Bild muss dann pixelweise übermalt werden, in meinem Fall mit schwarz.

Ist das überhaupt Sinnvoll?

Wie kann ich sonst die Objekte (werkzeug, werkstück)darstellen.

Wie kann ich dies realisieren? Ein Beispiel wäre sehr hilfreich.

Danke im Voraus.

ScreenShot
Einloggen, um Attachments anzusehen!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 16.07.10 10:05 
Hallo ascimo,

als Zeichengrundlage nimm am besten ein Panel (anstatt einer PictureBox, da du dort erst ein Image als Grundlage nehmen müsstest - oder aber selber eine Bitmap erstellen).

In einem anderen bekannten C#-Forum gibt es zwei gute Artikel zum Thema "Zeichnen" sowie "Gezeichnete Objekte mit der Maus verschieben":
www.mycsharp.de/wbb2...d.php?threadid=21782
www.mycsharp.de/wbb2...d.php?threadid=29081

Lies dich ersteinmal darin ein, danach kannst du ja dann noch mal detailliertere Fragen dazu stellen...

Für diesen Beitrag haben gedankt: ascimo
IsNull
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 97
Erhaltene Danke: 11


VS 2010, C#, AHK
BeitragVerfasst: Fr 16.07.10 10:28 
Sobald etwas komplexere Dinge gezeichnet werden sollen, empfehle ich GDI+ (alials System.Drawing) zu verwenden.

Das Design sieht ungefär so aus:

Du definierst deine zu zeichnenden Objekte mit den Eigenschaften der Position(Koordinaten)/Abmessungen sowie auch mit den Zeichnungseigenschaften (Pen/Brush). Natürlich auch mit Methoden zum sich selber zeichnen.
Diese grundfunktionalitäten abstrahierst du am besten, und implementierst dann die Konkreten Typen dazu.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
//ist nur ein grobes Beispiel
abstract class drawingobject
{
 public abstract Point Location;
 public abstract contains(Point Punkt);
 public abstract Pen DrawingPen;
 public abstract Bitmap Draw();
}

class drawingcircle : drawingobject
{

}

class drawingrect : drawingobject
{

}


Du führst eine Liste aller deiner drawingobject - Objekte im Memory.
Damit erreichst du, dass du alle deine zu zeichnenen Objekte immer unter Kontrolle hast. (die ganze Liste durchgehen um das gesammte Bild zuzeichnen, oder auch Kollisionsabfragen zu handeln)

Was ich damit sagen will, verzichte auf mehrere PictrueBox Elemente oder vergleichbares, und manage das ganze selber im Code. Damit bist du viel flexibler.

Ich kann dir das ganze noch viel konkreter beschreiben, wenn es dir helfen sollte.

Für diesen Beitrag haben gedankt: ascimo
ascimo Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 16.07.10 13:59 
Hallo Th69 und IstNull,

Danke erstmal für die schnellen Antworten und euren Rat.

Ich werde mich mit der ganzen Sache auseinandersetzen.

Ich glaube, dass ich, was Grafik angeht, eine zu komplexe denkweise habe. :roll:

Danke