HowlDev.Simulation.Physics.Primitive2D 0.8.2

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package HowlDev.Simulation.Physics.Primitive2D --version 0.8.2
                    
NuGet\Install-Package HowlDev.Simulation.Physics.Primitive2D -Version 0.8.2
                    
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="HowlDev.Simulation.Physics.Primitive2D" Version="0.8.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="HowlDev.Simulation.Physics.Primitive2D" Version="0.8.2" />
                    
Directory.Packages.props
<PackageReference Include="HowlDev.Simulation.Physics.Primitive2D" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add HowlDev.Simulation.Physics.Primitive2D --version 0.8.2
                    
#r "nuget: HowlDev.Simulation.Physics.Primitive2D, 0.8.2"
                    
#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.
#:package HowlDev.Simulation.Physics.Primitive2D@0.8.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=HowlDev.Simulation.Physics.Primitive2D&version=0.8.2
                    
Install as a Cake Addin
#tool nuget:?package=HowlDev.Simulation.Physics.Primitive2D&version=0.8.2
                    
Install as a Cake Tool

HowlDev.Simulation.Physics

HowlDev.Simulation.Physics.Primitive2D

Contains a few 2D-plane generics for simple calculations (it uses doubles, sometimes rounded).

Rotation2D

Holds an angle between 0 and 360 (with a precision of 2 digits). Has an extreme number of helper methods to point at given points, get distances between other angles, and to flip the angle.

Point2D

Holds two full double-precision points for X and Y. Has a number of helper methods to get distances in 2D space and midpoints, as well as some fancy operator functions.

Vector2D

Holds a Rotation2D object and a double for the velocity. Allows you to calculate points and angles off of others using operator functions.

Equation2D

Holds two coefficient values (for the slope and the y-intercept). Does most of the calculating for the Line2D. Not really intended to be used directly.

Line2D

Holds two Point2D objects in an array. Has logic for intersecting lines and retrieving intersecting points.

Circle2D

Holding a center Point2D and a radius, has methods for intersection with other circles and points.

Read the wiki (which has links to the package) and get a bunch of class definitions! Those exist here.

Changelog

0.8.2 (12/19/25)

  • Vector2D has some additional operators that I hope will be useful in making my game easier.
    • *, /, and the unary - operator (to flip it immediately).
  • Point2D now has as vector-getter from one point to another. (this → parameter)

0.8.1 (12/19/25)

  • Circle2D now has methods to change one property and leave the rest.

0.8 (12/19/25)

  • BREAKING CHANGE
    • Changed Rotation, Point, Vector, Line, and Equation to Value types (structs) because I was foolish and it's what I should have done in the first place.
      • I do kinda dislike how the API turned out, but I kept all the methods I wanted to, so...
  • Created Circle2D struct with minimal methods, I'll see how many more I need to add. And I just want to get it into production to start testing it, so I'm going to publish.

0.7.5 (12/17/25)

Somehow I don't have a changelog for everything I've done up to this point. Well, I have a bunch of classes, and I'm just working through all the primitives I want to contain. Right now, I'm building it so I can make a simple Asteroids clone, so my work will focus on the primitives I need for that to work.

Also, testing the workflow.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.9.0 116 3/6/2026
0.8.4 110 2/26/2026
0.8.3 125 1/1/2026
0.8.2 200 12/19/2025
0.8.1 208 12/19/2025
0.8.0 212 12/19/2025
0.7.5 295 12/17/2025
0.7.4 176 12/13/2025