Constructor
new Ray(pt, norm)
Ray may be constructed by setting an origin point and a normal vector, so that any point x
on a ray fit an equation:
(x - origin) * vector = 0
Ray defined by constructor is a right semi-infinite line with respect to the normal vector
If normal vector is omitted ray is considered horizontal (normal vector is (0,1)).
Don't be confused: direction of the normal vector is orthogonal to the ray
(x - origin) * vector = 0
Ray defined by constructor is a right semi-infinite line with respect to the normal vector
If normal vector is omitted ray is considered horizontal (normal vector is (0,1)).
Don't be confused: direction of the normal vector is orthogonal to the ray
- Source:
Parameters:
Name | Type | Description |
---|---|---|
pt |
Point
|
start point |
norm |
Vector
|
normal vector |
Classes
Members
slope
Slope of the ray - angle in radians between ray and axe x from 0 to 2PI
- Source:
Methods
contains(pt) → {boolean}
Returns true if point belongs to ray
- Source:
Parameters:
Name | Type | Description |
---|---|---|
pt |
Point
|
Query point |
Returns:
- Type:
-
boolean
intersect(shape) → {Array.<Point>}
Returns array of intersection points between ray and another shape
- Source:
Parameters:
Name | Type | Description |
---|---|---|
shape |
Shape
|
Shape to intersect with ray |
rotate(angle, center)
Return new line rotated by angle
- Source:
Parameters:
Name | Type | Description |
---|---|---|
angle |
number
|
angle in radians |
center |
Point
|
center of rotation |
split(pt)
Split ray with point and return array of segment and new ray
- Source:
Parameters:
Name | Type | Description |
---|---|---|
pt |
Point
|
Returns:
[Segment,Ray]
svg(box, attrs)
Return string to draw svg segment representing ray inside given box
- Source:
Parameters:
Name | Type | Description |
---|---|---|
box |
Box
|
Box representing drawing area |
attrs |
Object
|
an object with attributes of svg segment element |