void drawPloygon4() { var canvas = new CommandBufferCanvas(this._renderTexture, Window.instance.devicePixelRatio, this._meshPool); var paint = new Paint { color = new Color(0xFFFF0000), shader = Gradient.linear(new Offset(80, 80), new Offset(180, 180), new List <Color>() { Colors.red, Colors.black, Colors.green }, null, TileMode.clamp) }; var path = new Path(); path.moveTo(10, 150); path.lineTo(10, 160); path.lineTo(140, 120); path.lineTo(110, 180); path.winding(PathWinding.clockwise); path.close(); path.addRect(Unity.UIWidgets.ui.Rect.fromLTWH(0, 100, 100, 100)); path.addRect(Unity.UIWidgets.ui.Rect.fromLTWH(200, 0, 100, 100)); path.addRRect(RRect.fromRectAndRadius(Unity.UIWidgets.ui.Rect.fromLTWH(150, 100, 30, 30), 10)); path.addOval(Unity.UIWidgets.ui.Rect.fromLTWH(150, 50, 100, 100)); path.winding(PathWinding.clockwise); if (Event.current.type == EventType.MouseDown) { var pos = new Offset( Event.current.mousePosition.x, Event.current.mousePosition.y ); Debug.Log(pos + ": " + path.contains(pos)); } canvas.drawPath(path, paint); canvas.rotate(Mathf.PI * 15 / 180); canvas.translate(100, 100); paint.shader = Gradient.radial(new Offset(80, 80), 100, new List <Color>() { Colors.red, Colors.black, Colors.green }, null, TileMode.clamp); canvas.drawPath(path, paint); canvas.translate(100, 100); paint.shader = Gradient.sweep(new Offset(120, 100), new List <Color>() { Colors.red, Colors.black, Colors.green, Colors.red, }, null, TileMode.clamp, 10 * Mathf.PI / 180, 135 * Mathf.PI / 180); canvas.drawPath(path, paint); canvas.translate(100, 100); //paint.maskFilter = MaskFilter.blur(BlurStyle.normal, 5); paint.shader = new ImageShader(new Image(texture6, true), TileMode.mirror); canvas.drawPath(path, paint); canvas.flush(); }
public override void paint(Canvas canvas, Size size) { var paint = new Paint() { color = new Color(0xFFFF0000), }; paint.color = Colors.yellow; paint.style = PaintingStyle.stroke; paint.strokeWidth = 3; var startPoint = new Offset(0, size.height / 6); var controlPoint1 = new Offset(size.width / 4, 0); var controlPoint2 = new Offset(3 * size.width / 4, 0); var endPoint = new Offset(size.width, size.height / 6); var path = new Path(); path.moveTo(startPoint.dx, startPoint.dy); path.cubicTo( controlPoint1.dx, controlPoint1.dy, controlPoint2.dx, controlPoint2.dy, endPoint.dx, endPoint.dy ); path.moveTo(10, 10); path.lineTo(90, 10); path.lineTo(10, 90); path.lineTo(90, 90); path.winding(PathWinding.clockwise); path.close(); path.moveTo(110, 10); path.lineTo(190, 10); path.lineTo(110, 90); path.lineTo(190, 90); path.close(); path.addRect(UIWidgetRect.fromLTWH(10, 25, 180, 50)); path.addRect(UIWidgetRect.fromLTWH(200, 0, 100, 100)); path.addRRect(RRect.fromRectAndRadius(UIWidgetRect.fromLTWH(225, 25, 50, 50), 10)); path.winding(PathWinding.clockwise); path.addOval(UIWidgetRect.fromLTWH(200, 50, 100, 100)); path.winding(PathWinding.clockwise); canvas.drawPath(path, paint); paint = new Paint { color = new Color(0xFFFF0000), shader = Gradient.linear( new Offset(0, 0), new Offset(size.width, 200), new List <Color>() { Colors.red, Colors.black, Colors.green }, null, TileMode.clamp), }; canvas.translate(0, 200); canvas.drawPath(path, paint); canvas.translate(0, 200); // paint.maskFilter = MaskFilter.blur(BlurStyle.normal, 5); paint.shader = new ImageShader(new Image(texture6, true), TileMode.mirror); canvas.drawPath(path, paint); canvas.translate(0, 200); paint = new Paint { color = new Color(0xFF00FF00), shader = Gradient.sweep( new Offset(size.width / 2, 100), new List <Color>() { Colors.red, Colors.black, Colors.green, Colors.red, }, null, TileMode.clamp, 0 * Mathf.PI / 180, 360 * Mathf.PI / 180), }; canvas.drawPath(path, paint); paint.shader = Gradient.radial( new Offset(size.width / 2, 100), 200f, new List <Color>() { Colors.red, Colors.black, Colors.green }, null, TileMode.clamp); canvas.translate(0, 200); canvas.drawPath(path, paint); }