thegengen/ruby-geometry
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
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 }
* Rectangular bounds of polygon { Polygon#bounding_box }
* Does polygon contain a given point? { Polygon#contains? }
Coming up
=========
* Is polygon self-intersecting?
* Area of polygon
* Is polygon convex?
* Do polygons intersect?
* Does circle contain given point?
* Do circles intersect?
* Area of circle
Copyright (c) 2008 Daniel Vartanov, released under the MIT license