LilyPath 0.0.4

dotnet add package LilyPath --version 0.0.4                
NuGet\Install-Package LilyPath -Version 0.0.4                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LilyPath" Version="0.0.4" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add LilyPath --version 0.0.4                
#r "nuget: LilyPath, 0.0.4"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install LilyPath as a Cake Addin
#addin nuget:?package=LilyPath&version=0.0.4

// Install LilyPath as a Cake Tool
#tool nuget:?package=LilyPath&version=0.0.4                

LilyPath

<img src="https://raw.github.com/wiki/jaquadro/LilyPath/images/lilypath.png" align="right" title="Rendered with MSAA on XNA with LilyPath" />

LilyPath is a 2D drawing library for MonoGame and XNA. LilyPath provides some of the functionality found in System.Drawing, such as drawing paths and shapes with configurable pens and brushes.

Instead of creating raster images, LilyPath renders everything directly to your scene or render target. Complex paths and filled shapes are rendered as polygons, while primitives are rendered as GL or DX lines.

Drawing is handled through a DrawBatch object to reduce the number of draw calls needed. This mirrors the role of SpriteBatch for rendering textured quads. More complex geometry can be compiled ahead of time into GraphicsPath objects, which contain the polygon data after arcs, joins, and other calculations have been completed.

Features

  • Draw primitive lines, paths, and closed shapes.
  • Draw complex lines, paths, and shapes with pens.
  • Fill paths and shapes with brushes.
  • Basic paths and shapes supported:
    • Arc, Bezier, Circle, Ellipse, Line, Path, Point, Rectangle, Quad
  • Pen features supported:
    • Alignment, Color, End Styles, Gradient, Join Styles (Mitering), Width
  • Brush features supported:
    • Color, Texture, Transform

Example

Here’s a short code sample for drawing the lily pad in the picture above (without the flower):

drawBatch.Begin(DrawSortMode.Deferred);

Vector2 origin = new Vector2(200, 200);
float startAngle = (float)(Math.PI / 16) * 25; // 11:20
float arcLength = (float)(Math.PI / 16) * 30;

drawBatch.FillCircle(new SolidColorBrush(Color.SkyBlue), origin, 175);
drawBatch.FillArc(new SolidColorBrush(Color.LimeGreen), origin, 150, 
    startAngle, arcLength, ArcType.Sector);
drawBatch.DrawClosedArc(new Pen(Color.Green, 15), origin, 150, 
    startAngle, arcLength, ArcType.Sector);

drawBatch.End();

Source code for the full image and other examples can be found in the included test project, LilyPathDemo.

NOTE: The example projects are built with GL controls which do not work with the last few years of MonoGame. Try running them against MonoGame 3.0 or 3.1.

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on LilyPath:

Package Downloads
Undine.LilyPath

LilyPath binding for Undine Game Engine

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.4 244 6/7/2023
0.0.3 412 9/21/2021
0.0.2 655 9/9/2021
0.0.1 321 9/8/2021