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" 4REG_FIDDLE(convex_overstroke_linear_approx_curve, 256, 256, false, 0) { 5#include "math.h" 6 7void draw(SkCanvas* canvas) { 8 const float SCALE = 1; 9 const int WIDTH = 150; 10 11 const float PI = 3.1415926; 12 13 canvas->scale(SCALE, SCALE); 14 canvas->translate(50, 50); 15 16 SkPoint p1 = SkPoint::Make(50, 50); 17 SkPoint p2 = SkPoint::Make(80, 50); 18 19 SkPoint points[10]; 20 21 for (int i = 0; i < 10; i++) { 22 points[i] = SkPoint::Make(65 + 15 * cos(i * PI / 10), 50 - 15 * sin(i * PI / 10)); 23 } 24 25 SkPath path; 26 path.moveTo(p1); 27 path.lineTo(p2); 28 29 for (int i = 0; i < 10; i++) { 30 path.lineTo(points[i]); 31 } 32 path.lineTo(p1); 33 // path.close(); 34 35 SkPaint p; 36 p.setColor(SK_ColorRED); 37 p.setAntiAlias(true); 38 p.setStyle(SkPaint::kStroke_Style); 39 p.setStrokeWidth(WIDTH); 40 41 canvas->drawPath(path, p); 42 43 SkPath fillpath; 44 p.getFillPath(path, &fillpath); 45 46 SkPaint fillp; 47 fillp.setColor(SK_ColorBLACK); 48 fillp.setAntiAlias(true); 49 fillp.setStyle(SkPaint::kStroke_Style); 50 fillp.setStrokeWidth(1); 51 52 canvas->drawPath(fillpath, fillp); 53} 54} // END FIDDLE 55