summaryrefslogtreecommitdiffstatsci
path: root/samples/tests/line_join.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'samples/tests/line_join.cpp')
-rw-r--r--samples/tests/line_join.cpp173
1 files changed, 173 insertions, 0 deletions
diff --git a/samples/tests/line_join.cpp b/samples/tests/line_join.cpp
new file mode 100644
index 0000000..d6c400a
--- /dev/null
+++ b/samples/tests/line_join.cpp
@@ -0,0 +1,173 @@
+#include "VkvgTest.hpp"
+
+TEST(line_join0) {
+ VkvgContext ctx = vkvg_create(test->surf);
+
+ float x = 250, y = 150;
+
+ // vkvg_scale(ctx,2,2);
+
+ vkvg_set_line_width(ctx, 100);
+ vkvg_set_source_rgba(ctx, 0, 1, 0, 1);
+
+ vkvg_set_line_join(ctx, VKVG_LINE_JOIN_ROUND);
+ // vkvg_rectangle(ctx,x,y,dx,dy);
+
+ vkvg_move_to(ctx, x, y);
+ vkvg_rel_line_to(ctx, -50, 30);
+ vkvg_rel_line_to(ctx, 0, 60);
+ vkvg_rel_line_to(ctx, 50, 30);
+ /*
+ vkvg_rel_line_to(ctx,50,-30);
+ vkvg_rel_line_to(ctx,50,0);
+ vkvg_rel_line_to(ctx,50,30);
+ vkvg_rel_line_to(ctx,0,60);
+ vkvg_rel_line_to(ctx,-50,70);
+ vkvg_rel_line_to(ctx,-50,0);
+ vkvg_rel_line_to(ctx,-50,-70);
+ vkvg_close_path(ctx);
+ vkvg_stroke(ctx);
+
+ vkvg_set_source_rgba(ctx,1,0,0,1);
+ vkvg_move_to(ctx,x+200,y);
+ vkvg_rel_line_to(ctx,50,70);
+ vkvg_rel_line_to(ctx,50,0);
+ vkvg_rel_line_to(ctx,50,-70);
+ vkvg_rel_line_to(ctx,0,-60);
+ vkvg_rel_line_to(ctx,-50,-30);
+ vkvg_rel_line_to(ctx,-50,0);
+ vkvg_rel_line_to(ctx,-50,30);*/
+ vkvg_close_path(ctx);
+ vkvg_stroke(ctx);
+
+ vkvg_set_source_rgba(ctx, 0, 0, 1, 1);
+ vkvg_move_to(ctx, x + 250, y);
+ vkvg_rel_line_to(ctx, 50, -30);
+ vkvg_rel_line_to(ctx, 50, 0);
+ vkvg_rel_line_to(ctx, 50, 30);
+ vkvg_rel_line_to(ctx, 0, 60);
+ vkvg_rel_line_to(ctx, -50, 70);
+ vkvg_rel_line_to(ctx, -50, 0);
+ vkvg_rel_line_to(ctx, -50, -70);
+ vkvg_close_path(ctx);
+ vkvg_stroke(ctx);
+
+ // float dx = 150, dy = 140;
+ // vkvg_rel_line_to(ctx,dx,-dy);
+ // vkvg_rel_line_to(ctx,dx,dy);
+ // vkvg_stroke(ctx);
+ // vkvg_set_line_join(ctx,VKVG_LINE_JOIN_BEVEL);
+ // vkvg_rel_move_to(ctx,-dx*2,abs(dy*1.5));
+ // vkvg_rel_line_to(ctx,dx,-dy);
+ // vkvg_rel_line_to(ctx,dx,dy);
+ // vkvg_stroke(ctx);
+ // vkvg_set_line_join(ctx,VKVG_LINE_JOIN_ROUND);
+ // vkvg_rel_move_to(ctx,-dx*2,abs(dy*1.5));
+ // vkvg_rel_line_to(ctx,dx,-dy);
+ // vkvg_rel_line_to(ctx,dx,dy);
+ // vkvg_stroke(ctx);
+ // vkvg_set_line_join(ctx,VKVG_LINE_JOIN_MITER);
+
+ vkvg_destroy(ctx);
+}
+
+TEST(line_join1) {
+ VkvgContext ctx = vkvg_create(test->surf);
+
+ vkvg_set_fill_rule(ctx, VKVG_FILL_RULE_EVEN_ODD);
+ vkvg_set_line_width(ctx, 30);
+
+ vkvg_set_line_join(ctx, VKVG_LINE_JOIN_ROUND);
+
+ // vkvg_arc (ctx, 200, 500, 100, 0, M_PI);
+
+ vkvg_translate(ctx, -50, -50);
+
+ vkvg_set_source_rgb(ctx, 0.5, 0, 0);
+
+ for (int j = 0; j < 2; j++) {
+ int i = 0;
+ vkvg_move_to(ctx, 100, 100);
+ for (i = 0; i < 5; i++) {
+ vkvg_rel_line_to(ctx, 70, 50);
+ vkvg_rel_line_to(ctx, -70, 50);
+ }
+ vkvg_stroke(ctx);
+
+ vkvg_move_to(ctx, 200, 600);
+ for (i = 0; i < 5; i++) {
+ vkvg_rel_line_to(ctx, 70, -50);
+ vkvg_rel_line_to(ctx, -70, -50);
+ }
+ vkvg_stroke(ctx);
+
+ vkvg_move_to(ctx, 400, 100);
+ for (i = 0; i < 5; i++) {
+ vkvg_rel_line_to(ctx, -70, 50);
+ vkvg_rel_line_to(ctx, 70, 50);
+ }
+ vkvg_stroke(ctx);
+
+ vkvg_move_to(ctx, 500, 600);
+ for (i = 0; i < 5; i++) {
+ vkvg_rel_line_to(ctx, -70, -50);
+ vkvg_rel_line_to(ctx, 70, -50);
+ }
+ vkvg_stroke(ctx);
+ vkvg_set_line_join(ctx, VKVG_LINE_JOIN_BEVEL);
+ vkvg_translate(ctx, 500, 0);
+ }
+
+ vkvg_destroy(ctx);
+}
+
+TEST(line_join2) {
+ VkvgContext ctx = vkvg_create(test->surf);
+
+ vkvg_set_fill_rule(ctx, VKVG_FILL_RULE_EVEN_ODD);
+ vkvg_set_line_width(ctx, 30);
+
+ vkvg_set_line_join(ctx, VKVG_LINE_JOIN_ROUND);
+
+ // vkvg_arc (ctx, 200, 500, 100, 0, M_PI);
+
+ vkvg_translate(ctx, -50, -50);
+
+ vkvg_set_source_rgb(ctx, 0.5, 0, 0);
+
+ for (int j = 0; j < 2; j++) {
+ int i = 0;
+ vkvg_move_to(ctx, 100, 100);
+ for (i = 0; i < 4; i++) {
+ vkvg_rel_line_to(ctx, 50, 70);
+ vkvg_rel_line_to(ctx, 50, -70);
+ }
+ vkvg_stroke(ctx);
+
+ vkvg_move_to(ctx, 500, 200);
+ for (i = 0; i < 4; i++) {
+ vkvg_rel_line_to(ctx, -50, 70);
+ vkvg_rel_line_to(ctx, -50, -70);
+ }
+ vkvg_stroke(ctx);
+
+ vkvg_move_to(ctx, 100, 400);
+ for (i = 0; i < 4; i++) {
+ vkvg_rel_line_to(ctx, 50, -70);
+ vkvg_rel_line_to(ctx, 50, 70);
+ }
+ vkvg_stroke(ctx);
+
+ vkvg_move_to(ctx, 500, 500);
+ for (i = 0; i < 4; i++) {
+ vkvg_rel_line_to(ctx, -50, -70);
+ vkvg_rel_line_to(ctx, -50, 70);
+ }
+ vkvg_stroke(ctx);
+ vkvg_set_line_join(ctx, VKVG_LINE_JOIN_BEVEL);
+ vkvg_translate(ctx, 450, 0);
+ }
+
+ vkvg_destroy(ctx);
+}
+