1 // Copyright 2020 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 5 #include <random> 6 7 REG_FIDDLE(drawarcs, 256, 256, false, 0) { draw(SkCanvas * canvas)8 void draw(SkCanvas* canvas) { 9 SkPaint paint; 10 paint.setAntiAlias(true); 11 paint.setStyle(SkPaint::kStroke_Style); 12 paint.setStrokeWidth(8); 13 14 std::default_random_engine rng; 15 const auto randScalar = [&rng](SkScalar min, SkScalar max) -> SkScalar { 16 return std::uniform_real_distribution<SkScalar>(min, max)(rng); 17 }; 18 const auto randOpaqueColor = [&rng]() -> SkColor { 19 return std::uniform_int_distribution<uint32_t>(0, 0xFFFFFF)(rng) | 0xFF000000; 20 }; 21 SkPath path; 22 23 for (int i = 0; i < 100; ++i) { 24 SkScalar x = randScalar(0, 200); 25 SkScalar y = randScalar(0, 200); 26 27 path.rewind(); 28 path.addArc(SkRect::MakeXYWH(x, y, 70, 70), randScalar(0, 360), 29 randScalar(0, 360)); 30 paint.setColor(randOpaqueColor()); 31 canvas->drawPath(path, paint); 32 } 33 } 34 } // END FIDDLE 35