Cairo beispiele

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Benutzeravatar
Roland Chastain
Beiträge: 169
Registriert: Sa 7. Jul 2012, 21:50
Wohnort: Saargemünd
Kontaktdaten:

Cairo beispiele

Beitrag von Roland Chastain »

Guten Tag !

Ich suche einfache cairo Beispiele für FreePascal. Bis Heute habe ich nichts gefunden.

Hätten Sie bitte ein oder zwei Code Stücke für mich ?

Danke !
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Benutzeravatar
theo
Beiträge: 10900
Registriert: Mo 11. Sep 2006, 19:01

Re: Cairo beispiele

Beitrag von theo »

Wozu brauchst du denn das? Und wo ist das Problem?

Ich habe keine Ahnung davon, aber hier gibt es ein Beispiel, das läuft doch.
http://free-pascal-general.1045716.n5.n ... 16347.html

Code: Alles auswählen

 
program Project1;
 
uses
  Cairo;
 
const
  IMAGE_WIDTH = 256;
  IMAGE_HEIGHT = 256;
 
var
  surface: Pcairo_surface_t;
  cr: Pcairo_t;
 
 
  procedure do_arc(cr: PCairo_t; Width, Height: integer);
  var
    xc: double;
    yc: double;
    radius: double;
    angle1: double;
    angle2: double;
  begin
    xc := 0.5;
    yc := 0.5;
    radius := 0.4;
    angle1 := 45.0 * (PI / 180.0);  (* angles are specified *)
    angle2 := 180.0 * (PI / 180.0);  (* in radians           *)
 
    cairo_scale(cr, Width, Height);
    cairo_set_line_width(cr, 0.04);
 
    cairo_arc(cr, xc, yc, radius, angle1, angle2);
    cairo_stroke(cr);
 
    (* draw helping lines *)
    cairo_set_source_rgba(cr, 1, 0.2, 0.2, 0.6);
    cairo_arc(cr, xc, yc, 0.05, 0, 2 * PI);
    cairo_fill(cr);
    cairo_set_line_width(cr, 0.03);
    cairo_line_to(cr, xc, yc);
    cairo_line_to(cr, xc, yc);
    cairo_stroke(cr);
  end;
 
begin
  surface := cairo_image_surface_create(CAIRO_FORMAT_ARGB32, IMAGE_WIDTH, IMAGE_HEIGHT);
  cr := cairo_create(surface);
  cairo_save(cr);
  do_arc(cr, IMAGE_WIDTH, IMAGE_HEIGHT);
  cairo_restore(cr);
  cairo_surface_write_to_png(surface, 'testcairobug1.png');
  cairo_destroy(cr);
  cairo_surface_destroy(surface);
end.
 

Benutzeravatar
Roland Chastain
Beiträge: 169
Registriert: Sa 7. Jul 2012, 21:50
Wohnort: Saargemünd
Kontaktdaten:

Re: Cairo beispiele

Beitrag von Roland Chastain »

theo hat geschrieben:Wozu brauchst du denn das? Und wo ist das Problem?
Danke für deine Antwort. Ich habe eine Benutzeroberfläche für ein Vier-Gewinnt in FreeBasic gemacht, und ich möchte eine Pascal version machen. So ich brauche : 1° eine grafische Fenster öffnen ; 2° eine Platte zeichnen.

Danke für den PNG Beispiel.
Dateianhänge
four-video.png
four-video.png (14.16 KiB) 1410 mal betrachtet
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Benutzeravatar
theo
Beiträge: 10900
Registriert: Mo 11. Sep 2006, 19:01

Re: Cairo beispiele

Beitrag von theo »

Und warum benützt du nicht einfach Lazarus Grafik dazu?

Benutzeravatar
Roland Chastain
Beiträge: 169
Registriert: Sa 7. Jul 2012, 21:50
Wohnort: Saargemünd
Kontaktdaten:

Re: Cairo beispiele

Beitrag von Roland Chastain »

theo hat geschrieben:Und warum benützt du nicht einfach Lazarus Grafik dazu?
Ja, wahrscheinlich werde ich das machen.
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Benutzeravatar
theo
Beiträge: 10900
Registriert: Mo 11. Sep 2006, 19:01

Re: Cairo beispiele

Beitrag von theo »

Ich hatte hier mal ein Beispiel gemacht, wie man ein Schachbrettmuster zeichnet:
http://www.lazarusforum.de/viewtopic.php?p=53064#p53064
Einfach in das OnPaint Ereignis des Formulars einhängen.

Vielleicht hilft dir das als Startpunkt.

Benutzeravatar
Roland Chastain
Beiträge: 169
Registriert: Sa 7. Jul 2012, 21:50
Wohnort: Saargemünd
Kontaktdaten:

Re: Cairo beispiele

Beitrag von Roland Chastain »

theo hat geschrieben:Vielleicht hilft dir das als Startpunkt.
Ja, das hilft mir. Danke !
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Antworten