"FracX" Der HiRes 2D Renderer^^

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Antworten
G_loW
Beiträge: 29
Registriert: Mi Jan 14, 2009 10:05 pm

"FracX" Der HiRes 2D Renderer^^

Beitrag von G_loW » Do Mär 11, 2010 4:34 pm

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
use Linux
use Code::Blocks

G_loW
Beiträge: 29
Registriert: Mi Jan 14, 2009 10:05 pm

Re: "FracX" Der HiRes 2D Renderer^^

Beitrag von G_loW » Do Mär 11, 2010 7:17 pm

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 :mrgreen:
use Linux
use Code::Blocks

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: "FracX" Der HiRes 2D Renderer^^

Beitrag von +Fuss+ » Do Mär 11, 2010 7:46 pm

Ich würde mit mal Cairo als Grafiklibrary ansehen.
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^^)
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.

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

G_loW
Beiträge: 29
Registriert: Mi Jan 14, 2009 10:05 pm

Re: "FracX" Der HiRes 2D Renderer^^

Beitrag von G_loW » Do Mär 11, 2010 8:51 pm

gutgut ich habs tut en bissel angeschaut aber schon nach kurzer zeit muste ich feststellen das Code::Blocks was degegen hat^^

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;
}

Das ist ein code aus dem tut zum "Basic Drawing"

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

Benutzeravatar
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^^

Beitrag von Bebu » Do Mär 11, 2010 9:00 pm

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!

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: "FracX" Der HiRes 2D Renderer^^

Beitrag von cloidnerux » Do Mär 11, 2010 9:01 pm

Das ist ein code aus dem tut zum "Basic Drawing"

was sagt CB dazu....
Hast du auch die Libs von Ciaro mit in den Linkprozess aufgenommen, denn es sieht so aus, als würden ihm diese Fehlen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

G_loW
Beiträge: 29
Registriert: Mi Jan 14, 2009 10:05 pm

Re: "FracX" Der HiRes 2D Renderer^^

Beitrag von G_loW » Do Mär 11, 2010 9:03 pm

Argh.... *Kopf auf tisch hau*

Falsche version sry :oops: *2.8.9 lad*

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
aber das mach ich morgen^^
use Linux
use Code::Blocks

Antworten