Last active
April 25, 2017 18:25
-
-
Save HopperMCS/70c3c7cdb9fe40db923756abce6fb35e to your computer and use it in GitHub Desktop.
After C#, learned an easy way to write this cairo sh!t without reinventing fourteen wheels
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using Cairo; | |
| public class Main : GLib.Object { | |
| public static void Triangle1p1() { | |
| // Create a context: | |
| Cairo.SvgSurface triangle_surface_1p2 = new Cairo.SvgSurface ("triangle1p1.svg", 421, 410); | |
| Cairo.Context triangle_context_1p2 = new Cairo.Context (triangle_surface_1p2); | |
| Cairo.Context triangle_context_1p3 = new Cairo.Context (triangle_surface_1p2); | |
| Cairo.Context triangle_context_1p4 = new Cairo.Context (triangle_surface_1p2); | |
| Cairo.Context triangle_context_1p5 = new Cairo.Context (triangle_surface_1p2); | |
| triangle_context_1p2.set_line_width(2.5); | |
| triangle_context_1p2.save(); | |
| // Triangle 1 | |
| triangle_context_1p2.set_source_rgba (0.7, 0.20, 0.17, 0.8); | |
| triangle_context_1p2.scale(1.0, 1.0); | |
| triangle_context_1p2.line_to (143, 39); | |
| triangle_context_1p2.line_to (198, 176); | |
| triangle_context_1p2.line_to (23, 281); | |
| triangle_context_1p2.close_path (); | |
| triangle_context_1p2.fill_preserve(); | |
| triangle_context_1p2.restore(); | |
| triangle_context_1p2.set_source_rgba(0.98, 0.38, 0.09, 0.8); | |
| triangle_context_1p2.stroke(); | |
| triangle_context_1p3.set_line_width(2.5); | |
| triangle_context_1p3.save(); | |
| // Triangle 2: | |
| triangle_context_1p3.set_source_rgba (0, 0.63, 0.90, 0.8); | |
| triangle_context_1p3.scale(1.0, 1.0); | |
| triangle_context_1p3.line_to (275, 44); | |
| triangle_context_1p3.line_to (377, 102); | |
| triangle_context_1p3.line_to (100, 118); | |
| triangle_context_1p3.close_path (); | |
| triangle_context_1p3.fill_preserve(); | |
| triangle_context_1p3.restore(); | |
| triangle_context_1p3.set_source_rgba(0, 0.99, 0.93, 0.8); | |
| triangle_context_1p3.stroke(); | |
| triangle_context_1p4.set_line_width(2.5); | |
| triangle_context_1p4.save(); | |
| // Triangle 5: | |
| triangle_context_1p4.set_source_rgba (0, 0.63, 0.90, 0.8); | |
| triangle_context_1p4.scale(1.0, 1.0); | |
| triangle_context_1p4.line_to (244, 314); | |
| triangle_context_1p4.line_to (148, 375); | |
| triangle_context_1p4.line_to (70, 184); | |
| triangle_context_1p4.close_path (); | |
| triangle_context_1p4.fill_preserve(); | |
| triangle_context_1p4.restore(); | |
| triangle_context_1p4.set_source_rgba(0, 0.99, 0.93, 0.8); | |
| triangle_context_1p4.stroke(); | |
| triangle_context_1p5.set_line_width(2.5); | |
| triangle_context_1p5.save(); | |
| } | |
| public static void Triangle1p2() { | |
| // Create a context: | |
| Cairo.SvgSurface triangle_surface_1p2 = new Cairo.SvgSurface ("triangle1p2.svg", 421, 410); | |
| Cairo.Context triangle_context_1p2 = new Cairo.Context (triangle_surface_1p2); | |
| Cairo.Context triangle_context_1p3 = new Cairo.Context (triangle_surface_1p2); | |
| Cairo.Context triangle_context_1p4 = new Cairo.Context (triangle_surface_1p2); | |
| Cairo.Context triangle_context_1p5 = new Cairo.Context (triangle_surface_1p2); | |
| Cairo.Context triangle_context_1p6 = new Cairo.Context (triangle_surface_1p2); | |
| triangle_context_1p2.set_line_width(2.5); | |
| triangle_context_1p2.save(); | |
| // Triangle 1 | |
| triangle_context_1p2.set_source_rgba (0.7, 0.20, 0.17, 0.8); | |
| triangle_context_1p2.scale(1.0, 1.0); | |
| triangle_context_1p2.line_to (143, 39); | |
| triangle_context_1p2.line_to (198, 176); | |
| triangle_context_1p2.line_to (23, 281); | |
| triangle_context_1p2.close_path (); | |
| triangle_context_1p2.fill_preserve(); | |
| triangle_context_1p2.restore(); | |
| triangle_context_1p2.set_source_rgba(0.98, 0.38, 0.09, 0.8); | |
| triangle_context_1p2.stroke(); | |
| triangle_context_1p3.set_line_width(2.5); | |
| triangle_context_1p3.save(); | |
| // Triangle 2: | |
| triangle_context_1p3.set_source_rgba (0, 0.63, 0.90, 0.8); | |
| triangle_context_1p3.scale(1.0, 1.0); | |
| triangle_context_1p3.line_to (275, 44); | |
| triangle_context_1p3.line_to (377, 102); | |
| triangle_context_1p3.line_to (100, 118); | |
| triangle_context_1p3.close_path (); | |
| triangle_context_1p3.fill_preserve(); | |
| triangle_context_1p3.restore(); | |
| triangle_context_1p3.set_source_rgba(0, 0.99, 0.93, 0.8); | |
| triangle_context_1p3.stroke(); | |
| triangle_context_1p4.set_line_width(2.5); | |
| triangle_context_1p4.save(); | |
| // Triangle 5: | |
| triangle_context_1p4.set_source_rgba (0, 0.63, 0.90, 0.8); | |
| triangle_context_1p4.scale(1.0, 1.0); | |
| triangle_context_1p4.line_to (244, 314); | |
| triangle_context_1p4.line_to (148, 375); | |
| triangle_context_1p4.line_to (70, 184); | |
| triangle_context_1p4.close_path (); | |
| triangle_context_1p4.fill_preserve(); | |
| triangle_context_1p4.restore(); | |
| triangle_context_1p4.set_source_rgba(0, 0.99, 0.93, 0.8); | |
| triangle_context_1p4.stroke(); | |
| triangle_context_1p5.set_line_width(2.5); | |
| triangle_context_1p5.save(); | |
| // Triangle 3: | |
| triangle_context_1p5.set_source_rgba (0.78, 0.38, 0.09, 0.8); | |
| triangle_context_1p5.scale(1.0, 1.0); | |
| triangle_context_1p5.line_to (363, 190); | |
| triangle_context_1p5.line_to (250, 126); | |
| triangle_context_1p5.line_to (305, 26); | |
| triangle_context_1p5.close_path (); | |
| triangle_context_1p5.fill_preserve(); | |
| triangle_context_1p5.restore(); | |
| triangle_context_1p5.set_source_rgba(0.98, 0.20, 0.17, 0.8); | |
| triangle_context_1p5.stroke(); | |
| triangle_context_1p6.set_line_width(2.5); | |
| triangle_context_1p6.save(); | |
| // Triangle 6: | |
| triangle_context_1p6.set_source_rgba (0.78, 0.38, 0.09, 0.8); | |
| triangle_context_1p6.scale(1.0, 1.0); | |
| triangle_context_1p6.line_to (195, 260); | |
| triangle_context_1p6.line_to (333, 356); | |
| triangle_context_1p6.line_to (128, 330); | |
| triangle_context_1p6.close_path (); | |
| triangle_context_1p6.fill_preserve(); | |
| triangle_context_1p6.restore(); | |
| triangle_context_1p6.set_source_rgba(0.98, 0.20, 0.17, 0.8); | |
| triangle_context_1p6.stroke(); | |
| } | |
| public static void Triangle1p3() { | |
| // Create a context: | |
| Cairo.SvgSurface triangle_surface_1p2 = new Cairo.SvgSurface ("triangle1p3.svg", 421, 410); | |
| Cairo.Context triangle_context_1p2 = new Cairo.Context (triangle_surface_1p2); | |
| Cairo.Context triangle_context_1p3 = new Cairo.Context (triangle_surface_1p2); | |
| Cairo.Context triangle_context_1p4 = new Cairo.Context (triangle_surface_1p2); | |
| Cairo.Context triangle_context_1p5 = new Cairo.Context (triangle_surface_1p2); | |
| Cairo.Context triangle_context_1p6 = new Cairo.Context (triangle_surface_1p2); | |
| triangle_context_1p2.set_line_width(2.5); | |
| triangle_context_1p2.save(); | |
| // Triangle 1 | |
| triangle_context_1p2.set_source_rgba (0.7, 0.20, 0.17, 0.8); | |
| triangle_context_1p2.scale(1.0, 1.0); | |
| triangle_context_1p2.line_to (143, 39); | |
| triangle_context_1p2.line_to (198, 176); | |
| triangle_context_1p2.line_to (23, 281); | |
| triangle_context_1p2.close_path (); | |
| triangle_context_1p2.fill_preserve(); | |
| triangle_context_1p2.restore(); | |
| triangle_context_1p2.set_source_rgba(0.98, 0.38, 0.09, 0.8); | |
| triangle_context_1p2.stroke(); | |
| triangle_context_1p3.set_line_width(2.5); | |
| triangle_context_1p3.save(); | |
| // Triangle 2: | |
| triangle_context_1p3.set_source_rgba (0, 0.63, 0.90, 0.8); | |
| triangle_context_1p3.scale(1.0, 1.0); | |
| triangle_context_1p3.line_to (275, 44); | |
| triangle_context_1p3.line_to (377, 102); | |
| triangle_context_1p3.line_to (100, 118); | |
| triangle_context_1p3.close_path (); | |
| triangle_context_1p3.fill_preserve(); | |
| triangle_context_1p3.restore(); | |
| triangle_context_1p3.set_source_rgba(0, 0.99, 0.93, 0.8); | |
| triangle_context_1p3.stroke(); | |
| triangle_context_1p4.set_line_width(2.5); | |
| triangle_context_1p4.save(); | |
| // Triangle 5: | |
| triangle_context_1p4.set_source_rgba (0, 0.63, 0.90, 0.8); | |
| triangle_context_1p4.scale(1.0, 1.0); | |
| triangle_context_1p4.line_to (244, 314); | |
| triangle_context_1p4.line_to (148, 375); | |
| triangle_context_1p4.line_to (70, 184); | |
| triangle_context_1p4.close_path (); | |
| triangle_context_1p4.fill_preserve(); | |
| triangle_context_1p4.restore(); | |
| triangle_context_1p4.set_source_rgba(0, 0.99, 0.93, 0.8); | |
| triangle_context_1p4.stroke(); | |
| triangle_context_1p5.set_line_width(2.5); | |
| triangle_context_1p5.save(); | |
| // Triangle 3: | |
| triangle_context_1p5.set_source_rgba (0.78, 0.38, 0.09, 0.8); | |
| triangle_context_1p5.scale(1.0, 1.0); | |
| triangle_context_1p5.line_to (363, 190); | |
| triangle_context_1p5.line_to (250, 126); | |
| triangle_context_1p5.line_to (305, 26); | |
| triangle_context_1p5.close_path (); | |
| triangle_context_1p5.fill_preserve(); | |
| triangle_context_1p5.restore(); | |
| triangle_context_1p5.set_source_rgba(0.98, 0.20, 0.17, 0.8); | |
| triangle_context_1p5.stroke(); | |
| triangle_context_1p6.set_line_width(2.5); | |
| triangle_context_1p6.save(); | |
| // Triangle 6: | |
| triangle_context_1p6.set_source_rgba (0.78, 0.38, 0.09, 0.8); | |
| triangle_context_1p6.scale(1.0, 1.0); | |
| triangle_context_1p6.line_to (195, 260); | |
| triangle_context_1p6.line_to (333, 356); | |
| triangle_context_1p6.line_to (128, 330); | |
| triangle_context_1p6.close_path (); | |
| triangle_context_1p6.fill_preserve(); | |
| triangle_context_1p6.restore(); | |
| triangle_context_1p6.set_source_rgba(0.98, 0.20, 0.17, 0.8); | |
| triangle_context_1p6.stroke(); | |
| } | |
| public static void Triangle1() { | |
| SvgSurface triangle_surface_1 = new Cairo.SvgSurface ("triangle1.svg", 421, 410); | |
| Context triangle_context_1 = new Cairo.Context (triangle_surface_1); | |
| triangle_context_1.set_line_width(2.5); | |
| triangle_context_1.save(); | |
| // Triangle 1 | |
| triangle_context_1.set_source_rgba (0.7, 0.20, 0.17, 0.8); | |
| triangle_context_1.scale(1.0, 1.0); | |
| triangle_context_1.line_to (143, 39); | |
| triangle_context_1.line_to (198, 176); | |
| triangle_context_1.line_to (23, 281); | |
| triangle_context_1.close_path (); | |
| triangle_context_1.fill_preserve(); | |
| triangle_context_1.restore(); | |
| triangle_context_1.set_source_rgba(0.98, 0.38, 0.09, 0.8); | |
| triangle_context_1.stroke(); | |
| } | |
| public static void Triangle2() { | |
| SvgSurface triangle_surface_2 = new Cairo.SvgSurface ("triangle2.svg", 421, 410); | |
| Context triangle_context_2 = new Cairo.Context (triangle_surface_2); | |
| triangle_context_2.set_line_width(2.5); | |
| triangle_context_2.save(); | |
| // Triangle 2: | |
| triangle_context_2.set_source_rgba (0, 0.63, 0.90, 0.8); | |
| triangle_context_2.scale(1.0, 1.0); | |
| triangle_context_2.line_to (275, 44); | |
| triangle_context_2.line_to (377, 102); | |
| triangle_context_2.line_to (100, 118); | |
| triangle_context_2.close_path (); | |
| triangle_context_2.fill_preserve(); | |
| triangle_context_2.restore(); | |
| triangle_context_2.set_source_rgba(0, 0.99, 0.93, 0.8); | |
| triangle_context_2.stroke(); | |
| triangle_context_2.set_line_width(2.5); | |
| triangle_context_2.save(); | |
| } | |
| public static void Triangle3() { | |
| SvgSurface triangle_surface_3 = new Cairo.SvgSurface ("triangle3.svg", 421, 410); | |
| Context triangle_context_3 = new Cairo.Context (triangle_surface_3); | |
| triangle_context_3.set_line_width(2.5); | |
| triangle_context_3.save(); | |
| // Triangle 3: | |
| triangle_context_3.set_source_rgba (0.78, 0.38, 0.09, 0.8); | |
| triangle_context_3.scale(1.0, 1.0); | |
| triangle_context_3.line_to (363, 190); | |
| triangle_context_3.line_to (250, 126); | |
| triangle_context_3.line_to (305, 26); | |
| triangle_context_3.close_path (); | |
| triangle_context_3.fill_preserve(); | |
| triangle_context_3.restore(); | |
| triangle_context_3.set_source_rgba(0.98, 0.20, 0.17, 0.8); | |
| triangle_context_3.stroke(); | |
| } | |
| public static void Triangle4() { | |
| SvgSurface triangle_surface_4 = new Cairo.SvgSurface ("triangle4.svg", 421, 410); | |
| Context triangle_context_4 = new Cairo.Context (triangle_surface_4); | |
| triangle_context_4.set_line_width(2.5); | |
| triangle_context_4.save(); | |
| // Triangle 4: | |
| triangle_context_4.set_source_rgba (0.19, 0.80, 0.19, 0.8); | |
| triangle_context_4.scale(1.0, 1.0); | |
| triangle_context_4.line_to (376, 130); | |
| triangle_context_4.line_to (304, 222); | |
| triangle_context_4.line_to (290, 147); | |
| triangle_context_4.close_path (); | |
| triangle_context_4.fill_preserve(); | |
| triangle_context_4.restore(); | |
| triangle_context_4.set_source_rgba(0.48, 0.98, 0, 0.8); | |
| triangle_context_4.stroke(); | |
| } | |
| public static void Triangle5() { | |
| SvgSurface triangle_surface_5 = new Cairo.SvgSurface ("triangle5.svg", 421, 410); | |
| Context triangle_context_5 = new Cairo.Context (triangle_surface_5); | |
| triangle_context_5.set_line_width(2.5); | |
| triangle_context_5.save(); | |
| // Triangle 5: | |
| triangle_context_5.set_source_rgba (0, 0.63, 0.90, 0.8); | |
| triangle_context_5.scale(1.0, 1.0); | |
| triangle_context_5.line_to (244, 314); | |
| triangle_context_5.line_to (148, 375); | |
| triangle_context_5.line_to (70, 184); | |
| triangle_context_5.close_path (); | |
| triangle_context_5.fill_preserve(); | |
| triangle_context_5.restore(); | |
| triangle_context_5.set_source_rgba(0, 0.99, 0.93, 0.8); | |
| triangle_context_5.stroke(); | |
| } | |
| public static void Triangle6() { | |
| SvgSurface triangle_surface_6 = new Cairo.SvgSurface ("triangle6.svg", 421, 410); | |
| Context triangle_context_6 = new Cairo.Context (triangle_surface_6); | |
| triangle_context_6.set_line_width(2.5); | |
| triangle_context_6.save(); | |
| // Triangle 6: | |
| triangle_context_6.set_source_rgba (0.78, 0.38, 0.09, 0.8); | |
| triangle_context_6.scale(1.0, 1.0); | |
| triangle_context_6.line_to (195, 260); | |
| triangle_context_6.line_to (333, 356); | |
| triangle_context_6.line_to (128, 330); | |
| triangle_context_6.close_path (); | |
| triangle_context_6.fill_preserve(); | |
| triangle_context_6.restore(); | |
| triangle_context_6.set_source_rgba(0.98, 0.20, 0.17, 0.8); | |
| triangle_context_6.stroke(); | |
| } | |
| public static void Triangle7() { | |
| SvgSurface triangle_surface_7 = new Cairo.SvgSurface ("triangle7.svg", 421, 410); | |
| Context triangle_context_7 = new Cairo.Context (triangle_surface_7); | |
| triangle_context_7.set_line_width(2.5); | |
| triangle_context_7.save(); | |
| // Triangle 7: | |
| triangle_context_7.set_source_rgba (0.19, 0.80, 0.19, 0.8); | |
| triangle_context_7.scale(1.0, 1.0); | |
| triangle_context_7.line_to (304, 270); | |
| triangle_context_7.line_to (311, 380); | |
| triangle_context_7.line_to (252, 326); | |
| triangle_context_7.close_path (); | |
| triangle_context_7.fill_preserve(); | |
| triangle_context_7.restore(); | |
| triangle_context_7.set_source_rgba(0.48, 0.98, 0, 0.8); | |
| triangle_context_7.stroke(); | |
| } | |
| public static void Logo() { | |
| // Create a context: | |
| Cairo.SvgSurface surface = new Cairo.SvgSurface ("triangles-all.svg", 421, 410); | |
| Cairo.Context context = new Cairo.Context (surface); | |
| context.set_line_width(2.5); | |
| context.save(); | |
| // Triangle 1 | |
| context.set_source_rgba (0.7, 0.20, 0.17, 0.8); | |
| context.scale(1.0, 1.0); | |
| context.line_to (143, 39); | |
| context.line_to (198, 176); | |
| context.line_to (23, 281); | |
| context.close_path (); | |
| context.fill_preserve(); | |
| context.restore(); | |
| context.set_source_rgba(0.98, 0.38, 0.09, 0.8); | |
| context.stroke(); | |
| context.set_line_width(2.5); | |
| context.save(); | |
| // Triangle 2: | |
| context.set_source_rgba (0, 0.63, 0.90, 0.8); | |
| context.scale(1.0, 1.0); | |
| context.line_to (275, 44); | |
| context.line_to (377, 102); | |
| context.line_to (100, 118); | |
| context.close_path (); | |
| context.fill_preserve(); | |
| context.restore(); | |
| context.set_source_rgba(0, 0.99, 0.93, 0.8); | |
| context.stroke(); | |
| context.set_line_width(2.5); | |
| context.save(); | |
| // Triangle 3: | |
| context.set_source_rgba (0.78, 0.38, 0.09, 0.8); | |
| context.scale(1.0, 1.0); | |
| context.line_to (363, 190); | |
| context.line_to (250, 126); | |
| context.line_to (305, 26); | |
| context.close_path (); | |
| context.fill_preserve(); | |
| context.restore(); | |
| context.set_source_rgba(0.98, 0.20, 0.17, 0.8); | |
| context.stroke(); | |
| context.set_line_width(2.5); | |
| context.save(); | |
| // Triangle 4: | |
| context.set_source_rgba (0.19, 0.80, 0.19, 0.8); | |
| context.scale(1.0, 1.0); | |
| context.line_to (376, 130); | |
| context.line_to (304, 222); | |
| context.line_to (290, 147); | |
| context.close_path (); | |
| context.fill_preserve(); | |
| context.restore(); | |
| context.set_source_rgba(0.48, 0.98, 0, 0.8); | |
| context.stroke(); | |
| context.set_line_width(2.5); | |
| context.save(); | |
| // Triangle 5: | |
| context.set_source_rgba (0, 0.63, 0.90, 0.8); | |
| context.scale(1.0, 1.0); | |
| context.line_to (244, 314); | |
| context.line_to (148, 375); | |
| context.line_to (70, 184); | |
| context.close_path (); | |
| context.fill_preserve(); | |
| context.restore(); | |
| context.set_source_rgba(0, 0.99, 0.93, 0.8); | |
| context.stroke(); | |
| context.set_line_width(2.5); | |
| context.save(); | |
| // Triangle 6: | |
| context.set_source_rgba (0.78, 0.38, 0.09, 0.8); | |
| context.scale(1.0, 1.0); | |
| context.line_to (195, 260); | |
| context.line_to (333, 356); | |
| context.line_to (128, 330); | |
| context.close_path (); | |
| context.fill_preserve(); | |
| context.restore(); | |
| context.set_source_rgba(0.98, 0.20, 0.17, 0.8); | |
| context.stroke(); | |
| context.set_line_width(2.5); | |
| context.save(); | |
| // Triangle 7: | |
| context.set_source_rgba (0.19, 0.80, 0.19, 0.8); | |
| context.scale(1.0, 1.0); | |
| context.line_to (304, 270); | |
| context.line_to (311, 380); | |
| context.line_to (252, 326); | |
| context.close_path (); | |
| context.fill_preserve(); | |
| context.restore(); | |
| context.set_source_rgba(0.48, 0.98, 0, 0.8); | |
| context.stroke(); | |
| } | |
| public static void main (string[] args) { | |
| Triangle1(); | |
| Triangle2(); | |
| Triangle3(); | |
| Triangle4(); | |
| Triangle5(); | |
| Triangle6(); | |
| Triangle7(); | |
| Triangle1p1(); | |
| Triangle1p2(); | |
| Logo(); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment