ruby-geometry

Created: 2008-08-21 11:43
Updated: 2019-01-22 23:31
License: mit

README.md

Geometry in Ruby

Implementation of basic 2D geometry algorithms in Ruby.

Installation

gem 'ruby-geometry', require: 'geometry'

Defined geometry objects

  • Point

  • Segment

  • Vector

  • Polygon

  • Line

Already implemented algorithms

  • Area of convex polygon Polygon#area

  • Distance from point to a line or segment Line#distance_to(point), Segment#distance_to(point)

  • Do segments overlap? Segments#overlaps?

  • Do segments lie on one line? Segment#lies_on_one_line_with?

  • Do segments intersect? Segment#intersects_with?

  • Segments intersection point Segment#intersection_point_with

  • Does segment contain given point? Segment#contains_point?

  • Are segments parallel? Segment#parallel_to?

  • Are vectors collinear? Vector#collinear_with?

  • Vectors cross product (outer product, vector product) Vector#cross_product

  • Vectors scalar product (inner product, dot product) Vector#scalar_product

  • Segment length Segment#length

  • Vector modulus Vector#modulus

  • Trivial vector arithmetics: summation, subtraction, vector-number multiplication Vector#+(vector); Vector#-(vector); Vector#*(numeric)

  • Euclid distance Geometry#distance

  • Line slope Line#slope

  • Y-intercept of a line Line#y_intercept

  • X-intercept of a line Line#x_intercept

  • Are lines parallel? Line#parallel_to?

  • What x-value do lines intersect at? Line#intersect_x

  • What is the angle between two lines? Line#angle_to

  • Rectangular bounds of polygon Polygon#bounding_box

  • Does polygon contain a given point? Polygon#contains?

Coming up

  • Is polygon self-intersecting?

  • Is polygon convex?

  • Do polygons intersect?

  • Does circle contain given point?

  • Do circles intersect?

Copyright (c) 2008 Daniel Vartanov, released under the MIT license

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more