PC Programm schreiben

Der Rest...
Antworten
Benutzeravatar
ebichu
Erfahrener Benutzer
Beiträge: 276
Registriert: 10.09.2006, 20:53
Wohnort: ändlich widr z basel

PC Programm schreiben

Beitrag von ebichu »

Nabend zusammen.
Habe eine kurze Frage an die Informatik und Programmiercracks hier drin:
Ich benötige ein Programm, welches (mal so ganz Grundlegend) wie folgt
funktionieren soll:

Es soll graphisch ein quadratisches Gitter dargestellt werden, etwa so:
Bild

das Gitter sollte sich in alle Dimensionen drehen lassen. Nun soll jeder der
Gitterpunkte (auf der Abbildung wären es 3x3x3=27) mit der Maus entweder
an oder ausgeschalten werden können. Wenn das gewünschte Muster aus
"an-" und "aus-Positionen" erreicht ist, sollte ein Klick auf einen Butten
dieses in eine Datei schreiben (mit 1 und 0 in entsprechender Anordnung).

Ich selbst habe von Programmieren ein wenig (aber nicht zuviel) ahnung,
hab schon ein paar Sachen in C++ gemacht. Mit graphischen oberflächen
hatte ich noch gar nichts zu tun.

Deshalb meine Frage:
Mit welcher Programmiersprache wäre obiges Projekt am einfachsten zu
realisieren? Kann ich zB Java verwenden? Wie einfach ist die implementation
einer Graphischen oberfläche?
Ist es vorstellbar, dass man mit Hilfe eines Buches sich selbst soweit bringen
kann um so ein programm von A bis Z zum laufen zu bringen? Oder denkt ihr
eher, dass dies für einen Amateurprogrammierer eher schwierig werden
könnte?

besten Dank für tipps.

ebi
[CENTER]Mir sin d Muttenzerkurve
Us em Riich vo dr Tradition
Userere Wält vo de Emotione
Vonere andere, vonere andere Dimension[/CENTER]


[CENTER]MK|BS[/CENTER]

Benutzeravatar
andreas
Erfahrener Benutzer
Beiträge: 6754
Registriert: 27.03.2005, 19:22
Wohnort: Basel
Kontaktdaten:

Beitrag von andreas »

Für dreidimensionale Körper gäbe es auch Mathematikprogramme, bei denen
man dann nichts mehr dafür programmieren müsste (ausser die Funktion
des Körpers anzugeben). Dafür ist z.B. Maple ganz cool.

Wenn du es selbst programmieren willst, gibt es wohl genauso unendlich viele
Möglichkeiten. Mach es doch in der Programmiersprache, wo du dich am
Wohlsten fühlst!
Copyright © andreas 2005–heute. Alle Rechte vorbehalten.

Rotblau, die App von Fans für Fans! Rotblau gibt es auf iOS, Android oder im Web.

Benutzeravatar
ebichu
Erfahrener Benutzer
Beiträge: 276
Registriert: 10.09.2006, 20:53
Wohnort: ändlich widr z basel

Beitrag von ebichu »

das viele Wege nach Jerusalem (oder wie war das noch?) führen, ist mir schon
klar. Am besten kenn ich mich aus mit C++, wobei ich jetzt nicht sagen würde,
dass ich in dieser Programmiersprache zu Hause bin... Ich hab sie schlicht schon
ein paar mal benutzt, aber für keineswegs anspruchsvolle dinge.

Also wenn es jetzt zB so wäre, dass man mit Java graphische Obeflächen viel
einfacher darstellen kann, würd ich mich vllt. mal mit dieser Sprache auseinandersetzen.

Zum vorschlag mit Maple:
Hab dieses Programm auf dem PC, allerdings noch nie in einem solchen
zusammenhang benutzt. Könntest du näheres dazu erklären?

messi
ebi
[CENTER]Mir sin d Muttenzerkurve
Us em Riich vo dr Tradition
Userere Wält vo de Emotione
Vonere andere, vonere andere Dimension[/CENTER]


[CENTER]MK|BS[/CENTER]

Benutzeravatar
Kawa
Erfahrener Benutzer
Beiträge: 6069
Registriert: 22.12.2004, 16:36

Beitrag von Kawa »

ebichu hat geschrieben:das viele Wege nach Jerusalem (oder wie war das noch?) führen, ist mir schon
klar.
Alle Wege führen nach Rom ;)
ebichu hat geschrieben:Also wenn es jetzt zB so wäre, dass man mit Java graphische Obeflächen viel einfacher darstellen kann, würd ich mich vllt. mal mit dieser Sprache auseinandersetzen.
In ein paar Stunden lernst aber nicht Java, geht massiv länger ...

Benutzeravatar
ebichu
Erfahrener Benutzer
Beiträge: 276
Registriert: 10.09.2006, 20:53
Wohnort: ändlich widr z basel

Beitrag von ebichu »

Kawa hat geschrieben:Alle Wege führen nach Rom ;)
stimmt :o
Kawa hat geschrieben:In ein paar Stunden lernst aber nicht Java, geht massiv länger ...
ist mir absolut klar. Nur ist es doch so, dass mein gewünschtes Programm im Prinzip doch relativ simpel ist. So zumindest mein gefühl...
[CENTER]Mir sin d Muttenzerkurve
Us em Riich vo dr Tradition
Userere Wält vo de Emotione
Vonere andere, vonere andere Dimension[/CENTER]


[CENTER]MK|BS[/CENTER]

Benutzeravatar
guybrush
Erfahrener Benutzer
Beiträge: 185
Registriert: 08.12.2004, 20:23

Beitrag von guybrush »

Wenn es um Grafische Oberflächen geht, kommt es wohl mehr auf die Entwicklungsumgebung als auf die Programmiersprache an.
Wenn du schon mit C++ gearbeitet hast, dann bleib doch bei C++.
Als Entwicklungsumgebung schlage ich dir Qt Creator (Freeware, wurde von Nokia übernommen).

Qt Creator kommt mit vielen Beispielen. Für deinen Zweck könnte das OpenGL->helloGL Beispiel und die anderen OpenGL Beispiele nützlich sein.
Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety.
Benjamin Franklin (1706-1790)

Benutzeravatar
ebichu
Erfahrener Benutzer
Beiträge: 276
Registriert: 10.09.2006, 20:53
Wohnort: ändlich widr z basel

Beitrag von ebichu »

besten dank, werd ich mir heute abend anschauen.
[CENTER]Mir sin d Muttenzerkurve
Us em Riich vo dr Tradition
Userere Wält vo de Emotione
Vonere andere, vonere andere Dimension[/CENTER]


[CENTER]MK|BS[/CENTER]

Benutzeravatar
guybrush
Erfahrener Benutzer
Beiträge: 185
Registriert: 08.12.2004, 20:23

Beitrag von guybrush »

Hast du QT heruntergeladen und haben dich die Beispile weitergebracht? Wird wohl nicht ganz einfach. ;-)
Für was brauchst du eigentlich das Programm? Was sind die exakten Vorgaben? Bis wann musst du es haben?
Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety.
Benjamin Franklin (1706-1790)

Benutzeravatar
andreas
Erfahrener Benutzer
Beiträge: 6754
Registriert: 27.03.2005, 19:22
Wohnort: Basel
Kontaktdaten:

Beitrag von andreas »

ebichu hat geschrieben:Zum vorschlag mit Maple:
Hab dieses Programm auf dem PC, allerdings noch nie in einem solchen
zusammenhang benutzt. Könntest du näheres dazu erklären?

messi
ebi
3dplot, gibt viele bsp im Internet, dein Gitter sicher auch!
Copyright © andreas 2005–heute. Alle Rechte vorbehalten.

Rotblau, die App von Fans für Fans! Rotblau gibt es auf iOS, Android oder im Web.

Benutzeravatar
ebichu
Erfahrener Benutzer
Beiträge: 276
Registriert: 10.09.2006, 20:53
Wohnort: ändlich widr z basel

Beitrag von ebichu »

guybrush hat geschrieben:Hast du QT heruntergeladen und haben dich die Beispile weitergebracht? Wird wohl nicht ganz einfach. ;-)
Für was brauchst du eigentlich das Programm? Was sind die exakten Vorgaben? Bis wann musst du es haben?
nein, bin noch nicht dazu gekommen. Hab im moment auch sonst einiges um
die ohren :)
Zum Programm: Also eigentlich bräuchte ich das Programm nur als
Hilfestellung zum programmieren eines LED Cubes.

(für die dies nicht kennen: http://www.youtube.com/watch?v=6mXM-oGggrM)

Das Computerprogramm sollte mich eigentlich nur unterstützen, den Code für
den Mikrocontroller, welcher das Bild schlussendlich auf den Cube überträgt,
zu schreiben. Denn es ist relativ schwer wenn nicht unmöglich, sich die
einzelnen Bilder alle im Kopf auszudenken. Bei einem 7x7x7 Cube handelt es
sich immerhin um 343 LEDs. Deshalb auch der Wunsch nach einer grafischen
Oberfläche.

Exakte vorgaben und Deadline gibts nicht, denn es handelt sich hierbei um
ein privates Projekt. :)

@andi: Danke, werd ich mir demnächst auch noch genauer anschauen.

lg
ebi
[CENTER]Mir sin d Muttenzerkurve
Us em Riich vo dr Tradition
Userere Wält vo de Emotione
Vonere andere, vonere andere Dimension[/CENTER]


[CENTER]MK|BS[/CENTER]

Benutzeravatar
andreas
Erfahrener Benutzer
Beiträge: 6754
Registriert: 27.03.2005, 19:22
Wohnort: Basel
Kontaktdaten:

Beitrag von andreas »

Gitterpunkte zeichnen

Code: Alles auswählen

with(plots)
pointplot3d({[-1, -1, -1], [-1, -1, 0], [-1, -1, 1], [-1, 0, -1], [-1, 0, 0], [-1, 0, 1], [-1, 1, -1], [-1, 1, 0], [-1, 1, 1], [0, -1, -1], [0, -1, 0], [0, -1, 1], [0, 0, -1], [0, 0, 0], [0, 0, 1], [0, 1, -1], [0, 1, 0], [0, 1, 1], [1, -1, -1], [1, -1, 0], [1, -1, 1], [1, 0, -1], [1, 0, 0], [1, 0, 1], [1, 1, -1], [1, 1, 0], [1, 1, 1]}, axes = none, symbol = box)
Gitterpunkte verbinden (noch nicht ganz alle verbunden, muss man beim Array for "nops" noch weiterziehen).

Code: Alles auswählen

with(plots)
p := [[0, 0, 0], [1, 0, 0], [-1, 0, 0], [0, -1, 0], [1, -1, 0], [-1, -1, 0], [0, 1, 0], [1, 1, 0], [-1, 1, 0], [0, 0, 1], [1, 0, 1], [-1, 0, 1], [0, -1, 1], [1, -1, 1], [-1, -1, 1], [0, 1, 1], [1, 1, 1], [-1, 1, 1], [0, 0, -1], [1, 0, -1], [-1, 0, -1], [0, -1, -1], [1, -1, -1], [-1, -1, -1], [0, 1, -1], [1, 1, -1], [-1, 1, -1]]; 
s := [2, 1, 3, 6, 5, 4, 6, 9, 8, 7, 1, 4, 6, 5, 8, 26, 27, 24, 23, 26, 20, 21, 24, 15, 18, 16, 17, 11, 10, 12, 3, 6, 4, 13, 15, 14, 17, 8, 17]; 
n := nops(s); 
pointplot3d([seq(p[s[i]], i = 1 .. n)], connect = true, symbol = circle)
Natürlich kann man jetzt nicht die Punkte abschalten oder so. Dafür lässt sich
das Gebilde sofort im dreidimensionalen drehen.
Copyright © andreas 2005–heute. Alle Rechte vorbehalten.

Rotblau, die App von Fans für Fans! Rotblau gibt es auf iOS, Android oder im Web.

pfirpfel
Erfahrener Benutzer
Beiträge: 113
Registriert: 09.05.2006, 23:34

Beitrag von pfirpfel »

Das hat sonst schon wer mit Tcl/Tk umgesetzt.

Antworten