Hi Leute,
Mir ist mal wieder ein Projekt eingefallen, ich nenne es "Fracx"
1.Mein Ziel
Ein Proggramm das:
--Verschiedenen Fraktikale in hohen auflösungen zeichenen kann.
--Diese dann als Bilddatei ausgeben kann.
Das Proplem das ich grad habe ist, ich habe nich nie mit einer "Grafik-
Engine" gearbeitet habe.
Ich kenne zwar Das Gimp Tool-Kit von freunden habe es aber nochnie selber
probiert.
Dann habe ich nochwas von GTKMM gehört, das soll wohl die C++ variante
sein, die auch für "Inkscape" verwendet wurde. (ich finde Inkscape
grandios^^)
Also, was würdet ihr mit empfehlen
Da Fraktikanle auch mathematisch recht anspruchsvoll sind, fange ich
lieber mit was einfachem an.
2 einfache quadrate nebeneinander
Der inhalt der bilder ist mir zuerstmal relativ egal, ich will momentan
bilder mit möglichste hoher auflösung rendern.
Ich glaube ich fange bei 4096 × 3072 an.
ok, das wars eigentlich.
MFG G_loW <xD
"FracX" Der HiRes 2D Renderer^^
"FracX" Der HiRes 2D Renderer^^
use Linux
use Code::Blocks
use Code::Blocks
Re: "FracX" Der HiRes 2D Renderer^^
GTK.... Da hab ich ja wohl voll ins bein geschossen xD
Bleiben noch:
--Open GL
--SDL
--DirectX
Ich hab vonn allen kein plan...
Wer kann mir rat geben
Bleiben noch:
--Open GL
--SDL
--DirectX
Ich hab vonn allen kein plan...
Wer kann mir rat geben

use Linux
use Code::Blocks
use Code::Blocks
Re: "FracX" Der HiRes 2D Renderer^^
Ich würde mit mal Cairo als Grafiklibrary ansehen.
Das ganze basiert auf 2D Vektorgrafik (sollte somit von der Auflösung her kein Problem sein) und ist unabhängig von der verwendeten Plattform.
Für den Einstieg kann ich das hier empfehlen: http://www.zetcode.com/tutorials/cairographicstutorial/
MfG Fuss
GTK+ selber ist ja nur für die Erstellung einer GUI zuständig, aber die Zeichenroutinen die seit neuestem (Version 2.8) verwendet werden, zeichnen alle mit Cairo. gtkmm zeichnet ebenfalls mit Cairo. An der Darstellung von Objekten in Inkscape ist Cairo auch mit von der Partie.G_loW hat geschrieben:Ich kenne zwar Das Gimp Tool-Kit von freunden habe es aber nochnie selber
probiert.
Dann habe ich nochwas von GTKMM gehört, das soll wohl die C++ variante
sein, die auch für "Inkscape" verwendet wurde. (ich finde Inkscape
grandios^^)
Das ganze basiert auf 2D Vektorgrafik (sollte somit von der Auflösung her kein Problem sein) und ist unabhängig von der verwendeten Plattform.
Für den Einstieg kann ich das hier empfehlen: http://www.zetcode.com/tutorials/cairographicstutorial/
MfG Fuss
Re: "FracX" Der HiRes 2D Renderer^^
gutgut ich habs tut en bissel angeschaut aber schon nach kurzer zeit muste ich feststellen das Code::Blocks was degegen hat^^
Das ist ein code aus dem tut zum "Basic Drawing"
was sagt CB dazu....
Code: Alles auswählen
#include <cairo.h>
#include <gtk/gtk.h>
double coordx[100];
double coordy[100];
int count = 0;
static gboolean
on_expose_event(GtkWidget *widget,
GdkEventExpose *event,
gpointer data)
{
cairo_t *cr;
cr = gdk_cairo_create(widget->window);
cairo_set_source_rgb(cr, 0, 0, 0);
cairo_set_line_width (cr, 0.5);
int i, j;
for ( i = 0; i <= count - 1; i++ ) {
for ( j = 0; j <= count -1; j++ ) {
cairo_move_to(cr, coordx[i], coordy[i]);
cairo_line_to(cr, coordx[j], coordy[j]);
}
}
count = 0;
cairo_stroke(cr);
cairo_destroy(cr);
return FALSE;
}
gboolean clicked(GtkWidget *widget, GdkEventButton *event,
gpointer user_data)
{
if (event->button == 1) {
coordx[count] = event->x;
coordy[count++] = event->y;
}
if (event->button == 3) {
gtk_widget_queue_draw(widget);
}
return TRUE;
}
int
main (int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_add_events (window, GDK_BUTTON_PRESS_MASK);
g_signal_connect(window, "expose-event",
G_CALLBACK(on_expose_event), NULL);
g_signal_connect(window, "destroy",
G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(window, "button-press-event",
G_CALLBACK(clicked), NULL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(window), "lines");
gtk_window_set_default_size(GTK_WINDOW(window), 400, 300);
gtk_widget_set_app_paintable(window, TRUE);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
was sagt CB dazu....
Code: Alles auswählen
-------------- Build: Debug in FracX ---------------
Linking console executable: bin\Debug\FracX.exe
obj\Debug\main.o: In function `on_expose_event':
D:/Extras/Medial/Proggen/Projekte/FracX/FracX/main.c:15: undefined reference to `_gdk_cairo_create'
D:/Extras/Medial/Proggen/Projekte/FracX/FracX/main.c:17: undefined reference to `_cairo_set_source_rgb'
D:/Extras/Medial/Proggen/Projekte/FracX/FracX/main.c:18: undefined reference to `_cairo_set_line_width'
D:/Extras/Medial/Proggen/Projekte/FracX/FracX/main.c:23: undefined reference to `_cairo_move_to'
D:/Extras/Medial/Proggen/Projekte/FracX/FracX/main.c:24: undefined reference to `_cairo_line_to'
D:/Extras/Medial/Proggen/Projekte/FracX/FracX/main.c:29: undefined reference to `_cairo_stroke'
D:/Extras/Medial/Proggen/Projekte/FracX/FracX/main.c:30: undefined reference to `_cairo_destroy'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
7 errors, 0 warnings
use Linux
use Code::Blocks
use Code::Blocks
- Bebu
- Beiträge: 562
- Registriert: Mi Okt 21, 2009 6:19 pm
- Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!
Re: "FracX" Der HiRes 2D Renderer^^
Das sieht nach einem Linkerfehler aus. Kann es sein, das du vergessen hast Cairolibrary zum Programm zu linken?
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: "FracX" Der HiRes 2D Renderer^^
Hast du auch die Libs von Ciaro mit in den Linkprozess aufgenommen, denn es sieht so aus, als würden ihm diese Fehlen.Das ist ein code aus dem tut zum "Basic Drawing"
was sagt CB dazu....
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: "FracX" Der HiRes 2D Renderer^^
Argh.... *Kopf auf tisch hau*
Falsche version sry
*2.8.9 lad*
so, ein fehler bleib dennoch:
aber das mach ich morgen^^
Falsche version sry

so, ein fehler bleib dennoch:
Code: Alles auswählen
-------------- Build: Debug in FracX ---------------
Linking console executable: bin\Debug\FracX.exe
C:\Program Files\CodeBlocks\MinGW\bin\ld.exe: cannot find -lgtk-win32-2.0
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings
use Linux
use Code::Blocks
use Code::Blocks