static void Main() { Application.Init (); Gtk.Window w = new Gtk.Window ("RotarCuadrado"); DrawingArea da = new CairoGraphic (); Box box = new VBox (true, 0); box.Add (da); w.Add (box); w.Resize (256, 256); w.DeleteEvent += closeWindow; w.ShowAll (); Application.Run (); }
static void Main() { Application.Init(); Gtk.Window w = new Gtk.Window("Mono-Cairo Truchet Tile"); DrawingArea a = new CairoGraphic(); Box box = new HBox(true, 0); box.Add(a); w.Add(box); w.Resize(500, 500); w.DeleteEvent += close_window; w.ShowAll(); Application.Run(); }
static void draw(Cairo.Context gr, int width, int height) { gr.Scale(width, height); gr.LineWidth = 0.01; /* draw helping lines */ gr.SetSourceColor(new Cairo.Color(1, 1, 0, 1)); gr.LineTo(new PointD(0.5, 0.5)); List <PointD> streamlines = CairoGraphic.test(); for (int i = 0; i < streamlines.Count; ++i) { Console.WriteLine(streamlines[i].X + " " + streamlines[i].Y); gr.LineTo(streamlines[i]); gr.Stroke(); gr.LineTo(streamlines[i]); } }
public MainWindow() : base(Gtk.WindowType.Toplevel) { Build (); area = new CairoGraphic (); Box box = new HBox (true, 0); box.Add (area); this.Add (box); this.ShowAll (); Graph g = new Graph (); Graph.CoulombConstant += 15; Graph.SpringConstant += 25; Graph.Damping = 0.8; Node q1 = new Node (){ Mass = 3 }; Node q2 = new Node (){ Mass = 2 }; Node q3 = new Node (); Node q4 = new Node (); Node q5 = new Node (); Node q6 = new Node (); Node q7 = new Node (); q1.Charge = 1.5; q1.Data = new NodeData(){ Label = "CA KGroup", Stroke = new Color( 0.5, 0.5, 0.5, 0.5 ), Fill = new Color( 1, 1, 1, 1 ), Size = 60 }; q2.Charge = 1.5; q2.Data = new NodeData(){ Label = "CA AGroup", Stroke = new Color( 0.5, 0.5, 0.5, 0.5 ), Fill = new Color( 1, 1, 1, 1 ), Size = 60 }; q1.Location = new ForceGraph.Point(){ X = 12, Y = 5, Z = 0 }; q2.Location = new ForceGraph.Point(){ X = 0, Y = -2, Z = 0 }; q3.Location = new ForceGraph.Point(){ X = -4, Y = 13, Z = 5 }; q5.Location = new ForceGraph.Point(){ X = 1, Y = 0, Z = 0 }; q6.Location = new ForceGraph.Point(){ X = 2, Y = 10, Z = 0 }; q7.Location = new ForceGraph.Point(){ X = 3, Y = -6, Z = 0 }; g.AddNode( q1 ); g.AddNode( q2 ); g.AddNode( q3 ); g.AddNode( q4 ); g.AddNode( q5 ); g.AddNode( q6 ); g.AddNode( q7 ); g.Join( q1, q5 ).Data = new NodeData(){ Stroke = new Color( 0,0,0,0.1 ) }; g.Join( q1, q6 ).Data = new NodeData(){ Stroke = new Color( 0,0,0,0.1 ) }; g.Join( q1, q7 ).Data = new NodeData(){ Stroke = new Color( 0,0,0,0.1 ) }; var grant = g.Join( q1, q2 ); grant.NaturalLength = 12; g.Join( q2, q3 ).Data = new NodeData(){ Stroke = new Color( 0,0,0,0.1 ) }; g.Join( q2, q4 ).Data = new NodeData(){ Stroke = new Color( 0,0,0,0.1 ) }; area.ForceGraph = g; area.Magnification = 30; Thread t = new Thread( new ThreadStart( this.Render) ); t.Start(); area.AddEvents( (int) Gdk.EventMask.ButtonPressMask ); area.AddEvents( (int) Gdk.EventMask.ButtonReleaseMask ); area.AddEvents( (int) Gdk.EventMask.Button1MotionMask ); area.Sensitive = true; area.ButtonPressEvent += HandleHandleButtonPressEvent; area.ButtonReleaseEvent += HandleAreaButtonReleaseEvent; }