Hacker News new | past | comments | ask | show | jobs | submit login
Victor.js – 2D Vectors for JavaScript (victorjs.org)
39 points by bpierre on Aug 30, 2014 | hide | past | favorite | 22 comments



Why not use something like Numeric.js and use regular arrays? Seems like a lot of trouble to do simple vector math, and this library is specialized only to vectors. To mix vectors and matrices, you need to convert these back to arrays anyway.


Just want to throw in http://glmatrix.net. It supports vectors and matrices, Node and the browser and is crazy fast. (No affiliation!)


You wouldn't happen by chance to know of any libraries for doing geometric calculations? I would like a library that can handle rendering ellipses, determine if two ellipses intersect,if a line intersects or is within an ellipse, etc.


Drawing ellipses is easy. Just pick any canvas library: https://developer.mozilla.org/de/docs/Web/HTML/Canvas#Librar...

I'm afraid you have to calculate the intersections yourself though. I know there is a Processing(.org) plugin that does that kind of thing (might be called "intersection") and Processing can export to JS. I hope this helps at least a little bit.


Three.js has a lot of these types of functions in 3D. Why not contribute the ellipse code for 2D usage.


+1


Nice clean library. I guess the vector object is kept mutable because of performance reasons? When actually calculating with this I see a lot of copying (and thereby allocating) going on. For a while I've been looking for a library that is immutable, but also is fast (minimal allocations).

I was thinking of the use of a JS sugaring compiler that splits the vector up into into 2 numbers (2 arguments for functions, 2 variables when declaring, etc). Alternatively some way to combine the two numbers into one and splitting them again each time the vector is used. Both give you an immutable vector implementation that also has 0 allocations.

This can make a big difference in usability and performance for game-like applications. Any ideas?


I was using Point class in Adobe Flash for many years (http://help.adobe.com/en_US/FlashPlatform/reference/actionsc... ), so I had to reimplement it into JS, it is part of my IvanK library - http://lib.ivank.net/?p=download . But honestly, there are like 7368 implementations of two-float object, we really need one more :)


They should also do a permissions and verification system called Clarence.


and a custom confirmation dialog called Shirley


Numerical calculations library called Matt?


    .subtractY(vector)
    .multiplyY(scalar)
that bothers me a bit

    .rotate(angle)
    .rotateBy(angle)
that seems to be a bit... of a weird default? rotate and rotateTo would be more expected personally


There is already Vector2 in Three.JS that has nearly all these functions. Why not just work on that library? The math library is separable from the code of ThreeJS anyhow.


did some kid code this or why is this top news?


really like the playful flying airplane.


How is the demo arrow on the logo made?


There is a <canvas> overlaying the whole top section of that page onto which the arrow is being drawn.


very nice documentation! Sorry for the lack of depth of my comment, I don't need vectors...


I'm so glad I was downvoted (twice) for making the most positive comment I could on a library I don't need.

It clearly shows how silly downvoting is.

Yet your documentation rocks. And I thought it had to be said.


How do you get anywhere?


You're funny :)


random teleportation essentially




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: