Zeichenprogramm mit "nachmalfunktion"

KYL3R

Mitglied
Hallo, ich möchte eine Art CNC-apparatur bauen, die erstmal mit einem Stift arbeitet, d.h. über ein Programm gesteuert wird und auf ein Blatt papier striche und gebogene linien zeichnet.

Dafür wollte ich ein Programm schreiben, indem man den Entwurf zeichnen kann, habe mir bereits Malprogramme und APIs angesehen, das wird nicht das problem.

Damit nun der Stift die virtuell gezeichnete Bahn abfährt und die zeichnung auf das Blatt papier überträgt muss ich also die positionen der zeichnung verarbeiten.

Ich schwanke noch zwischen einer Technik alles in pixel einzuteilen, die das gerät einzeln "abfährt" oder ob man das mit dem Vektor-grafik prinzip macht. Damit meinte ich, dass ich bei ner linie nur anfangs und endpunkt speichere, und dann mit beliebiger feinheit/geschwindigkeit den kopf von punkt A zu punkt B fahren lasse. Wie ist das nun mit gebogenen Linien? Parrabeln würden ja gehen, aber wenn diese gedreht wären ?

Hat jemand eine Idee, wie ich gezeichnete linien und kurven "abfahren" könnte ? oder wie ich es von vorn herein beim malen besser abspeicher ?
Würde ich ein ganz simples malprogramm nehmen, das nur der Maus folgt, wäre es ja einfach...

Mit freundlichen Grüßen KYL3R
 
S

SlaterB

Gast
eine derartige Frage ist es offensichtlich nicht, aber auch kaum was sonst jemand aus dem Stehgreif beantworten kann,

ich vermute spontan, dass ein technisches Gerät auf einen Blatt Papier mit einer dünnen Bleistiftspitze Richtung einzelne Punkte/ Pixel malen nicht funktioniert, nur gerade oder gebogene Linien malen kann,
inwiefern Bogen unterstützt wird, sollte man an den technischen Merkmalen/ Funktionsumfang ablesen können,
ansonsten muss man eben gerade malen, Kurven soweit wie es die technischen Begrenzungen zulassen in kleine Geraden zerlegen,

aber zu sowas muss es doch Fachliteratur geben
 

KYL3R

Mitglied
Nunja wie genau das Gerät dann ist weis ich noch nicht, ich bau es ja noch. steuern wird das ganze ein microcontroller, ich wollte hier nur schonmal anregungen für das zeichenprogramm holen, das dann die daten an den microcontroller gibt, der an die maschine.

Ich könnte natürlich funktionen nehmen, aber da fehlt der freiraum genau DIE form zu zeichnen, die man möchte, ohne 1000 regressionen und co machen zu müssen.

Gibt es denn eine Methode, die erkennt, ob auf einer bestimmten Koordinate eine Linie liegt oder nicht ? Ich stelle mir das so vor:
Man malt linien, kreise, gebogene linien etc. Dann muss ich die linien von anfang bis ende "lesen", also x und y koordinate auslesen, entlang der linie, schrittgröße am besten variabel.

Hättet ihr eine Idee oder eine Methode parat, die bereits gemalte linien/formen erkennt ?

Wenn ich wie beim drucker zeile für zeile lese und jedesmal n punkt mache ist das nicht das was ich will, ich will die linien von anfang bis ende nachzeichnen, kreise einmal rum nachzeichnen etc.

Als beispiel dachte ich an "line rider" oder andere 2D-spiele (meist flash) die "hitTest" haben. Da wird immer fläche->punkt auf "berührung" geprüft, so kann die spielfigur nicht durch den "boden" fallen. So könnte ich immerhin alle Linien die annähernd waagerecht sind "abfahren" und die positionen auslesen.
Alle Linien die eher senkrecht sind könnte ich mit "um 90° gedrehter gravitation" wenn man es mit "line rider" vergleichen will realisieren.
So richtig begeistern tut mich diese idee aber nicht. Ich hatte gehofft es gibt irgendwas clevereres...
 

Marco13

Top Contributor
Das hängt zuerst von der Repräsentation der Linien ab. Pixelbasiert ist halt ungenau, aber bei einer schwerzen Pixellinie auf weißem Grund wäre das "Abfahren" mit sowas wie
while (nicht fertig) geheZumNächstenSchwarzenPixelWoDuNochNichtWarst();
erledigt, Kreuzungen und Flächen bringen halt Spaß.
Wenn das ganze z.B. als Path2D gespeichert ist, ... Hm... irgendwie habe ich das wohl nicht richtig verstanden...:bahnhof:
 

KYL3R

Mitglied
Übrigens soll es so ähnlich mal aussehen :
YouTube - CNC Laser Plotter - Diode 1W 908nm

Die Formen die ich mal "schneiden" will, müssen vorher gezeichnet werden, das könnte auch mit anderen programmen geschehen, wenn java dann koordinaten aus dem jpg oder was auch immer ausliest. Am einfachsten wäre es halt, (dachte ich) das direkt in java zu malen.

Kannst du mir mehr zu Path2D erzählen ? Hab es gegooglet und es scheint interessant zu sein.
 

Marco13

Top Contributor
"Näheres"... Irgendwas zwischen API-Doku und source code? ;) Path2D speichert beliebige Geometrische Formen, man kann darin Polygone usw. aber eben auch Kreise oder kurven speichern. Zum "Abfahren" der (Bezier-) Kurven würde man dann dazwischen interpolieren, das geht dann mit beliebig vielen Schritten, wenn's schön glatt sein soll.
 

KYL3R

Mitglied
Na das hört sich doch prima an. Ob es wirklich das ist was ich suche, werde ich dann ja sehen, aber auf so einen Anstoß hatte ich gehofft. Danke ;)
 
Ähnliche Java Themen

Ähnliche Java Themen


Oben