Path_interpolate.cpp 768 B

123456789101112131415161718192021222324
  1. // Copyright 2019 Google LLC.
  2. // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
  3. #include "tools/fiddle/examples.h"
  4. // HASH=404f11c5c9c9ca8a64822d484552a473
  5. REG_FIDDLE(Path_interpolate, 256, 60, false, 0) {
  6. void draw(SkCanvas* canvas) {
  7. SkPaint paint;
  8. paint.setAntiAlias(true);
  9. paint.setStyle(SkPaint::kStroke_Style);
  10. SkPath path, path2;
  11. path.moveTo(20, 20);
  12. path.lineTo(40, 40);
  13. path.lineTo(20, 40);
  14. path.lineTo(40, 20);
  15. path.close();
  16. path2.addRect({20, 20, 40, 40});
  17. for (SkScalar i = 0; i <= 1; i += 1.f / 6) {
  18. SkPath interp;
  19. path.interpolate(path2, i, &interp);
  20. canvas->drawPath(interp, paint);
  21. canvas->translate(30, 0);
  22. }
  23. }
  24. } // END FIDDLE