Skip to content

richardkmichael/ruby-geometry

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Geometry in Ruby
================

Implementation of basic 2D geometry algorithms in Ruby.


Defined geometry objects
========================

  * Point

  * Segment

  * Vector

  * Polygon

  * Line


Already implemented algorithms
==============================

  * 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 }


Coming up
=========

  * Is polygon self-intersecting?

  * Area of polygon

  * Is polygon convex?  

  * Do polygons intersect?

  * Does polygon contain given point?

  * Rectangular bounds of polygon  

  * Does circle contain given point?

  * Do circles intersect?

  * Area of circle

  * Making a ruby gem
  

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

About

Simple geometry classes and algorithms in Ruby

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%