Canvas_translate.cpp 1.0 KB

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=eb93d5fa66a5f7a10f4f9210494d7222
  5. REG_FIDDLE(Canvas_translate, 256, 128, false, 0) {
  6. void draw(SkCanvas* canvas) {
  7. SkPaint filledPaint;
  8. SkPaint outlinePaint;
  9. outlinePaint.setStyle(SkPaint::kStroke_Style);
  10. outlinePaint.setColor(SK_ColorBLUE);
  11. canvas->save();
  12. canvas->translate(50, 50);
  13. canvas->drawCircle(28, 28, 15, outlinePaint); // blue center: (50+28, 50+28)
  14. canvas->scale(2, 1/2.f);
  15. canvas->drawCircle(28, 28, 15, filledPaint); // black center: (50+(28*2), 50+(28/2))
  16. canvas->restore();
  17. filledPaint.setColor(SK_ColorGRAY);
  18. outlinePaint.setColor(SK_ColorRED);
  19. canvas->scale(2, 1/2.f);
  20. canvas->drawCircle(28, 28, 15, outlinePaint); // red center: (28*2, 28/2)
  21. canvas->translate(50, 50);
  22. canvas->drawCircle(28, 28, 15, filledPaint); // gray center: ((50+28)*2, (50+28)/2)
  23. }
  24. } // END FIDDLE