Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
simplify-planar-graph
Advanced tools
Simplifies a planar graph by removing small or nearly flat corners.
var simplify = require("simplify-planar-graph")
//Create a circle
var positions = []
var edges = []
for(var i=0; i<100; ++i) {
var theta = i / 100 * Math.PI * 2.0
positions.push([Math.cos(theta), Math.sin(theta)])
edges.push([i, (i+1)%100])
}
//Simplify it
console.log(simplify(edges, positions, 0.1))
Output:
{ positions:
[ [ 0.9921147013144779, 0.12533323356430426 ],
[ 0.8090169943749475, 0.5877852522924731 ],
[ 0.48175367410171516, 0.8763066800438637 ],
[ -0.30901699437494734, 0.9510565162951536 ],
[ -0.7705132427757891, 0.6374239897486899 ],
[ -0.9980267284282716, 0.06279051952931358 ],
[ -0.9510565162951535, -0.30901699437494773 ],
[ -0.5877852522924732, -0.8090169943749473 ],
[ -0.18738131458572463, -0.9822872507286887 ],
[ 0.535826794978996, -0.8443279255020155 ],
[ 0.7705132427757894, -0.6374239897486896 ] ],
edges:
[ [ 0, 1 ],
[ 1, 2 ],
[ 2, 3 ],
[ 3, 4 ],
[ 4, 5 ],
[ 10, 0 ],
[ 5, 6 ],
[ 6, 7 ],
[ 7, 8 ],
[ 8, 9 ],
[ 9, 10 ] ] }
npm install simplify-planar-graph
require("simplify-planar-graph")(edges, positions, tolerance)
Simplies a planar graph to a given tolerance
edges
are the edges of the graph represented by pairs of vertex indicespositions
is a list of vertex coordinates encoded as an array of 2D arraystolerance
controls the target aspect ratio of the corners of the meshReturns A new planar graph encoded as a JSON object with two properties:
edges
is an array of edges encoded as pairs of indicespositions
is an array of positions for the simplicial complexNote The current implementation does not detect the removal of features which cross existing line segments. Picking a high tolerance value may result in destroying the planarity of the resulting graph. Eventually if it becomes a priority I may go back and implement code to detect and handle these cases.
(c) 2014 Mikola Lysenko. MIT License
FAQs
Simplifies a planar graph
We found that simplify-planar-graph demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.