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